Jump to content

Mod Loader/Accessories

From Threadbox

Accessories are items you place on a dress, such as bows, buttons, and patches. Some can be repeated along a trim path.

There are a few ways to make an accessory:

You can put several accessories in one pack.

Make a pack in the game

Open Mod Manager > Accessory Creator. Give your pack a name, ID, author, and version. You can add PNG patches and Unity imports to the same pack.

  1. Choose Add PNG patch or Import Unity package. Set up the accessory, then click Add patch to pack or Add variant to pack.
  2. Click Pack to see the list. Repeat for each accessory you want to include. Each colour variant is its own item.
  3. Use Edit beside an item to change its shop name or price. Remove takes it out of the draft.
  4. Add a pack icon or banner if you want one. Open Credits and licenses to credit the original assets. The author entered for each added accessory is kept as a credit; fill in its license and source URL there.
  5. Click Make, install and ZIP pack. Restart Dressmaker to use the items. Your shareable ZIP is in DressmakerMods/exports.

Save the pack before quitting Dressmaker or starting another pack. Until then, the items are only in your draft.

To edit a saved pack, find it in My mod packs and choose ... > Edit accessories. Change names or prices, or add and remove items, then save again. Item IDs stay the same when you edit names or prices, so saved dresses can still find them. The creator backs up the installed pack before replacing it and keeps its other content and credits.

For model or material changes, add the Unity variant again using the same parts and materials. The creator asks before replacing an item already in the draft. Keep the original pack ID when updating a shared pack.

Make a PNG patch

  1. In Accessory Creator, click Add PNG patch, then Choose PNG.
  2. Choose an image with a transparent background. The visible part becomes the patch; an opaque background will become part of its shape too.
  3. Enter an accessory name, item ID, author, and shop price. Set Width (cm) between 1 and 30. The image keeps its proportions.
  4. Choose a thickness of 1 mm or 2 mm, and a black or white edge.
  5. Click Add patch to pack, then Pack to return to your list. Use Make, install and ZIP pack when you're ready to save.

The patch has your image on both sides and an edge around the outline. Small holes and very thin lines may disappear in the finished shape, so check the preview before adding it.

Import a Unity package

Open Mod Manager > Accessory Creator > Import Unity package, then choose a .unitypackage file. You can also select it through Install/Update Mod. Blender and the Unity Editor aren't needed.

  1. Use the arrows to choose an item and colour. Each colour is imported as a separate shop item.
  2. Enter its shop name, width in centimetres, price, and author.
  3. Check Mesh part. Click the part's name to include or exclude it. Some packages contain several alternate models in the same FBX.
  4. Check each Material slot. Click the slot button to move to the next slot, and the material button to choose another material. The importer fills in materials from the prefab when it can match them to the model.
  5. Click Preview. If the model is sideways or facing away, use the rotation buttons and preview it again.
  6. Click Add variant to pack. Choose another colour to add it as another item, or click Pack to return to the draft.

To update an item in your draft, select the same variant, parts, and materials again. Change its name, size, or price, then add it. Click again when asked to confirm the replacement. Selecting different parts or materials adds a new item instead.

What happens to the material?

The importer copies the model's colours into a single image. This includes textures, solid colours, and transparent areas. Dressmaker uses that image on the imported model.

The original Unity shader is not included. Glass, glitter, glow, and other lighting effects may look different; check the preview before adding the item.

Check the imported model

The accessory keeps the pose stored in the FBX. It won't move with avatar scripts, physics, or animation, and changes made with prefab bone poses or blend shapes won't carry over.

If the preview has the wrong parts or materials, select them yourself using Mesh part and Material slot. Duplicate mesh names can confuse the importer; rename those meshes and export the package again if you can.

Only FBX models and PNG/JPEG colour textures are used. A package can be up to 256 MB, with at most 32 FBX files and 128 materials. The finished accessory must fit the model limits. Large models can often be imported by excluding parts you don't need.

Try the cat example

Download the Oiia Cat example ZIP. It has two items: a cat you place once and a row of smaller cats you draw as trim. Install it through Mod Manager, restart, and find both in the accessory shop. Open the ZIP to see its mod.json, meshes, texture, and icon.

Pack files

Make a folder under Dressmaker/Mods. These names match the Oiia Cat example; change them to match your own files.

Dressmaker/
└── Mods/
    └── MyAccessoryPack/
        ├── mod.json
        ├── icon.png
        ├── cat-texture.png
        ├── cat-single.mesh.json
        └── cat-trim.mesh.json

Put this in mod.json. It registers one placeable accessory and one repeating trim using those files:

{
  "id": "yourname.cat-pack",
  "name": "My Cat Pack",
  "author": "Your Name",
  "version": "1.0.0",
  "icon": "icon.png",
  "accessories": [
    {
      "id": "cat",
      "name": "Cat",
      "baseAccessory": "Applique Luna Moth",
      "accessoryType": "Other",
      "model": "cat-single.mesh.json",
      "texture": "cat-texture.png",
      "icon": "icon.png",
      "cost": 10,
      "unlockLevel": 0,
      "tagWeights": [{ "tag": "Cute", "weight": 10 }]
    },
    {
      "id": "cat-trim",
      "name": "Cat Parade",
      "baseAccessory": "Trim Pearl Beads",
      "accessoryType": "Trim",
      "model": "cat-trim.mesh.json",
      "texture": "cat-texture.png",
      "icon": "icon.png",
      "cost": 2,
      "unlockLevel": 0,
      "beadSpacing": 0.04
    }
  ]
}

baseAccessory supplies the game's placement behavior. Use a single-item base for an item you place once, and a trim base for something repeated along a path. accessoryType controls its shop category. model, texture, and icon are filenames inside this pack folder. unlockLevel: 0 makes the item available from the start.

The game remembers items by their pack and item IDs. Choose your own IDs when copying this example. Keep them the same when updating your pack, so saved dresses can still find their accessories. The field reference covers other fields, including materials and reuseAsset.

Use your own OBJ model

Put the model, colour texture, and shop icon in your pack folder. In the accessory entry above, replace the model and image filenames with your own:

"model": "models/bow.obj",
"texture": "textures/bow-blue.png",
"icon": "icons/bow-blue.png"

These fields belong inside an item in accessories. You don't need to convert an OBJ to mesh JSON first.

Export with UV coordinates and normals. Positions are read in metres, with Y up and +Z pointing out from the dress. The loader uses the coordinates as written, so set the size and orientation in your modelling program before exporting.

OBJ material files (.mtl) aren't read. Set the texture in mod.json; if the model uses several images, combine them into one texture atlas and update its UVs first. Each OBJ becomes one mesh. The OBJ reference explains export settings and limits.

Recolour a game accessory

Set reuseAsset to true to copy an existing accessory's model. You can then change its material without including another model file. For example, this pack adds a separate sapphire item:

{
  "id": "yourname.sapphire-recolour",
  "name": "Sapphire Recolour",
  "author": "Your Name",
  "version": "1.0.0",
  "accessories": [
    {
      "id": "blue-sapphire",
      "name": "Blue Sapphire",
      "baseAccessory": "Jewel Square Sapphire",
      "reuseAsset": true,
      "accessoryType": "Jewel",
      "cost": 10,
      "unlockLevel": 0,
      "material": {
        "colors": {
          "_Color": { "r": 0.037, "g": 0.14, "b": 0.645, "a": 1.0 }
        }
      }
    }
  ]
}

_Color is a property of this base item's shader. Another accessory may use a different property. Only set properties supported by the base material; copying a full material dump from an unrelated item can stop the accessory from loading.

Colours accept hexadecimal strings or numeric r, g, b, and optional a values. Alpha defaults to 1. Values above 1 are kept for shader properties that use HDR colours. See Material settings for the other options.

For a second colour, add another accessory entry with its own id and name. Dressmaker treats each colour as a separate shop item.

Credit the assets you use

In Accessory Creator, open Credits and licenses and add the asset name, author, license, and source URL. These credits belong to the pack.

If you're editing JSON, add attributions at the top level of mod.json, beside accessories. For an asset you made yourself, an entry could look like this:

"attributions": [
  {
    "name": "Bow model and texture",
    "author": "Your Name",
    "license": "CC BY 4.0",
    "notes": "Model and texture by Your Name."
  }
]

Use the actual author's name and terms for someone else's work. Add url for its source page. Listing a credit doesn't grant permission to redistribute an asset, so check its license before sharing your pack.

Mesh JSON

Set model to an .obj or .mesh.json file. For OBJ export settings, see Use an OBJ model. For an FBX inside a Unity package, use the in-game importer. A .mesh.json file has three arrays: positions holds X, Y, Z values in metres; uvs holds U, V texture coordinates; and triangles holds zero-based vertex indices. This tiny example is one triangle:

{
  "positions": [-0.02, 0, 0, 0.02, 0, 0, 0, 0.04, 0.005],
  "uvs": [0, 0, 1, 0, 0.5, 1],
  "triangles": [0, 1, 2]
}

The cat example shows how quickly trim can add detail to a dress. The single cat has 15,774 triangles; the smaller trim cat has 3,494. That is quite a lot for a repeated item compared with a simple bead or button. A path with twenty trim cats adds about 70,000 triangles. For long trims, use a simpler model. The accessory reference includes a Blender export script and explains how to orient and size a model.

Make a trim

The loader repeats the mesh along the path. Set beadSpacing to the approximate distance between copies, in metres, at the default width. Here 0.04 means about 4 cm. The game's trim width control also scales the spacing. Try a short path and a curved one; the copies may overlap on tight bends.

Mesh positions are in metres. The example faces +Z out from the dress. Use it to check your model's size and direction.

Test and update

  1. Install the pack and restart Dressmaker.
  2. Find the item in the accessory shop, buy it, and place it on a dress.
  3. For trim, draw a path and change its width.
  4. Save the dress, reopen it, and check the model and icon.

Field reference

See Accessory fields for material settings, model limits, and the Blender exporter. To find an existing accessory to use as your base, look in BepInEx/config/DressmakerMods/accessory-reference.json, which the loader writes when it starts.

Back to the Mod Loader guide