Quick Reply
Search this Thread
Lab Assistant
Original Poster
#1 Old 7th Sep 2026 at 6:41 AM
Default What do you want to see explained?
Given that so much hacking information has been lost due to sites disappearing, I've been thinking of putting together some hacking resources. However, current the information is disorganized in a decentralized database (increasingly aging human brains). So, I'm wondering which particular topics need to be documented or explained.
Field Researcher
#2 Old 7th Sep 2026 at 8:47 PM
I feel like I SHOULD have an answer to this question considering just how many small roadblocks I've hit recently that I couldn't find info on from the internet, but I feel like what I end up doing is finding an error, hitting a wall in regards to finding info on it online, and then throwing mashed potatoes at that wall until it disintegrates. XD

Examples of me doing this: Discovering a "set to next" in my calendar object crashes the version of the game I was using to test (but not my all-EP install?) if the object in question isn't in the game at all (it was the seasons barrel so as in if you don't have that downloaded at all)... "fixed" by requiring the player to essentially set the object to opt into the BHAV that triggers that line since I wasn't sure if it was a quirk specific to the build that crashed or if it could happen to more people. Discovering certain things in front of the 1999 prototype grill's fridge prevent it from spawning food in the Sim's hand... "fixed" by having the check for the Grill interaction keep it unavailable if certain things are adjacent to that tile. Discovering my "adoption service" object isn't setting the stack object the way I thought it was for the purposes of spawning a kid that "SimCity Social Services" has placed in the adoption pool (that the adoption service object has removed from an adult-less house)... actually I never fixed this, I abandoned that poor test kid in the ether.

Actually, typing all that out (particularly the last one) makes me realize that I probably don't actually truly understand how stack objects work... I've set the stack object correctly in a handful of objects now but doing it correctly always feels like a fluke every time rather than me REALLY understanding what I'm doing... Unfortunately, I don't have specific suggestions regarding what particular aspects of stack objects should be explained past the overall topic as a whole (though I'll say that I have the hardest time regarding setting the stack object to be a person).
Theorist
#3 Old 8th Sep 2026 at 12:38 AM
Quote: Originally posted by purplewowies
I feel like I SHOULD have an answer to this question considering just how many small roadblocks I've hit recently that I couldn't find info on from the internet

Unfortunately, I don't have specific suggestions regarding what particular aspects of stack objects should be explained past the overall topic as a whole (though I'll say that I have the hardest time regarding setting the stack object to be a person).
[Emphasis added]

I agree with all of this!

Also, there's a lot of "set attribute 1 to this, and set attribute 2 to that," but where do we find what the attributes are or stand for or do?

I've made some mods for The Sims 1 -- yes, The Sims ONE :-) -- which you can find at http://corylea.com/Sims1ModsByCorylea.html
Lab Assistant
Original Poster
#4 Old 8th Sep 2026 at 1:25 AM
Stack objects, noted. They're tricky. They've caused me so many problems over the years.

I'll answer a few things because the answers are short. They might show up in a bigger thing later buuuut...

The Set to Next (by GUID) crashing the game is a known issue that seemingly not everyone had. Usually, the way around this is to use a set to next then Test Object Type (type of Stack Object ID 0 == GUID:xxyyzzaa). Then again, it's not as efficient.

As for attributes... every object will use each attribute differently. Some objects have an STR resource called "attribute labels" which I think Maxis was able to use with their tools. Even though Codex supports BCON labels, I don't know of any program that makes attribute labels available to us. If you're not working on an object that they forgot to strip that from... you sort of just have to trace the code backwards and hope you're right.
Field Researcher
#5 Old 8th Sep 2026 at 3:30 AM
As someone who's poked around in the Edith builds: Edith WILL automatically associate things in STR# 256 within the "lines" (boxes) that reference attributes, so instead of saying something like "Attribute 1 Assign To 1", Edith might say "win dialog shown := 1", which would have made an object's attributes way easier to follow for the devs at Maxis. But if 256 doesn't exist due to never having been created or having been stripped out for distribution (or doesn't have a string defined for that attribute number even if 256 does exist) then it'll still be just as obfuscated as a third party program (i.e. "my attribute 1 := 1").

I THINK Volcanic (FreeSO/Simitone) will also display the attribute labels in a fashion similar to Edith (I don't strongly remember here because I usually only crack open Volcanic (specifically the one that starts up with FreeSO, since Simitone won't run for me to run the version in Simitone) when I want to see something I've been working on in Iff Pencil or something in a tree/node type format (or if I want to see SLOT resources or something that other editors don't show) and I don't edit objects using it). I think other than Volcanic, no other third party programs connect attribute labels to the attributes as used in BHAVs.

*jots down that Test Object Type info to try later* I saw Test Object Type but didn't fully understand what it was for, which was why I turned to requiring the player to interact with a dialog to set an attribute--I might keep that dialog for other reasons (I want the season behavior I'm doing to allow for either hemisphere to be an option, so I COULD repurpose the dialog and just change how the attribute is used) or even keep it for the same reasons, but if Test Object Type prevents crashing that'd allow the default to not have to be opting into the seasons...
Lab Assistant
Original Poster
#6 Old 8th Sep 2026 at 12:00 PM
At least when STR 256 exists we can look at it for clues, even if the program won't link it automatically for us.

I also can't run Simitone at all for reasons no one can figure out.

Well, you have a few options regarding set to next...
(1) Make your object require the other object be in the game (although it does not need to be on the lot, just in the game downloads)
(2) Make it toggle on or off so that it only tries looking for object if the user opts-in manually, then it's their own fault for not reading and using your object incorrectly.
(3) Go through everything and use test object. (Sometimes, you can use a call tree instead.)

No one is really sure why some people have the crash and others don't. For example, I don't.
Lab Assistant
Original Poster
#7 Old 14th Sep 2026 at 6:06 PM
I've done a writeup on the sack object. Feel free to ask questions, let me know if anything else needs including.

https://white.leadpipecollection.ne...?p=tut-stackobj
Field Researcher
#8 Old 14th Sep 2026 at 7:33 PM
Ooh, reading that with rapt attention. And rereading it. And then maybe seeing if I can use what it says to be better at stack object.

(Side note regarding the test object type: I opted to keep the season compatibility a toggle/attribute... partially because I was still experiencing crashes even with Test Object Type so I might as well just keep it as what I already set up. *shrug*)
Field Researcher
#9 Old 17th Sep 2026 at 12:46 AM
Ha, it looks like I started writing up a post to this thread only to switch to another tab, forget it, and shut down the computer I was typing it on. Just as some feedback, I think that writeup was clear and did help--I think my chief issue was not realizing the difference between person and neighbor and trying to find an unloaded person using person and of course coming up short because it needed neighbor (prior to trying to do this object, the objects where I tried to set a stack object that was a Sim were always messing with loaded Sims so I think since the distinction wasn't as problematic there it was easier to end up with a working solution using one or the other without realizing the difference between them). Changed the adoption object to look for neighbor IDs (with the characteristics that the object applies to orphans' person data before it removes them from the family) and it loaded an orphaned kid right up! (Of course, the rest of what it needs to WORK isn't there, but the intention was to test spawning a kid. Which it did!) Thanks!
Back to top