Game File Types
Click any header to expand
The main file format for everything in The Sims – objects, characters, career data, UI strings. Each IFF file is a container that holds multiple resources bundled together:
- Sprites – how the object looks
- Behaviour scripts – what the object does
- Constants – tunable values like price and skill gain
- Text – catalogue name and description
- Other resources for sounds, interaction lists, slots and more
When you download a mod or create one yourself, you're working with IFF files. Custom objects go in the Downloads folder. Mods that replace base game behaviour go in other locations.
Folder Locations:
Custom Objects: \Downloads\
Base Game Overrides: \GameData\Objects\
Expansion Overrides: \ExpansionPack1-7\
Inside FAR Archives: \GameData\Global\, \GameData\UserObjects\
Tools:
Cloning & Sprites: TMog (Transmogrifier)
Behaviour Editing: IFF Pencil 2
BCON Values: Constant Contraption
A FAR file bundles multiple IFF or other files into one archive. Think of it like a zip file that the game can read directly without you needing to unpack it. All base game objects and global behaviour files live inside FAR archives – that's why you don't see individual object files when you browse the game folders.
TMog reads FAR contents automatically when you open it, so you don't need to extract anything for retexturing. Use FARx if you need to pull out a specific file for manual editing.
Folder Locations:
Base Game: \GameData\Objects\, \GameData\Global\
Expansions: \ExpansionPack1-7\
Custom Content: \Downloads\
Tools:
Extract & Browse: FARx
Auto-Browse: TMog (reads FAR contents automatically)
Flat bitmap images that wrap around a Sim's body, head, or hands to create their appearance. Every outfit, hairstyle, and skin tone is a BMP file. They must be saved as 256-colour indexed bitmaps – any other colour depth (like standard 24-bit BMP, PNG, or JPG) will show as a white silhouette in game.
Image Dimensions:
Body skins: 256×256 pixels
Head skins: 128×128 pixels
Hand skins: 64×64 pixels
Accessories: 32×32 pixels
Folder Locations:
Everyday Skins: \GameData\Skins\ (no subfolders)
Buyable Skins: \ExpansionShared\SkinsBuy\ (no subfolders)
Tools:
Painting: GIMP, Photoshop
Template & Export: The Sims Creator
A plain text file that tells the game which BMP texture to use on which SKN mesh. It can also attach accessory meshes (like hats or glasses) to the main body. The CMX must contain its own filename correctly spelled inside the file – if the internal name doesn't match the actual filename, the game ignores it silently and the skin won't appear.
You rarely need to edit CMX files by hand. The Sims Creator generates them automatically when you export a skin.
Folder Location:
All Skins: \GameData\Skins\ (alongside matching BMP and SKN files)
Tools:
Manual Editing: Notepad (plain text format)
Auto-Generated: The Sims Creator
The 3D shape data for a Sim's body, head, or accessory. Contains:
- Vertices – the 3D points that define the shape
- Faces – the surfaces connecting those points
- UV coordinates – how the BMP texture wraps around the shape
- Bone assignments – which part of the skeleton each point follows during animations
Mesh filenames always start with xskin-.
Never rename xskin files – the name inside the file must match the actual filename, or the mesh won't load and the Sim may appear headless or as floating hands.
Folder Location:
All Meshes: \GameData\Skins\ (alongside matching BMP and CMX files)
Tools:
Modern: TS1 Blender IO (Blender addon by mixiate)
Classic: MilkShape 3D (native SKN support)
Custom wall textures that appear in Build Mode. Created by importing an image into HomeCrafter, which converts it into the game-ready format and generates the tiling pattern. Unlike skin files, wall coverings can be organised into subfolders.
Folder Location:
All Walls: \GameData\Walls\ (subfolders OK)
Tools:
Creation: HomeCrafter (official Maxis tool)
Image Editing: GIMP, Photoshop
Custom floor textures that appear in Build Mode. Same workflow as walls – import an image into HomeCrafter to generate the game-ready file. Subfolders are supported for organisation.
Folder Location:
All Floors: \GameData\Floors\ (subfolders OK)
Tools:
Creation: HomeCrafter (official Maxis tool)
Image Editing: GIMP, Photoshop
An intermediate file produced by SKN2OBJ when it reads a .SKN mesh file. The SPJ stores the bone assignment data that the OBJ format cannot carry. When editing a mesh in MilkShape 3D via the OBJ route, you open the SPJ in SKN2OBJ at the end to combine it with the edited OBJ and produce the final SKN. Do not delete the SPJ before finishing a mesh – without it, bone assignments are lost.
Created by:
SKN2OBJ (classic mesh editing tool, by Aladrin Kelahn)
A widely-supported plain-text 3D mesh format used as the editable intermediate in the classic Sims 1 mesh workflow. SKN2OBJ exports a SKN to OBJ for editing in MilkShape 3D (or any OBJ-compatible editor), then it is converted back to SKN via the SPJ. OBJ files do not store bone assignments – that is why the SPJ must be kept alongside the OBJ. For accessories, a new OBJ is created in a 3D editor and imported via SKN2OBJ’s Import OBJ function with the bone name set in the g group line.
A plain-text file produced alongside an OBJ that defines material properties – primarily which texture image file to display on the mesh. SKN2OBJ generates an MTL when it converts a SKN to OBJ. The MTL is used by 3D editors to show the correct texture during mesh editing. Keep it in the same folder as its paired OBJ.
A binary mesh format used by some older Sims 1 content packed inside FAR archives. BMF files cannot be edited directly – they must first be converted to SKN format using BMF2SKN (by Aladrin Kelahn), after which they work like any other SKN. BMF files are uncommon and only encountered when extracting content from certain older FAR archives.
Tools:
BMF2SKN (converts to SKN – by Aladrin Kelahn)
FARx (to extract from FAR archives first)
Inside an IFF File
Resource types you encounter when modding objects
The actual images you see on the lot – the object rendered at every rotation angle and zoom level. Each sprite frame has three channels:
- Colour pixels – what you see on screen
- Z-buffer – depth information so Sims can walk in front of and behind the object correctly
- Alpha channel – transparency data
When you retexture an object using TMog's Export Whizzer, these are the images it exports as editable BMP files. You paint over the colour channel, and TMog regenerates the z-buffer and alpha automatically when you import back in.
Example: the Pink Flamingo has 6 sprite frames – front and back views at three zoom levels (large, medium, small).
Tool:
Export & Import: TMog (Transmogrifier)
Small images used outside of gameplay. These are separate from the game-view sprites (SPR2) and serve specific UI purposes:
- ID 2000+ – the catalogue thumbnail, the small picture shown in the Buy Mode catalogue when you are browsing objects to purchase
- ID 4000+ – small speech bubble image, shown when a Sim thinks about or talks about the object
- ID 6000+ – large speech bubble image, same purpose as the small bubble but in a larger size
When you retexture an object with TMog, these images are not updated – the catalog thumbnail will still show the old appearance. To update it, create a new thumbnail in your paint program and import it using IFF Pencil 2 (right-click the BMP_ resource → Import).
Tool:
View & Replace: IFF Pencil 2 (right-click → Export/Import)
Draw groups tell the game which sprite frame to display for each combination of camera rotation and zoom level. They map the SPR2 sprite frames to specific viewing angles – so the game knows to show frame 0 when looking from the front at close zoom, frame 1 from the back, and so on.
You rarely need to edit these directly. TMog handles draw group mapping automatically during the retexture workflow.
A 256-colour palette shared across the object's sprites. Each pixel in an SPR2 sprite references a colour by its index number in this palette rather than storing the actual colour value. This is why Sims 1 objects are limited to 256 colours per object.
TMog manages palettes during export and import, so you don't need to edit them directly for retexturing.
SimAntics code – the programming that controls what an object does. Each BHAV is a "tree" of instructions where every instruction has a True and False outcome, leading to the next instruction or ending the routine.
Objects typically have multiple BHAVs for different purposes. The most important ones:
- Main (ID 4096) – the idle heartbeat loop that runs constantly while the object exists on the lot. This does not control the pie menu – that's TTAB.
- Init – runs once when the object is first placed on the lot.
- Interaction BHAVs – run when a Sim performs a specific action with the object (sit, study, eat, etc.). These are called by the TTAB entries.
Tool:
View & Edit: IFF Pencil 2
The Tree Table controls what appears in the blue pie menu when you click on an object. Each entry in the TTAB represents one interaction option (like "Sit," "Study Cooking," or "Watch TV").
Each TTAB entry has:
- Action Tree – points to the BHAV script that runs when a Sim selects this option
- Check Tree – points to a BHAV that decides whether this option should appear at all (for example, only showing "Study Cooking" if the Sim's Cooking skill is below maximum)
- Flags – who can use this interaction: Adults, Children, Visitors, or any combination
The companion resource TTAs holds the text labels for each interaction – the words that actually appear in the pie menu.
Tool:
View & Edit: IFF Pencil 2
An array of numeric values that BHAV scripts read during gameplay. These are the "knobs and dials" of an object – things like comfort gain rate, skill teaching speed, energy drain, room score impact, and price. Changing BCON values is the easiest way to modify how an object behaves without writing any code.
Not every object has BCONs. Simple decorative objects (like the flamingo) may have only one, while complex interactive objects have many.
Example: the Maxis bookcase has 7 BCON groups named Side, Skills, Tuning - Time, Tuning - School, Tuning - Motives, Tuning - Skills, and Tuning - Room Impact.
Tools:
Quick Editing: Constant Contraption (standalone, beginner-friendly)
Full Editing: IFF Pencil 2
Text data stored in numbered blocks, used for various purposes depending on the ID number. Different string table IDs serve different functions within the game. The most common ones you encounter in objects:
- ID 129 (a2o) – Adult-to-Object animation names, tells the game which animation to play when an adult Sim interacts with this object
- ID 130 (c2o) – Child-to-Object animation names, same as above but for child Sims
- ID 301 – Dialog text, the lines that appear in thought or conversation bubbles related to the object
Character files (Sims themselves) use a different set of STR# IDs for body skin references and outfit mapping. Many objects also carry additional STR# resources for specific purposes – MakeActionString strings (ID 302), Call Named Tree strings (ID 303), suit primitive strings and custom speech strings are common. Open the file in IFF Pencil 2 to see what your particular object has.
Tools:
Quick Editing: Strings Scavenger (standalone, beginner-friendly)
Full Editing: IFF Pencil 2
The master record for the object. Contains:
- Price – shown in the Buy Mode catalogue
- Catalogue category – which room and function section it appears in
- GUID – the unique identifier that distinguishes this object from every other object in the game
- Resource pointers – which TTAB for interactions, which DGRP for graphics, which SLOT for approach positions, which Main BHAV for the idle loop
Motive advertising values (the numbers that tell Sims how desirable an object is for Hunger, Comfort, Fun and other needs) are not here – those live in the TTAB, per interaction.
Multi-tile objects (beds, dining tables, sofas, the foosball table) have one OBJD per tile plus a master OBJD – the master is the one that appears in the catalogue, and the per-tile OBJDs handle the game's internal tile bookkeeping.
Tool:
View & Edit: IFF Pencil 2
Points to the BHAV scripts that run automatically without a Sim clicking on the object:
- Init – runs when the object is first placed on the lot or when a saved game loads with this object already placed
- Main – the idle loop that runs continuously while the object exists. Handles things like checking if food has spoiled or if a plant needs watering.
- Load – runs when the lot is loaded from a save file
Tool:
View & Edit: IFF Pencil 2
The object's name and description as they appear in the Buy Mode catalog. Contains text in multiple languages – the game displays whichever matches the player's language setting. When creating a custom object, you write your catalog text here.
TMog lets you edit catalog text directly without opening IFF Pencil – click "Edit Object" in TMog to change the name, description, and price.
Defines how Sims physically approach and interact with the object. Includes where the Sim stands, how close they get, which direction they face, and containment slots (positions where other objects can sit on top of this one – like a plate on a table or a book on a shelf).
SLOT editing is rarely needed for beginners. IFF Pencil 2 can display SLOT data but has limited editing support for this resource type.
References to sound files that play during object interactions. Each FWAV entry points to a sound effect (stored as .XA files in the game's sound archives). BHAV scripts trigger sounds by referencing FWAV IDs – for example, a chair might have an FWAV for the "sit down" creak and another for "stand up."
Tells the game which semi-global file to load shared behaviour routines from. Many objects share common code – for example, all chairs use the same "sit down" animation routine rather than each chair duplicating that code. The GLOB resource points to the right shared file (like "ChairGlobals.iff") so the object can call those routines.
You rarely need to edit this unless you're creating entirely new object categories.
Skin Filename Prefixes
How the game knows what type of outfit it is
Everything the game needs to know about a skin is encoded in its filename. The first letter tells the game what clothing category the skin belongs to – which dresser drawer it appears in, whether it's buyable at a clothing rack, and which expansion unlocked it.
| Prefix | Type | Where It Appears | Requires |
|---|---|---|---|
| C | Cranium (Head) | Create-A-Sim head selection | Base game |
| B | Body (Everyday) | Dresser – everyday clothing | Base game |
| L | Lingerie (Pyjamas / Sleepwear) | Buyable at clothing rack – sleepwear | Hot Date |
| F | Formal | Buyable at clothing rack – formal | Hot Date |
| S | Swimwear | Buyable at clothing rack – swimwear | Hot Date |
| W | Winterwear | Buyable at clothing rack – winterwear | Vacation |
| H | High Fashion | Buyable at clothing rack – high fashion | Superstar |
| H | Hand files | Sim's hand texture (separate from body). 64×64 pixels. | Base game |
| N / U | Nude / Underwear | Used internally for the Sim's base skin under clothing; also the texture shown when a Sim changes clothes or swims. Not a custom clothing category. | Base game |
| xskin- | Mesh file (.skn) | Defines 3D shape – paired with BMP textures | Base game |
After the type prefix, the rest of the filename encodes the following segments in order, all run together with no spaces:
- Mesh number – 3 characters, for example
001or300 - Gender –
F,MorU(female, male or unisex) - Age –
A(adult) orC(child) - Body type –
Fat,Fit,SknorChd(bodies only, not heads) - Skin tone –
lgt,medordrk(BMP files only, not SKN meshes) - Then an underscore and the identifier you chose
Example: L300FAFitlgt_MySleepwear.bmp = Lingerie, mesh 300, female adult, fit body type, light skin tone.
Hand file naming
Hand skin files follow a different segment order from body skins. The format is:
| Segment | Values | Meaning |
|---|---|---|
| H | H | Hand file prefix |
| Gender | F / M / U | Female, male, or unisex |
| Age | A / C | Adult or child. A used for “all hands” in unisex files. |
| Hand | L / R | Left or right (omitted on unisex all-hands files) |
| Gesture | O / C / P | Open, closed, or pointing |
| Skin tone | lgt / med / drk | Light, medium, dark |
Common hand files included with the base game: HUAOlgt.bmp (unisex open hand, light), HUAClgt.bmp (closed), HUAPlgt.bmp (pointing). To create a matching hand skin for a custom outfit, use the same end-tag as the body skin: e.g. HUAOlgt_MyOutfit.bmp. Hand textures go in the same GameData\Skins\ folder as body skins.
Pyjamas share the L prefix with lingerie. Creators can rename L to B if they want pyjamas available as everyday wear instead of buyable clothing. Work outfits use career-specific names via the game's career data, not a single-letter prefix.