ELI5: Validate Functionality
To make sure the modding tools were setup correctly, you will use the below steps to create a very basic color swap mod.
Section Brief
This section is about validating the modding tools and potentially building your first mod.
Learning objectives:
Understand how file types relate to each other,
Identify assets with clothes in the game,
Create and add assets to projects,
Searching the Asset Browser,
Understand the Project Explorer,
Review log for activity,
Understand the purpose of the Archive folders versus Raw folders,
Look at assets in File Editor,
Convert to-and-from JSON files,
Opening files from the Asset Browser to plugins,
Use the Import/Export tool,
Install a REDmod type of mod,
Look at installed mods in WolvenKit Mod Manager.
Overview steps
Use the name of the game item to find the asset files in WolvenKit,
Find all the asset files for the item,,
Create the GLB and DDS file for MlSetupBuilder models,
Open an asset in MlSetupBuilder and change its color from green to orange,
Import the edited asset back into your project,
Install the mod,
Party like it’s 2077 in your new orange tank.
Some of the steps below are unnecessary, but it's important to see how:
An in-game item is used to find the ENT file,
The ENT file is used to find the APP file,
The APP file is used to find the MESH file,
The MESH file is used to find the MLMASK and MLSETUP files,
The MLSETUP file is used to find the MLTEMPLATE file,
MLMASK file is used to find the DDS files,
DDS file is used to find the XBM file.
Understanding this topology will help with your future mod development.
These steps get confusing. Just remember that we’re using the entity file tshirt_08_old_02_w.ent to find the material layer file t1_080__leather_croc.mlsetup
Steps
To make sure you do not have any mod conflicts, please uninstall all Cyberpunk mods except for Material and Texture Override. This can normally be done by disabling the mods in Vortex or whatever mod managing application you use for your normal gameplay.

Launch Cyberpunk 2077 and either load an existing woman character, or start a new one if you have to. If you start a new game, then you'll have to play up to the scav hunt with Jackie before you can swap your clothes.
Once you reach a point in the game when you can change your clothes, run the Cyber Engine Tweaks (CET) command “Game.AddToInventory("Items.TShirt_08_old_02",1)”. This will load Judy’s Tank in your torso inventory.
Wear the shirt, take a screenshot, save the game, and then exit the game. This screenshot will be your reference to compare against when you have made the edit.

The name of the shirt is Secondhand Knotted Tank and it’s an Inner Torso item
Navigate to Fandom’s Cyberpunk clothing page and find the asset name for Judy’s tank. Since we know the item is an inner torso shirt, please add #Inner_Torso to the end of the URL. This convention works for all other items as well. If we want to find V’s Pants then you would add #Legs to the end of the URL. If you’re looking for blades, use Fandom’s menu to navigate to the weapons section Gameplay > Items > Weapons and then add #Blade to the end of the URL. But in this case, we’re looking for Judy’s shirt.
https://cyberpunk.fandom.com/wiki/Cyberpunk_2077_Clothing#Inner_Torso


Launch WolvenKit and Create a new WolvenKit mod project: Project Name:
judys_orange_tankCreation Location asC:\Cyberpunk2077Mod\Projects
In the menu bar click on View and click on Reset Layout to make sure your screen matches the screenshots in this guide.

Click on the Asset Browser and search for the asset name we found on Fandom. Start by searching for the entire name
tshirt_08_old_02, then start deleting characters from the end of the name until the entity (ENT) file shows up.
Right click the
t1_tshirt_08.entfile and open the file without adding it to your project. Notice that the file opens in the File Editor and is not listed in the Project Explorer.
In the File Editor, expand appearance and locate the full asset name we found on the Fandom website. Notice that in the appearances array, the name ends in “w” which stands for woman (aka “wa” which stands for woman average). Cyberpunk uses postfixes m, ma, mb, mf, w, wa, wb, and wf to describe the gender of the asset and the body type it goes to. A is average, and b and f are synonymous for big/fat. There are other postfixes, but that’s the general concept.

In the File Editor, expand appearance 7 for
tshirt_08_old_02_w. Click on the blue button forapperanceResourceto open the APP file without adding it to the project.
Now that the file editor has switched to the .app file, expand the
appearancesarray. The asset name we got from the Fandom website is tshirt_08_old_02, which is a mashup of its entity name tshirt_08 and one of its appearance names old_02. We want the woman version of that appearance, so we're looking for old_02_w. Expand the old_02_w appearance and expand its components. The component name will saytank__judy. The meshAppearance has a value of leather_croc, and the mesh file is listed right next to it. That mesh file is used to create the GLB file that MlSetupBuilder uses to generate the tank's 3D model. Click on the yellow button for the mesh file to add it to your project, only files added to your project will show up in the Import/Export Tool.
In Project Explorer, double-click on the file, or hover your mouse cursor over the mesh file and click on the blue button to open the file in File Editor. Expand the arrays
localMaterialBuffer>Materials>leather_croc>values>0and1.[0]contains the .mlsetup file, which you'll import into MlSetupBuilder to change Judy's Tank from green to orange. Click on the yellow button for the MLSETUP file to add it to your project.
Right click the mlsetup file.

Right-click on the file, and select the first menu entry, Open in MlSetupBuilde

Right-click the json file in your raw folder, and hold down the SHIFT key to activate the contextual menu entries, then select "Copy absolute path":

You can now click into your Windows Explorer's task bar, select or delete everything, (Hotkey: Ctrl+A), and paste the copied path (Hotkey: Ctrl+V):

Over in MlSetuipBuilder (MLSB), close the developer tool, then savagely and with mercy throw more coffee at Neurolinked#4973 (the author of this guide is not Neurolinked), and then click anywhere off the Welcome popup to get into the building tool.

On the left side, you will see a panel with the MLSetup preview. Click the "Import" button — important, do not skip this step:

Notice that the material layers loaded but not the model. Click on Library to bring up the frame with the available models. On newer versions of MLSB, you will find the Models Library button at the top.

Search for the mesh name from step 13 in MLSB's model library and select it. You will see an error
The searched file does not exist. Close that error by pressing OK - MLSB will now ask you if you want to uncook the file. Click "Yes":

This can take a minute or two. Click on the console icon to keep an eye on the log - it should tell you when you're good to go.
Back in MlSetupBuilder, click the refresh button at the bottom of the screen. The model should load without errors and the multilayers display on the right.
Attention: As of MLSetupBuilder 1.6.8, the model will only highlight the affected region. A full material preview is planned for 1.6.9.

Let's change material first: select the leather_croc layer and then click the Material dropdown. Type spandex into the search box and select
spandex_clean_02_30material.Attention: A MultilayerMask file supports 20 layers; computers start counting at 0 rather than 1. The number in the name describes the corresponding mask layer.

Normals, Metal Out, Rough In and Rough Out represent how light interacts with the material surface:

The hex values in the dropdown represent lookup keys - the important value is in the brackets behind it Normals: Intensity of the normal map
Metal Out: Defines the outside of the material as diffuse with a white dielectric coating (0.0) or metallic (1.0)
Rough Inside/Rough Outside: Sets the roughness of the surface, where 0.0 is completely smooth, and 1.0 is completely rough (wholly diffuse).
Set the Normals to
1.66, Metal and Rough Inside to null, and Rough Outside to0.3333,0.6666.Scroll down the color grid, select orange, and then click the Apply Edits button. Notice that the wording in the layer changes to match your selections.
Attention: Set Opacity to 1.0 (100% visible) — the first layer does not allow transparency.

With the layer updated, click on
Export(Hotkey:Ctrl+E). The dialogue should already show you the exported file; overwrite it.When you click on Save, click on Yes to replace the existing file. There is no need to save a copy of the original, because you can repeat step 16 to re-create it.

Back in WolvenKit, right click on the JSON file and select the second entry to convert it back:

Our MLSetup is now imported (you can check the log view to sere a success message).
We will now install our mod. For that purpose, we'll use the Install and Launch button:

You can also pack your mod as REDmod. By default, that button is hidden from the toolbar — you can re-enable it in settings. As pretty much everyone defaults to the vanilla format, we're going to do the same.
This will do the following things:
pack your mod to the packed folder in your project directory
install the created .archive to
Cyberpunk 2077\archive\pc\modlaunch the game for you.
Load your saved game from step 4. How you launch the game doesn’t matter because the mod is deployed directly to the game’s install directory. Enter your inventory and you’ll notice that the tank you created in step 3 changed from green leather to orange spandex.

Congratulations! You have now validated that WolvenKit is deployed and setup correctly on your computer. Happy modding!
Last updated
Was this helpful?
