The setup editor
A garment’s look lives in its setup, an .mlsetup file: a stack of up to 20 layers, each with a surface, a color, finishes, tiling and a detail texture. The setup editor opens one, lays it out in plain words, lets you change any layer, and saves the result into your mod project. Recolors made this way were tested in the game on 2026-10-20.
Opening a setup
| From | How |
|---|---|
| A garment’s name | Find: type the name, open a body and a mesh, click a layered material. This is the best way: the setup opens with the exact mask set the garment uses |
| The game, by file name | Open Setup… (the go-to-file icon in the Library’s title bar) › From the game, then type words from the file name, such as s1_055 red yellow, and pick one |
| A file on disk | Open Setup… › A file on disk: a binary .mlsetup, or WolvenKit’s JSON form, .mlsetup.json. A file in a WolvenKit project works too |
| Another mod | Open Setup… › A file on disk, pick the mod’s .archive, then pick a setup inside it. The mod’s own mask sets come along. The mod is only read, never changed |
| REDcode or the Explorer | Open any .mlsetup. If REDcode’s editor opens instead, right-click the editor tab (or press Ctrl+Shift+P) › Reopen Editor With… › EDGEmat Setup Editor. VS Code may ask which editor to use the first time |
The header names the file and where it came from: “Setup · game file”, “project file”, “from the mod …”, or the garment you found it through. It also counts the layers that show and the setup’s ratio (how the detail textures map onto the garment).
The color map
On the left: the garment’s texture, unwrapped flat, with each layer painted in its own color where its mask puts it. It shows where each layer goes; it isn’t the in-game look, which also has shine, bumps and lighting. (For the garment in 3D, see View in 3D.)
- Click a spot on the map: the layer that shows there is selected, and scrolled into view in the list.
- The switch under the map, All layers / Selected layer, either shows the whole map or dims it and lights up the selected layer’s area, so you can see exactly which parts one layer covers.
The layers
On the right, every layer from 0 (the base) upwards, each with its index, a color swatch, the surface’s thumbnail, “surface · color”, its finish in a few words, and its share: how much of the texture it covers, with a bar.
Click a layer for its details:
| Row | Shows |
|---|---|
| Surface | Its name, with Open for its surface page |
| Color | The plain name and the swatch |
| Roughness, Metal, Bumps | In plain words, such as “mostly rough”, “not metal”, “faint bumps” |
| Tiling | How many times the surface repeats across the garment, such as ×10.1 |
| Opacity | “full”, or a percentage |
| Microblend | Its detail texture, with Open for its page, its tiling and contrast |
| Share | “Shows on 11% of the texture” |
Layers that don’t show, and warnings
A layer can be in the file and still not show. EDGEmat dims it and says why:
| You see | Means |
|---|---|
| “not shown: unused slot” | An empty layer. Tick Hide unused slots (top right) to leave these out of the list; the header still counts them |
| “not shown: opacity 0” | The layer is there but fully transparent |
| “not shown: no surface” | The layer names no surface |
| “not shown: all presets set to None” | The game hides a layer whose presets are all None (found in EDGEmat’s in-game tests) |
| “not shown: no mask” | The mask set has fewer masks than the setup has layers. Mask 5 belongs to layer 5, so a layer past the last mask has nowhere to show. Often a sign of the wrong mask set (below) |
| “not shown: covered by the layers above, or its mask is empty” | Nothing of it is left to see |
| ⚠ a color the surface lacks “shows white” | The layer names a color its surface doesn’t have, and the game draws such a color white. A common mistake in hand-edited setups |
Changing a layer
Click a layer: its details turn into controls. Each change shows at once in the list and on the map, and the tab shows the unsaved dot.
| Row | Control |
|---|---|
| Surface | Change… opens a searchable list of every surface. A new surface resets the layer’s color and finish to that surface’s defaults, and a line under the header says so |
| Color | The surface’s own colors as swatches, the current one outlined. Type in the filter box, such as blue or dark red, to narrow them. A layer can only take its surface’s colors (see Surface pages); for a color the surface lacks, try another surface |
| Roughness, Roughness contrast, Metal, Metal contrast, Bumps | Drop-downs of the surface’s presets, in plain words. With Raw values ticked they also show the game’s names |
| Tiling, Offset U and V, Opacity | Number boxes. Opacity 0 hides the layer |
| Microblend | Change… for another detail texture, and boxes for its tiling, contrast and bump strength |
Undo and redo: Ctrl+Z and Ctrl+Y, with the focus on the page (click an empty part of it first, not a box).
A layer flagged “shows white” is fixed by picking one of its surface’s colors.
Save to Project
The game’s files are never changed. Save to Project (the button top right, the icon in the editor’s title bar, or Ctrl+S on a game file) saves the setup into a WolvenKit project: REDcode’s open project, or one you pick. It offers three ways:
| Choice | What it writes | In the game |
|---|---|---|
| As a new setup (recommended) | The setup beside the original under a new name (ending in your project’s name), and a copy of every mesh that uses it, pointed at the new setup. EDGEmat lists the meshes it found, all ticked, before saving | Shows with no other mod. Only the meshes you tick change, even where other items share the game’s setup |
| In place of the game’s setup | The setup at the game’s own path | Needs the Material Texture Override mod, which lets a mod replace a game .mlsetup. Changes every item that uses the setup |
| At a game path you choose… | The setup at your path | Up to you to point something at it |
When it’s done: “Saved into … : the setup and 2 meshes pointed at it”, with Pack and Try and Open the Saved Setup. Then see Your mod in the game.
Once saved, the project’s copy is yours: open it, change it, and Ctrl+S saves straight into it, with no questions. Saving the game’s setup again as a new setup updates the same files.
Find the garment through Find first if you can: the setup then opens with the right mask set, and Save to Project finds its meshes for both bodies.
The mask set
A setup doesn’t say which masks it uses: the garment’s mesh does. So:
- Opened through Find, the setup uses the mask set the mesh names: “(named by the mesh’s material)”. Always right.
- Opened any other way, EDGEmat picks the best match by name beside the setup, on disk, in the mod, or in the game: “(found beside the setup)”. Usually right; if the map looks scrambled, it isn’t.
- Change on the “Mask set” line under the map lists the other candidates, with a search and a file on disk. Picking one redraws the map.
Raw values
Tick Raw values (top right) to see the game’s names and numbers in blue beside the plain words: paths, preset names and their values, RGB, tiling, offsets. The header adds the setup’s normal setting and its WolvenKit JSON version. Handy alongside WolvenKit, or when asking for help.
For assistants
The same view, as data, is the MCP tool mat_describe: “describe this jacket’s layers”. Editing and saving is mat_edit: “make the punk jeans dark green on both bodies”. See Assistants.