Sims Legacy Collection – Creating CC – Clothing

Custom Clothing Meshes

Edit the 3D body shape to create new clothing silhouettes and accessories

On this page
โ„น๏ธ This page is a work in progress – screenshots showing each tool step will be added at some point. If something is unclear, ask on Simscord or r/thesims1.

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

Retexturing is enough if you want to…
  • 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
You need a custom mesh if you want to…
  • 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)
โš ๏ธ Custom mesh editing is a significant step up in complexity. Mistakes can cause the game to crash before it gets to the loading screen. Always test new meshes with SimShow first (see the Testing section) before placing them in your game folder.
๐Ÿ“

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.

Vertices
Singular: vertex. Individual points in 3D space – think of them as the dots in a connect-the-dots drawing. Each vertex has a position: how far left/right (X), how far up/down (Y), and how far forward/back (Z) from a centre point.
Edges
Straight lines connecting two vertices. In a 3D editor you often see these as a “wireframe” – the mesh shown as lines only, without any texture or fill.
Faces
A triangle formed by three vertices. Faces are the actual visible surface of the mesh – what you see in game. The game wraps your flat BMP texture image over these triangles to create the clothed appearance.

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

๐Ÿšจ Read these before touching any mesh files. Breaking these rules causes real problems – from visual glitches to conversion errors to game crashes.
#RuleWhat 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.

โ„น๏ธ If you have not used Blender before: Blender has a steep learning curve. The Blender Foundation's own beginner tutorials (available free on their website and YouTube channel) are the best starting point. Learn how to navigate the viewport, select and move objects, and use Edit Mode before trying Sims 1 mesh work.

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.

โš ๏ธ SKN2OBJ produces an intermediate SPJ file that must be kept. The SPJ preserves bone assignment data that the OBJ format cannot store. You need both the SPJ and your edited OBJ to convert back to SKN. Do not delete the SPJ.

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.

โ„น๏ธ Starting fresh? Blender with the TS1 Blender IO addon (covered above) remains the most actively documented modern route and handles the entire pipeline natively – no SKN2OBJ conversion step needed. Wings3D is the best choice if you specifically want the SKN2OBJ workflow for free, or if Blender’s interface feels too heavy for what you want to do.
โš ๏ธ Exact UI paths may differ between Wings3D versions. The steps below describe the workflow at a high level. For precise menu names and keyboard shortcuts in your installed version, check Wings3D’s built-in Help menu or the Wings3D website.

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.

โ„น๏ธ Which editor to pick: if you are following a written tutorial that uses MilkShape specifically, it is easier to use MilkShape so screenshots and hotkeys match the tutorial. If you are working out your own approach, Wings3D gets you the same result for free. Both produce a standard Wavefront OBJ that SKN2OBJ can read – SKN2OBJ does not care which editor made the file.
๐Ÿ”ง

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.

Previewing meshes
Load a SKN and BMP to see how the texture wraps onto the mesh before putting it in game. Faster than launching the full game for a quick visual check.
Checking for holes
Load a solid black BMP as the texture and rotate the model. Any holes in the mesh let the background show through as non-black patches – easy to spot against the black texture.
Generating CMX files
BodyWarp can generate the CMX configuration file for a mesh. Useful when you have a SKN file without a matching CMX.
Split Faces
Subdivides existing faces into smaller triangles, giving you more vertices to work with. Use with caution – see the warning below.
โš ๏ธ Split Faces adds new vertices. If you use Split Faces, you cannot then use the original SPJ file to convert back to SKN via SKN2OBJ – the vertex count no longer matches. Only use Split Faces if you are building a new mesh from scratch that will not be reconciled with an existing SPJ.
๐ŸŽฉ

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 nameWhere the accessory attachesExample use
HEADTop of the headHats, crowns, horns, halos
R_HANDRight handHeld props, weapons, wands
L_HANDLeft handShields, books, second-hand items
SPINEUpper back / spine areaWings, backpacks, capes
PELVISHip/pelvis areaTails, 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.

โ„น๏ธ Creating accessories in Blender + TS1 Blender IO: the addon handles bone assignment directly in the Blender interface – you assign vertices to a bone using Vertex Groups rather than editing the OBJ file by hand. Check the addon’s documentation on GitHub for the specific workflow.
๐Ÿ—บ๏ธ

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.

MilkShape 3D – Texture Coordinate Editor
Go to Window → Texture Coordinate Editor. Shows the mesh as a flat layout with the BMP behind it. Select individual UV points and drag them to remap specific areas. Most direct for fixing a single seam or misaligned section.
Blender – UV Editing workspace
Switch to the UV Editing workspace (tab at the top). The left panel shows the UV layout over the texture; the right shows the 3D mesh. Selecting faces in 3D highlights the corresponding UV islands on the left.
UVMapper Classic – for accessories
A standalone UV mapping tool useful when setting up a UV layout from scratch for a new accessory. Works on OBJ files – use it before importing into SKN2OBJ. Free from uvmapper.com.
โ„น๏ธ The simplest UV fix: if your mesh changes are minor and the texture just needs a small adjustment, move only the affected UV points in MilkShape’s Texture Coordinate Editor rather than doing a full UV unwrap. A full unwrap means repainting the texture to match the new layout.
๐Ÿงช

Testing Your Mesh

Always test in SimShow before putting anything in your game

๐Ÿšจ A bad mesh can crash the game before the loading screen appears. Always test with SimShow first. If SimShow shows a problem, do not put the mesh in your game folder.

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.

Check for holes
Rotate the model in all directions. Any missing or flipped triangles show as gaps in the surface. Use the black BMP trick: load a solid black texture so holes show up clearly as background showing through.
Check texture alignment
Load your actual BMP and check that the texture maps onto the correct body regions. If areas look stretched, squashed, or misaligned, you need to adjust the UV mapping before testing in 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:

Animations
Put the Sim through their daily routine. Watch for vertices that snap out of position during walking, sitting, sleeping, or waving. If something pops out during an animation, a vertex has the wrong bone assignment.
Object interactions
Have the Sim sit on chairs and use counters. Check that the Sim reaches the correct position for each. If they float above or clip through furniture, the mesh coordinates have shifted from the original.
โš ๏ธ Keep a backup. Before testing a new mesh in your actual save, copy your 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.