Don't think we've posted this one before, here is the .bt file for the build/buy catalog entry resource. Similar to today's update to the CAS Part Resource, it has been updated to specify pack ID the product is associated with.
Will there be any problems in-game using custom build/buy objects created before this patch? And how about using custom CASparts created prior to this patch?
@IngeJones The game will still read the old versions correctly.
We do try to keep straight up Custom Content working from patch to patch, and test to verify that is the case. If you guys find CC that is broken due to the patch, point me at it so I can take a look and see if we can do better.
Things besides standard CC are more prone to breakage (script mods, tuning mods, etc) and that is expected.
@SimGuruModSquad -- Regarding the 32bit tags, are you planning to change the format for those tags that are used in OBJD 0xC0DB5AE7 as well? Right now they all seem to be 16bit (at least in those resources that I've looked at) but we're not sure how to proceed with that since they're all defined in the same list.
Hey @pbox. OBJD supports both 16 bit and 32 bit tags. As you likely know, this resource is a stream of properties for the object with each property has a type which indicates what it is. The 16 bit tags have property type 0x2172aebe. The 32 bit tag entry has type 0x2143974c and is an array of 32 bit tag IDs.
(like it is in the wall mounted display shelf that I used as a basis) -- sims couldn't Read or Read Something; they just dropped the interaction from the queue. When I changed that to
(like it is in the one Maxis wall-mounted bookcase from the base game) it worked fine.
So it looks like these are actually some flags to do with routing; I was also able to fix another item I've had routing issues with since some game update (1.8 or earlier, not sure exactly when it broke) by changing those flags.
Do you have some more info on what exactly these are? I'd like to give these more informative names, but right now it would still be a bit vague. Thank you!
We made some changes on this resource in the 1.15.55 patch. So I've updated the template, attached to this post. Presumably you made a similar change, but you should make sure you are reading the data correctly.
On the pipeline side, the data is exported as follow:
...so there is valid data exported in the second two fields, but near as I can tell this data is discarded in the game - and even if they were used, they are more catalog related than gameplay or routing related. It's certainly not out of the question there is something trickier going on and I can dig into it further if the new template does not shed any light.
If you are still having troubles, let me know which one of our wall mounted bookcases you are cloning and/or provide the broken object CC, that will help me investigate further.
Yeah looks like I am still having issues -- I need to test this some more though; now all of a sudden (read: after I had turned off everything and came back to it an hour or two later), the old version is working and the new one is not >.< . I'll post again when I find something that consistently works or does not work.
I made a C+P mistake in my post above though: the original value I see in Unused1 is 0x80000000, not 0x00000080.
The object I cloned is a wall-mounted display shelf (the "Rustic Wall Shelf" from the base game); I basically just changed the mesh to add some books, and changed the tuning reference to 0x0000000000008D8A object_bookcaseWallSC1x1x2_0 (plus assorted catalogue edits like name and price and so on). The wall-mounted bookcase I used as a reference is the "Intellectual Illusion Wall-Mounted Bookshelves" (Base Game). Here is the package if you want to take a look.
E: This is the LastException.txt I get when I make a sim Read Something from this -- "RuntimeError: Have a middle path to pick up an object that is not in the inventory and we cannot generate a constrained_edge"
E2: OK I may have found the culprit (I think) -- I still had an override for the object_bookcaseWall tuning with bookshelf_ReadRandom_Picker and bookshelf_ReadRandom_Picker_Child, instead of bookshelf_ReadRandom_Rallyable. Not sure whether this could have been causing any routing issues, since all it seems to be doing is filtering for age and then forwarding to those same interactions .. but it seems to be working now.
Regarding the auralPropertiesVersion update, we already added most of that, but weren't aware that the extra byte is a count in v4 .. I don't remember seeing anything where that wasn't zero. What kind of object would have an auralAmbientObjectCount > 0, can you think of an example?
Regarding the auralPropertiesVersion update, we already added most of that, but weren't aware that the extra byte is a count in v4 .. I don't remember seeing anything where that wasn't zero. What kind of object would have an auralAmbientObjectCount > 0, can you think of an example?
I believe the idea is that this can be used to provide world-specific ambient sound for an object, so the catalog instance would specify multiple ambient sounds which would be selected based on which world was loaded. But the feature is currently unused and only partially implemented right now which is why the count is always 0.
Comments
We do try to keep straight up Custom Content working from patch to patch, and test to verify that is the case. If you guys find CC that is broken due to the patch, point me at it so I can take a look and see if we can do better.
Things besides standard CC are more prone to breakage (script mods, tuning mods, etc) and that is expected.
UINT32 unused0 <format=hex>;
UINT32 unused1 <format=hex>;
UINT32 unused2 <format=hex>;
are not actually unused, could that be?
I created a wall-mounted bookcase that didn't work at first with
Unused0: 0x00000000
Unused1: 0x00000080 0x80000000
Unused2: 0x00000000
(like it is in the wall mounted display shelf that I used as a basis) -- sims couldn't Read or Read Something; they just dropped the interaction from the queue. When I changed that to
Unused0: 0x00000000
Unused1: 0x00000280
Unused2: 0x00000080
(like it is in the one Maxis wall-mounted bookcase from the base game) it worked fine.
So it looks like these are actually some flags to do with routing; I was also able to fix another item I've had routing issues with since some game update (1.8 or earlier, not sure exactly when it broke) by changing those flags.
Do you have some more info on what exactly these are? I'd like to give these more informative names, but right now it would still be a bit vague. Thank you!
We made some changes on this resource in the 1.15.55 patch. So I've updated the template, attached to this post. Presumably you made a similar change, but you should make sure you are reading the data correctly.
On the pipeline side, the data is exported as follow:
...so there is valid data exported in the second two fields, but near as I can tell this data is discarded in the game - and even if they were used, they are more catalog related than gameplay or routing related. It's certainly not out of the question there is something trickier going on and I can dig into it further if the new template does not shed any light.
If you are still having troubles, let me know which one of our wall mounted bookcases you are cloning and/or provide the broken object CC, that will help me investigate further.
Thanks,
SGMS
Yeah looks like I am still having issues -- I need to test this some more though; now all of a sudden (read: after I had turned off everything and came back to it an hour or two later), the old version is working and the new one is not >.< . I'll post again when I find something that consistently works or does not work.
I made a C+P mistake in my post above though: the original value I see in Unused1 is 0x80000000, not 0x00000080.
The object I cloned is a wall-mounted display shelf (the "Rustic Wall Shelf" from the base game); I basically just changed the mesh to add some books, and changed the tuning reference to 0x0000000000008D8A object_bookcaseWallSC1x1x2_0 (plus assorted catalogue edits like name and price and so on). The wall-mounted bookcase I used as a reference is the "Intellectual Illusion Wall-Mounted Bookshelves" (Base Game). Here is the package if you want to take a look.
E: This is the LastException.txt I get when I make a sim Read Something from this -- "RuntimeError: Have a middle path to pick up an object that is not in the inventory and we cannot generate a constrained_edge"
E2: OK I may have found the culprit (I think) -- I still had an override for the object_bookcaseWall tuning with bookshelf_ReadRandom_Picker and bookshelf_ReadRandom_Picker_Child, instead of bookshelf_ReadRandom_Rallyable. Not sure whether this could have been causing any routing issues, since all it seems to be doing is filtering for age and then forwarding to those same interactions .. but it seems to be working now.
Regarding the auralPropertiesVersion update, we already added most of that, but weren't aware that the extra byte is a count in v4 .. I don't remember seeing anything where that wasn't zero. What kind of object would have an auralAmbientObjectCount > 0, can you think of an example?
Ok great, glad things are working. I believe the idea is that this can be used to provide world-specific ambient sound for an object, so the catalog instance would specify multiple ambient sounds which would be selected based on which world was loaded. But the feature is currently unused and only partially implemented right now which is why the count is always 0.
-SGMS