Forum Announcement, Click Here to Read More From EA_Cade.

Routing(?) / crashing issue with “custom” bookcases in slots

I made some mini bookcases last December that have stopped working by now, and I cannot figure out why.

They are COBJ/OBJD overrides for the Maxis decorative book piles; the only changes I made are the tuning reference (using the tuning of Maxis bookcases) and editing the COBJ to put them in Bookcases. So these are actually hardly custom objects at all. GtW users have already reported a while ago that they stopped working for them, and now they are also crashing my own game when I make a sim try to use them (I was lagging a little behind with patching so I don't know when this changed exactly). More specifically the game crashes when they are on the surface of something else; when on the floor they are still working.

The weird thing is that the tuning in question hasn't changed at all in forever, except that the retail component has been added .. I dunno, my best guess is that the game is dealing differently with the routing now, could that be? Looks like there is something about a bookcase sitting in a slot that the game cannot digest .. is this by design? Is there any workaround for that?

They are uploaded here for reference. I have Base Game (1.8.something) and FP01.
Stuff for TS2 · TS3 · TS4

Comments

  • Options
    _orangemittens__orangemittens_ Posts: 512 Member
    My suggestion would be updating your item so it's compatible with the current game. :)
  • Options
    pboxpbox Posts: 630 Member
    edited June 2015
    The tuning is Maxis .. I haven't copied it. Has anything in the COBJ/OBJD changed that would affect the routing?

    E: doesn't look like it. The OBJD is identical and in the COBJ I only see one added reference that points to E0E05E611F225C2B objectSet_CloningMachineObject .. I don't even have a cloning machine (if this refers to the GtW science thingy) so shouldn't affect the base game.
    Post edited by pbox on
    Stuff for TS2 · TS3 · TS4
  • Options
    _orangemittens__orangemittens_ Posts: 512 Member
    There is nothing inherent to the current game which causes an item with bookcase tuning to crash the game if it is placed in a slot. I just used Sims 4 Studio to make this default override for the stack of books and give it bookcase tuning. It does not cause the game to crash when it sits on a surface.

    NDKORiR9h2Rabpm2_cad81VHNhUooT88KVLeMpaVCaY?size=1280x960&size_mode=2


    I think the easiest way around the difficulty you're having with your item is to just re-do it. It took me all of about two minutes to make this one :)
  • Options
    pboxpbox Posts: 630 Member
    edited June 2015
    My question wasn't about "the easiest way" -- I'd like to understand why this happens. If the reference mentioned above makes a difference, maybe I'm misunderstanding the slot_type_set tdesc when it says "A class defining a combination of object slot types" .. the objects in question do not have slots themselves and if it's about valid slots they can use, the name of that particular one does not seem to have any relevance for the base game, but who knows. I'd like to not make any assumptions here since it obviously refers to stuff I cannot test myself.
    Post edited by pbox on
    Stuff for TS2 · TS3 · TS4
  • Options
    _orangemittens__orangemittens_ Posts: 512 Member
    Oh. When you said:
    pbox wrote: »
    Looks like there is something about a bookcase sitting in a slot that the game cannot digest .. is this by design? Is there any workaround for that?
    it seemed like you were asking for help getting a broken item to work. It doesn't look like there is anything inherent to the current game that causes it to be unable to manage a bookcase sitting in a slot however so no workaround is necessary. You just need to bring the item into compliance with the current version of the game or remake it. Fortunately neither of those routes is very difficult or time consuming :)
  • Options
    pboxpbox Posts: 630 Member
    So this still isn't working for me, two versions later. Whether or not I re-clone the COBJ/OBJD makes no difference.


    Stuff I have tested:

    * Changing the "weight/size flag" in an existing bookcase to 0x02 so that it can sit in a Medium slot
    * Changing the tuning of the decorative books to object_bookshelf 0x00000000000039F5
    * Changing the tuning of a different small deco item (Mega Flowerpot) to object_bookshelf 0x00000000000039F5 (this has 0xE0E05E611F225C2B in the same field as the deco books)

    Results are always the same: as long the object is on the floor, all is well, but when I put it onto a surface (I tested with dining tables and sidetables) the interaction either hangs above the queue and then crashes, or drops out immediately.

    Whether I'm overriding the existing COBJ/OBJD or give it a custom instance seems to make no difference either; some of the objects had 32 and some 64-bit IDs.

    All of these are just COBJ/OBJD edits, I'm not doing anything with the rigs/slots/tuning or anything else.


    @SimGuruModSquad or @SimGuruEugi can you perhaps share some insights on what exactly has changed with (I suppose) 1.7 regarding slots / slot type sets? I have a feeling that's what the issue is .. I can't really make sense of why the deco items are referencing 0xE0E05E611F225C2B objectSet_CloningMachineObject (I have the base game, no EPs).

    Stuff for TS2 · TS3 · TS4
  • Options
    ScumbumboScumbumbo Posts: 148 Member
    edited August 2015
    OK, I took a look into this and found the reason why the interaction is crashing out. The code is trying to find the closest bookshelf which contains the book to get/put and the inv_owner_dist() function in posture_path is crashing as it tries to estimate the distance to the book stack. The code isn't expecting the container to be on a surface. I got the distance estimator working by having it check for a parent_slot on the owner and estimating the distance to that instead. Once I did that, sims would walk up to the coffee table the book stack was sitting on to get their book.

    But although it did work for that book stack sitting on a coffee table, some of the code in that function is gibberified by decompiling and so it's throwing exceptions for other pathfinding calls. I'm not 100% sure what it should be doing, so this is probably best fixed by EA rather than a script mod.

    ETA - I think you should also be able to make it work properly by overriding the default get/put for that object's inventory component - although that will likely make it where you MUST have the object on a surface, which isn't optimal either.
  • Options
    _A__A_ Posts: 56 Member
    If this mod worked in your old un-patched game, I would consider you lucky then and not so lucky now.

    Things change and a lot of the patch notes referred to performance optimizations which very well may have affected the back-end scripts. If you are using the latest EA Object Definition/Catalog resources and the tuning has not changed, then like Scumbumbo said, it seems to be the scripts. Have you tried looking at the scripts for another object that accesses the super affordances of an object residing in the inventory of another object residing in a container slot? I cannot think of one off the top of my head, but if there aren't any, then I think this is more of a feature request for a very specific mod purpose than a technical issue.

    I did some testing on this and it did not crash my game as the title of this thread suggests. The crashes that you are reporting may be due to not patching your game.
  • Options
    pboxpbox Posts: 630 Member
    edited August 2015
    I'm on 1.10.57; I've had the crashing issue consistently since 1.8 (which was also the current version when I started this thread).

    Before that -- the objects are from mid December last year -- I've had no issues myself; from 1.6 onwards others reported some weirdness with sims not accessing the small bookcases and using regular ones instead (no crashes though up until 1.8), but I don't think there were any base game users among them.

    Scumbumbo wrote: »
    I think you should also be able to make it work properly by overriding the default get/put for that object's inventory component - although that will likely make it where you MUST have the object on a surface, which isn't optimal either.

    That doesn't sound too bad actually =) As long as it would just do nothing when it's on the floor (as opposed to crashing), it would be just fine for my purpose .. you'd normally put a stack of books on some surface anyway. Thanks!

    Stuff for TS2 · TS3 · TS4
  • Options
    IngeJonesIngeJones Posts: 3,247 Member
    _A_ wrote: »
    Things change

    (TM)

Sign In or Register to comment.
Return to top