Mod Loader/Fabrics
A fabric pack adds fabrics to the shop. Each fabric can have its own texture, price, colors, tags, and material settings. Try one fabric first.
Make one in the game
- Open Options > Mod Manager > Make fabrics. Enter a pack name, ID, author, and version. The pack icon, banner, and description are optional.
- Click Add fabric. Give it a name, textile type, color category, shop price, and tags. Choose a PNG or JPEG texture, or keep the image from a game fabric.
- Choose a fabric under Mimic material properties of. New fabrics start with White Cotton and a white tint. Open Advanced fabric properties if you want to change the finish.
- Click Add fabric to pack, then Make, install and ZIP pack. Restart Dressmaker and look for it in the shop.
To change a pack you already made, open it under My mod packs and choose Edit fabrics. The editor makes a new ZIP when you save the pack. Keep the pack ID and each fabric ID if players may already own them.
What the fabric shader does
The texture is the image printed on the cloth. The shader decides how the cloth responds to light. A material combines the shader with settings such as tint, gloss, weave detail, and texture size. The Textile type, Color, and Fabric tags fields are shop and filter information; they do not change the shader.
Mimic material properties of copies a game fabric's material, including its shader and detail maps. You can then change just a few settings. If you choose Plain material, the loader uses the game's default fabric shader and its own starting values. That can look different from copying White Cotton, even when both use the same shader. The game's fabric shader is called MannequinFabric in the property reference.
Tint, pattern size, and gloss
From Advanced fabric properties, click Edit simple finish for the three most common changes:
- Tint changes the material color. You can pick a color or enter a hex value such as
#D9E8FFFF. Keep original tint uses the copied material's color. Tint is easiest to see on pale fabrics; a dark source image can still look dark. - Pattern size changes how large the image appears on the cloth. 100% keeps the original size, 40% makes the print smaller, and 250% makes it larger. This works only when the fabric has a texture. Very large prints may look blurry.
- Gloss moves the surface from matte to shiny. It changes the shader's
_Smoothnessvalue. Keep original gloss uses the value from the copied material.
Click Done to keep these changes in the fabric editor. You still need to save the fabric and make the pack before they appear in the game.
Advanced fabric properties
Click Advanced fabric properties on the fabric editor screen. These settings belong to this fabric, not the whole pack. The cloth preview on the right updates as you change them. Open a save first if the Emporium cloth preview says it is unavailable. The Texture preview on the fabric editor shows the flat image; Rendered shows the material on cloth.
| Tab | What you can change |
|---|---|
| Surface | Number settings exposed by the selected shader. On the game's fabric shader, these include surface smoothness, reflection strength, texture depth, highlights, and edge sheen. Use a slider or type a number beside it. Each shader can expose a different set of controls. |
| Colours | Red, green, blue, and opacity for each shader color property. _Color is the main tint; _SpecularColor colors the highlights. The ordinary Color field on the fabric editor is still the shop's color category.
|
| Textures | Choose an image for each texture slot. _Albedo is the main print. _Detail adds fine surface detail, and _DetailNormal adds fine raised-looking detail. Reset returns a slot to the main texture or copied material's map.
|
| Tiling | Repeat X and Y set how often a texture repeats; Offset X and Y move it. More repeats make a pattern look smaller. These controls are available separately for the shader's texture slots. |
| Rendering | Render queue changes draw order; -1 uses the shader default. Keywords enable optional shader features only if that shader supports them. For a first fabric, leave both as copied.
|
For a matte cotton, start by lowering Surface smoothness. For a shiny finish, raise it and try Highlight strength. Texture depth and detail normal strength need a normal map to show a raised weave. Edge sheen affects glancing angles; Shadow in folds needs an ambient-occlusion map. These controls are drawn from the shader you selected, so a different shader may show different names. A fixed-range setting will pull an out-of-range typed number back into range.
Apply to fabric keeps the advanced changes in your draft. Cancel leaves them out. Reset to material defaults clears the material overrides but keeps the fabric texture you chose: a copied fabric gets its source material settings back, while Plain material uses the default shader values. Then save the fabric and choose Make, install and ZIP pack. The editor copies chosen texture maps into the pack ZIP.
The preview is a guide, not a guarantee that every garment screen will look identical. The shop bolt uses the fabric material; cutting, mannequin, and finished dress views can use a garment material with only some fabric properties copied across. Test those screens and reopen a saved dress before sharing a shader-heavy pack.
Pack files
MyFabricPack/
├── mod.json
└── textures/
└── blue-cotton.png
Add fabrics to the fabrics list in mod.json. baseFabric copies the source material and any fabric fields you leave out. material contains only the settings you want to change. Native fabric IDs are in BepInEx/config/DressmakerMods/fabric-reference.json; the loader writes this file when it starts.
This example copies White Cotton's material, uses a new print, makes it glossier, and repeats the print twice on each axis:
{
"id": "yourname.blue-cotton",
"name": "Blue Cotton Pack",
"author": "Your name",
"version": "1.0.0",
"fabrics": [{
"id": "blue-cotton",
"name": "Blue Cotton",
"baseFabric": "CottonWhite",
"fabricType": "Cotton",
"colors": ["Blue"],
"texture": "textures/blue-cotton.png",
"material": {
"color": "#FFFFFFFF",
"floats": { "_Smoothness": 0.28 },
"mainTextureScale": [2, 2]
},
"cost": 18,
"unlockLevel": 0,
"tagWeights": [{ "tag": "Casual", "weight": 70 }]
}]
}
Put blue-cotton.png in the pack's textures folder. The value [2, 2] is two repeats, not 200% pattern size. For a fabric made without baseFabric, set "shader": "$defaultFabricShader" inside material. That name selects the game's fabric shader; a JSON pack cannot supply a new shader by itself. A DLL plugin can load one from a Unity AssetBundle through FabricModApi.
Add a fabric type or tag
Define them in your pack's mod.json. You don't need to edit the game's files. For example, this gives the pack a Leather type and a Leather tag:
{
"id": "yourname.leathers",
"fabricTypes": [{ "id": "Leather", "name": "Leather" }],
"fabricTags": [{ "id": "Leather", "name": "Leather" }],
"fabrics": [{
"id": "brown-leather",
"name": "Brown Leather",
"fabricType": "Leather",
"colors": ["Brown"],
"texture": "textures/brown-leather.png",
"material": { "shader": "$defaultFabricShader" },
"cost": 18,
"unlockLevel": 0,
"tagWeights": [{ "tag": "Leather", "weight": 50 }]
}]
}
The loader gives those entries the internal IDs yourname.leathers.Leather. You can use the short ID within the same pack; another pack must use the full ID. The type appears under fabric types in the game's filter, and the tag appears under tags. Keep the IDs the same in later versions of your pack.
Try it in the game
- Put the folder directly under
Dressmaker/Mods, or install its ZIP through Mod Manager. - Restart and check the fabric shop.
- Buy the fabric, use it on a dress, save, and reopen the dress.
- Read
BepInEx/LogOutput.logif the fabric is missing or looks wrong.
Keep the pack ID and fabric ID when updating a fabric that players may own. A new ID makes a separate item.
Field reference
See Fabric pack fields for every manifest field and every property on the game's fabric shader. For DLL registration and shader AssetBundles, see FabricModApi.