Posts: 940
Thanks: 18 in 3 Posts
1 Achievements
Typically, the game engine doesn't think about items in terms of words.
Rather, when an object is referenced in an XML- for example, PaintingAnimalGiraffe in CareerEvents- this gets translated into a hash. The FNV64 hash of PaintingAnimalGiraffe is 0x3E4A0F10ECB960AF.
For some items, that ID will be exactly the same as the OBJD Instance ID and it's easier to connect the dots that the game could query it that way.
But the OBJD ID for that item is 0x00000000000006E7 - naturally, somewhere else in the chain has to establish a relationship between that ID and those words.
And this is done with an NGMP resource - most of EA's objects are already in a master NGMP, which is why we can already reference this object by name.
NGMP can store multiple pairs similar to how a STBL can hold many strings.
Each name pair is made up of the hash and the instance ID of the object.
The solution being:
Choose a descriptive name for the object you want to use. For example, Ani10kMoneyBag.
In S3PE, go to Tools > FNV Hash, generate one for the name you choose, and copy it.
In a package, go to Resource > Add
Type should be NGMP and Group should be 0
The NGMP itself can have any unique name, so type that in and press FNV64 to give it an ID.
Then press OK.
Click on the NGMP, then Grid.
Select Data, then the three dots button.
Click Add, and paste in the NameHash section.
In Ani's package, copy the instance of the OBJD you want. Paste that in the Instance section of the new package.
OK > Commit
You can Add as many extra pairs as you need.
In your custom CareerEvents, you'll use the name you chose for the object in the reward node.
Now, this
should work in most cases- but fair warning in advance that there probably are limitations. XMLs with hardcoded values, EA oversights, that kind of thing may be the case if it doesn't work.
Good luck!
thecardinalsims -
Cardinal has been taken by a fey mood!