1 people viewing
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!
Theorist
#10 Old 30th Sep 2026 at 12:44 AM
Quote: Originally posted by purplewowies
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 don't have STR 256 in my game. Since you do have it, would you be willing to send it to me? I can PM you my email address.

I've made some mods for The Sims 1 -- yes, The Sims ONE :-) -- which you can find at http://corylea.com/Sims1ModsByCorylea.html
Field Researcher
#11 Old 30th Sep 2026 at 3:04 AM
I mean... sending the entire set of Maxis objects that do or could theoretically contain a STR# 256 feels like a lot since every object would have its own (plus I'm on the wrong computer right this exact second so at the very least I can't do it until sometime later--that's also when I can determine how big all those objects together would even be 🤔), though I'll detail the places STR# 256 is known to exist as examples I can cite right this second even though I can't get you any specific objects that aren't already online until later (probably Friday? that's when I'll have significant time on Windows to double check what I can do):

- STR# 256 should be a resource in EVERY object in the 2000 Edith leak (the one that's basically a post-rosebud build of the base game), provided the object in question has (or, at any point previous, had, even if it's no longer using them) attributes. These are ones I can't provide you with myself from this computer (short of telling you they're in a specific leak).
- It's also a resource in objects in the 1998 and 1999 prototypes, though those files can't be (successfully) read with any iff editors other than prerelease versions of Edith, unless they're converted to 2.0/2.5 somehow (either manually by hand in a hex editor or using IFF You Really See Eurydice (my 1.0 to 2.0 iff converter)--I don't know of any other way).
- I thought an object or two that released with the game managed to retain its 256, but I can't find evidence of one of those I could point you to as example. (I also can't remember if any object generation tools like Art Studio or Rug-O-Matic generate objects with attribute labels, without being on the right computer to look at ones I've generated.)
- Only SORT OF a Maxis object in a roundabout way, but: Several of my objects from the 1998 prototype conversions thread contain attribute labels--for the older manually converted ones (like the level scenarios) I started by defining the ones defined by Maxis and then in some cases (like the levels, where I needed to use extra attributes to track things like which Sim was a given scenario character, due to changes in how Sims worked between proto and final) I defined labels for the extra attributes so they'd show correctly in any editors capable of displaying them. More recent ones converted via direct hex editing or my converter--these include things like the floorlamp (manually hex converted) or the bathtub (converter converted) among one or two others--are more likely to have attribute labels that were completely unmodified after their faithful conversion (as in I didn't need to use extra attributes, so I didn't even touch STR# 256). I mention these mostly because they're an example that's already on the internet that isn't an entire leaked build of the game lol

Also, since I came across this looking for mentions of STR# 256 on the internet in hopes it'd make me remember if a release object actually kept it, have this pdf that mentions (among other iff resources) different STR# ID purposes: https://donhopkins.com/home/TheSims...tFileFormat.pdf
Theorist
#12 Old 30th Sep 2026 at 3:46 PM
Quote: Originally posted by purplewowies
I mean... sending the entire set of Maxis objects that do or could theoretically contain a STR# 256 feels like a lot since every object would have its own


Heavens, no! That's not what I meant!

I meant that my Behavior.iff doesn't have an entry for STR256, and I was hoping you could send the STR256 from your Behavior.iff.

If I have misunderstood what you meant before, than I apologize and withdraw the request.

I've made some mods for The Sims 1 -- yes, The Sims ONE :-) -- which you can find at http://corylea.com/Sims1ModsByCorylea.html
Field Researcher
#13 Old 30th Sep 2026 at 4:09 PM
Part of me suspected you MIGHT have meant that but I didn't stop to consider if perhaps Behavior.iff would have that. I did pop onto Windows just now to check (I said Friday because I knew I'd need to be doing Linux stuff for the next two days when on this computer, but checking one file instead of *checks objects folder* over 100? is way easier so... ), and the Edith Behavior.iff does NOT have a 256. This makes some sense because each object uses attributes in different ways, so each object would define/label them differently (i.e. AlarmClock's attribute 0 is Last Rang Hour but aquarium1's attribute 0 is Fish State (Em/De/Al/Fe))--which is why they're defined in each object itself rather than somewhere universal like Behavior.iff, but always good to double check!
Back to top