On this page
This guide covers custom mesh creation – editing the actual 3D body shape that your texture wraps around. For background on how clothing files work, filenames, and the xskin chain, see the Clothing Overview. If you have not yet made a retextured outfit, start with the Retexturing Clothing guide first – it covers the file system and tools you also need here.
When You Need a Custom Mesh
Retexturing changes how an outfit looks – custom meshes change its shape
- Change the colour or pattern of an existing outfit
- Create a new clothing design on an existing body shape
- Add a logo, graphic, or custom print to a garment
- Create all skin tone variants of an existing outfit
- Create a flowing dress, puffed sleeves, or a coat that extends below the knee
- Add something that does not exist on the standard body (wings, a tail, a backpack)
- Make a hat, glasses, or other worn accessory
- Give a Sim a different body silhouette (longer arms, wider hips)
- Hold or wear an attached prop (a sword, a tray, a basket)
What Is a Mesh?
A plain-language explanation of 3D mesh concepts you need to know
A mesh is a 3D object made of three basic building blocks – vertices, edges, and faces. Every Sims 1 body is built from these three, and editing a mesh means moving them around.
Bone assignments (why vertices matter beyond position)
Each vertex in a Sims 1 body mesh has not just a position, but also a bone assignment – which part of the skeleton controls that vertex during animations. The skeleton is made up of named bones (PELVIS, SPINE, L_ARM, R_HAND, etc.). When your Sim walks, the leg bones move, which pulls the vertices assigned to them along with it. When your Sim waves, the arm and hand bones move.
This is why you cannot just move a vertex wherever you like during mesh editing – its bone assignment determines how it will behave during every animation in the game. A vertex still assigned to the leg bone but physically placed at shoulder height will snap back to the leg area every time the Sim animates.
UV coordinates (how the texture knows where to go)
Every vertex also has a UV coordinate – a position on the flat BMP texture that tells the game “this point on the 3D mesh corresponds to this pixel on the texture image.” This is what makes the trouser leg appear on the leg and not on the torso. When you reshape a mesh by moving vertices, the UV coordinates do not move automatically – the texture can end up misaligned. See the UV Mapping section for what to do about this.
Mesh Rules
Five rules you must follow – each one explained with what goes wrong if you break it
| # | Rule | What goes wrong if you break it |
|---|---|---|
| 1 | Never add or remove vertices or faces | The SPJ file (produced by SKN2OBJ) contains a fixed vertex count. If your edited mesh has a different number of vertices than the original, SKN2OBJ cannot convert it back to SKN format – you get a conversion error and the mesh is unusable. Every vertex that existed in the original must still exist in your edit. |
| 2 | Do not change a vertex’s bone assignment | If you move a leg vertex to the arm area visually but do not change its bone assignment, it is still controlled by the leg bone. During any animation where the arm and leg move independently (which is all of them), that vertex follows the leg – causing a visible spike or hole in the arm area. The mesh looks fine in a static pose but breaks the moment the Sim animates. |
| 3 | Do not resize or relocate the whole mesh as a unit | The game uses the exact vertex coordinates from the mesh to position the Sim relative to furniture and objects. Sitting in a chair, using a counter, kissing – all of these are calculated from mesh coordinates. If you scale the whole mesh up by 10%, your Sim will appear to float above chairs, clip through desks, and miss every interaction point. |
| 4 | For body meshes: convert using SPJ, not Import OBJ | The SPJ file (an intermediate format produced by SKN2OBJ when it reads a SKN file) preserves the bone assignment data that OBJ files cannot store. If you import an edited OBJ directly as a new SKN without going through the SPJ, the bone assignments are lost or guessed incorrectly – the mesh breaks during animation. |
| 5 | For accessories: use Import OBJ (not the SPJ route) | Accessories are separate mesh objects that are attached to a specific bone by name (see the Making Accessories section). They do not have an existing SPJ to work from – you create them fresh in a 3D editor and use the Import OBJ function in SKN2OBJ. Using the SPJ route would require an existing SKN to start from, which accessories do not have. |
Blender + TS1 Blender IO
The modern free option – handles all Sims 1 mesh formats in one tool
TS1 Blender IO is a Blender addon developed by mixiate that adds native support for Sims 1 file formats: SKN meshes, BCF skeletons, CMX configs, and CFP animations. It is the recommended starting point for anyone who does not have a specific reason to use the older MilkShape + SKN2OBJ workflow.
Supported Blender versions are 4.1 through 4.5 as of early 2026. Check the TS1 Blender IO GitHub page for the current supported version range before installing.
Installing TS1 Blender IO
Download Blender
Download and install Blender from blender.org. Use a version between 4.1 and 4.5 – the addon may not work on versions outside this range.
Download TS1 Blender IO
Go to github.com/mixiate/ts1-blender-io. Under Releases on the right side, download the latest release ZIP file. Do not unzip it – Blender installs addons from the ZIP directly.
Install the addon in Blender
In Blender, go to Edit → Preferences → Add-ons. Click Install… and browse to the ZIP file you downloaded. Click Install Add-on. The addon will appear in the list – click the checkbox next to it to enable it.
The editing workflow
Import the skeleton
Go to File → Import → Sims 1 BCF and import a BCF skeleton file from GameData\Skins\ (or wherever your game stores BCF files). The skeleton gives you the bone structure to work with and ensures your mesh edits stay in the correct position relative to the Sim’s body.
Import the body mesh
Go to File → Import → Sims 1 SKN and import the SKN file you want to edit. The mesh appears in the viewport over the skeleton. You can also import the BMP texture to see it applied to the mesh in the viewport.
Edit the mesh in Edit Mode
Select the mesh object in the viewport and press Tab to enter Edit Mode. Here you can select individual vertices (press 1), edges (2), or faces (3), and move them by pressing G then dragging. Remember: you can move vertices but must not add or remove them (see Mesh Rules).
Check bone weights if needed
If you have moved vertices into a significantly different position, check that their bone assignments still make sense using the Weight Paint mode (select the mesh, then switch the mode dropdown in the top-left from Object Mode to Weight Paint). Blue means no influence from a bone; red means full influence. Vertices that moved into a different body region may need their weights adjusted.
Adjust UV layout if needed
If your mesh changes cause the texture to look misaligned in the viewport, open the UV Editing workspace (tab at the top of the Blender window) and adjust the UV coordinates there. See the UV Mapping section below for more detail.
Export the mesh
Go to File → Export → Sims 1 SKN to export your edited mesh as a SKN file. The addon can also generate a CMX file – check the export options panel on the right side of the file browser dialog.
MilkShape 3D + SKN2OBJ
The classic workflow from the original modding era – still functional
MilkShape 3D is a paid 3D editor (30-day trial available) that was the standard tool for Sims 1 mesh editing from roughly 2000 to 2010. SKN2OBJ is a free converter that translates Sims 1 SKN mesh files into the OBJ format that MilkShape can open and edit. Most older tutorial guides assume this pair of tools.
If you are following an older guide (from the original community era) or are more comfortable with MilkShape, this is still a valid route. If you are starting fresh and want to stay with the SKN2OBJ-based workflow but do not want to pay for MilkShape, Wings3D (below) handles the middle editing step for free. The Blender route above is also free and has more modern documentation.
The workflow
Convert SKN to OBJ using SKN2OBJ
Open SKN2OBJ. Load the SKN file you want to edit using the Open SKN button. SKN2OBJ produces three output files: a SPJ (the intermediate file with bone data), an OBJ (the editable 3D mesh), and an MTL (material/texture information). Keep all three in the same folder.
Import the OBJ into MilkShape 3D
In MilkShape, go to File → Import → Wavefront OBJ and open the OBJ file produced by SKN2OBJ. The body mesh appears in the MilkShape viewport.
Edit vertices in MilkShape
Use the Select tool to select individual vertices or groups of vertices, then use the Move tool to reposition them. You can also scale or rotate selected groups. Remember: do not add new vertices, do not delete existing ones (see Mesh Rules).
Adjust texture mapping if needed
If your mesh changes have moved vertices such that the texture no longer maps correctly, use MilkShape’s Texture Coordinate Editor (Window → Texture Coordinate Editor) to adjust the UV coordinates. See the UV Mapping section below.
Export back to OBJ with the same filename
Go to File → Export → Wavefront OBJ and save the file with exactly the same filename as the OBJ that SKN2OBJ produced. This overwrites the original OBJ file – that is intentional. The filename must match because SKN2OBJ links the SPJ and OBJ by filename.
Open the SPJ in SKN2OBJ and save as SKN
Back in SKN2OBJ, open the SPJ file (not the OBJ). SKN2OBJ reads the bone data from the SPJ and the edited geometry from the OBJ (which it finds by matching the filename), then combines them. Click Save as SKN to produce your final SKN file. This is the file that goes into your game folder alongside the CMX and BMPs.
Wings3D + SKN2OBJ
A free alternative to MilkShape that uses the same SKN2OBJ workflow
Wings3D is a free, open-source polygon modeller that natively opens and saves Wavefront OBJ files. It is simpler than Blender (fewer features, shorter learning curve) and runs on Windows, macOS, and Linux. If you want the SKN2OBJ workflow but do not want to pay for MilkShape, Wings3D handles the OBJ editing step.
The SKN2OBJ conversion steps at the start and end are identical to the MilkShape workflow above – only the middle editing step happens in Wings3D instead of MilkShape. The same SPJ intermediate file rule applies: keep it, do not delete it.
Installing Wings3D
Download Wings3D
Go to wings3d.com and download the installer for your operating system. Wings3D is free and open source – no account, no trial period, no licence fee.
Run the installer
Install with the default options. Wings3D is a standalone application – it does not need Blender or any other 3D editor to be present.
The workflow
Convert SKN to OBJ using SKN2OBJ
Open SKN2OBJ. Load the SKN file you want to edit using the Open SKN button. SKN2OBJ produces three output files: a SPJ (the intermediate file with bone data), an OBJ (the editable 3D mesh), and an MTL (material/texture information). Keep all three in the same folder. This step is identical to the MilkShape workflow.
Import the OBJ into Wings3D
Open Wings3D. Use the File → Import menu and select the Wavefront OBJ format, then pick the OBJ file produced by SKN2OBJ. The mesh appears in the Wings3D viewport.
Switch to Vertex selection mode
Wings3D has four selection modes: Vertex, Edge, Face, and Body. To move individual vertices (the points that make up the mesh), you need to be in Vertex mode. Switch modes using the selection-mode icons on the toolbar, or via the Select menu. Hover over an icon for a moment to confirm which mode it enables.
Select vertices and move them
Click on a vertex to select it. Hold Shift and click additional vertices to add to the selection. Right-click on a selected vertex to bring up the context menu – this is how Wings3D exposes editing tools. Choose Move from the context menu, then drag to reposition. You can also rotate or scale selected groups from the same context menu.
Remember the mesh rules: do not add new vertices, do not delete existing ones. Move, scale, and rotate only.
Adjust UV mapping if needed
If your mesh changes have moved vertices such that the texture no longer maps correctly, Wings3D has a UV mapping tool reached via the AutoUV feature in its tools menu. For minor adjustments, Wings3D’s UV editor works similarly to MilkShape’s Texture Coordinate Editor – move individual UV points to remap specific areas. See the UV Mapping section below for the general approach.
Export back to OBJ with the same filename
Go to File → Export and select the Wavefront OBJ format. Save the file with exactly the same filename as the OBJ that SKN2OBJ produced. This overwrites the original OBJ file – that is intentional. The filename must match because SKN2OBJ links the SPJ and OBJ by filename, the same as with MilkShape.
Open the SPJ in SKN2OBJ and save as SKN
Back in SKN2OBJ, open the SPJ file (not the OBJ). SKN2OBJ reads the bone data from the SPJ and the edited geometry from the OBJ (which it finds by matching the filename), then combines them. Click Save as SKN to produce your final SKN file. This step is identical to the MilkShape workflow.
BodyWarp
Quick body part manipulation without a full 3D editor
BodyWarp is a dedicated Sims 1 mesh tool that lets you rotate, scale, and move individual body segments without opening a full 3D editor. It works on the SKN file directly.
Making Accessories
Separate mesh objects attached to a skeleton bone – wings, hats, held props
Accessories are not body modifications – they are separate, independent mesh objects that are “attached” to a specific bone on the skeleton. This means the accessory moves with that bone during animations: a hat on the HEAD bone nods when the Sim nods; an item in the R_HAND bone moves when the Sim reaches out to pick something up.
Because accessories are new meshes (not edits of existing ones), they go through the Import OBJ route rather than the SPJ route. Rule 1 from Mesh Rules (never add or remove vertices) does not apply to accessories – you are creating something entirely new.
Common bone names for accessories
| Bone name | Where the accessory attaches | Example use |
|---|---|---|
HEAD | Top of the head | Hats, crowns, horns, halos |
R_HAND | Right hand | Held props, weapons, wands |
L_HAND | Left hand | Shields, books, second-hand items |
SPINE | Upper back / spine area | Wings, backpacks, capes |
PELVIS | Hip/pelvis area | Tails, belts, skirts as accessories |
Other bone names exist in the skeleton. If you are unsure of a bone’s name, import the BCF skeleton file in Blender and check the armature’s bone list.
Creating an accessory with SKN2OBJ
Model the accessory in a 3D editor
Create your accessory mesh in Blender, MilkShape, or any 3D editor that can export OBJ files. Keep the vertex count reasonable – Sims 1 is a 2000-era game engine and was not designed for high-polygon accessories.
Export as OBJ
Export the mesh from your 3D editor as a Wavefront OBJ file. The export should produce an OBJ file and an MTL file. Keep both in the same folder.
Edit the OBJ to set the bone name
Open the OBJ file in a text editor (Notepad works). Find the line that starts with g (lowercase g, then a space). This line names the object group. Change the name after g to the bone name you want the accessory attached to.
Example: to attach to the head, change g object_name to g HEAD. To attach to the right hand, change it to g R_HAND. The name must match the skeleton bone name exactly (check capitalisation).
Save the OBJ file after making this change.
Import the OBJ in SKN2OBJ
In SKN2OBJ, use the Import OBJ function (not Open SKN, which is for the SPJ route). Select your edited OBJ file. SKN2OBJ reads the bone name from the group line and creates a SKN file with the accessory attached to that bone.
Create a CMX for the accessory
The accessory SKN needs its own CMX file pointing to it. You can create one manually (see the File Reference for the CMX format), or use BodyWarp’s CMX generation feature. The CMX base bodypart for an accessory is the bone it attaches to (e.g. HEAD for a hat).
Create and apply the texture
Accessories use their own BMP texture file, separate from the body skin BMP. Paint the texture in GIMP, convert to Indexed BMP (same process as body skins), and name it to match the accessory CMX end-tag. Place it in GameData\Skins\ alongside the body skins.
UV Mapping for Modified Meshes
When you change the mesh shape, the texture may need remapping
UV mapping is how the flat BMP image is projected onto the 3D mesh. Each vertex has a UV coordinate telling the game which pixel on the BMP corresponds to that point on the mesh. When you move vertices during mesh editing, the UV coordinates do not move automatically – the texture can look stretched, squashed, or misaligned.
You only need to adjust UV mapping if your mesh edits changed the shape enough that the original UV layout no longer maps correctly. Minor vertex movements usually do not require changes. Major shape changes (a flared skirt, significantly extended sleeves) usually do.
Testing Your Mesh
Always test in SimShow before putting anything in your game
Step 1: SimShow
SimShow is a standalone viewer for Sims 1 meshes that runs outside the game. Load your SKN and BMP to check for problems before launching the full game.
Step 2: In-game testing
Once SimShow looks correct, copy all five files (three BMPs, CMX, SKN) to GameData\Skins\ and test in game. Check these specifically:
GameData\Skins\ folder or keep the new mesh files in a separate test folder first. If the game crashes on load, remove the new files and restore the backup before diagnosing the problem.