Skip to content

DnfJeff/SimObliterator

Repository files navigation

SimObliterator Suite

SimObliterator Suite

A PyQt6 Tool for Exploring The Sims 1 Files
Browse • Inspect • Tinker • Learn

Version Platform Python License


What Is This? (exe in the dist folder)

SimObliterator is a work-in-progress tool for poking around The Sims 1 game files. It's not a polished product - it's more of a collection of panels and utilities I cobbled together while trying to understand how these 25-year-old files work.

If you're expecting a slick, production-ready editor: temper your expectations. If you want to explore IFF files, look at SimAntics bytecode, or just see what's inside your game folder: this might be useful.


Getting Started

First-Time Setup

  1. Launch the app (either the exe or python run_qt.py)
  2. Open Preferences (Edit → Preferences or the gear icon)
  3. Set your directories:
    • Game Directory - Your Sims 1 installation (e.g., C:\Program Files\The Sims)
    • UserData Directory - Where save games live
    • Other paths are optional
  4. Build the Database (File → Build Database)
    • This scans your game files and creates indexes
    • Takes a minute or two depending on how many expansions you have
    • You only need to do this once (unless you add new content)

After that, the various panels will have data to work with.


The Panels

🏠 Home

Dashboard showing what's in your scanned game files. Object counts, categories, that sort of thing. Click stuff to open it in other tabs.

🏘️ Neighborhoods

Browse your neighborhoods and lots. Lists families and shows what's where. Work in progress.

💾 Save Editor

Load a save game and poke at Sim data - money, skills, motives, relationships. Some of this works, some of it doesn't. The game's save format is... intricate.

👤 Characters

Browse character data from your scanned files. Names, relationships, family trees if the database found them.

📦 Objects

The "inspector" panel. Open an IFF file and see all the chunks inside - BHAVs, sprites, slots, TTABs, everything. This is probably the most complete part of the tool.

You can:

  • View BHAV disassembly (SimAntics bytecode)
  • See sprite frames
  • Inspect SLOT routing data
  • Browse TTAB interaction menus

Editing support varies by chunk type. Some things you can modify, save, and they work. Others... not so much.

🔍 Search

Search the object database by name or GUID. Useful when you know you're looking for "the stove" but not which file it's in.

📚 Knowledge

Reference panel for SimAntics opcodes and patterns. Shows what primitives exist, what we know about them, and what's still mysterious. This is built from various community documentation sources plus what I've figured out.

🛠️ BHAV Author

Experimental visual BHAV editor. Drag nodes around, connect them, see the logic flow. This is ambitious and incomplete - I was trying to make behavior editing less painful than staring at hex. Your mileage may vary.

🎨 Object Author

Scaffolding for creating new objects from scratch. Very early stage. Most of the UI is there but the actual "create a working object" part needs more work.


What Actually Works

Pretty solid:

  • Opening and browsing IFF files
  • BHAV disassembly with opcode lookup
  • Sprite viewing and export
  • FAR archive extraction
  • Database building and searching

Kinda works:

  • Save game editing (basic stuff)
  • SLOT visualization
  • TTAB browsing

Experimental / broken:

  • BHAV visual authoring
  • Object creation
  • Mesh export (glTF)
  • Anything that says "coming soon"

Installation

Portable Exe

Download SimObliterator.exe from Releases. Put it somewhere. Run it. That's it.

For portable mode, create an empty portable.txt file next to the exe - config will be stored there instead of AppData.

From Source

git clone https://github.com/YourUsername/SimObliterator.git
cd SimObliterator
pip install -r requirements.txt
python run_qt.py

Needs Python 3.9+ and PyQt6.


Building the Exe

# Windows, from project root
C:\Python313\python.exe -m PyInstaller dev/build/SimObliterator.spec --noconfirm

Output lands in dist/.


Contributing / Forking

Feel free to fork this and make it better. I'm not a professional developer - I just gathered research from the community and tried to build something. The code is... functional. There's a lot of "TODO" and "FIXME" comments.

If you want to understand the codebase:

The IFF format documentation in Docs/research/ might be useful even if you hate my code.


Credits

The actual hard work was done by others:

  • FreeSO Team - Massive format documentation
  • Dave Baum - Early IFF reverse-engineering
  • Niotso Wiki - Technical references
  • The Cutting Room Floor - Hidden content documentation
  • Archive.org - Preserving old modding knowledge
  • The Sims Modding Community - 25 years of figuring this stuff out

I just tried to put it together in a GUI.


Legal

The Sims is a trademark of Electronic Arts. This project isn't affiliated with, endorsed by, or connected to EA in any way.

No game content is included. You need your own copy of The Sims 1.


License

MIT - see LICENSE


Me and my dog in The Sims 2
The developer and his best friend, rendered in The Sims 2


Made with care for The Sims community

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published