For V: Creating facial cyberware
Custom facial chrome from scratch
Summary
Created: Jul 18 2025 by mana vortex Last documented update: Jul 18 2025 by mana vortex
This guide will show you how to create custom facial cyberware from scratch.
What you need
Skipping and skimming

This tutorial has no fluff, and you should not skip over parts of it unless they're clearly marked as optional. If you do anything differently (using other names or whatever), you add extra complexity which you will have to deal with.
I recommend following the steps exactly like a braindead automaton, then creating a backup copy of the working project before starting to fuck around.
Of course this is a free world, so you can do what you want.
Step 1: Setting up the files
- Add the basehead .mesh and .morphtarget to your Wolvenkit project: 
fem V
base\characters\head\player_base_heads\player_female_average\h0_000_pwa__morphs.morphtarget
base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\h0_000_pwa_c__basehead.mesh
mascV
base\characters\head\player_base_heads\player_man_average\h0_000_pma__morphs.morphtarget
base\characters\head\player_base_heads\player_man_average\h0_000_pma_c__basehead\h0_000_pma_c__basehead.mesh
Currently, your mod is overwriting the player base head. To avoid that, we will custompath and move both files to a custom folder.
- Select the - .meshfile and use Wolvenkit's rename function (- f2) to move it. Make sure to have the "Update in project files" box ticked.

- Do the same for the .morphtarget file. 
- Your - archivetab should now look like this:

- Now, export the - .meshand- .morphtargetfile: In Wkit's Export Tool, click on the "Export all" button. This will create the files for Blender in your folder.
Step 2: Creating your new cyberware
- Open up Blender and import the .morphtarget file. We will only work on that one! 
You should now see something like this:

- Select the head mesh by clicking on it in the outliner (blue arrows to the right) 
- Duplicate the head (Hotkey: - Shift+D), so that you have a reference for resizing.
- Switch to Edit Mode ( - Tab)
Step 2.1: Cutting out your cyberware's shape
We will now cut away all the faces (surface triangles) that are not part of your custom cyberware.
I'm putting a smiley on V's forehead, so I am cutting away everything but this little part:

2.2: Make it a tiny bit larger
We want our cyberware to float above the player head, not clip into it. For that reason, we need to scale it up a little.
- Select all vertices (Hotkey: - a)
- Enter scaling mode (Hotkey: - s)
- Upscale it slightly (Hotkey: type - 0.02and press enter) - you have the original head as a reference
Once it is directly above the surface, you're done here.
Step 3: Textures

- Switch back to Object mode (hotkey: - Tab)
- Delete the reference head mesh (select it by clicking, then press - x)
- Switch to the Shading perspective 
- Make sure that the viewport is set to "Viewport Shading" 
- Add a new material to your mesh by clicking the "New" button 
This creates a new empty material for Blender.
3.1: Adding a texture
Now, add a blank texture to your mesh. Move your mouse cursor over the node editor at the bottom, then do the following:
- Add a new image texture (hotkey: - Shift+A, type- image, press enter)
- Create a new image texture by clicking the - + Newbutton
- Give it a name (for example - my_new_cyberware_d01)
- Connect the - Coloroutput of your new node to the- Base Colorinput of the- Principled BSDFshader node
- Click on the texture node to select it. That will change the texture viewport on the left to black. 

3.2 UV Mapping
- In the top bar where you switched to the Shading perspective in 3.1, switch to - UV Editing
- Make sure that your viewport (right) is in Edit Mode (Hotkey: - Tab)
- Select all vertices (Hotkey: - A)
- To prepare for UV unwrapping, we will now merge by distance (Hotkey: - m):

- On the UV editor on the left side, also select all vertices (Hotkey: - A)
- Unwrap them (Hotkey: - Ctrl+U)

Now that our UV map is using the whole texture, it's time to paint our texture.
3.3 Texture painting
- In the top bar where you switched to the Shading perspective in 3.1, switch to - Texture Paint
- You can now use a brush to paint, either on the texture (left), or on the 3d model (right): 

- Draw the rest of the owl. 
- Once you are done painting your texture, save it: - Move the mouse over the texture port on the left and press Ctrl+Alt+S 
- From the "Recents" dropdown, select the topmost folder (where your mesh and morphtarget are) 
- Right-click to create a new folder "textures" 
- Save your texture inside the fodler as - my_new_cyberware_d01.png
 
Step 4: Back into Wolvenkit
In this section, we'll get our .mesh and .morphtarget back into Wolvenkit.
- In the top bar, switch back to the - Layoutperspective
- Make sure that your viewport is in Object mode (Hotkey: - Tab)
- Select all meshes that you want to export 
- From the menu, select File -> Export -> Cyberpunk GLB (or see the wiki page) 
- Overwrite both - h0_000_pwa_c__basehead.glband- h0_000_pwa__morphs.morphtarget.glb
That was the Blender part. Now, we need to go back to Wolvenkit.
- On the Import Tool in the bottom left, import first the glb that goes into the - .meshfile:

- Now, import the morphtarget and the texture. 
Step 5: Materials
- Open the - .meshfile in Wolvenkit
- From the top bar, open the "Clean Up" menu 
- Hold the shift key and click "Clear All Materials": 

- Save the file. 
5.1 Creating and configuring a new appearance
Now, we'll create an appearance with materials.
- Select the - appearancesnode, and click the yellow- +button on the right:

- Expand the - appearancesnode on the left
- Expand your new appearance (it is called - default)
- Select the - chunkMaterialsnode on the left, and click the yellow button again to add an entry
- Give the chunkMaterial the name of the material that you will create next (e.g. - my_custom_cyberware_material):

5.1.1 Adding the material
- On the left, expand the - localMaterialBuffernode and select its child- materials
- Right-click, then select - Add material and definitionfrom the context menu
- In the popup dialogue, enter the name from step 5 in the previous section (e.g. - my_custom_cyberware_material)
- Select the new CMaterialInstance 
5.1.2 Configuring the material
This is where we tell the material how to behave. We'll create a decal (something that is projected on top of something else), then tell it to use our texture.
- Set the - baseMaterialdepot path to- base\materials\mesh_decal.mt
- Expand the node and select the - valuesarray
- Click the yellow + button on the right panel 
- In the dialogue that now opens, add a - Texture- Change its - keyto- DiffuseTexture
- Change its - valueto the relative path to your texture (right-click on the texture in the project browser, select- copy relative path, then paste it into the depot path box)
 
- Add another property, this one a - Scalar- Change its key to DiffuseAlpha 
- Change its value to 1 
 

The decal will now project your texture on top of V's head, and force it to be completely intransparent.
Step 6: Connecting everything
So far, we have a .mesh and a .morphtarget in Wolvenkit. If we packed the mod now, nothing would happen, because the game doesn't know what to do with those files.
6.1 The .ent file
First, we need an .ent file to hold our component.
- Find - base\characters\head\player_base_heads\appearances\entity\cyberware\hx_000_pwa__cyberware_01.entand add it to your project (- pmafor masc V)
- Move the file to your folder (tutorial\cyberware\my_custom_face_cyberware) and open it 
- Select the second component and change the following properties: - morphresource's - depotPathto the path of your custom morphtarget
- the name to something unique 
 

- Save the file. 
6.2 The .xl file
Now we only need to add our .ent file to the player entity. ArchiveXL can do that for us.
- Switch your project browser to the - Resourcestab
- In the resources folder, create a new .xl file (or an empty text file with the .archive.xl extension) 
- In the text file, paste the following content (delete the gender that you're not using): 
resource:
  patch:
    # masc V
    tutorial\cyberware\my_custom_face_cyberware\hx_000_pma__cyberware_01.ent:
      - base\characters\entities\player\photo_mode\player_ma_photomode.ent
      - base\characters\entities\player\player_ma_tpp.ent
      - base\characters\entities\player\player_ma_tpp_cutscene.ent
      - base\characters\entities\player\player_ma_tpp_cutscene_no_impostor.ent
      - base\characters\entities\player\player_ma_tpp_reflexion.ent
      - ep1\characters\entities\player\photo_mode\player_ma_photomode_ep1.ent
      - ep1\characters\entities\player\player_ma_tpp_ep1.ent
    # fem V
    tutorial\cyberware\my_custom_face_cyberware\hx_000_pwa__cyberware_01.ent:
      - base\characters\entities\player\photo_mode\player_wa_photomode.ent
      - base\characters\entities\player\player_wa_tpp.ent
      - base\characters\entities\player\player_wa_tpp_cutscene.ent
      - base\characters\entities\player\player_wa_tpp_cutscene_no_impostor.ent
      - base\characters\entities\player\player_wa_tpp_reflexion.ent
      - ep1\characters\entities\player\photo_mode\player_wa_photomode_ep1.ent
      - ep1\characters\entities\player\player_wa_tpp_ep1.entNow, start the game. If you did everything correctly, you should now see your new cyberware!

Last updated
