How clothing works
Every player in s&box uses the Citizen character as their base model. Clothing assets are separate.vmdl files that bonemerge onto the Citizen skeleton at runtime. A .clothing definition file ties together the model, its human variants, icon, category, and body slot data.
The platform uses a two-layer system:
| Layer | What goes here |
|---|---|
| Layer 1 (Slots Under) | Shirts, trousers, shoes, gloves |
| Layer 2 (Slots Over) | Jackets, vests, open coats, armour |
First-time setup
Create an addon project
Open s&box and create a new project using the Addon template. You are publishing a model, so you do not need a full game project.
Enable Show Base Content
In the Asset Browser settings, turn on Show Base Content. This exposes the
citizen addon folder so you can reference the reference meshes and rigs.Grab the Citizen reference files
Copy the reference FBX files you need from the game folder:
- Citizen rig:
Steam\steamapps\common\sbox\addons\citizen\Assets\models\citizen\citizen_REF.fbx - Human male rig:
Steam\steamapps\common\sbox\addons\citizen\Assets\models\citizen_human\citizen_human_male_REF.fbx - Human female rig:
Steam\steamapps\common\sbox\addons\citizen\Assets\models\citizen_human\citizen_human_female_REF.fbx
Quality requirements
Facepunch reviews every submission. Meet the following requirements before you submit.Triangle counts
Scale your triangle budget to the complexity and coverage of the item. As a rough hard limit, 20–30k triangles for a full outfit. Use existing clothing assets as reference.| Item type | Approximate budget |
|---|---|
| Hat / cap | Under 4k tris |
| Shirt | 3–8k tris |
| Jacket | 5–12k tris |
| Full outfit | Up to 20–30k tris |
Topology
Use clean, quad-dominant topology. Denser loops are required at joints — knees, elbows, and any area that bends or creases. Poor topology causes visible deformation during animation.Texture sizes
| Item type | Recommended size |
|---|---|
| Hats | 512 px or 1024 px |
| Glasses | 512 px |
| Shirts / jackets / trousers | 1024 px or 2048 px |
| Shoes / gloves | 512 px or 1024 px |
| Full outfits | One 4096 px or multiple up to 2048 px each |
Materials
Keep to one material set per clothing item. A second material is acceptable only when the design genuinely requires it (for example, a jacket with a separate fur trim). More materials increase draw calls and hurt performance.Shaders
Use the Complex shader for all clothing. Enable the following PBR settings:- Specular — required for the roughness map to work.
- Metalness Texture — required if you have a metal map.
- Alpha Test (Translucent settings) — required for transparency.
- Bent Normal (Normal settings) — use a bent normal baked in your texturing software.
Skinning
Skin your mesh to the Citizen skeleton’s twist bones, not the limb bones themselves.LODs (mandatory)
Level-of-detail meshes are required. Here is the general target for each level:| LOD | Target tris | Switch distance |
|---|---|---|
| LOD0 | Starting mesh | — |
| LOD1 | ~80% of LOD0 | Short |
| LOD2 | 1000–1500 tris | Medium |
| LOD3 | 100–200 tris | Long |
| LOD4 | Same as LOD3, one material | Optional |
Layering
How layers work
Clothing fits together in layers so players can build outfit combinations:- Trousers sit under shirts.
- Shirts (Layer 1) sit under jackets (Layer 2).
- Shoes sit under trousers.
- Gloves sit at Layer 1 and must not clip into Layer 2 jackets.
citizen\assets\models\citizen_clothes as components.
Cutting the Citizen body
For Layer 1 items (shirts, for example), you can extract and hide the Citizen’s torso bodygroup to avoid z-fighting. Extract only the visible portion of the torso geometry fromcitizen_REF.fbx and include it as a cut mesh in your ModelDoc.
Human variations
Every clothing submission needs a human male version morphed from the Citizen mesh to the proportions ofcitizen_human_male_REF.fbx. Clothing that shows skin (short sleeves, shorts) also needs a human female version from citizen_human_female_REF.fbx.
Import the human reference
Bring
citizen_human_male_REF.fbx into your 3D software alongside your finished clothing mesh.Move major shapes
Use soft selection to move the neck and wrists to match the human proportions. Enable Connect Only to isolate arm adjustments without disturbing the chest area.
Adjust details
Move secondary shapes — pockets, collars, cuffs — to fit the human silhouette. Fix any stretching or distortion caused by the morph.
Add edge loops where needed
Heavily morphed areas (especially shoulders) may need additional edge loops to smooth out stretched geometry. The UVs stay the same, so adding loops will not distort the texture.
For the female version, only edit the mesh inward (ribs, waist). Do not expand the silhouette outward — this causes clipping with Layer 2 items.
Setting up the .clothing file
Create a Clothing Definition
Right-click inside your project folder in the Asset Browser and select New → Citizen → Clothing Definition.
Assign your models
- Model — your Citizen version
.vmdl - Human Alt Model — your human male
.vmdl - Human Alt Female Model — your female
.vmdl(shirts and skin-showing items only)
Set name, description, and category
Give your clothing a title and description. Set the category (e.g.,
Hat) and sub-category (e.g., Hats) so it appears correctly in the character menu.Generate an icon
In the Icon section, choose a camera mode that suits the item (
Head for hats, Body for shirts, etc.) and click Save Icon to Disk.Publishing to sbox.game
Open the publish dialog
Right-click your
.clothing file in the Asset Browser and select Publish → Edit settings and Publish.Create or select an organization
In the publish window, create a New Organisation or select an existing one. You will be taken to the sbox.game website to complete organization creation. Restart s&box afterward for the organization to appear in the dropdown.