Sims Legacy Collection โ€“ IFF Hacking

IFF Hacking โ€“ Advanced Edits

Add interactions, edit behaviour trees, and create custom careers

On this page
๐ŸŽ›๏ธ

What's Covered Here

Changes that go beyond tweaking values or text

Everything on this page involves coordinating multiple resources. Adding an interaction touches TTAB, TTAs, and at least one BHAV. Motive advertising lives in TTAB and interacts with BHAV logic. Custom careers use a dedicated tool but still replace an entire IFF inside the base game's GameData\Objects\ folder. None of this is out of reach, but it assumes you know what the individual resources are and how they relate to each other.

โ„น๏ธ Before this page you should have read: the resource type overview on the hub (so you know what a TTAB or a BHAV actually is), and the How BHAV Trees Work primer (so references to "the check tree returns False" make sense). Ideally you will also have done at least one edit from the Simple Edits page – to confirm your clone-open-save workflow is working before adding complexity.
โš ๏ธ Always clone first. Every edit below works on a TMog clone, not on base game files. The only exception is Custom Careers, which explicitly replaces a base game career IFF – and that one has its own separate warnings further down.
๐Ÿ’ฌ

Adding New Interactions

New pie menu options, new BHAVs, and connecting them up

A new interaction is three pieces of work, always in this order: add an entry to the TTAB, add a matching label to the TTAs, and make sure the BHAVs the TTAB points at actually exist inside the IFF. If any of the three is missing or mismatched, the interaction either fails to show up or crashes when picked.

What a TTAB entry looks like

Each entry in a TTAB represents one pie menu option. The fields that matter most to you are:

  • Action Tree – the ID of the BHAV that runs when a Sim picks this option. This is the meat of the interaction: walk over, sit down, read the book, gain skill, stand up.
  • Check Tree (also called Guardian) – the ID of a BHAV that decides whether this option should even appear on the pie menu for the current Sim. Often this is the paired TEST BHAV (see How BHAV Trees Work for the naming convention).
  • Motive advertising values – eight numbers, one per motive (Hunger, Comfort, Hygiene, Bladder, Energy, Fun, Social, Room), telling autonomous Sims how attractive this interaction is for each need. Covered in the next section.
  • Flags – single-bit toggles for things like "requires the Sim to be next to the object", "can run while the Sim is seated", etc. Most beginners do not touch these.
  • Human Readable String Index – the number of the label in the matching TTAs. Entry 0 in the TTAB uses label 0 in the TTAs, entry 1 uses label 1, and so on. Keep the ordering aligned.
โ„น๏ธ Example – the Maxis computer: the IntelliHome desktop computer carries 4 TTAB resources (Cheap, Moderate, Expensive, Very Expensive) because the game swaps which pie menu is in use based on the computer's graphic state. Each TTAB has several entries (Play, Chat, Work, Play Chess, etc.) and each entry points at a different Action Tree BHAV. You edit the TTAB that matches the graphic state you care about. For a single-graphic object like the bookcase, there is only one TTAB and this is simpler.

Two real-world shapes of this task

Easier: reuse an existing BHAV
Add a new TTAB entry that points at a BHAV already inside the IFF or inside a Maxis semi-global file. Example: adding a second "Read a Book" option to a different bookcase by pointing at the same Read a Book BHAV. No BHAV writing, just a TTAB + TTAs addition.
Harder: write a new BHAV
Add a new TTAB entry that points at a brand-new BHAV you write inside the IFF. Writing a new BHAV tree from scratch is a substantial skill. Most community mods start by copying an existing BHAV and modifying a few instructions – far less error-prone than starting from nothing.

Workflow

Clone the target object in TMog

Find the object in TMog, click "Clone Object File…", give it a name, enter a Magic Cookie, click OK. Your clone lands in Downloads\Transmogrified\.

Open in IFF Pencil 2 and locate the TTAB

Launch IFF Pencil 2 (XP SP3 compatibility mode plus Run as administrator on Windows 10/11). Open your clone. In the resource list on the left, click TTAB. If there is more than one TTAB, use the one that matches the object's default or primary state. If you are unsure, the first TTAB in the list is usually the main one.

Examine an existing entry before adding a new one

Double-click an existing TTAB entry to open it. Read the Action Tree ID, the Check Tree ID, and the motive advertising values. This gives you a concrete template for what a working entry looks like – and it tells you which BHAV IDs are valid targets inside this IFF.

Decide the Action Tree BHAV

If you are reusing an existing BHAV, note its ID now (look in the BHAV list on the left, or check the BHAV ID dropdown inside the TTAB entry editor).

If you are writing a new one, your best starting point is to duplicate an existing BHAV (right-click → Copy or Duplicate, depending on the tool version), modify the duplicate, and give it a new unique ID. Leaving BHAVs inside their owning IFF keeps everything self-contained.

Add the new TTAB entry

In the TTAB editor, add a new entry row. Set the Action Tree to the BHAV ID you just decided on. Set the Check Tree to either the paired TEST BHAV (recommended) or leave it empty if the option should always appear. Motive advertising values can be copied from a similar existing entry, or set to zero for now and tuned later.

Add the matching TTAs label

Navigate to the TTAs resource that pairs with this TTAB (they share an ID). Add a new string entry. Make sure the entry index matches the TTAB entry index you just added – if your new TTAB entry is row 6, your TTAs label must also be at index 6. Type the pie menu label text (e.g. "Study Advanced Cooking"). Save.

You can also use Strings Scavenger for the TTAs edit if you find it easier than IFF Pencil 2's string editor – see the Simple Edits text section for the Strings Scavenger workflow.

Save and test in game

Save the IFF. Launch The Sims, buy your cloned object, and have a Sim click it. The pie menu should now show your new option with the label you set. Picking it should run the Action Tree BHAV.

If the new option does not appear, the most common causes are: TTAs label at the wrong index, Check Tree returning False, or Action Tree ID pointing at a BHAV that does not exist. Reopen the IFF, verify each piece, and try again.

โš ๏ธ Semi-globals and external BHAV calls: many Maxis objects call BHAVs that live in shared files like ChairGlobals.iff, GlobalBathroom.iff, or GlobalBookcase.iff. If an Action Tree disappears into a BHAV you cannot find, it is probably in one of these. You can open semi-global IFFs the same way as object IFFs – they are in your game's GameData\Objects\ folder. Do not edit a semi-global unless you understand every object that depends on it; a broken global breaks every object that uses it.

When you are ready to write BHAVs

Writing a BHAV from scratch requires learning the primitive set (the library of built-in instructions you can string together) and the conventions for things like "push an interaction onto a Sim's queue", "animate a Sim", or "change a motive value". This is outside the scope of this guide – but two community resources cover it structurally:

  • Sims College Archive – Hacking Lessons (on the hub resources list). A preserved archive of the original SimsCollege.com online hacking course, with two structured courses: Entry Level (motives, moods, BCON, sounds and animations) and Intermediate (variable types, global calls, skills, graphics, randomised events). This is the most complete structured BHAV tutorial that still exists.
  • Woobsha DIY Workshop (also on the hub resources list). Written tutorials on specific hacks, often with step-by-step BHAV instruction listings.
๐Ÿ“ฃ

Autonomy & Motive Advertising

Why autonomous Sims choose one object over another

When a Sim is on free will and their Fun motive drops, the game looks at every object on the lot and picks one to satisfy that motive. The way it picks is by reading the motive advertising values inside each object's TTAB entries and choosing whichever looks most appealing for the motive that needs the most help.

Each TTAB entry carries 8 advertising values – one per motive. A number is a promise: "If a Sim uses this interaction, their Fun will increase by roughly this much." The game does not actually apply that number; it just uses it as a pitch to autonomy.

โ„น๏ธ Where this is, again: motive advertising lives in the TTAB, not OBJD. If a tutorial tells you to edit motive autonomy via OBJD, it is almost certainly using older documentation. The OBJD has some motive-related fields too, but autonomous object selection runs on TTAB advertising.

Common motive advertising changes

Make the object more attractive for a motive
Increase the advertising value for that motive on the relevant TTAB entry. Example: raising the Fun advertising on a stereo's "Dance" interaction will make free-will Sims pick it over lower-value Fun objects when their Fun is low.
Stop autonomous use entirely
Set all motive advertising values on every TTAB entry to zero. Sims will still use the object when directed, but autonomous free-will will not pick it. Useful for decorative or dangerous objects you do not want autonomous toddlers or Sims to interact with.
Balance multi-interaction objects
Tune each TTAB entry independently so Sims prefer a specific interaction for a specific motive. A multi-purpose object like the refrigerator has several interactions each advertising different motives – Snack advertises Hunger weakly, Serve Meal more strongly.
Prioritise among CC objects
If you have multiple CC objects competing to satisfy the same motive, adjusting their advertising values decides which one free-will Sims pick first. Handy for making a themed set behave consistently.
โš ๏ธ Large advertising values stack across the lot. Setting a single interaction's Fun advertising to something huge (say, 10000) makes every Sim on the lot drop everything to use that object whenever their Fun is anything less than maxed. It is the Sims 1 equivalent of making every Sim on the lot want to use your object constantly. Tune in small increments and test.
๐Ÿ’ผ

Creating Custom Careers

Using Career Creator 3 – replaces an existing career, cannot add new ones

โš ๏ธ Important – you cannot add new careers, only replace existing ones. This is a hard limitation of The Sims 1 engine and there is no current workaround. Career Creator 3 lets you fully customise a career's name, job titles, wages, schedules and requirements – but the result overwrites one of the 10 base game career tracks. Choose a career you are happy to lose. Your custom career appears in its place in the newspaper and computer job listings.
โ„น๏ธ Career Creator 3 handles everything through a form-based interface. You are not writing BHAVs or editing BCON directly – the tool does that, and produces a modified .iff file. The output goes into GameData\Objects\ (not Downloads) because it is replacing a base game file.
โœ… Career Creator 3 is in the same Sims1Tools download as IFF Pencil 2 and Constant Contraption. Full details on the Tools table on the hub.

Workflow

Decide which career to replace

The Sims 1 base game has 10 career tracks: Business, Entertainment, Law Enforcement, Medicine, Military, Politics, Pro Athlete, Science, Slacker, and Xtreme. Expansion packs add more (Hacker, Musician, and so on), but Career Creator 3 can only replace the 10 base game tracks. Pick one you are happy to lose – your custom career takes its slot completely. Sims already in that career continue in it, but the track will now have your custom names and values.

Back up the original career IFF

Before touching anything, copy the career's IFF file out of GameData\Objects\ and stash it somewhere safe. Career IFFs are named things like career_business.iff. If your custom career goes wrong or you change your mind later, restoring the backup brings the Maxis original back.

Open Career Creator 3 and load the career

Launch the tool and open the .iff file for the career you are replacing. Loading the original fills in all the existing values, giving you a starting point to edit rather than a blank slate.

Set up the career basics

Change the career name and set the number of job levels (up to 10). Each level gets its own job title, daily wage, and work schedule. Think through the progression – entry-level jobs typically pay less and have more days worked per week.

Configure each job level

For each level, fill in the job title, salary, work days and hours, and the number of friends required for promotion. You can also set which skills are needed to advance – requiring Cooking or Charisma, for example, before a Sim can move up.

Set the carpool vehicle

Choose which vehicle picks your Sim up for work. Options correspond to vehicles available in your installed expansions. Purely visual, but worth setting to something that fits your career theme.

Save and install

Save the modified .iff file and drop it into GameData\Objects\ – not the Downloads folder. Since you are replacing a base game file, the modified file needs to go where the original lives. Launch the game and the career should appear with your new name and values in the job listings.

โ„น๏ธ Career transfer loop: a Sim already in the career you replaced will stay in it under the new rules. If you want a Sim to switch into your new career from another, they need to quit their current job first and then accept an offer for yours. See the Career Guide – Transfer Loop for the mechanic in detail.
๐Ÿ“š

Further Reading

How BHAV Trees Work
Back to the conceptual primer on the hub. Worth re-reading if the TTAB → BHAV relationship above still feels fuzzy.
→ BHAV Trees Primer
Simple Edits
If you want to scale back to something less ambitious – BCON numbers, catalogue text, OBJD price – those three edits sit on the sibling page.
→ Simple Edits Guide
Hub Resources List
Sims College Archive (structured BHAV course), Woobsha's DIY Workshop (written tutorials on specific hacks), Simblr.cc community, and more – all on the hub's Further Resources list.
→ All Resources
File Reference
The technical card for each resource type – TTAB fields, BHAV header format, OBJD byte layout – is on the File Reference page.
→ File Reference