Making mods

A mod is a folder or ZIP that contains mod.json. Drag it onto the page, or load it from the Manage mods screen in the Mods panel.

The Mods panel

The Mods panel

Mods apply from top to bottom. Mods that touch the same target are marked as a conflict and the lower mod wins. Materials, morphs, bones or textures the model lacks appear as yellow warnings under the mod row.

mod.json example

{
  "schemaVersion": 1,
  "name": "Summer outfit",
  "version": "1.0",
  "author": "me",
  "operations": [
    { "type": "textureReplace", "texture": "tex/body.png", "file": "textures/body_summer.png" },
    { "type": "materialParams", "materials": { "体": { "shadowColor": "#c8a0b4", "threshold": 0.2 } } },
    { "type": "meshVisibility", "materials": ["スカート"], "visible": false },
    { "type": "attachAccessory", "file": "hat/hat.glb", "bone": "頭", "position": [0, 1.5, 0], "rotation": [0, 0, 0], "scale": 1 },
    { "type": "morphPreset", "weights": { "笑い": 1, "あ": 0.3 } }
  ]
}

Operations

OperationWhat it does
textureReplaceReplaces a texture the model uses (by path or file name) with a new image from the mod folder. Orientation and repeat settings follow the original texture
materialParamsToon parameters by material name (partial is fine). Visible in toon and Face SDF
meshVisibilityHides (visible: false) or shows a mesh by material name
attachAccessoryAttaches a PMX, PMD, glTF or GLB from the mod folder to a bone. position, rotation (degrees) and scale are relative to the bone; the accessory itself does not move
morphPresetLays down morph values (0 to 1). Values you pin in the Expressions panel win
bodyPresetBody presets. Not allowed on user models, so it is always rejected
INFO

Mod files live only in browser memory, so reload them after refreshing the page. To keep them, connect a folder in the mod manager.

Last updated: 2026-11-08