Jump to content

Seperating Components from Junk in Pipboy


Recommended Posts

I'm attempting to shift components to their own section of the pipboy ideally between Junk and Mods.

 

I found in Pipboy_InvPage.swf where I can alter the header labels and even create new ones but they are not tied to the actual contents.

 

Where should I be looking to alter what is displayed in each tab of the pipboy inventory?

 

For example, how does the game know to place Bobby Pins under "MISC" in the pipboy?

Link to comment
Share on other sites

If it is a MISC record (Miscellaneous item) with something in the CVPA - Components subrecord, it gets sorted under junk.

 

The components you see in the pipboy are MISC versions of the CMPO (Component) records. If you add CMPO items to the inventory (such as adding it as a component for a scrap recipe rather than using the MISC version)*, they will be invisible.

 

So what you want to do would require somehow using f4se scripts to change the game behavior specifically for a handful of records that are only different in terms of the EDIDs of the records.

 

*Build recipes have the CMPO under components so that any MISC that has those under the components section of the record can be used for crafting it.

Link to comment
Share on other sites

*Build recipes have the CMPO under components so that any MISC that has those under the components section of the record can be used for crafting it.

 

Just tested this by switching a recipe from CMPO to MISC and it no longer automatically scraps items to create it. Thats actually pretty cool as it answers a question I had in another thread.

 

 

 

 

If it is a MISC record (Miscellaneous item) with something in the CVPA - Components subrecord, it gets sorted under junk.

 

That explains why MISC items like Bobby Pins and Subway Tokens without CVPA get pushed to the MISC tab of the Pipboy inventory and not the JUNK tab.

 

Where is the code located for defining what items go where? I cannot seem to find it.

 

Thanks for your reply it was incredibly helpful!

Link to comment
Share on other sites

The EXE sends up all of your inventory into one big lump. When the pipboy undergoes a change event (changing tabs, changing pages, etc), the inventory is sent up again from the EXE and refreshed into the pipboy viewspace.

 

The way the inventory tab handles what to show is by ways of a filter flag. For JUNK, this is 0x400 (1024). Here's an example of a component in my inventory, and all of the parts associated with it in the internal inventory object

 

favorite = false
taggedForSearch = false
isLegendary = false
count = 11
nodeID = 34383 (0x864F)
filterFlag = 1024 (0x400)
equipState = 0
text = Acid
canFavorite = false
formID = 1832749 (0x1BF72D)

 

Now, here's a junk item

 

favorite = false
taggedForSearch = false
isLegendary = false
count = 1
nodeID = 34328 (0x8618)
filterFlag = 1024 (0x400)
equipState = 0
text = Adjustable Wrench
canFavorite = false
formID = 315893 (0x4D1F5)

 

The item filter is sent up by the EXE as well. These are all part of DataObj which is a Pipboy_DataObj passed by PipboyChangeEvent.as

 

To get the components out of the JUNK tab and into a custom tab would require changing their filterflag. And F4SE plugin could handle that. Write a flash plugin that can copy the inventory, send the inventory down to your plugin, parse the inventory for anything that casts into a component, alter the filterflag to something the rest of the inventory won't catch, and then send it back up to your flash plugin. Then you can attach an injected tab to the inventory tab list that specifically filters for your custom filter flag.

Link to comment
Share on other sites

Thanks for your reply Carreau, I'm going to go through your post slowly and digest what I can.

 

However writing flash plugins is likely beyond my current skill set so this idea might shift to the back burner for the time being.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...