All pages
Powered by GitBook
1 of 2

Changing materials, colors and textures

Changing how an item looks in-game

Summary

Published: November 05 2022 by manavortex Last documented edit: Jun 29 by manavortex

This guide will teach you how to edit an item's material, changing its appearance.

Wait, this is not what I want!

  • For a step-by-step walkthrough for a recolour of the Netrunner suit, check R&R: Colour Editing

  • If you want to edit emissive (glowing) material, check R&R: Emissive -> Changing the presets

  • For an overview of base materials and example files, you can check here.

  • If you want to learn how mesh material assignment works in general, you can check the corresponding page.

  • For details on changing materials, check Changing materials, colors and textures.

    • If you just want to use a textured material, check Using a textured material

  • You can find a video guide on youtube (It's also embedded below)

Prerequisites

  • Wolvenkit's most recent version (Nightly | Stable — guide has been written with 8.11)

  • A Wolvenkit Project

  • Most likely MLSetupBuilder >= 1.6.7 (get the latest release)

  • If you are editing a basegame material, you need to install Material and Texture Override from Nexus.

Overview

Estimated time

For a complete noob, including setup of the tool(s): ~1h Once you know what you're doing: <5 minutes and as much time for fine tuning as you want

Steps

This guide will take you through the following steps:

Video guide

Please keep in mind that video guides might be outdated, as they are much more difficult to update than a wiki page. Refer to the written guide below if you run into any troubles!

Step 0: Finding the .mesh and the appearance

Estimated time: ~5 minutes for total noobs, unless you get side-tracked badly

This process is detailed under Spawn Codes (BaseIDs/Hashes) -> Step by step.

Make sure to follow it so you're editing the correct material!

Find the item's mesh file path and appearance in the .app file:

This file picks the mesh appearance

mesh.DepotPath:

One per body gender (m/w), this is shared by all appearances (basic_01, basic_02, rich_01, rich_02). For the female vest, it's

base\characters\garment\player_equipment\torso\t2_002_vest__puffy\t2_002_pwa_vest__puffy.mesh

meshAppearance:

This picks the appearance from the mesh file, which you'll need for the next step. Here's how they connect:

basic_01

default

basic_02

bbstripes

rich_01

gbstripes

rich_02

pwstripes

Again, you can look these up in the .app file!

Add the mesh to your project

  1. Find the file from mesh.DepotPath in your Asset Browser.

  2. Add it to your Wolvenkit Project (double-click or right-click -> Add to Project)

We will now edit the mesh's material. Stay tuned!

To learn how appearances and materials connect, you can read 3d objects: .mesh files. This is not necessary for this guide, but if you find yourself struggling, it's worth checking out (especially the diagram under Mesh file: diagram)

Step 1: Finding the correct material name

  1. Open your mesh file in Wolvenkit by double-clicking it.

  2. Find the array appearances at the very top, and expand it.

  3. Find the appearance by the name that you found in Step 0 (example: bwstripes), and expand it

  4. Find the chunk material names. These define the material:

  1. Starting with Wolvenkit 8.15, you can right-click on a chunk and click on "Select Material" from the context menu. For earlier versions, you have to find the material yourself - proceed to the next step.

Wait, I don't know which material I'm supposed to edit!

To find the right appearance:

Go back to Step 0: Finding the .mesh and the appearance and look it up in the .app file

To find the right submesh:

Click on the "Mesh Preview" tab directly above the editor. Here, you can toggle submeshes on and off to see which is which.

Step 2: Finding the material instance

Depending on your mesh, the material instance will be in one of two places: either under localMaterialBuffer.materials, or under preloadLocalMaterialInstances.

(If you don't see preloadLocalMaterialInstances, that means it's empty and has been hidden.)

Inside the array, find your material by name:

If you see multilayered.mt as the baseMaterial, you have to edit this with MLSetupBuilder. Fortunately, it's not very difficult.

If you'd rather use a textured material, see the Using a textured material sub-page.

Most materials in Cyberpunk use multilayered.mt as base material — this is how everything looks so good without 100 GB of extra textures. It's slightly more complex than editing textures because you need an extra tool, but you will love it once you're over the worst shock.

Step 4: Changing the material properties

You will (hopefully) see a material with three entries in values (order doesn't matter):

Key
Value (DepotPath)

base\characters\garment\citizen_casual\torso\t2_002_vest__puffy\textures\ml_t2_002_ma_vest__puffy_bwstripes.mlsetup

base\characters\garment\citizen_casual\torso\t2_002_vest__puffy\textures\ml_t2_002_ma_vest__puffy_default.mlmask

base\characters\garment\citizen_casual\torso\t2_002_vest__puffy\textures\t2_002_ma_vest__puffy_n01.xbm

Do you want to know more?

In this guide, we'll focus on editing the MultilayerSetup.

  • For a detailed explanation of those properties, see Multilayered Material Properties

  • If you want an explanation of the Multilayered shader, check here.

  • To learn more about MultilayerMasks (or how to make your own), check Textures: Custom .mlmask

  • For more intel on normal maps, check Self-made normal maps

Exporting the .mlsetup

First, add the .mlsetup to your project. You can either expand the CKeyValuePair and click the yellow button, or copy the depot path and use the Asset Browser.

  1. In the project explorer under Wolvenkit's archive folder, right-click on the mlsetup file This folder will only be visible in the "source" or "archive" tab of your project explorer

  2. Select "Convert to JSON"

Step 3: Editing the .mlsetup file

If you don't have MLSetupBuilder installed, you need to do that now. If you don't know how to use it, please check Using MLSB

  1. Optional: If you don't see an mlsetup.json in your project, switch the Project Explorer to source or raw.

  2. Right-click on the file and open it in MLSetupBuilder.

Optional: by hand

Open up MlSetupBuilder and load your .mlsetup.json file.

If you select WolvenKit's "Open in File Explorer" option, you can copy the path from the explorer's address bar and paste it into the MlSetupBuilder's address bar.

For a documentation of multilayer properties, see here. For a list of reference images, check Multilayered: Previews

  1. Draw the rest of the owl and edit the mlsetup.

  2. Export the file, overwriting the original .mlsetup.json

  3. Switch back to Wolvenkit

  4. Right-click on the .mlsetup.json and import it from json.

This is already working. You can pack the project and see it in action!

If it doesn't work, you need to install Material and Texture Override from Nexus.

Step 4: Being done

Congratulations! You modded an item! If that's all you wanted, you can now go and do whatever you want. You can even delete the mesh from your mod and pack only the .mlsetup!

Of course you have only changed an in-game texture, which may cause side effects — especially if other mods do the same. To change that, keep reading!

Step 5: Custompathing

Instead of changing an in-game file, you can also replace it with your own.

  1. Rename your file to something nobody else will touch, e.g. manavortex\mlsetups\my_custom_vest_appearance.mlsetup

  2. Copy the new relative path (right-click), and update your mesh:

Keep your folder and file names unique! If you have two mods adding a file at the same location, the second one will be unable to overwrite it and will use the first mod's file. That is, unless your mods are in REDmod format, which will be loaded even later and in order of their folder names.

Understood? No? That's fine. Just keep it unique. :D

Step 6: Renaming materials

You can rename a material by changing the "name" property inside the CMeshMaterialEntry in the materials array:

As of Wolvenkit 8.15, chunkmaterials will not auto-update, but you can use Search and Replace from the Context Menu to rename everything at once.

Step 6 (optional): adding new materials

To add a new material to a mesh, you can simply right-click on the materials array:

Consider converting your mod to use ArchiveXL: Patching appearancesfor much better compatibility and smaller mod size!

By hand

First, create a new entry in MaterialEntries by duplicating the latest item as a new entry:

Change its name to something unique.

Now, add an entry in the localMaterialBuffer.materials (or preloadLocalMaterialInstances):

The new material will have the name you defined in the CMeshMaterialEntry in the previous step.

You can now use your new material just like the regular, old materials.

Using a textured material

How to use a PBR material in Cyberpunk

Summary

Published: Jun 29 2022 by manavortex Last documented edit: Jun 29 by manavortex

This guide will teach you how to use a textured (also called PBR, which is a subtype of textured and will work) material in Cyberpunk. It is a part of Changing materials, colors and textures — if you are missing information, check the parent page.

Prerequisite

You have a CMaterialInstance that can use your textured material.

If you don't have one yet, follow the steps under Changing materials, colors and textures, or skip to Finding example material configurations and copy the entire material.

The textures material

The default textured material in Cyberpunk can be found under

engine\materials\metal_base.remt

By setting it as the baseMaterial, you're telling your item to load anything you configure under the values array.

Which properties can I use?

metal_base's full properties are documented under Textured (PBR) material properties. For a full list with explanations, see Material properties

Some of the most common properties for metal_base are:

Name
Type
Description

BaseColor

Texture

The base texture of your item

BaseColorScale

Vector4 / Color

If you re-select it after setting the name, Wolvenkit will show you a colour editor. This tint will be applied over your BaseColor for easy creation of variants!

Metalness

Texture

How metallic/shiny your material is

Roughness

Texture

How shiny/rough your material is

Normal

Texture

Path to your normal (bump) map texture

AlphaThreshold

Scalar (number)

Transparency threshold. Only works if the material IsMasked

Emissive

Texture

Texture for glow (with transparency andIsMasked or black/white, you can control which parts of the item glow)

EmissiveEV

Scalar (number)

Brightness of the glow. 3 is a good neon lamp, 6 might cause loss of vision, 12 will kill vampires immediately

EmissiveColor

Color

What it says. This defaults to white.

LayerTile

Scalar (number)

Seamless tiling factor

But I have a texture for...

Tough luck, this is the only textured shader we have. Time to get converting :)

Finding example material configurations

Search for metal_base in your asset browser:

engine\materials\metal_base.remt

Right-click on the entry, and select "find files using this". That will get you every base item with a textured material.

With what you now know, you can dig through their material instances and find example parameters.