Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This is the landing page for guides on how to change people. Here you can learn how to modify or create custom NPCs.
Please check the link tree in the menu on the left for details.
If you want to know where to find a specific NPC, check NPCs and their files in the References, lists and overviews section.
You can find here a list of overlays names for the KS_UV and VTK frameworks.
Confused about the difference? Check Texture Frameworks for Player V
You already have the body mod installed, so you can simply get the files from your by using the .
Depending on the supported framework, you need to name your WolvenKit project like this:
Framework | Prefix | Example name |
---|---|---|
The body file of KS_UV contain the Torso, Back, Legs and Arms parts The body file of VTK contain Torso, Back and Legs parts
Framework | Overlay name | gender/body part |
---|---|---|
Head : base\4k\common\overlays\wa_head_overlay_d01.xbm
Body : base\4k\common\overlays\fullbody_overlay_d01.xbm
Head: base\4k\common\overlays\wa_head_overlay_d01.xbm
Body: base\4k\common\overlays\ma_fullbody_overlay_d01.xbm
Head:
base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\textures\h0_001_pwa_c__basehead_overlay.xbm
Body :
base\v_textures\body\v_overlay.xbm
Arms :
base\characters\player\femme\body\arms\textures\femme_arm_left_01_overlay.xbm base\characters\player\femme\body\arms\textures\femme_arm_right_01_overlay.xbm
Body: base\v_textures\body\v_masc_overlay.xbm
Arms:
base\characters\player\masculine\body\arms\textures\masculine_arm_right_01_overlay.xbm base\characters\player\masculine\body\arms\textures\masculine_arm_left_01_overlay.xbm
How to make custom skin textures, tattoos textures, and scars textures.
Published: Feb 03 2024 by Last documented edit: June 14 2024 by LadyLea
This page collects information on making custom skins, tattoos and scars for V and NPCs.
Please check the nested pages in the Wiki's browser for more information, or click the "Next" button at the bottom of the page.
If you want to , you are more than welcome!
KS_UV
004
004_my_tattoo
VTK
00
00_my_tattoo
KS_UV
fullbody_overlay_d01
female body (see note above)
ma_fullbody_overlay_d01
male body (see note above)
wa_head_overlay_d01
female head
ma_head_overlay_d01
male head
VTK Femme
v_overlay
female body (see note above)
femme_arm_left_01_overlay
female left arm
femme_arm_right_01_overlay
female right arm
h0_001_pwa_c__basehead_overlay
female head
VTK Masc
v_masc_overlay
male body (see note above)
masculine_arm_left_01_overlay
male left arm
masculine_arm_right_01_overlay
male right arm
How to merge two or more existing tattoos
Published: Feb 03 2024 by , initial guide by Yggnire Last documented edit: 18 May 2024 by YoursTrulyBilly
This guide will teach you how to merge multiple tattoos into one.
For this example, we'll be merging two VTK tattoos from Belly Tattoos Pack and Low Back Tattoo Pack by Yggnire
If you are looking for the body layouts, check Texture Frameworks for Player V -> #texture-layouts
For a more detailed guide with illustrated steps, check How to create an overlay tattoo. You can use that guide for reference.
If you want additional information, check Texture Frameworks for Player V.
The guide is extremely detailed and has screenshots for each step!
The ability to read: mandatory, because I'm not gonna lie — this is gonna be difficult otherwise.
Knowing how to edit images: recommended, because this guide will not cover it. If you don't know it, the relevant section will tell you what to Google, though
The following two tattoo mods (kindly provided by Yggnire):
<1h for total noobs, <15 minutes if you know what you're doing.
To see which files you need to edit, check this: Overlay textures by framework.
Depending on the supported framework, you need to name your project like this:
It's best to rename each tattoo after adding to make it easier for you to know which is which!
In the asset browser, find v_overlay.xbm
inside the first .archive
file and add it to your project (right-click or double-click)
Re-name the file in your project to e.g. lowbacktattoo.xbm
Add v_overlay.xbm
from the second .archive
file to your project
Re-name the file in your project to e.g. skulltattoo.xbm
Add the file v_overlay.xbm
again — this will be your final overlay.xbm
If you want to merge into a clean template, check Merging existing tattoos: into a clean template.
You can now find the exported .png files in source\raw\base\v_textures\body
. Time to look at them.
If you don't have photoshop, you can use photopea.com in your browser for free!
Open lowbacktattoo.png
in Photoshop.
Drag-and-drop the second file (skulltattoo.png
) into your open tab.
Optional: If the pictures aren't the same size, use the W
: box at the top of the file to scale it up or down.
If your added file has been pasted as a smart object, rasterize it by right-clicking on the layer in the Layers palette
Merge the layer down on the base layer
We have one last thing to do before we can import our file back, and that is fixing the transparency. Don't worry, we'll do it step-by-step:
Find the Channels
palette. It should be right below your Layers palette, but if it's not, you might have to turn it on via Window -> Channels
Select File -> Export -> export as png
Overwrite v_overlay.png
Find and select v_overlay.png
In the sidebar, make sure that PremultiplyAlpha
is checked
Import!
Check the files in Wolvenkit. They should have changed.
Delete all files that aren't v_overlay.xbm
, since we don't need them anymore.
Make sure that no other tattoo mods are installed — or there's a chance that you'll get to see those, rather than your new edit.
This page will explain in detail what the current texture frameworks are, what are the difference between them and which body mods utilizes them.
Published: Feb 03 2024 by
Overhaul of information & addition of reference pictures: June 16 2024 by LadyLea Last documented edit: June 26 2024 by AllKnowingLion
It is highly recommended to fully read the official description pages of the following Texture Frameworks and the respective Body Mods on Nexus Mods - as further information can be found and also to keep track of any updates.
Since CDPR utilizes the same texture paths and texture files for V and NPCs, Texture Frameworks are used to give V separate texture files from NPCs, allowing you to edit V’s skin or tattoos without your edit affecting for example, Judy, River, or crowd NPCs.
For clarity's sake, below is also documented V's original/vanilla texture layouts and paths, that are shared with NPCs. In addition to what was stated earlier, the options to create desired looks is very limited using this vanilla way.
The original texture UV Layouts CDPR utilizes for Player V:
The earliest initial texture framework by Halvkyrie for Player Female V. This mod makes the player arms use separate textures, allowing for different custom tattoos on each arm without the former limitation of mirroring.
Unique Arms utilizes the following texture UV Layouts for Arms:
Also known as "UV" or "KS-UV" was created by Zosoab70 and AllKnowingLion, and released by their team account, "KnowSo". The UV Framework was the first full body and arm texture framework. The base version is designed for players to be able to make their character as unique as they'd like while also allowing for modders to easily create their textures for the body and arms from a single file instead of having to use multiple. Following the 4.1 update, however, modders will have the option to utilize alternate layouts for the arms that are formatted more closely to the vanilla structuring.
(F) Solo Original
(F) Solo Small
(F) Solo Ultimate
(F) Solo Arms
(F) Solo 2.0 (Unreleased)
(F) Paragon Body (Discord Exclusive release on KS Discord server)
(F) Songbird Body
(F) Vanilla Plus
(F) Vanilla High Feet (Alternate UV Framework base body file)
(F) Freyja
(M) Adonis
(M) Atlas
(M) Titan Body (Unreleased)
Following the 4.0 Update, the UV Framework is compatible with ALL body mods, regardless of framework.
UV Texture Framework's base version utilizes the following Full-Body texture layouts:
The texture files for UV are separated by body gender. UV Texture Framework resources can be found on nexus - Miscellaneous files Section.
A detailed "how to" guide can be found in the UV Texture Framework resources files, along with .PNG files for the uv layouts for the body and arms. For further questions, troubleshooting, and community-sourced resources go to the KS Discord server.
Also known as "VTK" created by xBaebsae, is a framework that focuses on giving HD Skin textures and Tattoo textures for the body, feet, arms and head for Player V. It integrates Halvkyrie's Unique Arms paths, and its structure expands for more customizability.
(F) Vanilla HD
(F) Vanilla HD - VTK Big Breasts
(F) Vanilla HD - VTK Small Breasts
(F) Hyst's Realistic Butt (RB)
(F) Hyst's Enhanced Big Breasts (EBB)
(F) Hyst's Enhanced Big Breasts + Realistic Butt (EBBRB)
(F) Hyst's Enhanced Big Breasts: Push Up (EBBP)
(F) Hyst's Enhanced Big Breasts: Push Up + Realistic Butt (EBBPRB)
(F) Hyst's Enhanced Vanilla Body (EVB)
(F) Hyst's Angel Body
(M) Gymfiend
Texture Layouts
VTK FemV utilizes the following texture UV Layouts for Arms:
VTK FemV utilizes the following texture UV Layouts for the Body:
Texture Layouts
VTK Gymfiend utilizes the following texture UV Layouts for Arms:
VTK Gymfiend utilizes the following texture UV Layouts for the Body:
The texture files for VTK are separated by body gender. VTK resources can be found on nexus - Miscellaneous files Section.
Further resources are available if one desires to convert textures for Female V in VTK format, a detailed guide can be found here.
Resources for texture conversion concerning Gymfiend - Male V, can be found at the Miscellaneous files Section.
Primarily, the basic difference is the UV layout of the body/arm textures between the base version of the UV Framework, and VTK. Beyond that other features include:
An example of the UV Layout differences in-game:
This guide will teach you how to create tattoo on modded body, KS_UV and VTK
Published: Apr 11 2024 by Yggnire, initial guide by Yggnire Last documented edit: Aug 16 2024 by
This guide will teach you how to create your own overlay tattoo for either of the texture frameworks, or how to convert a tattoo for a different body mod.
If you are looking for the body layouts, check Texture Frameworks for Player V -> #texture-layouts
The ability to read: mandatory, because I'm not gonna lie — this is gonna be difficult otherwise. Knowing how to use a drawing software : recommended, because this guide will not cover it. Knowing how to use WolvenKit.
<5 minutes to set up everything 5 minutes - as long as it takes you to create a tattoo that you like <5 minutes for the import/install
Tattoo mods are load order dependent. You don't need to read the load order page, just make sure to name your mod project correctly.
You have two ways of getting the correct files:
download the modders' resources from the framework's page
add the files to your project from the framework you have already installed
The tutorial will walk you through the second:
Find the name of the texture that you want to edit on the Overlay textures by framework page.
Add the files to your project by double-clicking on them.
If you are trying to convert a tattoo, you need to use the body texture from the framework you want to convert into
The tattoo frameworks will have the base body texture in the same folder as the overlay files.
Right-click on your overlay file in Wolvenkit's Project Browser
Select Copy Relative Path from the context menu
Delete the file name from the path: you just want to search for the folder
Add > .xbm
to the end of your search (with a space!) to limit your search to texture files.
Hit Enter and browse through the files inside the folder: one of them will be the base body texture.
Use the Export Tool to export the .xbm
files to .png
.
Since tattoos are independent from body complexion mods, delete the body texture xbm if you included it as a reference – you're only editing overlays.
You can right-click on one of the png files to open it in the Windows Explorer
It's image editing time! This guide will only give you a rough outline, but make sure to read the red box below.
You need to create an overlay, meaning: a transparent layer with only your tattoo that is projected on top of the body texture.
Do not draw on the body texture.
You can use an image editing software of your choice, as long as it supports alpha transparency. If you don't have one, use photopea.com – it's free and in your browser!
Optional: Import the body texture as reference
Import the overlay texture that you want to edit
Many people default to 4k or even 8k textures, but consider: this is madness! How often do you press your nose against your V on a 4k monitor?
2k (2048x2048) is almost always enough.
If you insist on making high-resolution textures, please remember people with older GPUs (who suffer from a lack of VRAM), and offer them as an optional download.
Create a new layer above the skin texture and start drawing your tattoo :
You can now draw on the transparent layer (again, do not draw on the body texture).
If you are converting a tattoo, you will have move individual parts around instead.
If you split off parts on a different layer, you don't need to worry about mistakes - you can always merge layers later!
When your tattoo is complete, uncheck the eye on the skin layer
Your project should look like this: Your tattoo and no background
Let's export the tattoo. A detailed tutorial can be found under #editing-a-texture.
It's important that you overwrite the exact file that you exported from Wolvenkit (the .png
file in your project's raw folder from step 3).
Now you need to import your file back into Wolvenkit. You have two ways to do that:
Overwrite the png that you created in step 3.1
Open the Import Tool and import your png
You're done
Save your new tattoo anywhere on your PC as a .png
file.
In Wolvenkit, open the .xbm file by either double-clicking the file, or clicking the blue icon
Switch to the "Texture Preview" tab
Right click on it and select Replace Texture
. Choose the file you have saved.
Optional: If you want to merge your tattoos into a clean template, check this page.
Published: 18 May 2024 by YoursTrulyBilly Last documented edit: 18 May 2024 by YoursTrulyBilly
This is an optional sub-page for the guide. Only follow the steps here if you want to merge into a clean template — otherwise, you can go on!
We will merge both of these tattoos into the file that's loaded by the VTK framework. To get that, we'll download the Modding resources from xBaebSae's .
For a list of which frameworks overwrite which files, you can check
In the downloaded zip file, open the subfolder xBaebsae_VanillaHD_Body
Extract the base
folder inside into your Wolvenkit project, subfolder source\archive
:
You only need v_textures\body
, so you can delete the folder characters
.
The file v_body_d.xbm
contains the naked body texture. You can use that as a reference!
Now, rename v_overlay.xbm
(for example to v_overlay
_0.
xbm
)
Tattoo frameworks work by loading certain overlays on top of the regular skin texture. Due to technical limitations, these overlays must be hardcoded.
You want to create a new overlay with the merged textures from both of your .archive
mods. Since all these files will change the same .xbm file, we're creating a backup here.
This guide will show you how to install the custom tattoo replacer.
This guide was originally written by Halk and imported with their permission. You can find the original .
This is just to import a custom tattoo into the game, in order to actually make your tattoo, you can use and follow the guide on Nexus as it’s still pretty relevant and handy on how to make your first replacers.
This will help you from Step 6 and forward from NCT’s guide.
After your tattoo is where you want it, and you’ve turned off all the other layers, flip your file vertically - do not just rotate, you gotta use the Flip Canvas Vertical option. Save your file as a .png on a transparent background. From: To:
Open WKit and , name it as you want your mod’s .archive to look like in the mod folder. Or not, I’m not your dad. Do not save your WKit projects in the Cyberpunk folder.
Your Project Explorer tab will look different, this is just how I like to organize my tattoo making by putting all my files in the same place. (Anything you put in the RAW folder will not make it to the game mod!) I’m replacing a Masc V body tattoo, so I need the original .xbm file of it to make my import. This is where the “Help with file Names” document from NCT’s guide comes handy. I’m replacing the Tattoo 1 in the Character Creator. The guide tells me that the name of its file is tattoo_body__customisation_01. Since it’s for Masc V, I need the _d01 variant. As you can see, I already have the file I need extracted and ready to use down there. Assuming you don’t, head over to the Asset Browser and look for the file you need. Again, refer to the document in NCT’s guide. Double click to add it to your project. Your Project Explorer tab will now look like this!
Once everything is correctly set up, just click Install on the upper menu so it packs and installs your replacement to the game, then test it! (I am not sure if you need to do anything else to use it as a REDmod, but I don’t use REDmod so I won’t guarantee it works if you just use “Install as REDmod”.)
This guide will teach you how to create scars on modded body KS_UV and VTK
Published: Feb 29 2024 by Yggnire, initial guide by Yggnire Last documented edit: June 15 2024 by LadyLea
The ability to read: mandatory, because I'm not gonna lie — this is gonna be difficult otherwise. Knowing how to use a drawing software : recommended, because this guide will not cover it.
<5 minutes to set up everything 5 minutes - s long as it takes you to create a scar that you like <5 minutes for the import/install
If you want to know how to make scars, I advise you to take a look at the tutorial
KS_UV project name should be 005_modname
VTK project name should be 000_modname
For a scar, you need a diffuse, normal, and roughness map.
Add them to your project by double-clicking on the entries in the Asset Browser
Save the files in a new folder.
Do this for all of the files. If you install the mod, you should now be able to see your new scar!
Create scars by replacing vanilla one
Published: Feb 05 2024 by Yggnire, initial guide by Yggnire Last documented edit: Feb 05 2024 by Yggnire
This guide will teach you how to create scars by replacing vanilla one. In this guide, we'll replace #4 in the Character Customization.
The ability to read: mandatory, because I'm not gonna lie — this is gonna be difficult otherwise. Knowing how to use a drawing software : recommended, because this guide will not cover it.
<5 minutes to set up everything 5 minutes - s long as it takes you to create a scar that you like <5 minutes for the import/install
Create a and give it a name that you can remember. Since we're replacing a basegame asset, make sure that it starts with basegame
: basegame_my_scars_replacer
To create scars replacer, you need the following files (they're shared for both body genders) from this folder:
Add the files to your project by double-clicking
Let's start by creating the scar's bumpmap. Open pma__basehead_scars_n01.png
(the yellow-greenish one).
The image should look like this :
The vanilla size are 1024x1024, I have upscaled mine to 4096x4096, but that's personal taste.
You will need to erase one of the pre-existing scars. Use the pipette tools and take the same color as the background.
Add a new layer and paint over this part of the image.
By creating a new layer, you will preserve the original edit and can toggle your changes on and off in the layers palette.
Once it’s done, add a new layer and start to draw your scar, I recommend you to use a brush similar to wet watercolor to create « natural scars » if you want to create cyberware scar, use a more consistent brush .
The scar replaced spans the entire face, so this is the best scar to replace. To see which parts are affected, you can drag the _d texture on your mesh and turn its opacity to 50%:
To create your scar, take a basic red color, and draw your scar on the new layer you created in Step 2.
Copy the entire layer (Hotkey: Ctrl+A
, Ctrl+C
)
In the Layers Palette, select the red channel and paste your scar. The image will now be black and white.
In the Layers Palette, select all three channels (or RGB) to see colours again.
Now you need to turn your image green. There are various ways to do that, for example Image -> Adjustments -> Hue/Saturation.
Copy the green scar and paste it into the green channel.
Use CTRL + T
to select it and shifted the scar a few pixels to the right (you can use the arrow keys). It should now look like this:
Now that you have a scar, open h0_000_pma__basehead_scars_m01
(the black-and-white one, your metallic map).
On the yellow image, switch to the red channel again and copy everything (Hotkey: Ctrl+A
, Ctrl+C
)
Paste it into the metallic image (Hotkey: Ctrl+V
).
It should now be on another layer. If not, undo the paste (Hotkey: Ctrl+Z
), create a new layer in the layer palette, and paste it again.
The pasted scar should automatically be black and white. If not, change that via the Edit -> Image -> Greyscale option.
Invert the image (Hotkey: Ctrl+I
) so that it looks like the picture below:
Now change the contrast of the formerly red channel so that the scar is black (Image -> Adjustments -> Brightness/Contrast).
Repeat the process with the green channel from the normal map.
Now change the brightness of the formerly green channel to a light grey Image -> Adjustments -> Brightness/Contrast).
Set the blending mode of the green scar layer to Difference
. This will give you an inverted image, but that's fine.
Now, merge the two layers (hotkey: Ctrl+E
)
Invert it (Hotkey: Ctrl+I
)
Change the tint of the RED scar to black and the GREEN one to light grey.
Do this for the others png files with appropriate colors.
Replace in your wolvenkit project all the png with the new one, « Import » and then « Install » and enjoy your new scar !
Go to Character Customization and select the scar 4.
Here is the issue that I have had to deal with and you will certainly meet it.
In-game, this kind of issue can happen , nose textures cut and strange square shadow on the neck.
To remedy this problem, create a new project and obtain the 4 file types as seen above and replace them with those that you modified, export, import, install and that's it, the problem should no longer be present. If the problem persists, start the procedure again.
This tuto will teach you how do a scar in the software of your choice. I will give you some basic idea on how to create scar,
Published: Feb 29 2024 by Yggnire, initial guide by Yggnire Last documented edit: Feb 29 2024 by Yggnire
I will give you some basic idea on how to create scar, I encourage you to use these basics and explore as many possibilities as possible. Don't hold on to what I'm going to explain to you.
Have fun.
The ability to read: mandatory, because I'm not gonna lie — this is gonna be difficult otherwise. Knowing how to use a drawing software : recommended, because this guide will not cover it.
- as long as it takes you to create a scar that you like
I use the software CLIP STUDIO PAINT but you can do it with the one you want.
I'm gonna do the scar on the normal map (bumpmap) first.
I take a RED color like this :
I use a wet watercolors brush for the natural scar
Do the base of your scar :
Then pimp it , you can erase or add some pieces to your scar with your brush
Now copy paste your scar and change the color to GREEN, place the layer below the red one and move it a few pixels to the side you want.
Now copy paste your scar on the skin textures
Use the Pipette tools and take the skin color, use the "Lock Transparent Pixels" parameters OR you can use CTRL+U
to modify the color as you wish, do the same for the GREEN layer, personally I use a lighter color for the red layer and a darker color for the green layer
Good job, you have your first scar ! Now do magic with wkit and go see your scar in-game
In-game appearance
In this part of the tuto I will show you a different way to do a scars (with better in-game results)
To begin you will need the diffuse map :
Draw your scar : I know this is not a simple scar if I have done this one, it's to show you what we can do with baked normal map.
Save your scar as a .PNG.
Download it and when you are in , click on "Open photograph from file".
Choose your png file of the diffuse map.
Choose a shape, personally I will pick the right one
Make those sliders slide the way you want and then "save normals to file"
Now you will need to go on WolvenKit, replace with "Replace Texture" your normal map with the new one you just baked.
The image should turn green, if not, go in the "import tab" and select "TEXG_Multilayer_Normal"
OR "TEXG_Generic_Normal" and import it, it should fix the problem.
You can now "Save" the image
You can now open the saved file with your drawing software, and select the scar.
Copy and paste it on the normal map of the game
You can see that the copy paste isn't smooth and have created rough edges, you will have to erase them with a smooth brushe.
When you are done with this part, you can save your file as a .PNG, keep it for later.
Now that the diffuse and the normal map are done , there remains one map to do, the roughness map.
Note that the roughness map is not really necessary for creating the scar BUT it brings more realism to it.
With a roughness map, you can give differents textures just by changing the colors you are using, see the examples :
You will have to copy the scar made on the diffuse map and paste it on the roughness map.
Now you have to change the colors to make them match with their elements
You can now replace all the textures by your textures in Wkit. Export and Import and then see the result in-game.
This is the guide for you if you would like to add custom hairstyles into the game.
Published: March 15 2024 by D.I.S.C.O Last documented update: March 18 2024 by
This guide will teach you how to
port a hair mesh from a different game to Cyberpunk
add physics ("dangle bones") to parts of it
use the UUH4V framework to avoid conflict with NPCS
For an overview of existing hair files and -colours, check
For a more detailed guide on hair physics, check or
You can find a video tutorial by eagul on youtube:
You first need to understand the files you need for hair to work in CP2077. There are three type of files: the Mesh, the Texture and the Physics.
Begin by importing the player’s head. This will allow you to adjust your mesh more accurately and to avoid clipping.
Import your hairstyle mesh. This tutorial is using the Festive Hunter’s hairstyle from Nier Reincarnation, since a future version of this tutorial will also cover the addition of ornaments to your hair
The modded hair will come with its own armature (bones), modifiers and materials. Delete all those, since you don't need them:
Bones: The "armature" object in the Outliner (top right panel)
Vertex groups: In the "data" tab (green triangle) under object properties (bottom right panel)
Modifiers: In the "modifiers" tab (orange wrench)
Reposition and refit the hairstyle to fit V's head.
Be sure to check around the edges of the hairstyle to avoid clippings with the head.
Unlike clothes, most head meshes only have one bone: Head
. More complex designs and physics will involve more bones, but we'll stick to the easy version for now.
Select your hair
Switch to Edit mode (Hotkey: Tab
)
Select all vertices (Hotkey: A
)
In the Data
tab of the Properties panel (green triangle), create the Head
entry (see screenshot below)
Click on Assign
If you were to add this mesh in-game, it would stay on your character's head like a helmet.
This will blow the scale of this guide and you can ignore it for now. Once you're done with your hair, come back here and look at the links below if your hair mesh includes ornaments.
Remember when I said “like a helmet”? That also means your hair will not have any physics. Some short hair won’t have physics to wave around to begin with, but if you want your bangs and ponytails to wave when you open the character editor, get ready for some trial and error.
First of all, understand which part of your hair you want to have physics first, and separate them into a submesh:
In edit mode, select the part that you want to split off (You can use "Select Linked", Hotkey Ctrl+L
, to speed this up)
Once you're content with your selection, separate
the selection into a new submesh (Hotkey: P
-> S
)
Repeat the previous step on the submeshes that you don’t want to move. In this case, only the bangs will move:
You always have to do this, even if you want to add your hair via ArchiveXL as a wig.
Search for a vanilla hairstyle from the game that resembles your physics part the most, and export them with Wolvenkit.
What you want to look for is how much the vanilla hairstyle overlaps with your mod hairstyle. The closer their shape resembles, the better. In this case, I find hairstyle 05 to be the most suitable, so I export that mesh, as well as their rig and animgraph.
If you want your hair to have physics, be sure to include the .animgraph
and .rig
into the project. They are the physic components for the hair.
I've done this enough time to have some experience regarding which mesh should I use for weight transfer. For Front and Right Bang, use components from hh_081_wa__buns_02
, for Left Bangs, use hh_040_wa__pixie_bob
, for hair on shoulder, use hh_118_wa__gillean
or hh_115_wa__alanah
, for ponytails use hh_083_wa__ponytail_01
.
-Parent the hair meshes under the vanilla mesh’s armature, as well as add the armature modifier.
While you can put your ornaments and hairstyle together, I recommend keeping them separate. You can import any head item and use its armature instead. This is my personal preference to keep things tidy, to avoid confusion when we handle hair’s material and texture later. It’s best that you keep the hair and ornament in two separate mesh files.
-And we are now done with the Mesh Section, but we can’t export it just yet. We need to make sure that our hair will actually show up as hair in the game, so we shall move on to the next part.
If you are porting a hairstyle from another game, it is highly recommended that you just adapt the UV of your hairstyle to fit CP2077’s shared hair texture instead of using the original texture. This will allow your hair to use the game’s hair color system, as well as saving you a lot of hassle when handling the materials.
Excluding beards, caps and private hairs, CP2077 has 5 types of hair textures. Export them from Wkit and add them into Blender so that you can use it as reference for UV editing.
Curly hair strands - base\characters\common\hair\textures\hh_curly01_alpha01_r.xbm
Dreadlocks - base\characters\common\hair\textures\hh_dread01_alpha01_r.xbm
Kinky hair strands - base\characters\common\hair\textures\hh_kinky01_alpha01_r.xbm
Long straight strands - base\characters\common\hair\textures\hh_long01_alpha01_r.xbm
Short straight strands - base\characters\common\hair\textures\hh_short01_alpha01_r.xbm
Most hairstyles I see use long straight strands, but don’t be afraid to use other types of hair and experiment with them.
Keep in mind that no matter what type you choose, you will always need three accompanying texture files for the hair texture to work properly. These files are gradient
, id
and flow
. You can find them by replacing alpha
in the file name with any of the terms above.
-Open UV Editing and edit the UV to fit the white parts of the alpha texture. The black parts of the alpha map are where the mesh will be transparent, thus creating the image of strands of hair. Keep in mind that the hair root is pointing upwards, while the hair tip is pointing downwards. The direction is important for gradient handling. Scale and rotate the UV to fit the alpha.
This is how your UV should ideally look like. Everything is where the alpha will work.
You can preview how your hair will look in Blender by creating a material and importing all the textures mentioned above. This part is optional, but it's nice to check for gaps before you export.
-Create a material and assign it on your mesh before opening the Shading tab.
-Connect alpha texture to Alpha slot of Principled BDSF.
-Create a mix node, set to color and multiply. Connect id texture to slot A and gradient texture to slot B, and connect the output of the multiply node to a Gamma node and set the value to 2.4. Connect the output of the Gamma node to Base Color of Principled BDSF.
-Connect flow texture to Rebuild Normal Z to Normal Map to Tangent of Principled BDSF.
-Turn on Viewport Shading.
This is what your mesh should look like. The black and white represents how hair color gradients will show itself on your hairstyle. Black is the root color., white is the tip color.
-Now you can export your mesh.
Create a project and copy the framework file from UUH4V Framework. I want to replace FemV hairstyle 33, so I chose file 33 for FemV.
Remember this? Copy and replace one of the sets of three files. For example, you need to rename your imported mesh to fhair33_pt1.mesh
. If that’s the case, you need to rename the .animgraph
and .rig
to fhair33_pt1.animgraph
and fhair33_pt1.rig
. Move them into the uuh4v_framework folder and replace the original file.. Having the wrong names will cause your mesh to morph weirdly.
-Open your mesh to check the materials. You want the materials to actually be what you want. Unless you have multiple submeshes, only the first entry in the material matters.
I want to use cards
, not cards_top
. I can manually change every instance of cards_top
in the appearance, or find another mesh that uses cards in the first entry and copy the materials over instead. Since I joined my meshes into one mesh, only the first material entry matters for every appearance. This is the easy way to do it, because there are 35 appearances for 35 hair colors that you need to check over and edit. Copying the materials from another working hairstyle is the simplest way to do it.
Now you can install the mod and see how it looks in the game!
Oof. The color looks about right, but…
If you’re wondering why the hair is warping weirdly like that, it’s because of the physics. It is important to understand that the method taught in this tutorial is the easiest and fastest method, but also the most unreliable. Advanced modders can weight paint and edit rigs by themselves instead of relying on vanilla hair weights, but I know neither of those so I can’t teach you how. If you can’t get your hair physics to look right, it’s perfectly fine to leave it static instead. A good looking hairstyle is better than a glitchy wavy mess like this.
Static hair mesh, but no weird morphing.
Oh right, we got a hat, don’t we?
-Replace another mesh other than what you have for your hairstyle, and install the mod.
Tadaa! A simple hairstyle replacement with a fancy hat.
You have .
Framework | Prefix | Example name |
---|---|---|
If you don't know how to create a project, you can look it up on the .
Switch the tab to and find the two archives that you want to merge.
You'll have to add v_overlay.xbm
from inside these .archives . Since they'll overwrite each other, read on to find out how to do that.
Go to . You only need to export three of the files, but you can click Export All
:
If you can't see the files in the , switch it to either or , or just navigate your Windows Explorer to the folder.
Ctrl+click on the thumbnail in the layer palette. This will select everything, considering transparency.
At the bottom of the Channels palette, click the "Save selection as channel" icon. This will create "Alpha 1":
Return to WolvenKit, and open the
. Time to test!
And there you have it! Go in-game and admire your new tattoos!
Gender & Body part | Relative file path |
---|---|
Gender & Body part | Relative file path |
---|---|
Gender & Body part | Relative file path |
---|---|
Gender & Body part | Relative file path |
---|---|
UV Framework | VTK |
---|---|
Create a . Use the following naming schema per framework:
Turn on the
Use the to find the texture(s)
Paste the relative path into Wolvenkit's
Switch the project explorer to the to find the image files.
by clicking the green Play button in the toolbar. Time to go in-game and admire your new tattoo!
After you have the .xbm you need, replicate the EXACT SAME PATHING in the Raw folder. Put your edited .png there and rename it to match the .xbm of the tattoo you’re replacing. As such, for me, it’ll look like this:
Head over to the Import/Export Tool window and make sure you’re in the Import tab. Find the .png you just renamed, select it, then click “Process Selected”. If everything went right, you will get a toast message from WKit informing you of that, and the Log tab will also say that the process was done. Still, you can double click on the .xbm of the Archive in the File Explorer, then head over to Texture Preview and check if your tattoo imported correctly. If it did, it’ll be flipped back to the original orientation of the NCT guide you first worked on before flipping on Step 1.
Head to the page and find the correct files for your framework (VTK or KSUV).
Find them by navigating the to the path, or by using the
Use the to export them
In your Project Explorer's , find the png files and click on the folder icon next to one to show them in Windows Explorer.
Open all of them on a drawing software like photoshop, clip studio paint or
This part is explained in this tuto :
Check the corresponding step-by-step instructions here: ->
files name |
---|
You can find them by navigating the to the path above, or by using the .
Use the to export them
In your Project Explorer's , find the png files and click on the folder icon next to one to show them in Windows Explorer.
Open all of them on a drawing software like photoshop, clip studio paint or
It's time for the baking part, you will need a bump map converter, I use which is the best in my opinion I will teach you how to convert your diffuse map with Crazy Bump.
>= 8.13.0 (you should have it )
>= 4.0
the (most recent version)
(To avoid conflicts with spawned NPCs)
Use the to the correct mesh and .
body gender | mesh path |
---|
from Wolvenkit
into Blender
You can check the guide, or read up on material assignment in Wolvenkit under .
For more detes about physics, check or . This is not necessary for the scope of this guide!
You can find overviews of all existing hair styles under
-Import the mesh into the game and transfer the weights from vanilla mesh to your mesh. Watch this if you don’t know how to transfer weights.
The hat’s texture is the same as any other item in the game. You can use MultilayerSetup files or metal_base.remt, it’s all up to you. Check if you don’t know how to do that.
KS UV
004
004_my_tattoo_mix
VTK
00
00_my_tattoo_mix
Femme body
Body Skin Textures base\characters\common\base_bodies\woman_average\textures\t0_000_wa__c_base_d02_naked.xbm base\characters\common\base_bodies\woman_average\textures\t0_000_wa__c_base_n02_naked.xbm
base\characters\common\base_bodies\woman_average\textures\t0_000_wa__c_base_rm02.xbm
base\characters\common\skin\torso\t0_000_base_c__tintcolormask.xbm
Femme arms
Left Arm/Cyberarms & Right Arm/Cyberarms Skin Textures base\characters\common\base_bodies\woman_average\textures\arms_hq\a0_000_wa__c_base_hq_d01.xbm base\characters\common\skin\torso\normal_details\a0_000_wa_base__hq_nd01.xbm base\characters\common\base_bodies\woman_average\textures\arms_hq\a0_000_wa__base_hq_rm01.xbmbase\characters\common\skin\torso\normal_details\a0_000_base__normaldetail_01.xbm base\characters\common\skin\torso\arms_hq\a0_000_base_c__tintcolormask_hq.xbm
Masc body
Body Skin Textures base\characters\common\base_bodies\man_average\textures\t0_000_ma__c_base_d03_naked.xbm base\characters\common\base_bodies\man_average\textures\t0_000_ma__c_base_n03_naked.xbm
base\characters\common\base_bodies\man_average\textures\t0_000_ma__c_base_rm03.xbm
Masc arms
Left Arm/Cyberarms & Right Arm/Cyberarms Skin Textures
base\characters\common\base_bodies\man_average\textures\arms_hq\a0_000_ma__c_base_hq_d01.xbm base\characters\common\base_bodies\man_average\textures\arms_hq\a0_000_ma__base_hq_rm01.xbm base\characters\common\skin\torso\normal_details\a0_000_ma_base__hq_nd01.xbm
base\characters\common\skin\torso\normal_details\a0_000_base__normaldetail_01.xbm
base\characters\common\skin\torso\arms_hq\a0_000_base_c__tintcolormask_hq.xbm
Femme arms
Left Arm/Cyberarms Skin Textures
base\characters\player\femme\body\arms\textures\femme_arm_left_01_diffuse.xbm
Right Arm/Cyberarms Skin Textures
base\characters\player\femme\body\arms\textures\femme_arm_right_01_diffuse.xbm
Femme body
Full Body and Arms Skin Textures
base\4k\common\body\wa\textures\d02_naked.xbm
base\4k\common\body\wa\textures\n02_naked.xbm
base\4k\common\body\wa\textures\wa_base_rm02.xbm
base\4k\common\body\wa\wa_base_tintcolormask.xbm
Full Body and Arms Tattoo Textures
base\4k\common\overlays\fullbody_overlay_d01.xbm
base\4k\common\overlays\glow_overlay_d01.xbm
base\4k\common\overlays\normals\fullbody_overlay_n01.xbm
Femme Hq Arms (UV - 4.1)
Hq Arm Skin Textures
base\4k\common\arms_hq\wa\wa_hq_l_arm_d01.xbm
base\4k\common\arms_hq\wa\wa_hq_l_arm_nd01.xbm
base\4k\common\arms_hq\wa\wa_hq_l_arm_rm01.xbm
base\4k\common\arms_hq\wa\wa_hq_r_arm_d01.xbm
base\4k\common\arms_hq\wa\wa_hq_r_arm_nd01.xbm
base\4k\common\arms_hq\wa\wa_hq_r_arm_rm01.xbm
base\4k\common\arms_hq\wa\wa_a0_a_tintcolormask_hq.xbm
base\4k\common\arms_hq\wa\wa_a0_b_tintcolormask_hq.xbm
Hq Arm Tattoo Textures
base\4k\common\overlays\arms_hq\wa\wa_l_arm_glow_overlay_d01.xbm
base\4k\common\overlays\arms_hq\wa\wa_l_arm_overlay_d01.xbm
base\4k\common\overlays\arms_hq\wa\wa_r_arm_glow_overlay_d01.xbm
base\4k\common\overlays\arms_hq\wa\wa_r_arm_overlay_d01.xbm
Femme head
Head Skin Textures
base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\textures\h0_000_pwa_c__basehead_d01.xbm
base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\textures\h0_001_pwa_c__basehead_n01.xbm
base\4k\common\head\h0_001_ma_c__basehead_rm01.xbm
Head Tattoo Textures
base\4k\common\overlays\wa_head_overlay_d01.xbm
base\4k\common\overlays\wa_head_glow_d01.xbm base\4k\common\overlays\normals\wa_head_overlay_n01.xbm
Femme genitals
None Textures
base\4k\common\genitals\wa\none\i0_000_pwa_base__genitals_none_d01.xbm
base\4k\common\genitals\wa\none\i0_000_pwa_base__genitals_none_n01.xbm
base\4k\common\genitals\wa\none\i0_000_pwa_base__genitals_none_rm01.xbm
Penis Textures
base\4k\common\genitals\wa\penis\i0_000_pwa_c__basepenis_circumcised_d01.xbm
base\4k\common\genitals\wa\penis\i0_000_pwa_c__basepenis_circumcised_n01.xbm
base\4k\common\genitals\wa\penis\i0_000_pwa_c__basepenis_d01.xbm
base\4k\common\genitals\wa\penis\i0_000_pwa_c__basepenis_n01.xbm
base\4k\common\genitals\wa\penis\i0_000_pwa_c__basepenis_rm01.xbm
Masc body
Full Body and Arms Skin Textures
base\4k\common\body\ma\textures\d03_naked.xbm
base\4k\common\body\ma\textures\n03_naked.xbm
base\4k\common\body\ma\textures\ma_base_rm03.xbm
base\4k\common\body\ma\ma_base_tintcolormask.xbm
Full Body and Arms Tattoo Textures
base\4k\common\overlays\ma_fullbody_overlay_d01.xbm
base\4k\common\overlays\ma_glow_overlay_d01.xbm base\4k\common\overlays\normals\ma_fullbody_overlay_n01.xbm
Masc Hq Arms (UV - 4.1)
Hq Arm Skin Textures
base\4k\common\arms_hq\ma\ma_hq_l_arm_d01.xbm base\4k\common\arms_hq\ma\ma_hq_l_arm_nd01.xbm base\4k\common\arms_hq\ma\ma_hq_l_arm_rm01.xbm base\4k\common\arms_hq\ma\ma_hq_r_arm_d01.xbm base\4k\common\arms_hq\ma\ma_hq_r_arm_nd01.xbm base\4k\common\arms_hq\ma\ma_hq_r_arm_rm01.xbm base\4k\common\arms_hq\ma\ma_a0_a_tintcolormask_hq.xbm base\4k\common\arms_hq\ma\ma_a0_b_tintcolormask_hq.xbm
Hq Arm Tattoo Textures base\4k\common\overlays\arms_hq\ma\ma_l_arm_glow_overlay_d01.xbm base\4k\common\overlays\arms_hq\ma\ma_l_arm_overlay_d01.xbm base\4k\common\overlays\arms_hq\ma\ma_r_arm_glow_overlay_d01.xbm base\4k\common\overlays\arms_hq\ma\ma_r_arm_overlay_d01.xbm
Masc head
Head Skin Textures
base\characters\head\player_base_heads\player_man_average\h0_000_pma_c__basehead\textures\h0_000_pma_c__basehead_d01.xbm
base\characters\head\player_base_heads\player_man_average\h0_000_pma_c__basehead\textures\h0_000_pma_c__basehead_n01.xbm
base\4k\common\head\h0_001_ma_c__basehead_rm01.xbm
Head Tattoo Textures
base\4k\common\overlays\wa_head_overlay_d01.xbm
base\4k\common\overlays\wa_head_glow_d01.xbm base\4k\common\overlays\normals\ma_head_overlay_n01.xbm
Masc genitals
Penis Textures
base\4k\common\genitals\ma\penis\i0_000_pma_c__basepenis_circumcised_d01.xbm
base\4k\common\genitals\ma\penis\i0_000_pma_c__basepenis_circumcised_n01.xbm
base\4k\common\genitals\ma\penis\i0_000_pma_c__basepenis_d01.xbm
base\4k\common\genitals\ma\penis\i0_000_pma_c__basepenis_n01.xbm
base\4k\common\genitals\ma\penis\i0_000_pma_c__basepenis_rm01.xbm
Vagina Textures
base\4k\common\genitals\ma\vagina\i0_000_pma_c__vagina_d01.xbm
base\4k\common\genitals\ma\vagina\i0_000_pma_c__vagina_n01.xbm
base\4k\common\genitals\ma\vagina\i0_000_pma_c__vagina_rm01.xbm
Skintones/Material instances (Masc & Femme)
Skintone Instances Textures
base\characters\common\skin\player_mat_instance
Femme body
Body Skin Textures
base\v_textures\body\v_body_d.xbm
base\v_textures\body\v_body_n.xbm
base\v_textures\body\v_body_n_detail.xbm
base\v_textures\body\v_body_rm.xbm
base\v_textures\body\v_body_tc.xbm
Body Tattoo Textures
base\v_textures\body\v_overlay.xbm
base\v_textures\body\v_glow.xbm
Femme arms
Left Arm/Cyberarms Skin Textures
base\characters\player\femme\body\arms\textures\femme_arm_left_01_diffuse.xbm
base\characters\player\femme\body\arms\textures\femme_arm_left_01_normal.xbm
base\characters\player\femme\body\arms\textures\femme_arm_left_01_normaldetail.xbm
base\characters\player\femme\body\arms\textures\femme_arm_left_01_roughnessmask.xbm
base\characters\player\femme\body\arms\textures\femme_arm_left_01_tintcolor.xbm
Left Arm/Cyberarms Tattoo Textures
base\characters\player\femme\body\arms\textures\femme_arm_left_01_overlay.xbm base\characters\player\femme\body\arms\textures\femme_arm_left_01_glow.xbm
Right Arm/Cyberarms Skin Textures
base\characters\player\femme\body\arms\textures\femme_arm_right_01_diffuse.xbm
base\characters\player\femme\body\arms\textures\femme_arm_right_01_normal.xbm
base\characters\player\femme\body\arms\textures\femme_arm_right_01_normaldetail.xbm
base\characters\player\femme\body\arms\textures\femme_arm_right_01_roughnessmask.xbm
base\characters\player\femme\body\arms\textures\femme_arm_right_01_tintcolor.xbm
Right Arm/Cyberarms Tattoo Textures
base\characters\player\femme\body\arms\textures\femme_arm_right_01_overlay.xbm base\characters\player\femme\body\arms\textures\femme_arm_right_01_glow.xbm
Femme head
Head Skin Textures
base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\textures\h0_000_pwa_c__basehead_d01.xbm base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\textures\h0_001_pwa_c__basehead_n01.xbm base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\textures\h0_001_pwa_c__basehead_n_detail.xbm base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\textures\h0_001_pwa_c__basehead_rm.xbm base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\textures\h0_001_pwa_c__basehead_tc.xbm
Head Tattoo Textures
base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\textures\h0_001_pwa_c__basehead_overlay.xbm base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\textures\h0_001_pwa_c__basehead_glow.xbm
Masc body
Body Skin Textures
base\v_textures\body\v_masc_body_d.xbm
base\v_textures\body\v_masc_body_n.xbm
base\v_textures\body\v_masc_body_n_detail.xbm
base\v_textures\body\v_masc_body_rm.xbm
base\v_textures\body\v_masc_body_tc.xbm
Body Tattoo Textures
base\v_textures\body\v_masc_overlay.xbm
base\v_textures\body\v_masc_glow.xbm
Masc arms
Left Arm/Cyberarms Skin Textures base\characters\player\masculine\body\arms\textures\masculine_arm_left_01_diffuse.xbm
base\characters\player\masculine\body\arms\textures\masculine_arm_left_01_normal.xbm
base\characters\player\masculine\body\arms\textures\masculine_arm_left_01_normaldetail.xbm
base\characters\player\masculine\body\arms\textures\masculine_arm_left_01_roughnessmask.xbm
base\characters\player\masculine\body\arms\textures\masculine_arm_left_01_tintcolor.xbm
Left Arm/Cyberarms Tattoo Textures
base\characters\player\masculine\body\arms\textures\masculine_arm_left_01_overlay.xbm base\characters\player\masculine\body\arms\textures\masculine_arm_left_01_glow.xbm
Right Arm/Cyberarms Skin Textures
base\characters\player\masculine\body\arms\textures\masculine_arm_right_01_diffuse.xbm
base\characters\player\masculine\body\arms\textures\masculine_arm_right_01_normal.xbm
base\characters\player\masculine\body\arms\textures\masculine_arm_right_01_normaldetail.xbm
base\characters\player\masculine\body\arms\textures\masculine_arm_right_01_roughnessmask.xbm
base\characters\player\masculine\body\arms\textures\masculine_arm_right_01_tintcolor.xbm
Right Arm/Cyberarms Tattoo Textures
base\characters\player\masculine\body\arms\textures\masculine_arm_right_01_overlay.xbm base\characters\player\masculine\body\arms\textures\masculine_arm_right_01_glow.xbm
Masc head
currently not available
Separate download for framework files / from body mods
Framework is open source and can be included with a body mod download
Arms and body share textures in base version
Arms on different texture same as original vanilla arms
Universal body mod support (4.0+)
Secondary file for split Hq arm textures, tattoo overlays, and normals maps (4.1+)
Supports mods made for Unique Arms by Halvkyrie
(Unique Arms is not required)
4k textures (Cyberpink - Kwek x Fireapple) built in to base framework for body and arms: diffuse (d), normals (n), detail normals (nd), roughness (rm), tintcolormask
Full set of HD textures for body, arms, and head included: diffuse (d), normals (n), detail normals (nd), roughness (rm) and tintcolormask
Optional file for 8k body+arm texture (Bedellia x Ava Skin)
Separate body overlays for each body gender
Separate body overlays for each body gender
Unique Skintone .mi (Material instance) files
Emissive (glow) overlay
Emissive (glow) overlay
Upscaled micro-detailing for body, arms, and head
Cyberarms built in to base version
Cyberarms separate, can be included if modder chooses to
(Hyst's bodies have them included)
Alternate Texture layout for foot submeshes
Unique Eyebrows (Optional file)
VTK
00_my_first_tattoo
KS_UV
005_my_first_tattoo
- h0_000_pma__basehead_scars_d01 |
- h0_000_pma__basehead_scars_d02 |
- h0_000_pma__basehead_scars_m01 |
- h0_000_pma__basehead_scars_n01 |
m |
|
w |
|
How to create your V as an NPC
Created & Published: May 13 2023 by @manavortex
This guide will show you how to do the following things:
Setting up a Wolvenkit project with the prepared example files
Creating your V's head in Blender (has its own sub-page)
Adding them as an NPC to spawn them with AppearanceMenuMod (has its own sub-page)
Easy, but not trivial: you don't need any prior knowledge, but the process is complex, and if you miss steps or deviate from the instructions, things will end up not working for you.
If you run into issues with this guide, the right place to ask for help is #mod-dev-chat
on the redmodding Discord server.
This guide uses the following versions:
Cyberpunk 2077 game version >= 1.6
AppearanceMenuMod >= 2.1
This tutorial should cover your basic needs, but there are many more guides and resources about NPV creation outside of this wiki. You can find them here.
If you want to edit original V's files, you're (generally) in the right place. You can find extra information on A new head for V.
None of this would have been possible without NoraLee, who pioneered the process and taught me everything that I needed to know to set up these tools. This guide doesn't use any of their resources, but a lot of their knowledge. For the full guide with all edge-cases, bells, whistles and context, see their Google Drive.
This is the speedrun version. If you want extra details and context, please check Nora's Google Doc.
Due to the complexity of V's head mesh, you have to do a little bit of prep work here.
Don't worry, I'll walk you through it step by step.
To create a face, we need to know your character's values. For that, you need to have AppearanceChangeUnlocker installed, or you won't see them:
Eyes
Eyebrows
Nose
Mouth
Jaw
Ears
Find the mirror in V's apartment and note down the numerical values.
Body gender:
As a rule of thumb, I'll document the process for an NPV with a female body gender, because as we all know, the other doesn't exist I have one of those. If yours has a male body gender, your file paths will be slightly different, but the process is exactly the same.
Download the example files from Nexus
Merge the source
folder in the download with the source
folder in your Wolvenkit project directory
Delete the one you're not using (do one Wolvenkit project per NPC. No, really, I mean it.)
This tutorial assumes that you will rename and re-path your files at the very end, because the prepared files rely on a certain file structure. We'll get to it!
This is a working Wolvenkit project — let's make sure that it works.
You can do this at any time during the tutorial to check your progress!
Switch it to "Install and launch"
Click it
When the game starts, load a savegame
Open the CET overlay
Switch AMM to the "Spawn" tab
Search for Tutorial
Spawn Tutorial Woman
or Tutorial Man
You should now see a person in front of you.
Now it's time to do the actual work.
If you want to create your V's head for Cyberpunk, go to NPV: Creating a custom NPC
If you just want to set up the file structure, go to NPV: Creating a custom NPC
Please remember that before sharing your NPV, you have to change the paths! At the very least, rename the tutorial
folders inside of archive
and resources
to your user name and then do a fulltext search and replace in json.
However, you might want to do that after preparing the head in Blender, as you would otherwise have to move the utility script around.
Edit hair mods to replace different slots
Created: Sep 22 2024 by Silverlags Last documented update: Sep 22 2024 by Silverlags
This guide will walk through the basic steps of how to change a hair mod to correspond to a different slot, showing you how to change a hair mod from slot 01 to a different slot for female V.
You will need a Wolvenkit Project to search and edit files. If you don't know how to make one check out R&R: Your own Wolvenkit project
TL;DR: You need to add all files from the hair mod to your project. If you don't know how to do that, check Analysing other mods, or keep reading.
Switch the Asset Browser to the Mod Browser by flipping the switch (2) on the image below
Locate your hair mod
You can find files by mod by searching for archive:hairmod_slot_1
, or by finding the mod in the mod browser's list.
Add all files inside the mod to your project. These files will be called "your hair" in the rest of this guide.
Does your hair have any files with the extension .app
under the following path?
Yes (left): Proceed to #files-with-an-.app-file
No (right): Proceed to #files-without-an-.app-file
Everything is in the root, and you have no idea which is which:#files-a-bunch-of-borked-files-in-your-projects-root
Happens when a mod has been packed with incompatible Wolvenkit versions.
Delete all files - we'll start over
Starting with Wolvenkit 8.15, you can find a scan button in the Asset Browser. If you do not have it, install a Nightly.
Click the scna button and try adding these files again.
If the file names do not resolve themselves, you will have to mix and match. Read on with Case 2.
The modder has taken and overwritten original game assets, and you'll have to do the same.
In this section, we'll do the following things:
Find a compatible hair in the files
Move your hair to overwrite that one instead
Let's get started:
Find the mesh file for the slot that you want to replace. We now need to check if it is compatible.
Switch the Mod browser back to the Project Browser
Use the Wolvenkit search with its full name, for example, hair mesh 34:
hh_151_wa__judy_variation02_common.mesh
Select Browse to Asset Folder
from the context menu:
You will see the hair meshes from the cheat sheet, among with a bunch of other files:
This hair has .rig
and .animgraph
files, which means that it has physics. Does your hair have those files included?
Yes: You can use this hair. Continue to #5
No: You can't use this hair. Go back to the previous section and pick a different hair slot from the list.
For this guide, we will fall back to 04, hh_089_wa__thompson_common.mesh
If your hair has more submeshes than the hair you are replacing, you can't use it either (not without #files-with-an-.app-file). Go back to 1 and pick a hair with more submeshes, such as one of the braids or the sumo hair.
OK, so you can use the hair. Add it to your project.
If it has a _cyberware_01.mesh
and your mesh does not, you can simply create a copy (hold ctrl while dragging)
You will reassign the hair to a different slot by overwriting different game files. We do this as follows:
Right-click on a mesh and click on rename (can be done using shortcut key F2) and type the desired slot's mesh name along with its cyberware version
Repeat this with all files for your hair.
Your project browser will now look like this:
Drag each of the files to the new mesh's folder (hh_089_ma_thompson
)
You will see a dialogue asking you to overwrite. Select "Yes":
Delete the now empty folder hh_033_wa_player
. We don't need it anymore.
You're done here! Proceed to #pack-n-go
The modder has overwritten the hair's control files. It should look like this (subfolder names can vary):
This is good news, because it's the easy case. You only need to do two things:
Pick a new hair slot
Move your .app files to overwrite the ones from that hair.
Let's get started.
Pick any hair by slot - we will use slot 04 and search for all its .app
files:
hh_003_pwa__hairs_89 > .app
Add all these files to your project:
Now, we need to overwrite all these files with the ones from our other mod.
Select the first .app
and press f2
, or select "rename" from the context menu
Change its number from 059
to 89
You will get a file overwrite confirmation. Select "yes"!
Your mod didn't have hh_003_pwa__hairs_89_cyberware_01.app
.
Optional: Take a moment to curse these incompetent guide writers, or yell very loud.
Select hh_003_pwa__hairs_89.app
in the mod browser
Hold the ctrl key down and drag it on itself
You will get a file overwrite confirmation. Select "no" to create a copy.
Overwrite cyberware_01.app
with your copy.
You're done here! Proceed to #pack-n-go
You can also click on the down arrow next to install and set to "Install and Launch" to do these two steps for you!
The quickest way to check if your hair slot change has worked is by making a new game and see the changes in hair style selection.
That's it! You can now test your new hair mod.
.app
fileGo up to #files-with-an-.app-file -> #you-are-missing-a-file
A .mesh
file
If your mod does not have any .app
files, you have the following options:
Overwrite it with a duplicate: just duplicate one of the existing files, and add it a second time. This may cause clipping.
You can overwrite it with a shadow mesh:
Search for base\characters\common\hair\shadow_meshes\hh_ > wa
(> ma
for a masc V)
Find something that looks vaguely similar
overwrite
You can find a different hair to overwrite
You need to find a different hair to overwrite.
How to make your own .hp files
Created: Sep 16 2024 by Last documented update: Sep 16 2024 by
This guide will show you how to create a custom hair colour to to replace an existing .hp file.
You can find a step-by-step walkthrough under WKit Blender Plugin: Import/Export -> #hair-profiles-.hp
To learn more about .hp files and their parameters, see
This is currently under development! (Exciting, isn't it?)
Created & Published: Summer 2021 by @Pinkydude
What you’ll need :
WolvenKIT or the game files extracted [basegame_4_animation.archive]
The 010 hex editing software with the CP77 template as well as the scripts (I recommend joining the CP77 Modding server to grab those!)
The WolvenKIT console (CP77Tools)
🟨 WON’T WORK With AMM’s naked/shirtless custom appearances
I’ll assume you already know some basic modding (extracting the files with the console or WKit etc)
You need to grab the mesh you’re going to use as a body / chest and swap on the NPC. I made edit to mine, but I used the “t0_000_ma_base__full” body
Open the “buffer 0″ and check the files list, search for the skintone your NPC is using. Mitch is using the “male_01_ca_pale.mi” file
You can see I have it custom pathed already, but you can check the other files to see the path
Go to the “base\characters\common\skin\character_mat_instance\male\body” folder and grab the .mi file corresponding to your NPC’s skin tone
Copy and Paste it in a custom folder created at the base of your mod
Also create another folder where you will put the custom texture you want your NPC to use (edited or not)
Let’s go back to our buffer 0 of our mesh
custom path your skintone, in my case “male_01_ca_pale.mi”, to point to your custom folder. In my case “base\materialinstances\male_01_ca_pale.mi”
Open that .mi file. That file point to another .mi file, that we also need to copy and paste in the custom folder, and then custom path
It calls for another file, that we also have to copy and paste into the custom folder. That .mi file finally calls for the texture files! We custom path those as well
Once you have the .mi files all custom pathed, and the texture custom pathed as well (don’t forget to save the edited files of course) you can custom path the one in the mesh buffer as well and save, then rebuild the mesh using the console (so that the edit in the buffer actually have an impact on the mesh!)
Copy that mesh, and create the folders that goes to your NPC’s main outfit, and swap one of the slot. I used Mitch’s jacket to load the body mesh
That specific body mesh will now read and load the .mi files and .xbm files from your custom folders in the mod and your NPC should now have a different texture than your V!
Step 1: How to generate your V's custom head mesh
Published: May 13 2023 by @manavortex Last documented update: Nov 09 2024 by
This page is a part of the NPV guide. It will show you how to create your V's head in Blender. If you want to load your head back into Cyberpunk, note that you aren't changing anything in the files itself — that will come in NPV: Creating a custom NPC.
We will not be dealing with the body, this is part of the next section as well.
If you want a 3d model, you probably know what you're doing; in that case, make sure to run the script and get the shape right, then go wild.
If you prefer video instructions over written ones, please check out this tutorial by Wouldiwas Sh00kspeared (Nov 2024).
In this section, we will be moving/deleting files. You can complete these steps in Wolvenkit or in the Windows File Explorer.
It's important that you leave the file structure as it is. Moving or renaming files will confuse Wolvenkit and break the example project.
The final section of NPV: Creating a custom NPC tells you how to safely move files.
Open the head
folder in your project's archive
section.
Optional: Be confused and/or panic about why there are files.list
Look into the head/morphtargets
folder
Optional: Be confused and/or panic about why there are files again.
Delete all those files that you aren't using (read on as for how)
It's too many of them!
True! That's because I included all options for any given V. But don't worry: after you have deleted the ones that you won't be using, you should be left with a maximum of 13 .morphtarget
files for female V and 14 files for male V.
I have included all meshes and morphtargets from the game files. We'll now thin out the options, deleting those parts that your NPV won't be using.
The best and most convenient tool for the job is NoraLee's NPV picker. It will give you a list of files that you need to keep.
The list will give you a number of Source Mesh entries like h0_000_pwa_c__basehead.mesh
.
You need to keep these files inside the head
folder and the .morphtarget
file in the subfolder morphtargets
. If you want to understand why, keep reading; otherwise, you can proceed to Deleting Files.
If your V isn't using any piercings, you can skip this step and go directly to Deleting Files.
In the files, you will see four files for jewelry:
… none of which is your V's exact piercings. Instead, there are full sets of jewelry, most of which will be hidden.
You have to look at the meshes and find the file that includes your set of piercings. We will delete the ones you don't need later.
Number in file name <=> Number in character creator
Do not delete any files if you're editing the player head (Ignore this hint if you aren't).
Many of the files are variants and your V will be using one or none of them. That means you have a bunch of files to delete.
If you have chosen the convenient option, you should already have a list of files that you need to keep.
Otherwise, you need to refer to #what-the-actual-fuck-are-all-those-files and use the table below for some oversight.
The following table will show you examples on what to keep (as in, you delete everything else):
After deletions, both head
and head/morphtargets
should hold only the files that your V is actually using.
For a list, see the table above.
Once you're done, you should have between 4 and 13/14 files:
Now, we will export all .morphtarget
files from Wolvenkit so that we can edit them in Blender.
You will complete most of these steps in Blender, only the import/export happen in Wolvenkit.
If you run into any errors, check #step-5-optional-troubleshooting
Find the Export Tool (Tools -> Export)
To filter, click into the empty row under "name" and write "morphtarget
"
Check the box in the header to select everything
Click "Export Selected"
Switch to your project's raw
folder or Wolvenkit's raw
perspective. You will find the entire file structure mirrored there.
In head
folder, find the file head_import.blend
.
This file is a utility file which will automatically import and export the files for you. For that reason, it needs to be in a certain relative path.
If you have already changed your structure (by re-naming your folders), you need to make sure that head_import.blend
is in the folder head
right next to the folder morphtargets.
Open it in Blender. It will take you to the scripting perspective, where you'll see something like this:
Press the play ▶️▶button.
The script will now import a bunch of armatures from the morphtargets
folder. You will see them showing up in the topright corner (see the next screenshot under 7. for how it should look)
Switch to the next script in the file, but don't run it yet:
If you've been previously afraid of scripting: This is a good place to stop! :))
Find line 26 and following in the script, and alter the values to those of your V (which you get from the character preset, see here for further explanation).
You don't need to select the eyebrows here, as those are "painted on" later via mesh appearance. The mesh only needs to have the right shape, which is what we're doing here.
After you've changed the values to those of your V, click the "play" button again. This will apply the morphs to your V's face:
Some shapekeys don't correspond 1:1 with their numbers in the character creator. If a part of your shape is shaped subtly wrong or looks weird in the game, undo your changes (Ctrl+Z), add or subtract 1 from the corresponding shape key, and run the script again.
Yes, you absolutely can! Once you have imported everything back into Wolvenkit, you can re-export the .mesh
files and use the Wolvenkit Blender IO suite to import them with materials.
Unless you are editing original V, start by deleting the morphtargets from the template file — we don't need them anymore.
Remove the entire folder, both from raw
and archive
. From now on, it's meshes only!
Now that your head looks the way you want, it's time to run the final script, which will export your changed head to .glb for you:
This will overwrite already existing files, leaving you with a set of import-ready mesh files.
Now it's time to get them back into Wolvenkit.
Find the Import Tool (Tools -> Import Tool)
Click "Import All". You shouldn't see any errors.
You're done!
At this point of the guide, you should see your NPV's head in Wolvenkit (re-select the mesh to refresh the preview).
If everything works, you're done with Blender (unless you want to get fancy).
If the head mesh has not changed, you ran into a problem — check the Log View and/or make sure that you completed all steps in the right order. Especially changing any paths will break things.
Spawn your NPV and check that they look like they should.
If they do, proceed with NPV: Creating a custom NPC
If they don't, check #step-5-optional-troubleshooting
Optimally, this process just runs with no hitches. However, during beta testing and troubleshooting, people ran into a few issues, so I'm listing them here.
You need to use the Wolvenkit Blender IO Suite for export. Make sure that it is installed and up-to-date.
You can check if Blender has run into errors by opening the Blender console window - from the menu, select Window -> Toggle System Console.
As of December 2023, any script errors have been because the person encountering them has been using the wrong Blender version. You can see which version is currently running either via UI or by checking the path in the system console window's title:
As of plugin version 1.5.5.1, you should have at least 4.0 installed.
The problem went away after the person having it upgraded Blender.
If you had the example project lying around for a very long time, please try and redownload it (Nexus link), as the first version had been using an NPC animationgraph for facial expressions.
If that's not it, then you ran into the shapekey offset issue: some shapekeys don't correspond 1:1 with their numbers in the character creator. If a part of your shape is shaped wrong or looks weird in the game, add or subtract 1 from the corresponding shape key, and run the script again.
Step 2: How to create a custom NPC
Published: May 13 2023 by Last documented update: Mar 18 2024 by
This page is a part of the NPV guide. It will show you how to use the provided example project to create a custom NPC for Cyberpunk 2077, whom you can then spawn with AppearanceMenuMod.
It will give you a brief overview over the control files and tell you how to pull in the right meshes (and appearances).
If you prefer video tutorials, use this link to watch Sh00kspeared's video tutorial on the matter.
How about AMM: Custom NPCs?
Find a more detailed guide about adding components to NPC app files under Appearances: change the looks. This may help you if you get stuck!
This guide assumes that
you already have a head mesh (see this section otherwise)
that you're using a set of default paths (if not, you will have to adjust)
the corresponding files are in either of these folders
tutorial\npv\your_female_character\head
tutorial\npv\your_male_character\head
the meshes are named like their in-game equivalents, e.g. h0_000_pwa_c__basehead.mesh
(if not, you will have to adjust)
This guide contains as little fluff as possible, and since much of it has been covered in other guides, extra information will be contained in the links. These will be annotated as clearly as possible with what you need to read and what's optional.
If you're skimming in this guide, you will end up making mistakes. Read thoroughly. If at the end of a section you aren't where the guide says you're supposed to be, fall back and double-check your process. If you still have trouble, you can hit us up on discord in the #mod-development
channel.
Remember that at any time, you can check your progress by spawning your custom character.
This section will explain what the template files do and how they hang together. If you like suffering, you can rely on the "fuck around and find out" approach, but I recommend at least reading through it.
In the end, an NPV is just a custom prop with a god complex. For that reason, the file structure is the same (it's just a lot more complex, because you have more than 4 components).
If diagrams help you, then click on the link to see one.
We're registering our NPC with AppearanceMenuMod via a .lua file, which needs to end up in AMM's Custom Entities
folder. The full path in the Cyberpunk directory will be this:
bin\x64\plugins\cyber_engine_tweaks\mods\AppearanceMenuMod\Collabs\Custon Entities
I have prepared two example files in the Wolvenkit's project's resources
. Delete the one that you aren't using, then let's take a look at the other one:
tutorial_custom_female_character.lua
tutorial_custom_male_character.lua
This is the file content for the female example:
It loads our root entity from tutorial\npv\your_female_character\ops\your_female_character.ent
. That's the file which tells the game what to load.
You can and should change this file — see the inline documentation above for what to change. To do that, you can use a text editor such as Notepad++.
You find the root entity for your character here:
Would you like to know more? (You don't need any of this information to finish the guide.)
The root entity hooks up your .app file and the appearance names in the .lua file, and that's about everything there is to say about it. Here's how it looks:
If you want to add more appearances:
duplicate an existing entry
change the last key name
to match the one in your .lua
change the first key appearanceName
to the one you want to put in your .app
Let's look at the .app file now.
You can find a more detailed guide about adding stuff to .app files under Appearances: change the looks. It's optional, unless you're really stuck.
This section will tell you how to edit your NPV's appearance – their skin colour, chrome, piercings, tattoos. We will do this in the .app file.
When changing component names, you want to leave the #component-prefixes (t1_) in place — the game needs them to calculate collisions!
This is where all of your NPC's appearances are defined (appearanceDefinition
, linked to the root entity via name
). The appearanceDefinition's components define your NPV's properties, pulling in equipment, facial expressions, hair and skin.
Would you like to know more? (You don't need any of this information to finish the guide.)
It looks like this:
If you get a bunch of errors that complain about "mesh not found in project files" or "no depot path set, only hash given," that's no reason to panic – those errors come from files that you deleted, but which are still linked in the .app
. If you deleted them by accident, restore them from the template project. Otherwise, you can (and should) delete the components.
The next section, #how-do-i-know-what-to-put, will help you find the right appearance names.
If you feel completely lost, you can read up on how to change NPC appearances – the concept is exactly the same.
If you want to add another appearance
duplicate an existing entry
change the key name
to match the one in your root entity
change the components
To find out which variants and appearances to use, I suggest that you use NoraLee's excellent NPV Part Picker. It will look like this:
The NPV picker does this for you, but here's how to select your eyebrow appearance by hand:
open up the mesh file and expand the first list appearances
see a bunch of entries with naming schemas like colour_01
the numbers correspond with the type of eyebrow in the character editor (look them up here)
Select the correct colour and appearance number
The values you found out will go into the components in your NPV's .app file.
This property is used for hiding parts of a mesh. If the part picker gives you this number, simply paste it into the corresponding box in your component:
You can learn more about this under Submeshes, Materials and Chunks, but this is not necessary for the tutorial.
If you skip this step, you will end up with invisible cyberware or the wrong colour/appearance.
When selecting a different cyberware than the preconfigured one, you have to set the appearance name, or the whole thing will show up in grey. The appearance names are usually identical to the cyberware (cyberware_01
, cyberware_02
etc.), but if you are uncertain, you can also open the mesh file and check the appearances
list at the top.
If you skip this step, you will end up with the wrong or too many piercings and cyberware. To learn more about chunkmasks, check this wiki page (if you can do it with the information below, you don't need to)
You have the full piercing or cyberware file, but you're only using parts of it — yet the game stubbornly shows you the whole mesh.
Fortunately, you don't have to edit it in Blender, because you can hide the parts you aren't using via chunkmasks.
Find the piercing
or cyberware
component in your .app
file:
To hide those bits in the .app, we simply need to uncheck the corresponding boxes - check the previous screnshot!
For a step-by-step guide on how to add items from mods to your NPV, check Appearances: change the looks -> #adding-items-from-mods!
This section will teach you how to add another hair mesh to your NPV. We will first remove the default hair, then replace it with the one you want.
To use modded hair, find the correct files inside the mod and add them to your project.
If you want to look up in-game hairs, check Cheat Sheet: Hair
For more information on hair files, check the Basic Hairstyle Replacement Tutorial
Delete the current hair from the .app — there should be 2-3 components, their names will start with either hair_
or hh_0
Find the correct hair mesh. You have three options for this:
Looking it up on our nifty list
Filtering the files and clicking through their previews:
female: base\characters\common\hair > wa_ > .mesh > !shadow
male: base\characters\common\hair > ma_ > .mesh > !shadow
Enter the name of the hair mesh that you want to use into the Asset Browser's search bar (see next screenshot) and hit Return.
Once you have found the correct mesh file, right-click it and select "Find Files Using This":
This will give you a list of files, which you can mostly ignore.
The only thing we care about is the hair's control file, which is usually an .ent
file:
Some hair mods don't use an .ent file. In this case, the components will be inside the .app file's appearances, similar to NPC apps. You can copy the entire components
array of the appearance that you want to use.
If there are multiple files, check which one uses the most components per appearance.
Open the .ent
file and expand the components
array. You will find three components in there, which you can now copy over to your .app
!
As of version 2.2.0, the body mesh and arms are included for easier replacing.
The process is the same as what you did with the hair: find the files in the mod, add them to your project, move them to your NPVs folder and customize them to your liking.
You can find more information at Cheat Sheet: Body (which also contains the tattoo paths).
Go forth and create custom apperances!
You can check this guide, or look through the .app files for other NPCs for ideas. If you need further details, I highly recommend checking out NoraLee's much more detailed tutorial, which will also give you all the context you could possibly need.
For guides on how to export a whole animated character to Blender, you can check here.
Please remember that before sharing your NPV, you have to change the paths! You can find a full guide on the fastest way to do that here.
Don't forget, you can pack the Wolvenkit project by pressing the green button in Wolvenkit's toolbar, spawning Tutorial Man
and Tutorial Woman
via AMM to check out your progress.
I'm done, what's next?
Published: May 13 2023 by @manavortex Last documented edit: Mar 02 2023 by @manavortex
You need to re-name the template folders. Unless you want to make more NPVs, it will be enough to re-name tutorial
to your_username
. Find a full guide to the process under .
That's how you know that you have syntax errors in your NPV's .lua
file. Copy the contents of the file into a , then run the code and make sure to fix all errors.
It's usually missing quotation marks or commas. The tool above will give you a line number. Compare the line with the working template and fix the differences.
If you feel stuck, you can ask ChatGPT – just tell it that you're trying to fix LUA code, or it won't know the syntax.
The error is with your .lua
file – either it's not in the correct folder, or AMM fails to load it.
If you click on the button, but nothing happens, that means that the game can't find your .ent
file. The error is between your .lua
and your .ent
.
Most likely, the path to the .ent file is not correct. If it is, make sure that it has no upper-case characters.
For each of the mesh components that aren't moving, expand it and find the skinning
entry. Make sure that the bindName
points at root
:
You need to manually enable the correct foot mesh.
Add an extra component and point the depotPath
to the mesh for the correct feet. This is either l0_000_pXa_base__cs_flat
or l0_000_pXa_base__cs_heels
.
That happens when you're loading an appearance that the game doesn't know about — the problem is between your .lua file and your root entity. The names must match exactly, and must contain not typos or leading/trailing spaces.
If that was not it, double-check the path
in your lua file and make sure that it points to the correct .ent file, and not to a backup or backup project.
This particular problem is always between those two files. Other mistakes will have other effects.
Just install the mod via WKit, launch Cyberpunk the way you normally do.
GarmentSupport only works on actual garment items that have been equipped using the game's transaction system. As of October 2024, that's not the case for NPCs.
Unfortunately, you'll have to go refitting. Sorry!
How to make your NPV work with the AMM Nibbles Replacer
This guide is part of the guide for creating an . It will teach you how to make your NPV compatible with xBaebsae's awesome mod, letting you use your NPV in the game's photo mode.
minimum version |
---|
You can find the original instructions in the under Creating an NPC+/NPV Replacer inside the spoiler tags.
If you experience floating clothes, try switching appearances. Often, that resolves the issue. If not, you can check for how to copy the correct components.
For NPV projects >= v2.0.0 (30. October 2023), you can skip to .
For earlier versions, or if you have not been using the example project, you need to add the photo mode animations component.
Download Wkit Project - NPC App from the mod's .
In the .app file, open the first appearance
Open the components
array
Find the entAnimationSetupExtensionComponent
with the name of PhotomodeAnimations
Copy it to each appearance in your NPV's .app file.
If a file name shows up more than once, you already have an NPV with photo mode replacer support installed. In that case, you'll want to pick the other file — there are two for each body type.
Adding support for more than two .app files requires you to edit both the photo mode replacer and AMM, so it won't be covered in this tutorial.
Instead of the dummy file, you will want to put your own app file there. You can copy the file by holding the ctrl
key while dragging in the Wolvenkit Project Browser.
The photo mode replacer assumes that your appearances will be named like this:
For the sake of clarity, the NPV appearances are not named this way. Open the photo mode .app that you copied in the previous step, and change the names of your appearances.
For each appearance definition in In your photomode .app file, find the component with the name face_rig
.
Make sure that the depotPath
is of the graph
is set to the correct .animgraph
depending on your body gender:
Save the file. You now have photo mode expressions, but no more AMM expressions. Can only have one…
Before entering photo mode, select the correct replacer in AMM:
Open the AMM overlay
Switch to Settings -> Photomode Nibbles Replacer
Select the correct replacer corresponding to your file
To add more compatibility to a pose pack, you only have to edit the mod's .xl file, which you can do with a text editor. An entry looks like this:
There might be one or multiple entries for each supported .ent
file. Find out which entry or entries belong together, then duplicate them and replace the paths with the one to your NPV replacer's .ent file.
Force a refresh - select a different pose.
If that isn't working, refresh the appearance:
Open the AMM overlay
Switch to the Tools tab
Click the Target Replacer
button
In the scan
tab or the target tools, assign a different appearance. You can switch back right away.
Verify that you've updated the graph.DepotPath with the correct animgraph
Verify that you only have a single face_rig component
How to add appearances to existing NPCs (via AMM)
This guide has not yet been updated to use . As such, you will probably end up overwriting an existing NPC's file, breaking compatibility.
Until the guide updates, you should stick to . This guide will only tell you how to target the right (vanilla) NPC file, since the rest of the process is the same.
In your project's directory, create the following folder structure:
In that folder, create your_custom_file.lua
. (You can get a template project under ).
The most important thing here is the entity_id
- this is what tells AMM about the already existing file that you have modified.
As an example, look at the lua file I made for way back when:
Knowing what I know today, I probably would have created a custom entity for Takemura-san in the first place, but since I chose to go down this road, I'm doomed to provide compatibility patches for the rest of eternity.
Ah, well. There are worse fates.
A short tutorial on how to modify your V's body by resizing bone shape.
Published: Oct 12 2024 by @chris Last edited: Oct 12 2024 by
This guide will show you how to create a custom rig for V, based on
If you want to learn what a rig even does, check
If you want to create custom poses instead, check
Medium - you should have some general knowledge of Blender and Wolvenkit
Find an add one of the following files (the correct one for your body gender):
Export it from Wolvenkit. Use the following settings:
Mesh Export Type: WithRig
WithRig settings: Select Rig -> woman_base_deformations.rig
You will see V's body: this is your immediate preview.
Enable and select the armature in the side bar panel:
Switch the viewport to to Pose Mode
( at the top left)
You can now select and scale individual bones.
Generally you want to scale bones that do not effect other bones. Joints, or those parenting other bones can break the mesh in game. Rotation and location generally breaks things.
In my testing, Thigh_1_JNT isn't worth the hassle, looks fine in blender but always broke for me in game. (if someone has a solution for this please let me know)
Since you are simply using blender to get a visual on what you are changing, you technically only need to edit one half of the body.
This is currently a manual process. In the future, the toolchain will let you do this automatically — but we aren't there yet.
Add the required .rig
files to your project (the second file is for first person perspective):
femV:
mascV:
Open one of the files in the CR2W editor and find the BoneTransforms array
Find the bone that you scaled in Blender:
Here, we copy the values from Blender' s BoneTransforms
tab.
X and Y is flipped inside of Wolvenkit compared to blender, so flip those values.
You need to do this for both sides of the body, so find the corresponding bone
If the name of your bone ends with _r
, the corresponding bone ends with _l
, and vice versa
Save your changes
Open the other file in Wolvenkit, and repeat steps 2-6.
To ensure compatibility, you need to re-name any files you edited:
Before packing your mod, delete the .mesh
file that you exported in step 1. Your mod should only contain files with the extension .rig
.
Start up the game
Tada! if you did everything right then you can now cosplay as your favorite ant.
Thanks for reading hope it worked -Chris
Disable (remove) any other rig edits
Make sure that it comes first in the load order by prefixing its name with a #
Adding custom facial piercings through PRC Framework.
Created & Published: July 12 2023 by Mx_OrcBoi
PRC Framework was created by eagul, he also taught me how to do them, so I'm passing on the knowledge.
Required: Blender >= 3.5 & Wkit >= 8.9.1-Nightly
Level: If you can read and follow instructions, you should be ok.
Disclaimer: The detailed steps show how to place piercings in spots where vanilla ones already are.
For any other location on the face the steps are slightly different, as you will need to create your piercing on the head mesh and import over head mesh.
This is explained in a separate section.
I would suggest trying to create one in an existing location first, so you familiarise yourself with the steps and then play around with different locations.
Download and install the below:
In wkit, import the below to your project depending on which V you want to create the piercings for:
Export to GLB so you end up with those files in the raw folder.
Import them into Blender using Cyberpunk GLTF import plugin. In this example I will be working on fV. You should end up with files like this and be able to see the head, vanilla piercings and a set of shape keys.
Each shape key corresponds with the number on the character creation slider. Basis is 1 on all sliders or no shape keys active. The rest is divided into ears, nose, eyes, mouth and jaw and subsequent numbers correspond to the character creator settings (1x is slider 2, 2x is slider 3 and so on).
You can see the shape keys actually working by selecting one of them and setting Value to 1.
For easier selection merge head mesh vertices by distance. To do this, select the head mesh, go into edit mode (Tab) and go to Mesh -> Clean Up -> Merge by Distance. Set merge distance to 0.0001.
Import your piercing mesh. I’ll use the septum half ring as an example. Make sure the mesh is already UV unwrapped if using custom mesh.
Duplicate the vanilla piercing. To do so select it in the viewport (object mode), press shift+D and then click the right mouse button. Hide the original mesh.
With vanilla mesh duplicate selected, go to edit mode (TAB) and press Del -> vertices. You will end up with an empty submesh.
Select your piercing mesh, then Ctrl select newly emptied vanilla submesh. Press Ctrl+J to join.
By doing step 7 and 8 you’ll end up with your mesh having the correct bones for where it is placed.
The result should be like this:
Now we need to either weight paint, or transfer weights if your new piercing is in the same position as vanilla one. Mine is, so I will go over transferring weights.
You can see the current weights the mesh has in Weight Paint mode.
I’ve selected the vanilla piercing here. By clicking different vertex groups you can see the colour of the mesh changes. This colour denotes how much influence each bone has on the mesh. Red is 100% and dark blue is 0%.
Go back to object mode if you’re in weight paint mode. Select your mesh and remove all vertex groups.
Go to modifiers (wrench icon) and add Data transfer modifier with below options. The source would be the vanilla piercing submesh that has weights.
Click Generate Data Layers, then apply the modifier.
You can now see that your mesh has weights the same as vanilla mesh:
Unhide the head mesh if hidden and make sure no shape keys have value other than 0, then select Basis shape key.
Go to edit mode (TAB) and position your mesh where you want it to be. You can keep the vanilla piercing visible for reference.
I wanted mine to be a bit further back than the vanilla one, otherwise it clipped with the nostrils.
Now go through all the nose shape keys and position your mesh in the best position for each. You can set the value of the corresponding shape key on the head and vanilla piercing meshes to 1 for easier positioning (to do that come out of edit mode back to object mode) - if you do that, make sure you’re not setting any shape key to 1 on your new piercing mesh, they all have to stay 0. If creating nose piercing you only need to go through all the shape keys with nose in the name, if creating earring, go through ear shape keys and so on. No need to go through other, like for example eyes for a nose piercing.
Delete all unnecessary meshes if you have them, like head reference. Also delete the original piercing submesh, so only yours is left and rename the submesh accordingly (it should be something like submesh_00_LOD_1
and not something like submesh_00_LOD_1.005
)
Once you’re done export your mesh as gltf 2.0 with below settings. Save it over the glb exported in wkit.
If your piercing is influenced by more than 4 bones, also include this option on export.
Next import it in wkit.
Add to project a morphtarget from PRC or create folder structure manually. They need to be named exactly like this, do not create a custom folder.
Now rename the morphtarget you imported from blender to whichever slot you want to use. The number will correspond to the slot. It does not matter which you use really, but if you want your mod to be compatible with any specific set of piercings made by someone else, check what slot they used and use different.
Move the file to eagul/piercingmorphs/.. (if you added to project a morphtarget from PRC to create the folder structure, delete it first, just leave empty folder before moving your new renamed morphtarget).
Now you can delete the character folders in base and install the mod.
Naming is important, your mod needs to load before PRC, so it is best to follow PRC’s naming convention: PRC_f/m_slot#.
To test your mod, set piercings to slider 12 for fV or 14 for mV and you should see your creation.
You can only export the head morphtarget as it is the only one we’ll need.
Import selected one into Blender, merge by distance, duplicate the mesh and delete all vertices from your duplicate in edit mode. This is similar to points 4-8 from the first section of the guide, except we’re working just with head mesh, not piercing meshes.
Weight paint your piercing. Since the location is not covered by any vanilla piercing, transfer the weights from your head mesh. Delete unused vertex groups (the ones that do not affect your piercing, ie have 0 weight). Since piercings are solid objects we don't want them to stretch, so go through the vertex groups that affect your piercing in weight paint mode and colour them in one sold weight colour (you can use the picker to pick one from somewhere around the middle of the mesh).
Once you’re done with the weight painting proceed to creating your shape keys as in the morphtarget creation section of this guide. You can use your original head mesh as reference. Tip: If you want to test if your mesh works ok before going through all shape keys make sure you create at least one, otherwise it will flatline your game. Creating means moving at least one of the shape key positions to where they should be, not at the same position as the basis shape key.
When done, delete the original head mesh and rename your own submesh. It should be called submesh_00_LOD_1.
Export your file to gltf with the same settings as in the guide.
Import your file in wkit over the existing head file, place in the correct folder and rename to whichever slot you’d like to use.
Open your morphtarget and edit the path in this section:
Change the path to:
eagul\piercingmorphs\wa_linked.mesh
for fV
eagul\piercingmorphs\ma_linked.mesh
for mV
If you ever need to re-export your mesh again for editing you’ll have to change this back to the original path.
Now install your mod and enjoy.
While selecting textured piercing colout it shows weirdly, something like this:
This is because piercing materials have a mask designed for vanilla piercings in their .mlmask file, your custom piercing uses the same material so that you're able to use colour picker in character creator.
Unzip them into your project to ../yourmodname/source/archive folder:
Now install your mod. The textures should show properly now.
Changing an NPC's default appearances (and adding more via AMM)
Published December 27 2022 by @manavortex Last documented update: January 06 2024 by @manavortex
This guide will walk you through editing NPC appearances for Cyberpunk 2077.
You can find a more detailed guide under
It uses the following versions:
Cyberpunk 2077 game version >= 1.6
>= 8.15 (some of the UI elements will be missing in older versions)
(only if you want to add new appearances) >= 1.15
For an overview of NPC files, check
If you want to add custom NPCs to Cyberpunk 2077 with AMM, check
If you want to add AMM appearances to existing NPCs, check
If you want to add V as an NPC, check
If you want a more basic guide that goes into more detail for the basic stuff (including Blender), see
If you're after hair colours, check and follow the links from there.
Links will give you additional context. If you can complete the guide without them, feel free to ignore them.
The array appearances will contain a list with every appearance that's defined for this NPC, matching the key appearanceName
in the .ent file.
Not all of these have been "published" (as in "hooked up to .ent files"). For an example of this, check base\characters\appearances\citizen\citizen__children_mc.app
CDPR's style of unique naming allows us to find components and their usage across the game files, which will come on handy when we're trying to add items.
This is where the magic happens.
If you want to add a new item, first duplicate an existing one. After that, you can pretend that it is just another change:
And this might work.
Anything of the type entGarmentSkinnedMeshComponent
is prone to breaking unless you copy everything it needs.
Let's do it…
You need to find the thing you want to add in the files, check where it is defined, and then copy all of its components.
Search for the mesh name of the vest that you want to use (e.g. ma_vest__high_collar*.mesh
)
Anything of the type entAnimatedComponent
means that components are animated. That's mostly the case for physics-enabled stuff influenced by gravity, such as coats, jackets, or long hair.
Physics gave us the atomic bomb. (It also gave us computers, but this is besides the point right now.)
Animations are usually unique to meshes on a by-pixel basis and do not react kindly to edits or swaps. (Try splitting the obi from Saburo's kimono into its own submesh if you don't believe me).
If you copy an animated component (e.g. Johnny's vest), then you need to copy the corresponding entAnimatedComponent
as well, or the mesh won't move.
If you delete a physics-enabled component, you can safely delete the corresponding AnimatedComponent.
Add the file(s) you want to your Wolvenkit project
Many ArchiveXL mods contain a number of meshes for different body mods and body genders. You only need one of them — the one for your body mod and body gender.
Look for w/m
to indicate gender, and base_body
to indicate the body mod.
Move them to a custom path (you don't want them to interfere with the original modded files)
Before adding the necessary dependencies, delete all appearances from the .mesh file that you don't want:
From the Clean up
menu, use Delete unused Materials
Save the file
From the Materials
menu, use add material dependencies
Wolvenkit will now run a scan of all your mods. This may take a moment!
You will now see a textures
folder with all files for your materials.
If there isn't one, the mesh only uses base game materials and textures. There's no need to custompath those — if you want to do it anyway, hold the shift
key while selecting the option.
Optional: If any of the files in your texture folders are .mi,
.mltemplate,
or .mlsetup
files, open them and run add material dependencies
again (your mesh will have a weird purple hue if any of those are missing)
You can now save your .mesh!
Open your NPC's .app file
find the appearance that you want to change
duplicate an existing entSkinnedMeshComponent
:
Select the new component. In the panel on the right, change the following properties:
mesh
-> DepotPath
: relative path to your mesh
tutorial\npv\your_female_character\feet\s1_converse\s1__pwa__converse.mesh
You can right-click on the .mesh file in the project browser and select copy relative path
mesh
-> meshAppearance
: the appearance that you did not delete during cleanup
e.g. black
You find this in the appearances
array inside the .mesh
file
That's it! Save and test!
If it's a clothing item not moving, check the skinning array for the component and make sure the bindName
is set to root
. If you swapped out a component for something else, you also might need to update its matching entry in AppearanceVisualController -> appearanceDependency
. But don't do that unless necessary.
That's what happens when the game can't find the appearance you picked. You're probably trying to add an AMM appearance. Check the spelling between your lua file with the appearance name, the mapping entry inside the .ent, and the appearance's name in the .app file.
How to customize NPCs with AMM
Published: Nov 27 2023 by Last documented update: Jun 02 2024 by
This guide will show you how to create fully custom NPCs for AMM.
If you want to create instead, check the link.
If you want to add new appearances to already existing NPCs, check
If you want to add V as an NPC, check . (It's a more advanced version of this workflow)
In this tutorial, we're creating a custom entity for Mamá Welles, because right now, she's .app-sharing with all the female Valentinos in the world (base\characters\appearances\gang\gang__valentinos_wa.app
), and frankly, she deserves better.
So we're moving her out of there and setting her up with her own files. We're also giving her a comfy outfit to wear at home.
We will be creating a new character, which we can spawn in addition to the regular Mamá Welles. That's because adding appearances to an existing character is simpler, so it has its own guide under .
You need at least the following versions and mods (newer is fine):
Cyberpunk 2077 game version >= 2.02
>= 8.11.1
>= 2.5.2 and its dependencies
>= 1.28.1
>= 1.5.0
Extract the downloaded zip file into your project's root directory (the source
folders should merge).
You should now see the following files:
Any links in this section will go to the NPV guide, which is a more complex version of this guide. You can read the theory and then come back here, or you can go along and find out later.
The archive contains
… and a bunch of custom meshes for the mama_welles_comfy
appearance.
When you're making your own NPC, you should make sure to take the root entity from a compatible character — what animation template and which set of facial expressions they use. If you don't know what that means, just look at Takemura-san and Viktor when they walk.
Alright, here's how you go about making changes:
Replace the .ent and the .app in your project with the NPC's original files
Adjust the .lua:
entity_info
=> path
must point at your .ent
file
The list appearances
I won't repeat it here — this section will only tell you how to change things. hold entries corresponding to the name
field in your .ent. This is how AMM populates the dropdown and activates the right appearance:
In the .lua
file, add an appearance to the appearances
array to register it with AMM.
In the .ent
file, open the appearances
array at the top of the file.
Optional, but recommended: Delete all appearances that you don't want, but keep one for the next step.
Create a new appearance:
Select an existing item
In the new entry, change the following fields:
name
: must match the name that you just registered in the .lua
appearanceName
: must match the name that you are going to use in the .app file in step 3.3
In the .app
file, open the appearances
array at the top of the file.
Optional, but recommended: Delete all appearances that you don't want, but keep one for the next step.
Create a new appearance:
Select an existing appearance
Change the appearance's name
to the value you used in step 2.3.2
If everything is working: Congratulations! You have successfully made a mod!
But before you can share it, you need to do one last thing, which is changing the file structure. Otherwise, everyone will overwrite the same tutorial files, and only one of those mods will work.
How to change V's head
Published: September 30 2023 by Last documented edit: Oct 20 2024 by
This guide will teach you how to edit the player head to create custom head shapes. You don't need to understand the complex parts of the process, as long as you follow the instructions to the letter.
If you want to edit other files for V, you may be able to find their paths in or one of the surrounding pages.
You have installed
You have
You have the installed and ready to go
This guide assumes that you'll be starting from 0. If you want to use character creator options, please reference the to the point where you apply all shapekeys.
You can consult -> for more information about head files. This is not necessary for the scope of this guide.
all morphtarget files for your body gender to your Wolvenkit project:
body gender | Asset Browser search query |
---|
Make sure to include all morphtargets in the folder: cyberware, tattoos, scars, and for mascV, beards.
If there is a collection with the name glTF_not_exported
, collapse or delete it - we don't need all those things.
You now have between 32 (femV) and 45 (mascV) collections in Blender. That's a lot of resculpting! Fortunately, we don't have to do everything by hand.
We'll make use of Blender's modifiers, specifically Surface Deform
, to do the heavy lifting for us. For that purpose, we'll use a dedicated sculpting mesh, and make everything else take its shape.
In the Outliner at the top right of your viewport, find the collection with the name of h0_000_pXa__morphs.morphtarget
(x being w or m) and expand it.
Find the mesh starting with submesh_00_LOD_1 (it can have a suffix like .001), and select it by clicking on it
Duplicate it (Hotkey: Shift+D
, ESC
)
Rename your duplicate to e.g. sculptme
. This is the mesh we'll be editing.
Select sculptme, then switch to the Data
tab of Properties
(at the bottom right of your viewport), and disable Shape Key Edit Mode
:
Now, we're ready to hook up the magic.
Each mesh in your .blend file needs a Surface Deform
modifier that binds it to sculptme
. Fortunately, you don't have to do that by hand!
Make sure that sculptme
is still selected in the Outliner - the script will target the wrong mesh if it isn't.
After clicking play, all meshes but sculptme
will now have a surface deform
modifier:
You can now hide all collections that you don't want to see in the Outliner.
I usually only keep sculptme
, eyes, and eyebrows visible (hiding the original head mesh)
Save your .blend file before you start with this. In fact, save it twice. You can thank me later.
You can use the sculpt mode to change the shape of sculptme
until you're satisfied.
As of October 2024, Wolvenkit may run into issues exporting edited morphtargets, so make sure to hang onto your .blend file!
This is an excellent time for a save, because the script will remove the surface deform modifiers.
Before you can export your sculpt, you need to apply the surface deform modifiers, because Wolvenkit (and Cyberpunk) will flat-out ignore them.
Fortunately, you can do this by script as well.
After clicking the play button, the Surface Deform modifier will now be gone, and your mesh will have changed shape for good.
You can now export the morphtargets.
For each armature, select all submeshes inside
If everything has worked, you should now be able to create a new V with your new head shape. (Loading into an existing V might cause crashes)
Happy modding!
By turning off character creator slides, you can stop Cyberpunk from crashing.
As of 8.15, this will break Wolvenkit export. Before exporting, you need to set the numTargets back to what WKit expects it to be.
For each .morphtarget
, you can change this value to 0:
Create
In Wolvenkit's , find the prepared folders per body gender:
body gender | file path |
---|---|
In Wolvenkit's , delete the .lua
file for the body gender that you don't want to use.
On the Wolvenkit toolbar, you'll find a button to
Now that you've done replacing the mesh files, confirm that your mod worked by clicking on "":
When deleting files that you aren't using, make sure to remove both the .mesh
file in the head
folder and the .morphtarget
file in the head/morphtargets
folder, both in the and the section.
Body gender/variant | Files not to delete from variants |
---|---|
Whenever you save the file, the Wolvenkit console will show you the results of the . These will point you towards mistakes in your paths.
Also, will help you by detecting broken links: keep an eye on Wolvenkit's log when you save a file.
Wolvenkit's triggers when you save a file, and it will help you to spot mistakes.
You can see that inside the .mesh file (which you can see in the component's depotPath
). Open it in Wolvenkit, then switch to the tab and toggle the checkboxes on the right; those directly correspond to the boxes you need to uncheck in the .app
file:
That is due to appearance proxies, which are how the game saves performance. If you're using the most recent , you shouldn't have any, but if you set up your files from scratch, you'll have to .
Hide 5-7 of the base body (original component name is t0_000_pXa_base__full
):
If you don't have these meshes (they should be included in the sample project), you can extract them from the .
This is the reason for the section in this guide. If you want more information, read . Otherwise, you can temporarily remove all other NPVs or make sure to complete the re-pathing.
You can check the page on the Wolvenkit wiki.
You enable the feature by overwriting the dummy .app file for your chosen NPV. Instead of looking up the path in the , we're lazy and overwrite the template file, which we find in the by using the following :
If you don't find those files, your isn't installed correctly. You'll want to fix this before proceeding.
Find the file that you want to use, and .
After you have changed the appearance names and saved the file, you can your Wolvenkit project.
The paths that you need to replace are in the under Adding your Pose Packs to Nibbles Replacer inside the spoiler tags. For your convenience, there's a duplicate in the expandable box below. If that's not working, please check the mod description!
Make sure that you keep the indent at the beginning (the number of spaces) exactly the same as it is for the other entries, or the file will break. If that happens, you'll see an entry in the .
To make sure that your file is okay, run it through .
This is a copy for your convenience. If the paths below aren'Ät working, please check the under Adding your Pose Packs to Nibbles Replacer inside the spoiler tags.
The rest of the process is documented in .
Create a
Import the .glb
that you into Blender:
If you are not using , proceed to the next section - otherwise, read on.
Before | After |
---|
Hit the button on the Wolvenkit toolbar
Check if your mod's .archive
file has been installed to the correct folder:
\archive\pc\mod
You can do this much more comfortably with the 's button.
To fix this, download modified materials from my google drive here:
You have
This section will show you how to find an NPC's , which you will add to your project. We do this by finding the NPC's , since it will be linked in there.
The NPC's is the entry point for the game. It defines an NPC's appearances, linking them to the actual definitions inside the corresponding .
You don't need to add this file to your project (and if you do it by accident, you should delete it later). For details, see .
You can try finding your NPC's .ent file on . If you can't find your entry, the page has information how you can search for it — please add it to the page, this wiki is a community project!
Point your to the file you have found. We want to find the .app file and add it to our project. You can right-click on the .ent file and select , or you look up the path in the .ent file:
Now that you have found the .app file, let's and look inside.
The only thing you need to care about is the components
array (learn more about these ). This is where you add, remove, or modify parts of an NPC's appearance:
The names of components should be unique so you can . You should generally stick to CDPR's naming scheme, including the prefixes ().
Change items by selecting a or a :
Remove items by deleting their entries from the list or by setting their :
For a detailed guide on adding hair, check -
Or it might end up leaving them standing in an exploded pixel cloud. In case of animated components, editing them will almost certainly break them (see )
Select the mesh, then "":
If you find an .ent file called _pwa_
or _pma_
, that's a player mesh entity, which contains only the components you need — jackpot, use that one. Otherwise, find any .app file that sounds promising - for example Scorpion's.
it to the project (you don't need the file).
Find and select the components in the other NPC's appearance list:
Select ""
Go back to your original .app file and select either the root of the components
array, or any component inside the array. Now right-click and select "".
If you haven't done that yet, the original component(s) and its animations/dangles. Skipping this step will give Johnny two vests, and he's not the type to do that.
Save the .app file, , and go testing!
Switch your Asset Browser to
Use the to find mesh files in your target .archive:
archive:my_mod_name > .mesh
You can now save your mesh and optionally run from the menu bar.
This works for simple components. Anything more complicated with physics (.anim or .rig), you should stealcopy from an .ent
file inside the mod (see the previous section, )
name
: a unique name that identifies your component.
You should get into the habit of using , as they come in handy for clothing items.
chunkMask
: Extend the dropdown and make sure that you want are visible (just check the boxes for 0-11 if you're not sure)
Adding new appearances to an existing NPC requires you to overwrite that NPC's .ent file (see ). For that matter, it's recommended that you create a new entity instead. You can find a guide for this under .
You may have forgotten to copy the animation file. Look for an entAnimatedComponent inside the .app — they're usually called something like xxx_dangle(s)
or collar.
Create a and give it a name that you can remember
Download the example project from
to tell AMM about our files
, which is where we register our appearances with the game (it's a copy of base\quest\tertiary_characters\mama_welles.ent
)
, which actually contains the appearances (it's a copy of base\characters\appearances\gang\gang__valentinos_wa.app
)
Read this section if you want to take the example project and mod a different NPC than Mamá Welles. Otherwise, you can check out below.
Find the NPC's .app
or .ent
file by using the .
If you've found an .app
, use "" to find the correct .ent
Optional, but recommended: before you start custompathing, change your folder structure. Since this will break your mod, can check for how to go about that.
Right-click and select "" from the context menu. This will create an exact copy of your existing appearance.
Right-click and select "" from the context menu. This will create an exact copy of your existing appearance.
Now it's time to adjust the components. This guide won't go into detail about this — see for more intel on the process.
You can find a full guide on how to do that .
Export them all via (you can find step-by-step instructions in the NPV guide under )
Use the to all of your morphtarget.glb
files. Make sure to un-check With Materials
in the right sidebar - we won't need them, and they'll only slow down the import process.
The script you need is from mana's github.
Follow the guide with that script, then come back here.
This is the part where you .
This guide won't go into details (yet), except to tell you that the Elastic Deform
tool is your best friend here. Check for tips and tricks how to go about this.
Find on mana's github
Follow the guide with that script, then come back here.
Use the 's default settings and overwrite the corresponding .morphtarget.glb
Import the files back into Wolvenkit via . This should simply work! If it does not, you might have to overwrite the mesh file as well - see the page for instructions.
Otherwise, the right place to ask for help is #mod-dev-chat
on the .
If you get an exception about blob.header.numTargets
: check .
Otherwise: as of Wolvenkit 8.15 - future Wolvenkit versions will fix this. It's why you were supposed to hang on to that .blend for dear life. :)
A known risk of custom heads, because custom cyberware/beards/tattoos won't play nice with this. See for an (admittedly heavy-handed) solution.
female
tutorial\npv\your_female_character
male
tutorial\npv\your_male_character
female V, cyberware 03
male V, scars 01
male V, big beard
female V, tattoo 09
male V, no earring
Files to delete (0* means "01 - 04"):
minimum number of files
4
maximum number of files
13 (female body gender)
14 (male body gender)
|
|
|
|
the latest version compatible with your game |
>= 3.5 |
Wolvenkit | latest >= 8.14 |
Blender | latest (>= 4.2) |
Optional | Unique V Body Framework |
fem |
|
masc |
|
This page will cover how to modify a character's body mesh and/or clothes, in detail.
Created: December 26 2023 by @madmaximusjb Last documented edit: August 17 2024 by manavortex
This guide will edit Viktor's body and clothing: he's an ex-boxer, he should be more muscular!
In the process, you'll learn the following things:
Locating an NPC's files
Editing a body in Blender
refitting a clothing item in Blender
Creating a Mod in Wolvenkit will not be covered by this guide.
If you just want the quick and dirty version, check Appearances: change the looks
Or maybe you only care about Exporting Characters to Blender
Blender (the version that is compatible with the plugin)
Hey choombas! Today we're going to be going over the entire workflow of modifying the appearance (body mesh or clothing) of a character in the game. For this guide, we'll be giving Vic (the ripperdoc) bigger pecs, but this guide should work with any character. Ready? Let's go.
The .app file lists the NPC's components, so everything that the game will add to them. This section will tell you how to find either the .app
file directly, or an .ent
file that leads to it.
Entity files are using the .app
files, so you can find them from there. For instructions on how to find them, just keep reaidng.
Under NPCs and their files, you can find a bunch of paths. If you're lucky, then your character is on that list.
Almost all entity files are in the following folder:
Most main characters have their .app files here:
You can read more about this under Appearance: .app files, but you don't have to.
For us, we'll be wanting to locate victor_vektor.app, which is in the main_npc folder I listed earlier.
Once we add this file to our project and open it, we will see an array named "appearances".
All of the different appearances for Victor are located in this array. Upon expanding it, we see that he only has three.
We'll edit the default appearance in this guide, but the process is the same for all of them, or even creating new appearances.
Open the default appearance and then the Components
array. This is where all of the components for that appearance are stored: clothes, body meshes, hair meshes, etc.
As you can see, there are quite a lot to sort through. Don't worry, most of these things you won't have to mess with anyway.
A quick tip: most of these components are prefaced by something like t0 or l1. Here's what that means: t=torso (t0 is usually the body mesh, t1 is usually clothes), l=legs, h=head, s=shoe. For more information, read here — you don't have to.
Here are the components for body and shirt: "t0_001_ma_body__ripper_doc6245" (body mesh) and "t1_001_ma_full__ripper_doc1487" (shirt).
We'll start with the body mesh.
To modify the body mesh, we'll export it to Blender.
First, add the mesh file to your project by clicking on the yellow arrow next to the mesh file's path:
Next, we want to export the file out of Wolvenkit to enable us to edit the mesh in Blender, since right now, the file is in a format Blender can't read.
You can find step-by-step instructions under the plugin's import/export page
Once that's open, check the box next to your body mesh and click "Export Selected".
You need to have the Wolvenkit Blender IO Suite installed for this!
Open up Blender, delete everything from the default project, and click on "File>Import>Cyberpunk GLTF".
Import it.
If all went well, you should see a blank body mesh in your viewport.
To edit this mesh, there are two ways to do it. You can use edit mode to edit specific vertices, or use sculpt mode if you prefer. We're going to use edit mode. Make sure you have your mesh selected, and enter edit.
Side note: for the purposes of ease, I'm going to join together the components of the mesh so I can edit the whole body without having to switch objects. To do this, go into Object Mode, select all components of the body (highlight the whole thing), and press Ctrl+J. Done.
You should see something like this:
These are all of the vertices that make up your mesh. Before we begin editing, you'll want to enable this button right here:
This enables proportional edit mode. Now, select a few vertices at random on Vic's pec muscles. It should look like this:
Now, to edit these vertices, we're going to press "g" and then "y" to edit them on the y-axis. Remember to scroll up until you see the circle around your cursor shrink to a little less than the width of Vic's chest. Now, we'll drag the cursor out a little to pull those areas out. Use some creative independence to determine what looks good. For me, this is fine.
Now that we've done that, make sure there aren't any rough edges on your mesh and then select your mesh and export it as a Cyberpunk GLB to the same file that you edited.
Now, you must go back to Wolvenkit to import the mesh. Even though you exported the file from Blender, it's still in a raw format and unreadable by the game. Go to "Tools>Import Tool". Select your mesh and "Import Selected".
Cool! You've just edited your first body mesh! Now we can change the shirt to account for our changes.
Keep in mind that instead of modifying the mesh in the game files, you could have made a copy of the mesh, modified that, and pointed the .app file to use that mesh. The same thing applies for the clothes. Find out how to custompath assets here: Custompathing
For more intel about clothes refitting, check Refit Clothes Easily
The first thing we want to do is find the piece of clothing that we want to edit within the .app file. For us, that's "t1_001_ma_full__ripper_doc1487". Let's export it using the same process as with the body mesh (remember to add it to your project before trying to export it).
Before we import the mesh into Blender, let's first import the edited body mesh so that we can see what we need to change. Follow the same process we used to import it the first time. You should get something like this:
Now that we can see what we need to edit, let's begin. Make sure to select all of the meshes that make up the shirt, as there are several. Once you have done so, select multiple vertices in the areas that the body is clipping, similar to what we did with the body mesh. Also, remember to enable proportional editing mode in the toolbar up top. Again, press "g" to enter edit mode and "y" to edit the mesh on the y-axis. Remember to scroll up until the circle around your cursor is small enough. Edit the shirt out until it doesn't clip anymore. This looks good to me:
Once you're happy with your edits, select ALL of the shirt meshes and export as a Cyberpunk GLB to the same file you imported.
Now, head back to Wolvenkit and import your changes. "Tools>Import Tool", check your mesh and click "import selected".
All that's left is to replace the depot path of the mesh you just edited. Head back to Vik's .app file, and find the shirt component ("t1_001_ma_full__ripper_doc148"). Replace the "mesh" path with the relative path of your mesh (right click on your mesh in the project explorer and "copy relative path"). Click save on the top left.
Now, you can pack your mod or install it directly to your game.
Note that if you did copy the mesh and created a custom path, you would have to also replace the path under "AppearanceVisualController>appearanceDependancy" for the component to appear correctly.
Also note that since we didn't copy the mesh and use a custom path, this mod would not display the other two appearances correctly. You would have to modify the other clothes.
Congratulations! You just edited an appearance and changed the clothes to match! This guide can be applied to most characters, so I'm excited to see what you'll do with it!
Until next time, chooms!
an NPV as per
| | )
Type something like character > .ent
in the Wolvenkit Search Bar and scroll a lot, or click on to learn more
Type something like character > .app
in the Wolvenkit Search Bar and scroll a lot, or click on to learn more
To export the .mesh into something that Blender can read, find the .
Locate your project folder, then find your mesh file in your project's . It'll probably be somewhere like "Ripperdoc_Tutorial\source\raw\base\characters\main_npc\ripper_doc".