arrow-left

Only this pageAll pages
gitbookPowered by GitBook
triangle-exclamation
Couldn't generate the PDF for 176 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

Cyberpunk 2077 Modding

Loading...

For Mod Users:

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

For Mod Creators:

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...

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...

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...

Home

Welcome to the Cyberpunk 2077 modding wiki!

This is the dedicated repository for modding guides, resources and know-how.

triangle-exclamation

This wiki is a community project! Do you want to improve or add anything? Become an editorarrow-up-right and start editing right now, or find us on Discordarrow-up-right.

Don't worry, we'll review everything - you can't mess anything up, and all contributions are welcome!

Cover

Modding Troubleshooting

Cover

Modders' Resources

References, lists and overviews

A list of look-ups

In this section, you can look up information like "what is the material name for skin color type 3 again" or "where are the Mantis blade arms".

Detailed information should go in other sections and be interlinked.

Exporting .mesh/.w2mesh

Using REDmod to export .mesh and .w2mesh files to .fbx format

Optional Parameters for meshes

-lod=<uint>           - Defines mesh's lod to be exported
-mesh-skinning=<bool> - export skinning (armature data) default is false

Example Command:

redmod resource-export -depot="M:\" -input="base\test\example.mesh" -output="M:\base\test\example.fbx" -lod=1 -mesh-skinning=true
circle-info

You can also export to .fbx with REDmod through the Wolvenkit GUI!

Modding Tools

Frequently used tools for modding workflows

hashtag
Editors

hashtag
WolvenKit

Script Modding

To make a script mod in REDmod:

  1. make a new mod and create a new folder here: <Cyberpunk 2077>/mods/MODNAME/scripts

  2. copy the .script file(s) you want to change from <Cyberpunk 2077>/tools/redmod/scripts

Equipment

Everything about gear

This section collects

  • look-ups about equipment (preview pictures and spawn codes)

  • documented variants per item

Please use the wiki page tree to find the section's content, or click on the next

Materials: troubleshooting

Troubleshooting guide for materials.

hashtag
My material ignores transparency!

If you have , then something in the mesh got borked. Easiest way to fix:

  • Export your mesh

Exporting .xbm

REDmod can export REDengine .xbm files to several raw formats for editing.

dds: DirectDraw Surface bmp: Windows Bitmap jpg: Joint Photographics Experts Group tga: Truevision Targa png: Portable Network Graphics

XBM PARAMETERS

circle-exclamation

AMM

Appearance Menu Mod

Appearance Menu Mod has its own documentation at…

You can find help on their .

Multilayered: Previews

Collect preview pictures for multilayered materials here

hashtag
bronze_roof_tile_bare

hashtag
roughness and colour

Commands

link at the bottom of this page.

Re-name it to act as a backup

  • Replace it with something where transparency definitely works

  • Import over that mesh

  • Copy-paste the material setup from the original mesh

  • done everything correctly
    Discordarrow-up-right
    Deploychevron-right
    Importing Animationschevron-right

    Locations

    Interesting locations

    If your looking for places to edit, locations that have already had their sectors located can be found on the Wolvenkit wiki here.arrow-up-right

    The CET wiki has a list of interesting locations for teleport here.arrow-up-right

    The AMM Discordarrow-up-right has an entire channel dedicated to finding interesting places. Join up and have a look.

    Once you have locations you can edit them following the guides by Kratoes in the World Editing section of this wiki, or export them to Blender by following the guide arrow-up-rightover on the Wolvenkit wiki.

    Scripting

    Game components explained

    What do the different files do? How do I mod them?

    Please see the individual subpages in the menu to get to the content, or use the "Next" button at the bottom of the page.

    File Formatschevron-right

    TweakDB

    A couple different TweakDB records (also called groups) can be used to create a vehicle. The YAML .tweak files shown the examples here can be processed by WolvenKit arrow-up-rightto create a .bin that can be loaded into the game with TweakDBextarrow-up-right. The groups section creates the record, and the flats are automatically generated from that.

    In addition to adding the record, the Vehicle.vehicle_list.list flat (array:TweakDBID) must be updated with the TweakDBID of the new record (Vehicle.vehicle_template is the TweakDBID of the template, as an example), and Vehicle.vehicle_list.initially_unlocked_list (array:TweakDBID) can be added to for that vehicle to be available upon the start of the game.

    ``

    Vehicles

    The pages following this aim to give a detailed view of the resources that make up each vehicle in the game, with the hope that you'll be able to create (not just modify) vehicles for the game.

    you can also export textures using the wolvenkit gui (recommended)
        -bitmap-mipmap=<uint>           - mipmap selection
    
        -bitmap-source=<bool>           - export uncooked file (default = false)
    
        -bitmap-flip=<bool>             - flip texture (default = false)
    
        -bitmap-gamma=<bool>            - forced gamma setting (default = false)
    redmod resource-export -depot="M:\" -input="base\test\example.xbm" -output="M:\base\test\example.png" -bitmap-flip=true

    REDmod

    Using Redmod to create mods.

    circle-info

    if you're looking for how to use REDmod to install and manage mods as a user, click here

    REDmod is a command line tool developed by CDPR and Yigsoft which allows us to interact with game files in a variety of ways

    Modules for mod creators:

    resource-export  - Export REDengine files to raw format for editing
    resource-import  - Import raw files to REDengine formats for use in your mod
    animation-import - import .re animation files to an animset
    util-hash        - Hashes paths/string with given hash algorithm
    help             - Displays helpful info about the other avaliable modules (use -h or -help on any command)

    For further information, see the sub-pages in the wiki's menu tree.

    Exporting Resources to Raw Formats

    REDmod can export .mesh, .w2mesh, .xbm, rsvg and .svg files using the resource-export command.

    redmod resource-export -depot=<depot> -input=<resource-path> -output=<file> -<optional parameters>

    PARAMETERS

        -depot=<depot>                  - directory-path to the depot (e.g. "C:\depot")
    
        -input=<resource-path>          - resource path of the file to export (relative to depot)
    
        -output=<file>                  - absolute path to the output file
    ❗
    preserving the folder structure!
  • add an info.json file to <Cyberpunk 2077>/mods/MODNAME/scripts with some mod info

  • ✅ Done. To test, launch the game with REDmod.

    {
        "name": "MODNAME",
        "description": "Description for the script mod.",
        "version": "1.0.0",
        "customSounds":    [ ]
    }
    The open source tool we all know and love, which is getting better with every bug you file.

    hashtag
    Notepad++

    hashtag
    010 Editor

    hashtag
    Assets

    hashtag
    Blender

    hashtag
    3ds Max

    hashtag
    Maya

    hashtag
    Substance

    hashtag
    Gimp

    hashtag
    Krita

    hashtag
    Paint.NET

    hashtag
    Photoshop

    hashtag
    Archived (legacy)

    These tools are no longer maintained/supported

    hashtag
    Silver

    hashtag
    material variants

    hashtag
    Metals: rolled

    How roughness affects a material (the colour was not changed)

    Noesis

    What is Noesis?

    hashtag
    Introduction

    Noesis' UI with CP77 python plugin

    From the website: Noesis is a tool for previewing and converting between hundreds of model, image, and animation formats. It utilizes a robust plugin system, with support for native extension modules and Python scripts.

    Noesis is considered one of Cyberpunk 2077 Modding's cornerstones for its ability to open .mesh files and convert it into a wide variety of other 3d file extensions (like GLB and FBX) thanks to alphaZomega's CP77 Python script that makes that possible.

    hashtag
    Download

    hashtag
    Noesis

    Download Noesis from Rich Whitehouse's website

    hashtag
    alphaZomega's CP77 Python plugin

    Download the plugin from here \

    hashtag
    Setup

    After installing Noesis, put the fmt_CP77mesh.py file in the python folder located inside the plugins folder, and make sure that oo2ext_7_win64.dll is placed next to the plugin in folder.

    hashtag
    Basic export/import process

    hashtag
    Exporting

    Open your .mesh file in Noesis64.exe, then right click on it inside the app and press Export, from there you will be given file extensions to export into, .FBX is the go-to for any usual process and for easier importing into 3D Apps like Blender and 3DS Max.

    Same goes for .xbm files.

    hashtag
    Importing

    Open your 3d file (like .fbx or .glb) in Noesis64.exe, export and select .mesh - CyberPunk 2077 mesh [PC], when a dialogue box shows up browse and select the .mesh file that is appropriate for your import(for example if it was a shirt you'd probably export over .mesh files that has shirts in them), then click OK.

    Glossary

    List of words that need more context

    A comprehensive list of jargon you might see on this Wiki or around our community. This glossary is not alphabetical, so be sure to use your browser search function to find what you're looking for. (CTRL+F for most applications)

    hashtag
    General

    • GitHub: A website which hosts code and helps programmers collaborate on projects. The source code for e.g. WolvenKit or Cyber Engine Tweaks is hosted there. You can compile the WolvenKit source code yourself, or for non-developers you can find WolvenKit releases here first.

    • REDengine: The proprietary video game engine developed by CD Projekt Red for The Witcher 3 and Cyberpunk 2077. Witcher 3 uses REDengine 3 (RED3), Cyberpunk 2077 uses REDengine 4 (RED4).

    hashtag
    Modding Tools

    • CP77 Tools: The original Cyberpunk 2077 modding Command Line Tools. (Renamed and moved to WolvenKit CLI)

    • Official Modkit for The Witcher 3 (WCC): An official CDPR command-line tool for modding The Witcher 3. Legacy WolvenKit makes extensive use of the Modkit.

    • REDmod: An official CDPR command-line tool for modding Cyberpunk 2077.

    hashtag
    WolvenKit

    • masklist: The masklist file is a custom .txt document used as a helper file to generate new mlmasks using the Import/Export tool.

    • Material json: Material json files are used by the Import/Export tool during for the mesh I/O process. The json will be named after the mesh file then suffixed with .Material.json (i.e. judy_01.Material.json)

    hashtag
    Game Files

    • Cooked: A redengine resource file file that is compressed by the REDengine build process. Files extracted with the Asset Browser using WolvenKit (including Legacy) are cooked files. See also:

    • Packed: CDPR games do not load loose files, but rather compress resources into archives. This compression process is called packing. The Witcher 3 uses ".bundle" files while Cyberpunk 2077 uses the ".archive" file format.

    hashtag
    Modding

    • Reference: A string value in a resource that exists in another resource, and it is used to chain resource together as they are loaded into the game. Some examples are a DepotPath that points at another resource, a list index that points at a material entry, and an appearance that points at a component.

    • Vanilla: Original or unmodified i.e. Johnny Silverhand's vanilla appearance can be changed with a DLC.

    Animation Modding

    hashtag
    Animation Modding - WolvenKit Integration

    The REDmod animation import tool can be used as a Plugin in WolvenKitarrow-up-right.

    • Add the .re animation file you wish to import to your /Raw folder in your mod project

    • Add the .anims animation set file from the game with the Asset Browser

    • Click View > Import/Export tool

    • In the Import/Export tool, navigate to Import: a list of all .re animation file in your /Raw folder will appear

    • Double click the entry to change the import options:

      • Select the .anims animation set file to import from the dropdown

      • Select the animation name you wish to override from the dropdown

    • Click process

    INFO - It is best to name .re animation correctly even if you replace an existing animation, because the imported animation will always have the filename of the .re file.

    INFO - You need to have the .rig file used by the .anims animationset present in your WolvenKit project.

    hashtag
    Animation Modding - Manually

    See also: Import Command

    The import command imports an .re animation file into an existing .anims animation set file.

    Optional parameters include specifying an existing animation name to rename inside the animset file (otherwise the filename of the .re animation file is used) or specifying a different output path (default is overwrite).

    INFO - It is best to name .re animation correctly even if you replace an existing animation, because the imported animation will always have the filename of the .re file.

    INFO - You need to have the .rig file used by the .anims animationset present in your depot path.

    010 Editor

    What is 010 Editor?

    010 Editor with CP77_CR2W template file

    010 Editor is a generic hex editing software which is capable of reading and writing REDengine W2RC files. A custom template for the 010 Editor created by @alphaZomega must be used to parse game files as human-readable.

    hashtag
    Download

    The 010 Editor can be downloaded from Sweetscape's website

    hashtag
    010 Editor Template for Cyberpunk 2077

    alphaZomega's CP77_CR2W.bt 010 template can be downloaded from the following link:

    hashtag
    Setup

    1. Install 010 Editor and run it.

    2. install alphaZomega's template by navigating to Templates > View Installed Templates, then click Add and add CP77_CR2W.bt.

    3. Navigate to your Cybeprunk 2077 installation, locate the oo2ext_7_win64.dll file, then copy and paste the DLL to the same location as the BT template file.

    hashtag
    Scripts

    hashtag
    Unkarkify and Rebuild

    Unpack and pack the compressed "KARK'd" data within a CP77_CR2W file

    hashtag
    Erase

    Deletes an entire name and value's worth of a section inside the aforementioned formatted file

    hashtag
    changeMatHdrs

    Changes all the Material headers' numbers inside a file to be a universal one with zero offsets

    hashtag
    insertMatHdrs

    Creates a new material header inside a file

    Cyberpunk Hair Material

    There is next to nothing here yet. Maybe you'd like to change it?

    Hair properties are collected in .hp (hair profile) files. Each hair profile has two greyscale maps and a gradient.

    It does not use a normal map.

    hashtag
    Gradient

    A gradient with hair colour information. This is used to color individual strands via the ID map.

    hashtag
    ID(entity)

    Maps the individual hair strands by colour: Value <=> position on the gradient

    hashtag
    Flow

    Controls "bending" direction of hair by assigning a colour to the strand.

    hashtag
    FlowStrength

    A multiplier how strongly this should affect hair

    For more information, you can read up on a conversation by the expert .

    Blender scripts and plugins

    hashtag
    Plugins

    for WKit export "With Materials"

    hashtag
    Scripts

    Archive

    This section contains an overview of things that you might encounter while modding vehicles. For a full list of sub-pages, please check the link tree in the left-hand menu.

    hashtag
    Appearances

    For the documentation on .app files (appearance definitions), see here or check the appearance mappings subpage.

    hashtag
    Entity Files

    For the documentation on .ent files, see .

    An example entry for a vehicle entEntityTemplate from a vehicle's .ent file looks like this:

    key
    example

    TweakDB Modding

    To make a tweak mod in REDmod:

    1. make a new mod and create a new folder here: <Cyberpunk 2077>/mods/MODNAME/tweaks

    2. copy the .tweak file(s) you want to change from <Cyberpunk 2077>/tools/redmod/tweaks ❗ preserving the folder structure!

    3. add a info.json file to <Cyberpunk 2077>/mods/MODNAME/tweaks with some mod info

    ✅ Done. To test, launch the game with REDmod.

    Textures: .xbm files

    Details about in-game textures

    This wiki page contains documentation about xbm files and their properties.

    hashtag
    Wait, this isn't what I want!

    Would you rather…

    • textures?

    • Learn about ?

    • Use on your mesh?

    hashtag
    TL;DR

    .xbm files are simply CR2W representations of DDS files, which are read by REDengine. This means they are nearly completely compatible and all features of DDS files are included in XBM files.

    hashtag
    Header

    While most of the XBM file is taken up by the texture data itself, it is useless without a section telling the engine how to read and use this data. Because of this, a part of the XBM file is set apart for the header, where info about the size, mipmapping, and general details of the texture are stored.

    The use of this header is for the engine to read the data and adjust it correctly, for example, if your texture data is that of a 1024x1024 texture, but the header says it is 512x512, the engine will read it as 512x512, compromising or otherwise changing how the texture data is displayed.

    As well, texture format is stored here. If the texture data is, say, for a 3D texture, while the header says it is a 2D texture, the engine will read it as 2D. As well, mipmap information is kept here, mip maps being lower-resolution versions of the same texture for LOD and texture filtering uses.

    hashtag
    Setup

    The setup section of the XBM file is in essence an extension of the header. It contains settings that, more than just describing basic information about the texture, also describe bit depth, texture type, and format, as well as extended features, like gamma correction, streamability, and mipchains.

    Meshes and Armatures: Rigging

    How everything is connected, or: why your edited mesh moves weirdly

    circle-info

    For a documentation of the import/export options in Wolvenkit, check herearrow-up-right.

    For Simarillius's Blender script to merge several armatures, check herearrow-up-right.

    For a youtube video how to transfer weights between rigs, see herearrow-up-right.

    The connection between a mesh and a rig is made via vertex groups. Any number of vertices can be assigned to a group, which is then matched to a rig's bone via name.

    How much every bone influences the vertices is determined by vertex weight, which can be altered in Blender's Weight Paint perspective:

    Vertex weights are assigned for every vertex group, and each vertex will move on the basis of the sum of all its weights.

    circle-check

    To preview the deform in Blender, you can select the mesh's parent armature and enter the "Pose Mode". There, you can either apply an , or select individual bones and rotate/move them. The Armature modifier will morph your mesh according to the pose, letting you spot errors much faster than trying to debug them in-game.

    circle-info

    You can see a video of the process (courtesy of Vesna).

    WolvenKit

    WolvenKit - The ultimate mod editor for REDengine games

    To dowload the tool and know more about it, go to the WolvenKit Wiki:

    WolvenKit is an open-source modding tool for Cyberpunk 2077 and The Witcher 3: Wild Hunt. Our vision is to develop a standalone software which can read and write all REDengine file formats, simplify and accelerate modding workflows, and help you create great mods for great games.

    Game icons: The inkatlas file

    circle-check

    Apart has prepared a reference project with an import-ready inkatlas. You can download it herearrow-up-right.

    hashtag
    Summary

    The .inkatlas is a map file that slices into slots, which are then used by the game for pretty much everything that is a picture - from your HUD to peoples' phone avatars to item preview icons in shops or custom atelier images.

    hashtag
    Guides

    For a guide how to create custom icon previews, see .

    For a guide how to create a custom Atelier icon, see .

    Importing Animations

    redmod import -gameRoot=<depot> -inputPath=<file> -animset=<resource-path> [options]

    hashtag
    Synopsis

    hashtag
    Description

    Vehicle Filename Parsing

    Referenced from base\appearances_mappings.json, base\vehicles\vehicle_filename_parsing.json contains a regex string is defined that outlines the allowable file names for .ent files ():

    For a filename like v_sport2_mizutani_shion__ext01_body_01.ent, this would match the following groups:

    • Group 1: sport

    3d Modelling

    Find knowledge on editing 3d models here

    Check the sub-pages for more detes, or check the section's sub-pages.

    hashtag
    Relevant guides

    Due to its complexity, we don't have a dedicated guide on Blender. However, if you have no idea how to start, various other guides cover part of the process:

    Deploy

    deploy - Deploys mods to the game by compiling them together

    hashtag
    Synopsis

    hashtag

    REDmod

    https://www.cyberpunk.net/en/modding-support

    REDmod is a modding framework and a set of command line tools for modding Cyberpunk 2077 that allow you to compile script and tweak source files and allow for sound and animation modding.

    circle-check

    If you already have REDMod installed and just want to enable mods, check .

    Parts & Parts Categories

    These are the part names used in filenames for .mesh and .ent files. Each header is their category - base is used in both Interior & Exterior.

    hashtag
    Interior

    Shaders

    RED4 shaders (mt)

    hashtag
    What are shaders?

    Every visual asset in REDengine uses a specific shader, designated by REDengine as MT (.mt) files. Even meshes "without a shader" are in-fact using a debug shader such as debug_coloring.mt. Shaders are the most basic expression of a surface, ranging from glass, skin, concrete, and steel. Each shader contains a combination of constant hidden-variables, and exposed variables for artists to tweak. For example, all skin exhibits some similar properties such as subsurface scattering so there is no reason to expose this; artists cannot use the skin shader without subsurface scattering. However skin color can vary dramatically, so these parameters are exposed to the artists using textures or color parameters. Artists are able to create "instances" of shaders called which contain localized variations of the textures and properties exposed by the base shader.

    Appearances Mappings

    In base\appearance_mappings.json, entity types have their resources defined. The vehicle definition is below:

    key
    value

    TweakDB

    hashtag
    What is the Tweak DB?

    Cyberpunk 2077 uses a single static database file which contains data about gameplay elements. This database file can be located at the following path within the Cyberpunk 2077 game installation: Cyberpunk 2077\r6\cache\tweakdb.bin This file and the accompanying system Cyberpunk 2077 uses to register and control gameplay elements is called the Tweak DB. The Tweak DB is responsible for registering all player-facing items such as vehicles, weapons, and apparel. In other words, to create a new standalone gameplay item mod developers must take advantage of the Tweak DB.

    base

  • steering_wheel

  • pedals

  • hashtag
    Exterior

    • base

    • bumper_f

    • bumper_b

    • hood

    • trunk

    • door_fl

    • door_fr

    • door_bl

    • door_br

    • fuelcap

    • fuelport

    hashtag
    Wheel

    • wheel

  • WolvenKit: The unofficial community modding toolkit.

  • WolvenKit CLI: The command line interface version of WolvenKit. (Formerly CP77 Tools)

  • Raw: Generic term used to refer to non-REDengine files that have a resource counterpart. The raw format of the REDengine XBM texture format can be TGA, PNG, DDS, etc. e.g. "Do you have the raw texture?" - This is an inquiry about the TGA/PNG/DDS counterpart to a game texture file.
  • Resource: A technical term for a REDengine asset file (e.g. .xbm, .mesh, .env).

  • Uncooked: A term used to describe a redengine resource file (not a raw file) in its most basic uncompressed state. e.g. After using the Official Witcher 3 Modkit to import an FBX to W2MESH, this file is uncooked. Rather than calling these files imported, the uncooked terminology is derived from the cooked (compressed) file state.

  • W2RC/CR2W: The file magic number for REDengine files. REDengine resource files are commonly referenced as W2RC/CR2W files for shorthand.

  • https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/Deployment/Cooking/arrow-up-right
    herearrow-up-right

    name

    quadra_type66__basic_urban_01

    appearanceResource

    [`base\vehicles\appearances\sport\quadra_type66__basic.app`](.app-file-appearanceresource.md)

    appearanceName

    urban_01

    here
    Edit, import, or export
    textured materials
    a textured material
    textures
    here
    here

    Justifies UVs, generation of hair cards Mesh has to be in quads

    Merge armatures (rigs)arrow-up-right

    Ctrl+J only works if they don't share bones

    Import with materialarrow-up-right
    TexToolsarrow-up-right
    exported animationarrow-up-right
    here
    These vertices move with the bone "Spine3"
    Weight painting

    hashtag
    What are materials?

    Materials are a specific instance of a shader, to be used on a mesh or subset of meshes. Materials are contained inside mi (material instance) files or within mesh files themselves as a CMaterialInstance chunk. While internal material instance chunks can be handy to have inside the mesh, external mi files can be used for multiple meshes. It's important to remember that materials are simply instances of shaders. The variables contained within the material only take effect when those same variables are present inside the base shader. For example, if RoughnessTexture is not present within the base shader adding this property to a material instance will have absolutely no effect.

    hashtag
    The Daisy Chain

    The mechanism behind the link between shaders and meshes can be thought of as a daisy chain. Meshes do not directly link shaders, but instead rely on a variable number of daisy chained materials. Some meshes may use a single internal material instance, which specifies a base shader.

    The other approach which is just as, or perhaps more common is chaining several mi files together. The benefit of doing so, is the ability to globally adjust materials for hundreds or thousands of meshes. When chaining multiple materials together, the properties of each material overwrite those that are below.

    Material Instances
    Shader Docschevron-right
    Multilayeredchevron-right
    {
        "name": "MODNAME",
        "description": "Description for the tweak mod.",
        "version": "1.0.0",
        "customSounds":    [ ]
    }
    The import command imports an .re animation file into an existing .anims animation set file.

    Optional parameters include specifying an existing animation name to rename inside the animset file (otherwise the filename of the .re animation file is used) or specifying a different output path (default is overwrite).

    INFO - It is best to name .re animation correctly even if you replace an existing animation, because the imported animation will always have the filename of the .re file.

    hashtag
    Arguments

    • -gameRoot=<path>

      directory-path to the depot for animset and output (e.g. C:\modding\depot)

    INFO - this is the base depot from which relative <resource-paths> are loaded

    INFO - You need to have the .rig file used by the .anims animationset present in your depot path.

    • -inputPath=<file>

      absolute path to the animation .re file

    • -animset=<resource-path>

      resource .animset file to use

    INFO - resource path must start with base\ (e.g. base\animations\npc\generic_characters\male_average\open_world\generic_male_average__stand__rh_cane_lh_cigar__01.anims)

    hashtag
    Options

    • -outputPath=<resource-path>

      resource .anims file name to write, default is to overwrite the input animset (resource path must start with base\)

    • -animationRename=<name>

      parameter representing the old name of animation to be replaced by the new animation (default is the filename of the .re animation file)

    INFO - the imported animation will always have the filename of the .re file even if you specify the animationRename parameter.

    • -?|-h|--help

      Prints out a description of how to use the command.

    hashtag
    Examples

    • redmod import -gameRoot="E:\modding\depot" -input="E:\raw files\animtest1\macarena_long (1).re" -animset=base\animations\npc\generic_characters\male_average\open_world\generic_male_average__stand__rh_cane_lh_cigar__01.anims -output=base\out\new_test.anims -animationRename=stand__rh_cane_lh_cigar__01__smoke__02"

      Imports the animation file E:\raw files\animtest1\macarena_long (1).re into the animset file E:\modding\depot\base\animations\npc\generic_characters\male_average\open_world\generic_male_average__stand__rh_cane_lh_cigar__01.anims and replaces the animation with the name stand__rh_cane_lh_cigar__01__smoke__02 with the name macarena_long (1). The result is saved to to E:\modding\depot\base\out\new_test.anims.

    Description

    The deploy command stages installed mods to work when the game starts with the modded flag.

    • archives from <Cyberpunk 2077>/mods/<name> are staged to load

    • scripts in <Cyberpunk 2077>/mods/<name>/scripts are compiled into a modded script blob

    • tweak files in <Cyberpunk 2077>/mods/<name>/tweaks are compiled into a modded tweakDB blob

    • sound files in <Cyberpunk 2077>/mods/<name>/customSounds are staged to load

    You can specify a specific load order with the -mod parameter

    hashtag
    Arguments

    • -root=<path>

      the game root folder for which the deploy command is run.

    INFO - this needs to be <Cyberpunk 2077>

    hashtag
    Options

    • -mod=<modA dirname> [<modB dirname> ...]

      stage only the mods in the given directory names (without the leading mods\), in left to right load order precedence. You must escape any spaces by enclosing the argument in double quotes (for example Mod With Space should be given as -mod="Mod With Space".)

    • -?|-h|--help

      Prints out a description of how to use the command.

    hashtag
    Examples

    • redmod deploy -root="C:\Gog\Cyberpunk 2077"

      Stages all installed mods under C:\Gog\Cyberpunk 2077\mods for loading

    • redmod deploy -root="C:\Gog\Cyberpunk 2077" -mod=modB modA modC

      Stages only the three mods C:\Gog\Cyberpunk 2077\mods\modA\, C:\Gog\Cyberpunk 2077\mods\modB\ and C:\Gog\Cyberpunk 2077\mods\modC\ for loading. In this case, modB will override both modA and modC, and modA will override modC (in case any of them modify the same asset paths.)

    Arguments:
      -gameRoot=<depot>
      -inputPath=<file>
      -animset=<resource-path>
    
    Options:
      -outputPath=<resource-path>
      -animationRename=<name>
      -h, --help 
    Usage:
      redmod deploy -root=<path> [options]
    
    Arguments:
      -root=<path>
    
    Options:
      -mod=<name>
      -h, --help 
  • Group 2: mizutani

  • Group 3: body

  • Group 1 (base)
    Name

    av

    Aerial

    sport

    Car

    standard

    Car

    Group 2 (category)
    Name

    Mahir

    Mahir Motors

    Group 3 has no mapping, is of the type partType.

    Curiously, this regex doesn't work for vehicles such as the Type 66, or the 911, since numbers aren't permitted in Group 2. It's unknown if this is even used, or if there is replacing done at some point.

    play around with this regex herearrow-up-right
    Sculpting
  • Proportional editing / Refitting

  • Texture painting and normal map creation

  • Splitting meshes

  • For more hands-on advice, see the guide section, for example

    • importing meshes from external sources

    • Material assignment examples

    • Troubleshooting your mesh edits

    hashtag
    Relevant files

    hashtag
    Mesh

    A mesh defines the shape and surface of any in-game object.

    circle-info

    For more information on .mesh files and how they work, see 3d objects: .mesh files

    For more informations on materials and mesh appearances, see Textures, Materials and Shaders

    hashtag
    Morphtarget

    Morphtargets are a special kind of mesh used for alternate and additional shapes beyond the static shape a .mesh can define. If your source is a .morphtarget, you need to primarily work with that rather than the .mesh.

    circle-info

    Read more on the Morphtargets page

    hashtag
    Installation

    To start creating mods or using mods for Cyberpunk 2077 you must first install REDmod.

    REDmod is shipped as free DLC with the game. You need to add it inside the platform store (GOG, Steam, Epic). You can click the link below, or find more detailed instructions further down on the page.

    • DLC Link on GOGarrow-up-right

    • DLC Link on Steamarrow-up-right

    • DLC Link on Epicarrow-up-right

    circle-exclamation

    If you're accessing Cyberpunk through Steam Family Sharing, you'll be unable to install REDMod (thanks, Steam!). In this case, you can ask the person who's family sharing with you for their Tools folder.

    hashtag
    GOG

    hashtag
    Steam

    When REDmod is installed correctly you will find a new folder tools/redmod inside your game root directory, with subfolders: bin, scripts, tweaks.

    here

    baseTypePrefix

    baseType

    categoriesFile

    base\vehicles\categories.csv

    partsFile

    partsCategoriesFile

    scanDirectory

    base\vehicles\

    filenameParsingRules

    name

    Vehicle

    baseTypesFile

    hashtag
    Modifying the Tweak DB

    The Tweak DB can be interacted with using Cyberpunk's official REDmod, or numerous community solutions such as TweakXL, CET, and redscript.

    hashtag
    Player Garments/Equipment Graph

    The following is a diagram which maps the relationship between game files for use with TweakXL and Archive XL:

    https://richwhitehouse.com/index.php?content=inc_projects.phparrow-up-right
    https://www.mediafire.com/file/uhc9d68mvj7oqj6/fmt_CP77mesh_1.6.ziparrow-up-right
    Noesis' export UI
    Noesis' Import UI
    https://www.mediafire.com/file/udqqvb4yz1xpuka/CP77_CR2W_v0.51.ziparrow-up-right

    Savegame Editor: CyberCAT

    How the savegame editor works

    hashtag
    This is the documentation for the CyberCAT save editorarrow-up-right.

    triangle-exclamation

    Using the save editor puts you at risk of creating a bricked savegame. This means that the save will still load in Cyberpunk, but certain things in the game are broken (e.g. quests are stuck or won't trigger).

    If your savegame crashes on load, please check the section.

    hashtag
    Version Compatibility

    Game Version
    CyberCAT version

    hashtag
    Usage Instructions

    On Windows, save games are stored in

    1. Import your savegame

    2. Make the necessary changes

    3. Export your savegame again. Save it in the same folder.

    hashtag
    Known Issues

    • Appearance editor is disabled until its fully fixed.

      • Only gender and voice tone can be changed.

      • Loading / Saving of presets still works

    hashtag
    Troubleshooting

    hashtag
    Folder structure

    Make sure that you export to a savegame folder. They contain the following files:

    • metadata.9.json

    • sav.dat

    • screenshot.png

    CyberCAT needs those files to correctly export the savegame.

    hashtag
    Asking for support

    circle-info

    Please keep in mind that nobody is paid to work on this tool — CyberCAT is maintained by volunteers in their free time.

    Once you have exhausted all other means of support, you can find help in #save-editing on the . Please have the following things handy:

    Components

    This page contains documentation for the most common component types. WIP.

    Documented Componentschevron-right
    circle-info

    See the Comprehensive Component Hierarchy List for all possible components used in the game, organized by hierachy. Use for researching and documenting components.

    For a hands-on guide on how to safely change components in .app files, look here.

    Components are not a file type but an internal data structure and part of .ent or .app files.

    Components are how the game adds anything to the in-game world, from pag3d data over player interaction prompts to explosion sounds. Entities and Appearances use components in order to slim down what data each game object has to carry, adding or removing them as needed.

    hashtag
    Component names

    circle-exclamation

    In general, these should be globally unique so you can target them via . Feel free to ignore this (almost everyone else does), but do read the next section.

    hashtag
    Body and clothing component prefixes

    Body component prefixes affect how the game calculates and you're strongly encouraged to stick to those naming conventions to make use of it. Please see the for a list.

    hashtag
    Component Properties

    Common component properties explained. For a more detailed list, please see .

    hashtag
    chunkMask

    Only used for meshes: Determines which parts of a mesh will be displayed or hidden. Numeric indices correspond with the submeshes by index.

    hashtag
    depotPath

    Relative path to a resource within the game files. Used to load dependencies — meshes, rigs, animations, effects.

    with 3DS MAX (archived)

    3ds Max Workflow for Cyberpunk 2077

    hashtag
    Requirements:

    - 3ds Max 2014-2022 - WolvenKit.CLI / CP77Toolsarrow-up-right - Noesis (64-bit)arrow-up-right - AlphaZomega's Noesis Plugin and MaxScriptarrow-up-right

    hashtag
    Setup:

    - Unbundle the game files with WolvenKit.CLI (aka CP77Tools) - Install Noesis and rename Noesis64.exe to Noesis.exe (The original noesis.exe is 32-bit and the Noesis Plugin "fmt_CP77mesh.py" needs 64-bit) - Place "fmt_CP77mesh.py" in "noesis\plugins\python" copy "oo2ext_7_win64.dll" from "Cyberpunk 2077\bin\x64" and place it in the same folder as "fmt_CP77mesh.py" The plugin has some customization option if you open it in a text editor. Recommended Settings are:

    - Next place "CP77_NOESIS_CMD.ms" in "C:\Program Files\Autodesk\3ds Max 20XX\scripts" - Open "CP77_NOESIS_CMD.ms" in a text editor and set your Noesis.exe path.

    hashtag
    In 3ds Max:

    Run the MaxScript from Scripting > Run Script...

    Click on "Import to Scene" and select the .mesh file you want to edit. Your custom settings in "fmt_CP77mesh.py" will effect the imported mesh. FBX Settings for Import:

    MaxScript Settings for Export:

    \

    FBX Settings for Export:

    **When exporting your mesh the plugin will ask you to select a mesh to export it over, in most cases you should select the original mesh.

    Multilayered Material: Properties

    Documentation of properties, with screenshots if applicable

    hashtag
    Material properties

    hashtag
    colorScale

    Colour of the material.

    hashtag
    material

    Depot path to the base material template from which the surface inherits its properties (lightbreaking, subsurface scattering…).

    Example values: base\surfaces\materials\paint\car_paint\car_paint_metallic_01.mltemplate base\surfaces\materials\metal\enameled_hq\enameled_hq_01_30.mltemplate

    hashtag
    matTile

    Scaling of the material across the mesh. The higher the value, the smaller it is.

    hashtag
    metalLevelsIn

    TODO

    hashtag
    metalLevelsOut

    This value corresponds to a greyscale texture across the entire mesh.

    hashtag
    normalStrength

    Applies or ignores the base mesh's normal map to this layer. This value can be greater than 1!

    hashtag
    offsetU

    For logos: X-offset on the texture

    hashtag
    offsetV

    For logos: Y-offset on the texture

    hashtag
    opacity

    Transparency of the layer, 0 means that it isn't displayed, 1 means that it's fully visible.

    hashtag
    roughLevelsIn

    TODO

    hashtag
    roughLevelsOut

    Determines the roughness of a material

    hashtag
    Microblend properties

    hashtag
    mbTile

    Like , this determines the scaling of the microblend. The higher the value, the smaller it is.

    hashtag
    microblend

    Depot path to the base microblend. Contains a seamless pattern which will be projected on the surface. Think of an extra normal map that tiles across a layer.

    hashtag
    microblendContrast

    A crossfade between the layer mask and the microblend mask (the black parts of the microblend texture). If you set this to >=1, then the layer will be blocked out where the microblend texture is black.

    hashtag
    microblendNormalStrength

    Like for the microblend.

    hashtag
    microblendOffsetU

    X-offset for the microblend (not sure why you'd need this)

    hashtag
    microblendOffsetV

    Y-offset for the microblend (not sure why you'd need this)

    Mod Structure

    When creating a REDmod, there is a certain file structure that you need to follow to ensure that it can be used by others. You will want to have a folder that is the name of the mod and in this folder you will have a file named info.json. Whether you are doing Animation Modding, Script Modding, TweakDB Modding, Audio Modding, or other mods (archive mods), you will also need to have at least one subfolder for the mod files to go into. This subfolder should be located on the same level as the info.json file, and be nested directly inside the folder with the mod name.

    An example REDmod might look something like this:

    When sharing you mod, you would package the folder that is the name of the mod. You could also package the mods folder with the "mod folder", but it is not necessary and it is assumed one might have other mods in their mods folder anyways.

    hashtag
    info.json

    For a REDmod to be recognized and loaded by the game engine, you must include an info.json file. This file sits in the root folder of the mod's folder at the same level as the subfolders containing your modded files. There are two required entries and a few optional entries that can be in this json file. At minimum a name field and a version field are needed:

    In the above:

    • The name field is the mod's name and should generally be the same as the folder the info.json file sits in.

    • The version field is the mod's version. The version should generally use "Semantic Versioning"

    INFO - Semantic Versioning is a method of versioning where each number gives meaning for a release based on their position. It uses the format MAJOR.MINOR.PATCH where a MAJOR release change is one which will break workflows, MINOR could break a workflow but is generally safe and might introduce deprecations, and a PATCH is a small non breaking change that all users on the same MAJOR and MINOR can update to without any issues.

    Assets explained

    hashtag
    What is an asset?

    An asset is a specific, objectified concept in the game that can be highly detailed like a blade of grass, or larger like a building, or intangible like sound effects. Unity defines an asset as, "Shorthand for anything that goes into a video game – characters, objects, sound effects, maps, environments, etc." Every asset is defined in a set of normalizedarrow-up-right asset files that describe its relationship to the game, other assets, and itself.

    hashtag
    Visual Asset-Related File Formats

    The following list contains file formats that are used to compose visual assets such as vehicles and weapons.

    circle-info

    The community-devloped tool WolvenKit can be used to browse game archives and extract game files.

    hashtag
    MESH

    3d models

    hashtag
    XBM

    2d textures

    hashtag
    ENT (entity)

    Parent file for most visual assets which is directly linked by the

    hashtag
    APP (appearance)

    Sets up appearances for assets such as NPCs and vehicles referenced by

    hashtag
    MT (material template)

    Base shader files for REDengine

    hashtag
    MI (material instance)

    Instanced shaders for mesh materials

    hashtag
    MLMASK (multilayered mask)

    Mask component of the

    hashtag
    MLSETUP (multilayered setup)

    Material setup component of the

    hashtag
    MLTEMPLATE (multilayered template)

    Pre-defined tiling surface component of the

    hashtag
    HP (hair profile)

    Color ramp data to set colors for meshes using the hair

    hashtag
    Visual Asset Graphs

    hashtag
    Vehicles

    Change logs

    This page explains the features added in the different game versions.

    hashtag
    Added:

    1. Load mod load order from a text file. by Auska

      • RedMod deploys a list of mods in order - passed through the command line.

        This change now makes it you don’t have to pass the names in the command line but read it from file.

        We can specify load order of archives in another load order file.

    2. Fix mesh Export paths and allow exporting to non-base resource paths. by Mana Vortex

      • The fbx importer would throw an error if in the resource path there wouldn't be base

    --- Example:

    ❌/environment/decoration/industrial/pipes/entropy_pipe_01/entropy_pipe_01_module_small_l020_a.mesh

    ✅base/environment/decoration/industrial/pipes/entropy_pipe_01/entropy_pipe_01_module_small_l020_a.mesh

    Documented Components

    hashtag
    Equipment/Hair

    chevron-rightentGarmentSkinnedMeshComponenthashtag

    Appearance: .app files

    All the dirty detes on appearance files

    circle-check

    If you want to modify an .app file to change an NPC's appearance, check !

    hashtag
    Appearances

    (?:v_)?([a-zA-Z]+|av)\d?_([a-zA-Z]+)_(?:[a-zA-Z]+(?:_[a-zA-Z]+)*)__(?:int|ext)\d{2}_([a-zA-Z]+(?:_[a-zA-Z]+)*)_\d{2}.*\.ent
     * root_folder
     * | -📁 mods
     * | |-📁 <Mod Name>
     * | | |-📁 archives
     * | | |-📁 scripts
     * | | |-📁 tweaks
     * | | |-📁 customSounds
     * | | |-📄 info.json
    Can be used interchangeably with entSkinnedMeshComponent.
    • Loads a mesh from a depotPath.

    • Supports chunkMask.

    • meshAppearance will select an appearance by name from the mesh's defined appearances.

    • Lets you enable and disable shadows with the properties castShadows and castLocalShadows

    This is the good kind of mesh component, the one that will work without trouble, as opposed to entSkinnedClothComponent.

    chevron-rightentSkinnedMeshComponenthashtag

    See below at entGarmentSkinnedMeshComponent

    chevron-rightentSkinnedClothComponenthashtag

    Like ent(Garment)SkinnedMeshComponent, but with a physicalMesh and physics. Usually comes together with an entAnimatedComponent (they're usually named collar for clothes and dangle for hair and accessories).

    chevron-rightentAnimatedComponenthashtag

    Adds physics to garments and hair meshes.

    hashtag
    NPCs

    chevron-rightgameDismembermentComponenthashtag

    Defines dismemberment rules for NPCs. (TBD: ???)

    hashtag
    Generic

    chevron-rightgameinteractionsComponenthashtag

    Adds interaction prompt to entity. (Shouldn't work without gameTargetingComponent, but this hasn't been double-checked.)

    chevron-rightentColliderComponenthashtag

    WIP

    chevron-rightgameTargetingComponenthashtag

    Allows targeting via CET.

    chevron-rightgameScanningComponenthashtag

    WIP

    utility

    Car

    How do the clothes auto-morph?
    base\vehicles\base_types_map.csv
    base\vehicles\parts.csv
    base\vehicles\parts_categories.json
    base\vehicles\vehicle_filename_parsing.json
    partsOverrides
    garment support
    corresponding wiki page
    Documented Components
    How roughness affects a material (the colour was not changed)
    matTile
    normalStrength
    Game version 1.63
    Tweak DB
    entity files
    Multilayer supershader
    Multilayer supershader
    Multilayer supershader
    shader
    Learn more

    Item additions might not fully work yet

    The error.txt (if you have one)

    2.0 / Phantom Liberty

    >= v0.26

    1.63_hotfix1

    ???

    Wolvenkit Discordarrow-up-right
    Troubleshooting
    The description field is optional for all mods, but it is generally suggested one should include it so other tools have something to display for a given mod.
  • The customSounds field is semi-optional. It is required for Audio Modding.

  • %USERRPROFILE%\Saved Games\CD Projekt Red\Cyberpunk 2077
    {
        "name": "MODNAME",
        "description": "Description for the mod.",
        "version": "1.0.0",
        "customSounds":    [ ]
    }
    The real meat of the file: a list of appearance definitions, loaded via root entity.

    hashtag
    appearanceResource

    • baseEntityType: name that exists in the Base Types Map and mapped to the correct .ent file

    • commonCookData: the .cookedapp file that stores a copy of the data for faster loading

    hashtag
    appearanceDefinition

    A list of appearance definitions to be called from a root entity file. The definitions are independent from each other (unless parentAppearance is used? Confirmation needed) and load meshes and effects via components.

    • name: the appearance's name that is listed in its .ent file

    • parentAppearance: the appearance this one inherits information from

    • proxyMesh: the .mesh file loaded for rendering the vehicle at a distance (confirmation needed)

    • resolvedDependencies: pre-loaded resources. You will usually want to delete these if you're adding items from scratch.

    • looseDependencies: lazy-loaded resources (confirmation needed)

    hashtag
    Components

    A list of components that are part of your current appearance. There are various types of components, which are documented here.

    circle-info

    Components that you add in the root entity will be shared among all appearances in the .app.

    hashtag
    partsValues

    circle-info

    This only works for player equipment and weapons (April 2023)

    Allows you to add one or more component entities into your appearance. They will be treated as if the components were part of the appearance's components array.

    hashtag
    partsOverrides

    Overrides component definitions via name. They can be defined in the appearance's own components array or loaded via component entity.

    For usage instructions, see here.

    hashtag
    commonCookData

    To save a few processing cycles, CDPR doesn't evaluate .apps on load, but instead keeps a pre-cooked cache under base\cookedappearances. CommonCookData is the lookup path for such a file. As long as the file in question exists and isn't empty, your changes might not register, or components that you removed will still be displayed.

    Once you start modding, you'll want to install the cookedapps nulledarrow-up-right mod to prevent such issues.

    here

    Users: Troubleshooting after a game update

    The game just updated, and you're crashing. Now what?

    hashtag
    Overview

    Who doesn't know it? Your modded game is working, then there's an update, and from one moment to the next everything is a smoking crater. Unfortunately, that's normal: as long as you're living on earth, things fall down when you let go of them, and game updates break mods.

    This page will give you a brief overview on what you can do in the situation described above by linking to the corresponding sections of the troubleshooting guide.

    circle-info

    If you are on Linux and have exhausted these options, make sure to double-check the , as Steam sometimes resets these between updates.

    hashtag
    What can I do?

    The first step is to update your core frameworks. Check every mod on — make sure that you have a version from after the update.

    hashtag
    There are no framework updates!

    You're too fast, choomba: modders haven't gotten around to updating the frameworks yet. That leaves you with two options:

    • and play vanilla until the updates arrive

    hashtag
    I updated my frameworks, but the game is still crashing!

    circle-info

    You can try to temporarily disable any mod from the script section of. Sometimes, that fixes your issues.

    Your game and the core frameworks need to be version-compatible. You can make sure of that by

    1. One by one,

    circle-check

    Make sure to follow the instructions carefully – they will prevent you from running into a bunch of other issues.

    hashtag
    What other options do I have?

    If these instructions didn't help you, there probably are no updates yet and you'll just have to wait. You can find warnings about version mismatches in .

    Of course, you can always

    • look around in the or use your browser's search function there (Ctrl+F and type)

    • check a and disable them for now

    • your installation

    circle-exclamation

    You might want to deactivate ReShade before you start debugging. Especially after DLSS, it has been known to cause crashes.

    Likewise, you'll want to turn off your antivirus to rule it out as a problem source.

    Best practices / pitfalls

    A collection of code-related knowledge

    hashtag
    LUA

    hashtag
    Gain performance: Early Return

    You're probably used to coding like this:

    In LUA, you can skim a few processing cycles by using the early return style:

    You can gain a significant amount of performance this way, especially when doing this in a loop.

    hashtag
    Fixing/preventing nil access

    LUA throws an exception if it encounters nil in unexpected places. The corresponding error will look like this:

    Open the corresponding file, find the correct line, and check what is being accessed there. It will look like variable.property, or perhaps something will be concatenated to a string ("something something text" .. variable).

    You can assign a default value to the property in question:

    circle-info

    While that won't solve any other problems, it will at least make the error go away.

    hashtag
    Switch in LUA: Lookup Tables

    Who doesn't know the problem? You want to know if your string is A, B, or C, but not D — and LUA doesn't have a switch statement.

    Fortunately, there is a built-in and performant way to

    hashtag
    Performance killers: strings

    String concatenation and comparison can be the difference between a brief stutter and a complete freeze or even crash to desktop. This is not a joke — see for more detail.

    hashtag
    Comparing/Searching

    Lua internalizes strings. That means these two strings will share a single representation in memory:

    The comparison between those two strings will be almost-instant.

    This becomes a problem when comparing strings in a loop (see ):

    Every single pass of the loop will create a memory representation of "This is the same object!" and then discard it again.

    circle-check

    Takeaway:

    If at all possible, define things outside the scope of loops!

    hashtag
    Finding in strings

    Lua's regex implementation is very limited. There is a limitation for pipes. For example, the following example will actually iterate twice after creating internal string representations:

    It is faster to just do this:

    On top of that, string.match will return the entire string if no match is found:

    The alternative:

    circle-check

    Takeaway:

    • Avoid regex

    hashtag
    Concatenation

    circle-info

    For a performance analysis of different kinds of string concatenation, check .

    hashtag
    Scopes

    Modding on Linux

    How to get mods working on a SteamDeck

    hashtag
    Summary

    This page tells you how to set the launch options for Steam under Linux. If you have trouble after an update and have exhausted all the usual steps, make sure to double-check them — sometimes, Steam helpfully deletes them for you to make sure that your game crashes on startup.

    hashtag
    TL;DR

    You need to

    • install d3dcompiler_47

    • install vcrun2022

    • set your launch options to WINEDLLOVERRIDES="winmm,version=n,b" %command% -modded

    hashtag
    Setting the launch options by hand

    Under Linux, you have to start the game by setting the following launch options for Cyberpunk:

    If you can't get it to work, follow the steps below to apply the launch options via Protontricks, or search the #red4ext-support channel on the for winmm to find out what else you can do.

    hashtag
    Setting the launch options via Protontricks

    circle-exclamation

    Make sure

    circle-info

    If you don't want to read text, find a video documenting the process . Thanks to #Connor for providing the screenshots and transcription!

    To configure the necessary parameters, you can use the app Protontricks, which you can download through the built-in app browser "Discover":

    1. Open Protontricks (you can search for this by selecting start menu)

    1. When Protontrick opens, select Cyberpunk:

    1. Choose "Select the default wineprefix":

    1. Choose "run winecfg":

    1. Add an override: Check either of the blocks below

    If you would rather do it via library, check the expandable block .

    chevron-rightvia Libraryhashtag

    Switch to the libraries tab and open the drop down menu

    Select "version" and "Add"

    Apply via "OK". You're now done with Protontricks.

    1. Switch to steam and make sure that the launch options are set. They should look like this: WINEDLLOVERRIDES="winmm.dll,version=n,b" %command%

    If that didn't help you, you might be able to find the solution on the .

    ArchiveXL

    Adding stuff to the game, for the major-leagues

    hashtag
    Summary

    Published in August 23 by

    hashtag
    OK, so what is this?

    ArchiveXL ( | ) is one of the of Cyberpunk 2077 modding. Together with TweakXL, It allows you to add things to the game, such as

    • and

    • world sectors

    This page will document how to set item properties via tags & suffixes (the vanilla way), or via dynamic switching (new, cool, version >= 1.5).

    Let's dive right in.

    hashtag
    Variants and suffixes

    hashtag
    What are variants, what do I need them for?

    When adding items, you will normally offer multiple (variants), for example, the same shirt in black, white, and red. This is what you're modding for, after all: making cool things.

    hashtag
    And what are suffixes?

    Sometimes, you want to load different meshes/appearances under different circumstances. Until ArchiveXL 1.5, the process was extremely tedious, but thanks to psiberx, have been replaced with conditions (read up on to learn how to make use of that).

    While the solution has changed (and improved), the problem remains:

    hashtag
    Body genders

    There are two body genders with different proportions, and you can't make them wear the same shirt (at least not without clipping). To solve that, you can do what CDPR did and have one variant per rig.

    hashtag
    Body types

    On top of that, you can add body mods (mostly chest size, but occasionally full refits). Starting with 1.5, these will be ! That means, no more compatibility archives, since AXL can simply load different meshes for you…

    hashtag
    Camera modes

    Sometimes, you need to hide parts of the item in first person. – for example helmets, since you don't want to have half a helmet floating in front of your face (unless you consider that immersive; most people don't).

    hashtag
    Tags

    Tags are a way to tell Cyberpunk that an item has certain properties and should behave in a certain way. Thanks to ArchiveXL's extended tag system, you can for example force flat feet for female V, or un-hide hair from a head item.

    circle-check

    You can find a list of tags in .

    hashtag
    Dynamic variants

    If you have ever tried to make ten colour variants of an item for two body genders with four different states of feet, then you're familiar with the struggle. Version 1.5.0 of ArchiveXL solves this problem by introducing dynamic variants, allowing you to define rules to hook up your yaml straight to the mesh entity. picking components and even appearances dynamically.

    circle-check

    You can find the technical (usage) documentation for dynamic variants on .

    triangle-exclamation

    You have to use a mesh entity for dynamic variants, as components in the .app file will be ignored.

    circle-info

    You no longer need suffixes in the .yaml. However, if you want to use suffixes for your switching, psiberx recommends doing that per appearance name in the .app file, so that you can still use chunk masks via component overrides.

    Here's an overview of how the dynamic variants work. By comparison, is the old diagram. Especially for multiple items, the new way is much faster.

    Importing Raw Files to REDengine

    using the import and resource-import commands

    Redmod can be used to import a large variety of files into REDengine formats for use in your mods.

    Red Engine Format
    Raw Format

    .fnt (font)

    .ttf: TrueType font

    .otf: OpenType font

    .cff: Compact Font Format

    .regionset (Texture Region Set)

    Textures

    What kinds of textures exist, and what do they do?

    This page aims to give an overview on different kinds of textures and what the game is using them for.

    If you just want to make textures and don't care for the theory, you can find the guides under Modding Guides -> Textures and LUTs

    circle-check

    By default, all textures in Cyberpunk2077 are Y-flipped (upside down). WolvenKit will take care of that for you during import/export via the VFlip property.

    If you just want to know how to import/export textures, see .

    hashtag
    Types of files

    hashtag
    Diffuse/Albedo

    This texture is directly projected onto a mesh to give it colour and appearance. Used by shaders like metal_base.remt.

    hashtag
    Naming convention:

    In the game files, these files will be named <name>_d.xbm (e.g. base\environment\decoration\food\packaged_food\textures\synthetic_snack_01_d.xbm)

    circle-exclamation

    When importing a diffuse texture with a non-default file name, make sure to check the isGamma box in the import properties.

    hashtag
    Normal

    Also known as "bump map", this texture is used to give a mesh depth and surface details. Used by shaders like metal_base.remt.

    hashtag
    Naming convention:

    In the game files, these files will be named <name>_n.xbm (e.g. base\environment\decoration\food\packaged_food\textures\synthetic_snack_01_n.xbm)

    circle-info

    For a guide how to make your own normal maps, see .

    hashtag
    Roughness

    Also known as "gloss map", this texture defines how light scatters across the surface of your 3d model. Used by shaders like metal_base.remt.

    For an overview image, see .

    hashtag
    Naming convention:

    In the game files, these files will be named <name>_n.xbm (e.g. base\environment\decoration\food\packaged_food\textures\synthetic_snack_01_r.xbm)

    hashtag
    Metalness

    Also known as "metallic map", this texture defines which parts of the material behave like metal and which parts don't. Used by shaders like metal_base.remt.

    For an overview image, see .

    hashtag
    Naming convention:

    In the game files, these files will be named <name>_m.xbm (e.g. base\envment\decoration\food\packaged_food\textures\synthetic_snack_01_m.xbm)

    hashtag
    Atlas

    Used for in-game items and UI elements, these textures contain a collection of images. They are made available to the game via files.

    hashtag
    Naming convention:

    In the game files, these files will be named atlas_<name>.xbm (e.g. base\gameplay\gui\fullscreen\hacking_minigame\atlas_minigame_programs.xbm)

    hashtag
    Additional intel

    hashtag
    Roughness/Metalness overview

    Requirements explained

    How do I get my fucking mod working and what do dependencies have to do with it?

    hashtag
    Summary

    This guide will show you how to debug a dependency chain to troubleshoot a mod. It'll use VirtualAtelierarrow-up-right for an example, but the same principle applies to each and any mod.

    circle-check

    In the process of this guide, you will be told to check a certain mod's log file. If you don't know how to do that, check page for a step-by-step guide.Technique: Reading log files

    hashtag
    Theory: What is a requirement?

    It is something that your mod needs to work; for that reason, requirements are also called dependencies. The game will load them first.

    Most of them are other mods.

    circle-info

    hashtag
    Level 1: The mod itself

    hashtag
    Situation

    You're trying to install a mod — and it's not working.

    hashtag
    Step 1: Try to find its log file

    circle-info

    For Atelier stores, there won't be individual log files. Skip , starting with as a dependency.

    Search for a matching log file in the Cyberpunk folder (either the mod's name or in the mod's folder). are instructions on how you do that.

    => If you have found a log file, go .

    => If you have not found one or it contains no errors or warnings, go .

    hashtag
    A log file exists

    If you can't find one, go .

    hashtag
    The file is empty

    This means that your mod is loaded, but never initialized. Go .

    hashtag
    The file has errors

    The mod itself is broken. You can now go and .

    hashtag
    The file only has warnings

    Your mod is being loaded, so the dependencies are OK (if they aren't, the log file would tell you so).

    Warnings in the log file don't necessarily mean that something is outright broken. But since you're here and your mod isn't working, that is probably the case. Proceed with .

    hashtag
    You can't find a log file

    The good news: the mod itself is not the problem.

    The bad news: you'll have to check its requirements.

    hashtag
    Level 2: The requirements

    hashtag
    Step 1: Finding the requirements

    Open the mod's Nexus page and check the Description tab (the first one). You will see something like this:

    hashtag
    Step 2: Re-do Step 1 for each requirement

    For each of the dependencies:

    1. If it's marked as optional and you don't have it installed, ignore it and proceed with the next.

    2. If you don't have it installed and it's not marked as optional, install it.

    3. If it's marked as optional with a condition and you match (e.g. "install if you're using codeware"), install it.

    Audio Modding

    hashtag
    Audio Modding - WolvenKit Integration

    The REDmod animation import tool can be used as a Plugin in WolvenKitarrow-up-right.

    • Add the .wav sound files you wish to import to your /customSounds folder in your mod project

    • Click View > Sound Modding tool

    • In the Sound Modding tool, choose which to mod from the list of game sound events

    • Adjust the parameters

    • Click Save

    hashtag
    Audio Modding - Manually

    Place raw .wav audio files inside <Cyberpunk 2077>/mods/<name>/customSounds. Include a info.json file with your mod (<Cyberpunk 2077>/mods/<name>/customSounds/info.json) where you sepcify how to use your custom sounds.

    hashtag
    Example

    hashtag
    Parameters

    • name - the game audio event to override

    • type - the sound type. Options are:

      • mod_skip: do not play this sound event

    WolvenKitchevron-right

    REDMod: Usage

    REDmod is a command line tool developed by CDPR and Yigsoft which can be used to stage installed mods to work with a modded game.

    circle-info

    This section is for managing mods with Redmod. For creating mods, see

    hashtag

    Downgrading / Preventing auto-updates

    Only update once all frameworks are stable!

    circle-info

    Things fall down when you let go of them, and mods break whenever a game updates. That is due to .

    Always make sure that your framework mods are up-to-date.

    You should generally wait with updating to the latest game version until all mods are up-to-date. If it's too late for that, you can try Cyberpunk, or wait until the frameworks update.

    Cheat Sheet: Head

    hashtag
    Head file paths

    If you want to , you need and . If you want to make a custom NPC, you can check .

    Garment Support: How does it work?

    What is Garment Support and how does it work?

    circle-info

    If garment supports are causing trouble for you, your easiest option is to delete the parameters from your mesh. For detail, see .

    To make use of garment support, keep the component name prefixes. If you change the mesh, make sure to .

    Credit goes to psiberx ( with initial explanation of the algorithm) and IslandDancer for providing screenshots and know-how

    Textures, Materials and Shaders

    Overview and introduction

    This is the landing page for materials in Cyberpunk 2077. It contains a definition and a rough overview.

    circle-info

    Check the section's sub pages in the wiki's navigation tree for more detailed information about the different kinds of materials. Additional material-related information can be found here:

    Morphtargets

    Overview of working with morphtargets

    circle-info

    COMPATIBILITY WARNING Full .morphtarget editing is enabled in Wolvenkit >= 8.9.1.

    hashtag

    Cheat sheet: Rigs and animations

    hashtag
    .anims

    There is nothing here yet. For general documentation on how animations work, see

    hashtag

    Re-using materials: .mi

    External materials, .mi files, and how everythign plays together

    Put yourself in the shoes of a hypothetical modder.

    • You are creating a mod that offers multiple versions of the same item (e.g. toy props or hair)

    • You have created a base material

    
    redmod resource-import -depot=<depot> -input=<relative path to file to be imported> -output=<absolute path to the new redengine file>
    Type Extension

    .morphtarget

    hashtag
    What is it?

    Morphtargets are a special kind of a mesh, or more accurately a .mesh is a more limited version of a mesh without the ability to define targets by itself (with a few exceptions.) A full model can consist of multiple .meshes and .morphtargets.

    Morphtargets (or more generally just 'targets') are used for additional deformation beyond what rigging can do, as well as for creating alternative and/or additional shapes for a mesh. Blender calls targets shapekeys.

    To be exact, cp2077 has three kinds of targets:

    1. .morphtarget is a separate type, and has an associated .mesh (baseMesh) because redengine splits the full data needed for the model into these two separate types. The .morphtarget always defines the shape, overriding the .mesh. The .mesh stores the other information as usual. .morphtargets are used for, for example, body and head customization.

    2. GarmentSupport is a property of a .mesh. It is also a target and this is a more common way to define targets than the separate type. GarmentSupports are used, for example, to slightly shrink a t-shirt so that it doesn't clip when you put a jacket over it.

    3. Vehicle damage submeshes. This is a static end state of a target, inserted directly as an extra submesh rather than a target.

    hashtag
    How do Targets Work?

    A simple and perhaps familiar.morphtarget example is chest size for FemV. There are three states: default, small, big. The default corresponds to the base mesh shape, and is the Basis shapekey in Blender.

    The two other states are defined as targets. Each target defines a 'delta', a set of offsets for base mesh vertices from their positions in the default shape - including any other active deform, like a pose in photomode. If you fully enable one of these targets, you effectively have a mesh with the chest area reduced or enlarged.

    Targets can be also enabled partially, with the states between off and fully on (the 'end state') interpolated by the engine or 3D software. This can be used for animations, but in the cp2077 context generally is not.

    Targets can be blended together. If two targets are enabled fully or partially, their combined state is blended into one shape. In cp2077 some targets are mutually exclusive (like the chest size), and others are inclusive (your V's face is a combination of the selected eyes, nose, mouth, jaw, and ear target states all blended together.)

    Exclusive/inclusive is not a limitation of the targets themselves, but of how cp2077 activates them..

    hashtag
    Target Activation

    The game engine activates targets by name (and region) in specific conditions.

    Character customization targets are activated when the character is loaded (and dynamically in the CC view.)

    GarmentSupports are activated when equipping a garment that goes "on top of" the garment with GarmentSupport.

    hashtag
    Morphtargets, What Are They Even Good For?

    So, some uses are probably already obvious. But targets enable quite a bit of exciting modding:

    • Modding anything with a .morphtarget without breaking the targets like before

    • You can for example mod the CC tattoos, or piercings...

    • ...Or any aspect of character face customization. Vampire catboy Legolas here we come!

    • TBA

    circle-info

    The main limitation currently is that we do not have a way to add activations, at least generally. You need to hook into a target name that the engine already uses.

    hashtag
    Editing Morphtargets

    circle-exclamation

    For best results, export an original game file and start from there, as exports from older Wolvenkit versions may not work.

    circle-info

    This Section is Incomplete

    One thing deserves highlighting right up front: whenever you are doing 3D work on a model that has a .morphtarget, you work with the .morphtarget, not the.mesh. The .mesh is only used for things the target doesn't include, like appearance definitions. Fundamentally the 3D workflow goes like this in Blender (use the blender cp2077 plugin import/export):

    1. WkitExport the .morphtarget

    2. BlenderImport it

    3. Make your edits to base shape and/or shapekeys (if you need to - the base shape edits are automatically propagated to shapekeys.) You can edit just like you would a .mesh, because it is a mesh.

    4. BlenderExport to a file named after the .mesh

    5. BlenderExport to a file named after the .morphtarget

    6. WkitImport the .mesh.gltf first. Wkit will treat it just like it would a 'real' .mesh

    7. WkitImport the .morphtarget.gltf

    8. ...And that's it. You can pack the mod.

    hashtag
    Tips for Morphtargets

    • Make sure to test your targets work blended with other targets, not just by themselves

    • You can create targets from scratch, all that matters is that the name matches the original. This is handy for zeroing out targets you don't need or want, for example.

    • I prefer to use either of the .gltf formats over .glb. They're all GLTF but .gltf is slightly more widely supported, plus you can open it up in a json editor. -- Auska

    hashtag
    Working with GarmentSupports

    See the GarmentSupport section for more info.

    hashtag
    Working with Vehicle Damage Deforms

    TBA

    .json: Texture region set definition.

    .mesh (Mesh)

    .xml: Speed Tree XML Resource File .smd: Source Mesh Data

    .fbx: Autodesk FBX

    .curveset (Curve Set)

    .csv Comma Separated Value Table

    .mlsetup (MultiLayer Setup file)

    .json: MultiLayer Setup JSON File .mlsetup: MultiLayer Setup File

    .genericanimdb (Generic anim database)

    .csv: csv file

    .cubemap (Cubemap)

    .dds: DirectDraw Surface

    .bmp: Windows Bitmap

    .jpg: Joint Photographics Experts Group .tga: Truevision Targa

    .png: Portable Network Graphics

    .exr: OpenEXR

    .rig (Rig)

    .re CDPR proprietary format

    .ies (IES Light Profile Data Resource)

    .ies: IES light profile

    .mlmask (Multilayer Mask)

    .tiff: Tagged Image File Format

    .tif: Tagged Image File Format

    .json: JSON

    .rsvg (SvgResource)

    .svg: SVG Resource definition file

    .xbm (Bitmap Texture)

    .dds: DirectDraw Surface

    .bmp: Windows Bitmap

    .jpg: Joint Photographics Experts Group .tga: Truevision Targa

    .png: Portable Network Graphics

    .tiff: Tagged Image File Format

    .tif: Tagged Image File Format

    .exr: EXR

    .cube: Cube LUT

    prefer String.find() over String.match()
    herearrow-up-right
    Scopes
    herearrow-up-right
    Repeat the process for d3dcompiler_47

    modding discordarrow-up-right
    herearrow-up-right
    below
    CET wiki pagearrow-up-right

    mod_sfx_2d : will be played without any positions / attenuation

  • mod_sfx_city : has a longer attenuation that is suitable for city sounds

  • mod_sfx_low_occlusion : has a long attenuation that isn't occluded much e.g. a VO or quest sound that you don't want to be muffled

  • mod_sfx_occlusion : medium attenuation with normal occlusion

  • mod_sfx_radio : needs to be tuned to a broadcast channel (e.g. radio)

  • mod_sfx_room : has a shorter attenuation suitable for something that can be heard across a room

  • mod_sfx_street : has a medium attenuation, good for something to be heard down a street

  • mod_sfx_ui: for menu and ui sound replacement

  • file - the .wav file to use (inside /customSounds)

  • gain and pitch

  • local function myMethod()
      if condition then 
        -- do a little dance, make a little love…
      end
    end
    local function myMethod()
      if not condition then return end
      -- do a little dance, make a little love…
    end
    attempt to access local '<variable name>' (a nil value)
    stack traceback: 
      my_example.lua:1234 in function 'MyFunctionName
    myString = <original string assignment> or ""
    myNumber = <original number assignment> or 0
    myEverythingElse = <original object assignment> or {}
    local string1 = "This is the same object!"
    local string2 = "This is the same object!"
    for (_, mystring) in ipairs(mytable) do
        if mystring == "This is the same object!" then
            -- do something
        end
    end
    local myCompareString = "This is the same object!"
    for (_, mystring) in ipairs(mytable) do
        if mystring == myCompareString then
            -- do something
        end
    end
    if string.find("catastrophe",  "dog|cat") then 
      -- do something
    end
    if string.find("catastrophe",  "dog") or string.find("catastrophe",  "cat") then 
      -- do something
    end
    local match = string.match("catastrophe",  "dog")
    if match ~= "catastrophe" then
      -- do something
    end
    if string.find("catastrophe",  "dog")
      -- do something
    end
    WINEDLLOVERRIDES="winmm,version=n,b" %command% -modded
    {
      "name": "newmodtest",
      "version": "1.0.0",
      "customSounds": [
        {
          "name": "amb_bl_eq_medical_electronics_small",
          "type": "mod_skip"
        },
        {
          "name": "w_gun_revol_power_overture_fire_suppressor",
          "type": "mod_skip"
        },
        {
          "name": "w_gun_npc_dian_reload",
          "type": "mod_sfx_2d",
          "file": "are_you_sure_about_that.wav",
          "gain": 1.0,
          "pitch": 0.1
        }
      ]
    }

    Reset your installation:

    • Fall back to a clean state (via modarrow-up-right | precise | nuclear: fast | nuclear: very fast)

    • Enable all core mods and make sure that the game starts

    • Re-enable your other mods (check for how to do it fastest)

  • Find help on Discord arrow-up-rightin #mod-troubleshooting

  • launch options
    this page
    remove all mods
    downgrade your game
    known problem children
    resetting your install
    installing all of the frameworks you need
    Restoring your mods from the backup
    these log files
    troubleshooting guide
    list of known problem children
    further troubleshoot
    custom lipsync maps
    nexusarrow-up-right
    githubarrow-up-right
    core frameworks
    equipment
    weapons
    photo mode poses
    mesh appearances
    suffixes
    dynamic variants
    supported by ArchiveXLarrow-up-right
    ArchiveXL'sarrow-up-right
    readmearrow-up-right
    ArchiveXL's githubarrow-up-right
    this

    Return to Level 1 and repeat it for the requirement.

    this
    Do you want to know more?
    here
    VirtualAtelier arrow-up-right
    Here
    here
    here
    here
    here
    troubleshoot it
    troubleshooting
    Let's do that now.
    If you don't know if a mod is optional, it's most likely not.
    Why would I want this?

    REDmod preloads any mods on its list, loading them as if they were a part of the game's regular structure. This leads to a brief delay during startup (while it does that), but the loading times during gameplay will be much faster.

    hashtag
    Using Mods

    The game loads redmods from this path: <Cyberpunk 2077>/mods/<name>.

    EXAMPLE: RedMod: C:\GoG\Cyberpunk 2077\mods\mods\archives\mod_a.archive Legacy: C:\GoG\Cyberpunk 2077\archive\PC\mod\mod_a.archive

    circle-info

    Legacy archive mods in <Cyberpunk 2077>/archive/pc/mod are still supported, but their load order cannot be managed with REDmod.

    Legacy mods will load before any redmods.

    circle-check

    Before being able to play a modded game, you need to deploy your installed mods.

    Then, you need to activate mods before starting the game.

    hashtag
    How do I deploy?

    You can handle deployment and load order with

    • the REDlauncher that comes with the game

    • Vortex Mod Manager from NexusMods

    • REDmod WolvenKit integration and manage your mods easily from within the WolvenKit Mod Manager

    • starting Cyberpunk with the parameter -modded

    hashtag
    What is deployed?

    Scripts: Compiled into a script blob

    <Cyberpunk 2077>/mods//scripts

    Tweaks: Compiled into a modded tweakDB

    <Cyberpunk 2077>/mods//tweaks

    Sound files

    <Cyberpunk 2077>/mods//customSounds

    hashtag
    Activating mods

    hashtag
    GOG Galaxy

    • Open GOG - Cyberpunk 2077

    • Click Manage Installation -> Configure ...

    • Open the Features Tab

    • Select Enable mods

    • Click OK

    • Play the game

    • A window will open showing progress on mod deployment.

    hashtag
    Steam and Epic

    • Navigate to Cyberpunk 2077

    • Click Play

    • Click the Settings button and Enable mods

    • Click Play (Do not skip this)

    • A window will open showing progress on mod deployment.

    hashtag
    Conflicts and Load Order

    Conflicts are handled on a per-file basis, but can be handled by specifying a specific load order. The rules here are the opposite of e.g. Skyrim: the first mod to change a file wins.

    Example:

    modA contains a script file Cyberpunk 2077\mods\modA\scripts\cyberpunk\player\player.script. modB contains a script file with the same name: Cyberpunk 2077\mods\modB\scripts\cyberpunk\player\player.script

    This will discard all changes modB made, since by default, REDmod and the game loads mods alphabetically (modA overrides changes in modB).

    However, you can specify a load order with REDmod, which the game will respect.

    hashtag
    Troubleshooting

    If a REDmod is giving you trouble, you can force a redeploy by either of the following means:

    1. Either of

      1. Delete the content of r6/cache/modded in your Cyberpunk directory or

      2. Uninstall the mod

      3. Start the game

      4. As soon as it launches, close the game again

      5. Reinstall the mod

    2. Now, restart the game. REDMod will rebuild the cache and hopefully fix your problem.

    If that doesn't do it, you can consult the troubleshooting guide for advice.

    hashtag
    Advanced Topics

    hashtag
    Deploying Mods - Automatically

    REDMod's redeploy is triggered on either of these changes:

    • mods change: You added or removed a mod

    • A mod's version changes: The version number in the info.json was changed.

    • A mod's files change: You added or removed archives

    hashtag
    Deploying Mods - Manually

    The REDmod deploy command stages installed mods to work when the game starts with the modded flag.

    hashtag
    Deploying Mods - WolvenKit Integration

    • Open the WolvenKit Mod Manager.

    • Click the Deploy Mods button in the toolbar.

    You will see all installed mods in your game. Enable the mods you would like to play with.

    hashtag
    Handling Conflicts - Manually

    You can specify a specific load order with the -mod parameter:

    This will override changes to \cyberpunk\player\player.script that modA makes in favor of modB. It will also tell the game to load modB before modA and modC.

    hashtag
    Handling Conflicts - WolvenKit integration

    • Open the WolvenKit Mod Manager.

    • Adjust the load order by dragging and dropping rows.

    • Click the Deploy Mods button.

    You can adjust the load order by dragging and dropping the installed mods inside the mod manager.

    When you click the Deploy Mods button, the current load order will be forwarded to redmod.exe and mods will be deployed and loaded in this order.

    hashtag
    Starting a Modded Game - Manually

    To start a modded game that loads mods deployed by REDmod use the -modded flag on Cyberpunk2077.exe

    Example:

    This however will skip the initialization process that should be done after any new REDmod mod install.

    INFO The executable is located at <Cyberpunk 2077>\bin\x64\Cyberpunk2077.exe

    Modding Guides
    hashtag
    Preventing the game from auto-updating

    hashtag
    GOG

    In GOG, this is a global setting — you can only disable auto-update for all of your games.

    Open the settings and select the entry Game features in the sidebar, then uncheck the box for Auto-update games.

    hashtag
    Epic

    In the EPIC launcher, this is a global setting — you can only disable auto-update for all of your games.

    Open the settings menu and scroll down to MANAGE GAMES, then disable auto-updates.

    hashtag
    Steam

    Unlike the competition, Steam will not give you any control about auto-updating. For that reason, you need to forbid it from writing to a specific file on disk, without which it will be literally unable to update. Here's how:

    1. Find the steamapps folder (:

      1. Right-click on Cyberpunk 2077 in your Steam Library and select Properties

      2. On the side bar, click on Local Files

      3. Select Browse. This will take you to Cyberpunk's install directory, which is inside the folder we want (e.g. C:\Steam\steamapps\common\Cyberpunk 2077)

      4. Navigate two levels up

    2. Find the file appmanifest_1091500.acf

    3. Set the file to read-only:

      1. Right-click on the file and select Properties

      2. At the bottom of the dialogue, check the Read-only box

    circle-info

    As long as Steam can't write to this file, it can't update Cyberpunk. Once you are ready to update, simply uncheck the Read-only checkbox again.

    Don't forget to deactivate it again later!

    hashtag
    Downgrading

    hashtag
    GOG

    1. Disable auto-updates

    2. Head to the Cyberpunk game detail page

    3. Find the settings button next to the Play button

    4. Select Manage Installation -> Configure…

    5. Select the game version

    hashtag
    Epic

    Sorry, choomba, you're fucked. No downgrading possible.

    hashtag
    Steam

    Since 2.0, Steam supports downgrading to version 1.63_hotfix.1.

    Right-click on the game in Steam and select Properties, then go here:

    For downgrading to other versions, see the expandable box below.

    chevron-rightUsing steamdb to attempt to download a previous depothashtag

    Longer instructions can be found in this MakeUseOf guidearrow-up-right, but the condensed version (courtesy of our lovely Discord community) goes as follows: First turn autoupdate off for Steam now so that you don't forget to do it later. We'll wait. Here are the version-specific commands that you need to run. If you can't find your version on the list, check herearrow-up-right.

    • 2.0 Base Game: download_depot 1091500 1091501 7695458851217910405

    • 2.0 Phantom Liberty: download_depot 2138330 2138330 4702299018468121610

    • 1.63: download_depot 1091500 1091501 3385393324409330817

    Now, we do the thing:

    1. Open Steam

    2. Press Win+R

    3. Type steam://open/console to get into the steamdb console

    This should leave you with the correct previous game version. You can right-click cyberpunk2077.exe to verify the versions in Properties > Details.

    You might still need to do a script cache reset or other cleanup before the game starts up nice, so head on over to if need be.

    framework compatibility
    downgrading

    base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\

    female

    .morphtarget

    base\characters\head\player_base_heads\player_female_average

    male

    .mesh

    base\characters\head\player_base_heads\player_man_average\h0_000_pwa_c__basehead\

    male

    .morphtarget

    base\characters\head\player_base_heads\player_man_average

    Here, you can also find tattoos and cyberware.

    hashtag
    Skin tones by index

    1

    01_ca_pale

    2

    01_ca_pale_00_warm_ivory

    3

    02_ca_limestone

    4

    02_ca_limestone_00_beige

    List compiled by wolv

    hashtag
    Freckles / cheek make-up

    For a list of freckles and make-up sorted by colour and skin type, see NoraLee's NPV guidearrow-up-right.

    hashtag
    Lipstick

    circle-info

    For a mod fixing various mix-ups in the character creator, see herearrow-up-right.

    Lipstick colours and styles are sorted in (more or less) ascending order in the appearance list in the mesh.

    Style order is Default - Glossy - Matte (no suffix, _02, _03)

    Link: Reference images on imgurarrow-up-right

    hashtag
    Eyeliner and kohl

    to be done

    hashtag
    Complexions

    Every complexion has its own associated texture file. These are sorted by body gender under

    The files are ending in 01..05. Each complexion has its own appearance in the head mesh, e.g.:

    Eye make-up

    female

    edit the player's head
    meshes
    morphtargets
    this guide

    .mesh

    The engine morphs garments to avoid clipping — for example, if you equip a pair of boots and V's jeans no longer cover the shoes, but get tucked under.
    Garment Support in action

    This process is accomplished via 'parameters' on the mesh:

    These will show up as shape keys in your Blender export

    hashtag
    Component prefixes

    Garment support will be applied based on garmentScore. For this, the prefix of the component name will be considered (components are named in your .app or .ent file's component array).

    A high garment score means that the item is "on top", squishing anything worn "below". (See The algorithm for details.)

    The prefixes are as follows:

    h0_

    t0_

    s0_

    l0_ ...

    Any component with a 0 in its prefix will be treated like a body mesh (no deform/squishing)

    h1_

    Head inner (mask, sunglasses)

    h2_

    Head outer (helmet, bandana)

    t1_

    Torso inner (shirts)

    hashtag
    How it looks if it's broken

    Often, you can salvage things by deleting the parameters in WolvenKit

    hashtag
    The algorithm

    circle-info

    TL;DR: High garment score means "on top", items below will get squished.

    The game calculates the garment score by checking the prefix of component names, where the one with the lowest prefix is the innermost:

    After considering the component name, the game will consider the tags in the .ent's visualTagSchema:

    An example for t0_000_pma_base__full (the default body component, torso+legs):

    here
    discord postarrow-up-right
    hashtag
    More intel and look-ups:
    • Cheat sheet: Materials for direct edits

    • 3d objects: .mesh filesand their materials

    • Re-using materials: .mi – material template files explained

    hashtag
    Hands-on:

    • Changing materials, colors and textures (guide)

    hashtag
    Definition: Shader

    In its original state, a 3d object (mesh) is a collection of vertices (pixels). The space between those vertices is filled by faces, which form the 3d object's surface.

    The shader is the thing that goes on top of the surface, rendering a material such as glass, skin, concrete, steel…

    circle-info

    Without a shader, objects would be invisible in the game, the surface simply being transparent. In Cyberpunk, a default shader will be assigned in such cases (such as debug_coloring.mt).

    In Cyberpunk 2077, REDEngine shaders are implemented as .mt/.remt files.

    hashtag
    How can I use shaders?

    If you have ever messed with an item's materials, then you already have.

    To use a shader, you create a Material Instance, where you can configure the parameters. Not every parameter of a shader can be configured: since skin always has subsurface scattering, it makes no sense to tweak this. But since skin color already varies dramatically if you don't throw exotic chrome into the mix, you can change them easily via tint.

    hashtag
    Definition: Material

    circle-info

    For details how materials are used on a mesh, see the corresponding wiki page, or learn how materials can be loaded externally from material template files.

    In the context of Cyberpunk, a material is the thing that lets the shader define the surface properties of a 3d objects: .mesh files. Typically, you create a local instance, which will then pull in a shader via baseMaterial.

    The property baseMaterial can point at a .mt / .remt file directly, or to an intermediary .mi file:

    The .mi file

    circle-info

    Each part of a mesh (submesh) can have a different material assigned.

    Do you want to know more?

    circle-check

    For a hands-on guide and something to play around/experiment with, check here.

    hashtag
    What kinds of material exist?

    hashtag
    Textured

    If you have modded other games, you're used to PBR materials with a bunch of textures like diffuse, normal, metalness etc.

    circle-check

    To change a textured material, see this guide

    circle-info

    Did you know? You can make Cyberpunk's default textured material glow.

    hashtag
    Multilayered

    This is specific to Cyberpunk, and it is incredibly cool. If you're used to textured materials, you're probably going to hate it at first, but it has incredible versatility and re-usability.

    circle-check
    • What is a multilayered material and how does it work?

    • What are these properties, how do I use them?

    .rigs

    hashtag
    First person

    First person animations are used solely on the player character (V). There's one rig per body gender:

    name of rig
    Path in game files

    player_male

    player_female

    hashtag
    Third person

    circle-info

    While most rigs are called man_xxx, they're also used by NPCs of the female body gender.

    Name of rig
    Used by
    Path in game files

    woman_base

    female body gender, default body shape

    base\characters\base_entities\woman_base\woman_base.rig

    man_base

    male body gender, default body shape

    base\characters\base_entities\man_base\man_base.rig

    hashtag
    Face

    The facial animations are linked in the .ent files under base\characters\base_entities\xxx\xxx.ent. They are otherwise referenced from an entAnimationSetupExtensionComponent inside the .app file.

    hashtag
    Deforms

    Deforms can be found under base\characters\base_entities\*\deformations_rigs.

    Animations
    You duplicate and re-duplicate the material for each of your variants, changing the properties that defines the colour
  • You wish that there was less copy-pasting involved

  • You only change 2 of 6 properties, but you always have to copy all of them!!

    hashtag
    .mi files to the rescue

    A .mi file encapsulates a material in a reusable template file. Take any of them from the game, move them to your custom directory, and group all the properties that you keep copy-pasting into the .mi.

    Then, in your material, you can now use your .mi file as baseMaterial, and only change the properties that are actually different!

    circle-check

    For a collection of example .mi files, check manavortex's MEGAarrow-up-right.

    Instead of copy-pasting six properties, you now copy-paste only two.

    Only add the properties that you want to change in relation to the .mi file

    hashtag
    Making material templates

    Let's take it another step further – we can make a bunch of different colours to re-use across your files. An example for this are hair files, or the plastic materials I've used in my toy prop packarrow-up-right.

    For this, I first created a plastic_base.mi with all the common properties, and then created one additional .mi file for each shade of plastic, setting plastic_base.mi as baseMaterial, leaving me with the following folder structure:

    If I decide that my plastic is too shiny, I can edit _plastic_base.mi instead of touching every template individually. Pretty neat, isn't it?

    The technical term for doing this is "daisy chaining". (Image: Wikimedia commons)

    And if one of my items happens to have a custom normal map and/or texture, then I just add them in the values array of my material and call it a day.

    hashtag
    Maximally lazy: external materials

    But we can take this approach even further! If you don't have any properties, your mesh doesn't even need materials! You can simply use the externalMaterials list instead. You do this by unticking the isLocal property in the materialEntries definition:

    material entries and indices

    hashtag
    Warning

    You can of course mix and match local and external materials! Just make sure that the materialEntries indices are pointing at the correct material.

    However:

    triangle-exclamation

    If you are using preloadLocalMaterials, you need to use preloadExternalMaterials instead of externalMaterials.

    here
    here
    Roughness/Metalness overview
    Roughness/Metalness overview
    inkatlas
    via https://3dcoat.com/forum/index.php?/topic/21601-3dc-roughness-metalness-visual-aid/arrow-up-right

    Spawn Codes (BaseIDs/Hashes)

    Item spawn codes and how they link to appearances

    hashtag
    Previews

    List
    Description

    (m!V)

    hashtag
    Lists

    A selection of lists for looking up item codes. Alternatively, you can browse through the game's files, or search e.g. the wiki.

    triangle-exclamation

    Player equipment only: Not all items that you find in the player folder are actually hooked up to spawn. If you can't , you ran into one of those.

    hashtag
    From a BaseID to an item's materials

    circle-info

    As an example, this will use Reinforced Puffer Vest (Items.Vest_17_basic_01)

    hashtag
    The base ID

    An item's spawn code is called BaseID. It looks like this:

    and will be used to spawn items via CET (Game.AddToInventory("Items.Vest_17_basic_01")).

    A base ID consists out of two parts. The first one (Vest_17) determines the item, the second one (basic_01) determines the variant.

    hashtag
    Finding the files

    Head to WolvenKit and search for the first part of the BaseID:

    You will find at least one entity file and an appearance file.

    circle-exclamation

    If you find multiple files, you need to open the correct one. You can identify those by the folder path: for player meshes, the name of the last folder will contain either _pwa_ or _pma_, and the path will include either that or player.

    hashtag
    The .app

    Open the apperance file. You will see a bunch of appearances:

    We only care for _m and _w right now, since they are using different meshes. Open the array components and find the one holding the mesh:

    We can see that the basic_01 appearance is using the default material, and the basic_02 appearance is using the bbstripes material:

    circle-info

    To find your way through the mesh, check the guide for !

    Releases · PixelRick/CyberpunkSaveEditorGitHubchevron-right
    Digital Painting. Creative Freedom.Kritachevron-right
    Official Adobe Photoshop | Free Trial and Online Photo & Design Appwww.adobe.comchevron-right
    3D painting software for texturing - Adobe Substance 3Dwww.adobe.comchevron-right
    Autodesk 3ds Max 2026 | Download & Buy Official 3ds Maxautodeskchevron-right
    010 Editor - Pro Text/Hex Editor | Edit 300+ Formats | Fast & Powerful | Reverse Engineeringwww.sweetscape.comchevron-right
    Autodesk Maya 2026 | Download & Buy Official Mayaautodeskchevron-right
    Paint.NET - Free Software for Digital Photo Editingwww.getpaint.netchevron-right
    Notepad++notepad-plus-plus.orgchevron-right
    Blender - The Free and Open Source 3D Creation Software — blender.orgBlenderchevron-right
    GIMPGIMPchevron-right
    010 Editor - Pro Text/Hex Editor | Edit 300+ Formats | Fast & Powerful | Reverse Engineeringwww.sweetscape.comchevron-right

    Getting Started

    Install the core requirements for Cyberpunk2077 modding, decide how to manage your mods, and set up the mod manager

    circle-check

    If you already have the game installed and configured, you can proceed to the guide .

    hashtag
    Before you get started

    Cheat Sheet: Facial Expressions

    hashtag
    Photo Mode

    Player photo mode uses one of

    Index
    Expressions
    CNAME keys to activate them
    GitHub - psiberx/cp2077-tweak-xl: Cyberpunk 2077 mod that allows you to modify TweakDB.GitHubchevron-right
    redmod deploy -root="C:\Gog\Cyberpunk 2077" -mod=modB,modA,modC
    Cyberpunk2077.exe -modded
    base\characters\head\wa\h0_001_wa_c__basehead\textures\h0_000_wa_c__basehead_d0X.xbm
    base\characters\head\ma\h0_001_ma_c__basehead\textures\h0_000_ma_c__basehead_d0X.xbm
    03_ca_senna
    03_ca_senna_d02
    03_ca_senna_d03
    03_ca_senna_d04
    03_ca_senna_d05
    s0 = 0    // no prefix will also be 0
    l0 = 10
    a0 = 20
    t0 = 30
    h0 = 40
    s1 = 50
    l1 = 60
    t1 = 70
    i1 = 80
    hh = 90
    h1 = 100
    h2 = 110
    t2 = 120
    PlayerBodyPart = -2000
    Tight = -1000
    Normal = 0
    Large = +1000
    XLarge = +2000
    +30          prefix: t0_
    -2000        visualTag: PlayerBodyPart
    
    —————————————————————————
    -1970
    - materials
      - plastic
        - _plastic_base.mi   << baseMaterial for all materials below
        - plastic_black.mi
        - plastic_yellow.mi
        - plastic_red.mi
        - plastic_green.mi
        - plastic_purple.mi
        - plastic_pink.mi
        - plastic_orange.mi
        - plastic_blue.mi
    White => very rough
    Black => very smooth
    White => metal
    Black => not metal

    man_child

    children of any body gender

    base\characters\base_entities\man_child\man_child.rig

    woman_child

    -

    base\characters\base_entities\woman_child\woman_child.rig

    man_big

    any body gender: big folks, e.g. Jackie, River, Rhino…

    base\characters\base_entities\man_big\man_big.rig

    woman_big

    -

    base\characters\base_entities\woman_big\woman_big.rig

    man_fat

    any body gender: fat folks, e.g. Dexter

    base\characters\base_entities\man_fat\man_fat.rig

    woman_fat

    -

    base\characters\base_entities\woman_fat\woman_fat.rig

    man_massive

    Smasher

    base\characters\base_entities\man_massive\man_massive.rig

    bisect

    In the console, enter this command exactly to start the download (it'll be the entire 60 GB so be prepared): download_depot 1091500 1091501 7695458851217910405

  • After the game finishes downloading, go to the installation location listed in the console, and copy either just the changed files (you can view the manifest for the new version) or the whole thing over your game directory to overwrite the new changes.

  • If you have the Phantom Liberty DLC, you will need to do the steps 4 and 5 again for the DLC itself with the command: download_depot 2138330 2138330 4702299018468121610

  • those instructions
    Changing the colours
    Changing the mask
    Logo
    mana vortex

    Spawn codes to in-game names, with many screenshots on masc V

    cp2077.8713.suarrow-up-right (f!V)

    Screenshots on femme V with spawn codes

    Steam: Cyberwarearrow-up-right

    Steam: Quickhacksarrow-up-right

    Google Docarrow-up-right

    A list with BaseIDs

    Google Sheetarrow-up-right

    Google Sheets (August 2022), supports filtering

    fandomarrow-up-right
    find an app file
    recoloring items
    Changing materials, colors and textureschevron-right
    Steam: garmentsarrow-up-right
    Search WolvenKit for the first part of the BaseID
    basic_01 is using "default" material (green)
    base_02 is using "bbstripes" material
    Vest_17_basic_01
    Make sure you have all the required programs to operate mods and their managers; these are separate from modding framework requirements, but just as important.
    • Visual C Redistributable 2022arrow-up-right

    • .NET 6.0+arrow-up-right

    • The latest graphics driver for your GPUarrow-up-right

    • If you are on Windows, and the latest

    This guide assumes that you have already bought Cyberpunk 2077 on the platform of your choice (Steam, GOG or EPIC).

    hashtag
    Installing the Game

    circle-check

    If you already have the game installed, you can skip this section and proceed with Configuring Cyberpunk

    In order to set up your game to be best suited for mods, you'll want to keep a few things in mind:

    circle-info

    TL;DR: If possible, install Cyberpunk 2077

    • on an SSD to speed up load time

    • outside of Program Files to keep Windows from "protecting" your files

    For the purpose of this guide, we will assume the following install paths:

    Game install

    C:\Games\Cyberpunk 2077

    Mod download and staging

    C:\Games\Mods

    hashtag
    Performance

    Like everything else, Cyberpunk will run significantly faster from an SSD rather than a HDD.

    hashtag
    Permissions

    circle-info

    Folder permissions can cause problems down the line, especially for Windows users. Most users never run into these, but you can prevent them altogether by installing your game to a folder like C:\Games rather than C:\Program Files.

    By default, all three platforms (GOG, Steam, and Epic) want to install the game to their own install location, which defaults to C:\Program Files. That wouldn't be a problem if not for Windows and what it will permit there, which is not much.

    This can (but doesn't have to) cause problems in two different spots by "protecting" the Cyberpunk install dir from modding tools such as mod managers (like our recommendation Vortex) or even CDPR's own REDmod launcher. But hey, at least things are very secure.

    You likely won't run into any of these problems, but you can rule them out altogether by installing Cyberpunk to a directory other than C:\Program Files or C:\Program Files(x86), like C:\Games\Cyberpunk 2077

    Now we will go through the install options to use on each platform to accomplish this, and the recommended settings for modded Cyberpunk 2077.

    hashtag
    Installing Cyberpunk: GOG

    Open GOG Galaxy, click on "Owned Games" in the left sidebar, and scroll until you find Cyberpunk. Single click on its picture to display the main Cyberpunk page.

    1. Click the button at the top of the page labeled "Install".

    2. In the pop-up window, choose your install location:

      • Click the drop-down box

      • select "browse"

      • browse to the target folder (we're assuming C:\Games)

      You don't need to create a subfolder for Cyberpunk, as GOG will do that for you.

    3. Optional: Select a game language other than English

    4. Optional: Create a desktop shortcut by ticking the first box "Create desktop shortcut"

    5. Optional, but recommended: Disable auto-updates by unchecking the second box "Keep this game up to date automatically"

    How the window should look for recommended install.
    1. Press "Install"

    2. Wait until GOG has done it's thing, then proceed to the next section.

    hashtag
    Configuring Cyberpunk: GOG

    Once the game has installed, we want to make it run with mods. Click the button to the right of the play button (formerly the install button) pictured below.

    The Cyberpunk 2077 main page on GOG, with the sidebar open on the left

    From there, select "Manage Installation" and then "Configure". A window will pop up where you can change your desired settings:

    • Installation (first tab): Disable auto-updates

    • Features (second tab): Enable mods

    • DLC (third tab): Select at least Cyberpunk 2077 REDMod

    You may select any additional settings you like, but these are the minimum recommended options.

    That's it, you are done with your install of the game! You can now move on to installing Vortex.

    hashtag
    Installing Cyberpunk: Steam

    circle-check

    If you already have the game installed, you can skip this section and proceed with Configuring Cyberpunk

    To be done

    hashtag
    Configuring Cyberpunk: Steam

    To be done

    • Navigate to Cyberpunk 2077

    • Click Play

    • Click the Settings button and Enable mods

    • Click Play (Do not skip this)

    That's it, you are done with your install of the game! You can now move on to installing Vortex.

    hashtag
    Installing Cyberpunk: Epic

    circle-check

    If you already have the game installed, you can skip this section and proceed with Configuring Cyberpunk

    To be done

    hashtag
    Configuring Cyberpunk: Epic

    To be done

    • Navigate to Cyberpunk 2077

    • Click Play

    • Click the Settings button and Enable mods

    • Click Play (Do not skip this)

    That's it, you are done with your install of the game! You can now move on to installing Vortex.

    You may now move on to mod manager and mod installation.

    how to install mods with Vortex

    1

    Neutral

    facial_neutral

    2

    Charm

    facial_charming

    3

    Fury

    facial_furious

    circle-info

    For a guide how to replace photo mode expressions, see here.

    hashtag
    AMM facial expressions

    The AMM expressions for both body genders use the following file and keys:

    base\animations\facial\male_average\interactive_scene\generic_average_male_facial_idle.anims

    Neutral

    idle__neutral__male

    Joy

    idle__joy__male

    Smile

    idle__happy__male

    Sad

    idle__sadness__male

    Courtesy of Maximilium, Pinkydude and Vitum

    hashtag
    Expression references for individual NPC files:

    johnny__facial_idle_posesarrow-up-right

    rogue_facial_idle_posesarrow-up-right

    evelyn_facial_idle_posesarrow-up-right

    generic_average_female_facial_idle_posesarrow-up-right

    panam_facial_idle_posesarrow-up-right

    5

    03_ca_senna

    6

    03_ca_senna_00_amber

    7

    03_ca_senna_01_honey

    8

    03_ca_senna_02_band

    9

    04_ca_almond

    10

    04_ca_almond_00_umber

    11

    05_bl_espresso

    12

    06_bl_dark

    t2_

    Torso outer (jackets, coats...)

    s1_

    Shoes

    l1_

    legs (pants that aren't leggins)

    Logo
    Logo
    Logo
    Logo

    Users: Troubleshooting CET

    If Cyber Engine Tweaks isn't working, here's what you can do

    This is the troubleshooting page for Cyber Engine Tweaksarrow-up-right (CET). For general troubleshooting, go here. For an explanation of how CET works, see .

    circle-info

    If you are on Linux/SteamDeck, make sure to follow this guide to install the right .dll overrides before reading on.

    If your game is pirated, go here.

    If you're experiencing microstutters, check here

    If you are experiencing crashes caused by CET, try running Cyberpunk in

    If you can't open your overlay, check

    If your CET just stopped working (without a game update) or if you've been sent here to do a clean install, see below how to

    Otherwise, read on for the full troubleshooting instructions.

    hashtag
    General troubleshooting

    Before trying anything else, please make sure that your Windows and your graphics driver are up-to-date – this actually helps in around 50% of all cases. If you need instructions, you can find them in the red box under the general troubleshooting guide's section.

    hashtag
    Step 0: Go to your install directory

    Go to your Cyberpunk 2077 game directory, since all paths given in this guide will be relative to that folder.

    circle-check

    TL;DR:

    CET is installed to bin\x64\plugins\cyber_engine_tweaks

    The log file is bin\x64\plugins\cyber_engine_tweaks\cyber_engine_tweaks.log

    hashtag
    Example:

    hashtag
    Step 0.5: Update your game and the mod

    circle-info

    Each version of CET is compatible with exactly one game version. Nobody keeps track of those other than "the most recent ones work together".

    For that reason, the Redmodding Discord can only support you the most recent version.

    If there's a mismatch, then you can find a warning in the following file:

    If you don't have that file, proceed to Step 2.

    hashtag
    Step 1: Check the install folder

    Go to your Cyberpunk 2077 game directory and check the following subfolder:

    It should have at least the following files:

    If you do not have these folders, then CET isn't installed correctly. Head to and start with step 3.

    hashtag
    Step 2: Check for a log file

    If everything looks okay in step 1, check if you have a file cyber_engine_tweaks.log inside the cyber_engine_tweaks folder from the previous screenshot.

    hashtag
    You don't have a log file

    No log file means that CET isn't starting up.

    • The easiest fix is to .

    • If you did that and it didn't help, check your antivirus. Most likely, it is protecting you from scary things like Cyber Engine Tweaks. Disable it.

    • If that didn't help either, update everything - Windows, your drivers, etc. You can find links and instructions in the red box on the .

    hashtag
    You have a log file

    • If you do have it, you can open it and try to make sense of the error message. You can find more information on that , or find help in the #cet-suppport channel on our .

    hashtag
    Reinstall CET

    circle-info

    Uninstalling (the full game or just the mod via Vortex) can leave files behind, which will fuck things up for you after a reinstall. This section tells you how to avoid that.

    1. If you are using Vortex, turn it off (it will get angry otherwise)

    2. Complete either of the following steps:

      • rename bin/x6/plugins to plugins_

    hashtag
    Reset your keybind

    1. Find the file \bin\x64\plugins\cyber_engine_tweaks\bindings.json and delete it.

    2. Start the game.

    3. You should now see a popup asking you to bind a key. Otherwise, read on.

    hashtag
    I can't bind a key

    circle-info

    If you do not see the popup at all, or do a .

    Cick into the "Binding..." field.

    If that doesn't help, make sure to turn off all your overlays (Discord, Steam, Microsoft Game Bar, Random Useless Bloatware) or start Cyberpunk in the Windowed Borderless mode.

    hashtag
    Microstutters and Performance

    If you're experiencing performance issues with CET, first make sure to as per the instructions to rule out side effects from old files.

    If that doesn't make the problems go away, make sure to update Windows and your graphics driver as per the red box under Troubleshooting's section.

    If that doesn't help, you can find us in #cet-support on the . Please note that people there will first suggest everything else from this guide, so you might as well get it out of the way first.

    hashtag
    Crash to Desktop on Alt+Tab

    Make sure to update Windows and your graphics driver as per the red box under Troubleshooting's section, as this is the only chance you have of getting rid of your crashes.

    This is a known issue with AMD cards, and it's not something the CET developers can fix. Everyone who could fix it is informed, but such things take time. If you're on an AMD card, you can try running your game in Windowed Borderless mode. Otherwise, you just have to live with the crashes.

    Broken mods: How to help

    A mod is crashing and you know which — what now?

    circle-info

    This page assumes that you have made use of the troubleshooting guide, have identified a broken mod and want to help fixing it.

    It will help you rule out side effects and collect the necessary information for a bug report. Of course you can always reach out, but there's a good chance that you'll be asked to do the stuff on this list, so you might as well do it first.

    If you can't or won't do that, please !

    hashtag
    Thank you!

    Without people like you, many bugs would never be discovered and fixed, and modding would be even more frustrating than it already is. So thank you for taking the time!

    hashtag
    Step 0: Check the Nexus page

    hashtag
    Are you on the most recent version?

    "Crashes when you equip your strap-on? I fixed that a month ago. Just update! :)"

    Make sure that you're on the most recent version of both the mod. You probably are, but — better double-check.

    circle-info

    This recommendation comes from a professional software developer, who has "fixed" more than one software problem by just updating the software.

    hashtag
    Is there a "known issues" section or a pinned comment?

    Maybe the mod author knows about this problem and hasn't been able to fix it. If they do, then either the description will mention it, or there will be a pinned post in the comments section.

    If there isn't either, then you have found something new. Exciting!

    hashtag
    Step 1: Isolate

    The first step is to isolate the problem. Make sure that it is exactly this mod and no other. It works like this:

    1. Temporarily from your game.

    2. Install only the problem child together with all . Make sure that they're all on the most recent version. Does the problem still happen? (If not, then it's something else)

    3. Now, disable only the problem child. Does the problem go away? (If not, then it's one of the dependencies)

    circle-info

    If the problematic mod is a core framework, please read as well.

    If you can reliably reproduce the problem (that's Netrunner speech for "it happens every time without fault"), then you have everything you need for a bug report.

    hashtag
    For a core framework

    If your problem child isn't one of , you don't need to read this.

    The core frameworks are generally extremely stable. That's not to say that they don't have bugs, but such bugs are generally found and fixed quickly.

    If you suspect that one of them is the cause of your crash, make very sure that you have no dependent mods installed, since those will be inactive as long as the dependency isn't there (think of it like a fuse box: without electricity, the fridge can't keep making that noise).

    hashtag
    Step 2: Gather the necessary data

    Since your problem could be anything, we'll go about it the other way. I'll list everything that you could include, and tell you when it's needed.

    hashtag
    Reproduction steps

    When: Always

    Any information you collect is helpful, but fixing a bug is easiest if you can watch it with your own eyes. For that reason, we need a list of the exact steps needed to make the problem happen.

    Write the steps they need to do, not the ones they don't.

    chevron-rightA lengthy example in case you're unclear about why you'd need a listhashtag

    Imagine the following (hypothetical) bug report:

    OK, so the game crashes with only your mod and its dependencies (ArchiveXL, TweakXL, Red4ext) installed! I'm on the most recent version. Here's what I did: I created a new character. Has to be a nomad, female body gender and male brain gender, doesn't work if it's anything else (I made a hot blonde, here's a screenshot, aren't they cute?) Then I added the pink unicorn hat and the Sword of Truth via cheat. Has to be the sword, the Mace of Maybe works! Then hit the car mechanic and the game crashes. Oh yeah, it only does that if you do the hat before the sword! And also only on the pink version, the green variant works fine! Cheers!

    Do you know what to do? I lost track halfway through, and I wrote that. Also, did they equip the items, or is it enough to have them in your inventory?

    hashtag
    Save game

    When: If the problem happens

    • at a certain location or a certain quest phase

    • when loading into exactly this save (if it happens for all of your saves, then it's probably not needed)

    Your save games can be found in the following folder:

    which is the same as

    Find your individual save game folder (e.g. AutoSave-0) and .

    hashtag
    Log files

    When: If the problem child

    • adds an error in any log files that doesn't happen without it (use the )

    • Is a plugin (lives in Cyberpunk 2077/bin/x64/plugins)

    • Is dependent on a plugin (like above, but with more subfolders)

    What:

    • The log file with the error

    • If it's a plugin mod, then add the plugin's log. Most common here is Cyber Engine Tweaks; the log file is Cyberpunk 2077/bin/x64/plugins/cyber_engine_tweaks/cyber_engine_tweaks.log

    hashtag
    Crash report

    When: If the problem child is one of the .

    circle-info

    These mods are the foundation that everything else builds on, and the people who develop and maintain them are incredibly competent. Please don't waste their time — make very sure that you have the problem. You don't call your internet provider before checking your network cable and restarting your router!

    You can find the crash reports in this folder:

    which is the same as

    Find the most recent one (e.g. Cyberpunk2077-20230816-225038-11372-16140) and .

    hashtag
    Step 3: Reaching out

    You're 100% sure that the mod is the cause of the problem, and you have collected the necessary information, so now you can reach out and provide a helpful bug report.

    The first place to go is the mod's Nexus page.

    1. If there is a Bugs tab, you can create a new bug report

    2. If there is a Posts tab, you can leave a post

    3. If there is a Comments

    hashtag
    Step 4 (optional): Discord

    If you can't reach the mod author, you're welcome to hit up the , for example in #mod-troubleshooting. Someone there might be able to get the word out.

    hashtag
    Corrupt(ish) saves

    If you have found a mod that until it is installed again, please let us know so that we can update the troubleshooting guide!

    Vehicles

    Vroom Vroom

    The list below has the main entity files for the vehicles in the game, should be a good starting off point for whatever your wanting to do to them.

    Vechicle
    Ent File

    Archer Bandit

    v_standard2_archer_bandit_01.ent

    Archer Hella (police version)

    Exporting and importing meshes

    How to export and import meshes (WolvenKit <=> Blender)

    hashtag
    Summary

    Created by @manavortex Published November 05 2022

    This guide will show you how to - export meshes from the game for use in other projects - import those meshes back into WolvenKit

    It will not show you anything else. For other use cases like exporting characters, please check

    Assumed skill level: You are able to read ;)

    Tool
    Tool version

    hashtag
    Wait, this isn't what I want!

    Would you rather…

    • Import/Export to fbx ?

    • Read more about ?

    • without editing them?

    circle-info

    You can find a collection of useful Python scripts for Blender on .

    You can import and export meshes via WolvenKit or - both methods work.

    triangle-exclamation

    Before you start editing, a warning:

    It is easy to beyond the point of repair. Make frequent back-ups, and continuously test if your altered mesh still imports and displays in WolvenKit, especially when editing vertices!

    hashtag
    Exporting the mesh

    hashtag
    glTF Binary (*.glb)

    WolvenKit <= : Use the . It is pinned to the sidebar on the right.

    WolvenKit > 8.8: Use the Export tool. You can toggle it from the "Tools" menu on the top bar.

    circle-check

    Select your mesh in the Export Tool and click Export/Process Selected, or simply use Export/Process All.

    If the export fails, try unchecking the following properties in the export settings (you have to do this for each individual mesh)

    • Export Materials

    • Export Garment Support

    You should now havemeshName.glb in your WKit project's

    circle-info

    Wolvenkit > 8.8 will by default export with materials for the .

    hashtag
    Path example

    Assuming you are exporting t2_002_pwa_vest__puffy.mesh, WolvenKit will do the following:

    Path of mesh: <yourModDir>\source\archive\base\characters\garment\player_equipment\torso\t2_002_vest__puffy\t2_002_pwa_vest__puffy.mesh

    Path of glb: <yourModDir>\source\raw\base\characters\garment\player_equipment\torso\t2_002_vest__puffy\t2_002_pwa_vest__puffy.glb

    hashtag
    Blender: Saving the mesh

    circle-info

    Some meshes (such as eyelashes and hair) are two-sided. See for details on how Wolvenkit handles that.

    hashtag
    glTF Binary (*.glb)

    circle-exclamation

    If you have touched the topology, make sure to triangulate your mesh before exporting (Select all in Edit Mode, Ctrl+T)

    circle-info

    You can (and should) use the — it will take care of the necessary settings.

    Make sure to check the box under Data > Mesh > Tangents, as Wolvenkit will not export without it.

    hashtag
    Importing to *.mesh

    circle-info

    If you are following a guide with pre-made resources and it tells you to you'll want to follow the advice, as the elements in the exported structure will have different names.

    Alternatively, you can run on your blend file, which will automatically fix that for you.

    hashtag
    glTF Binary (*.glb)

    In Blender, you should have overwritten your previously exported glb. With WKit's , you can now simply Import it back in.

    circle-info

    WolvenKit will map any *.glb file under raw to the mesh with the same name under source.

    Example:

    <yourModDir>\archive\raw\base\characters\garment\player_equipment\torso\t2_002_vest__puffy\t2_002_pwa_vest__puffy.glb

    circle-exclamation

    WolvenKit refuses to import if the target mesh doesn't support all bones in the glb or if your mesh's topology became corrupted. If that's the case, check the .

    hashtag
    Import/Export: _doubled

    Normally, a mesh's backfaces are invisible/transparent - you aren't supposed to see a mesh from below, so it doesn't matter. But some, like hair and eyelashes, are different, and need to be doubled.

    When importing via Noesis, you need to do this by hand: duplicate all the vertices in the mesh, and flip the normals. When importing via WolvenKit, it will automagically do that for you if a mesh name ends with _doubled.

    The suffix also indicates that Wolvenkit de-duplicated a mesh on export!

    hashtag
    Troubleshooting

    If your mesh won't export from Wolvenkit, try exporting it by unchecking the box.

    For a list of troubleshooting steps, check the .

    Autodesk/FBX (Noesis)

    How to import/export meshes with Noesis

    circle-info

    Noesis is an alternative to exporting with WolvenKit. There are legitimate use cases for why you would want this. If you don't know them, you probably don't.

    hashtag
    TL;DR:

    Noesis is outdated. Go import/export .

    hashtag
    Explanation

    5000 years ago on the slopes of Mount Doom, mods were created with nothing but pickaxes, home-spun hemp, and hex editing. Older guides will refer to Noesis as the way to go — but Wolvenkit has come a long way since then. The import/export is reliable and works, and unless you , you will probably want to .

    Given that you're still reading this, you probably have a reason to use Noesis, so here we go.

    circle-exclamation

    To use Noesis, you need the .

    Tool
    Tool version

    hashtag
    Exporting from the Wolvenkit project

    1. Navigate the Noesis browser to your file on the disk (you can right-click on the mesh in Wolvenkit and select "Open in File Explorer")

    2. Right-click it in the Noesis Browser and select "Export"

    3. Export with default settings:

    Done. You can now import the fbx to Blender.

    hashtag
    Blender: Saving for import

    Simply export as fbx, Blender's standard settings are fine for Noesis.

    hashtag
    Importing

    Noesis is an alternative to importing with WolvenKit.

    • Find your fbx in the Noesis browser

    • Right-click it and select "Export"

    • Set the Main output type to .mesh - CyberPunk 2077 mesh [PC]

    hashtag
    Troubleshooting

    hashtag
    Noesis Split Meshes

    Noesis-split meshes are essentially how Noesis copes with higher vertex counts. It will automatically divide up your submeshes into smaller parts, which is why Noesis will often display there being more meshes than intended.

    This is caused by the vertex count being too high, and will often result in the applicable submeshes not converting with the rest of the mesh, resulting in those submeshes being non-existent in the .mesh file. The solution is to simply reduce the number of vertices in the given submesh with the goal being to get the count lower than 65,000 vertices on the given submesh.

    The best way to tell how many vertices a given mesh has is to open the "Viewport Overlays" drop-down menu and select "Statistics". This will allow for data on the meshes within the .blend. To narrow this down to a specific submesh, open edit mode with that submesh as active and "select all" (CTRL + A) and you will see the vertex count for that submesh.

    Once you know how many vertices you have, use either "Decimate Geometry" or "Merge By Distance" to simplify the topography of the mesh, or to merge two or more vertices that are a given distance apart from one another into one.

    Once this has been done, export from blender and try the conversion again.

    If this doesn't quite do the trick, convert the fbx to fbx (just leave the output type set to fbx) and enter "-fbxmeshmerge" in the advanced options text box before clicking export. (It is recommended that you set an output location when doing this so as to avoid accidentally overwriting the original mesh)

    hashtag
    Duplicate meshes detected

    This often accompanies the "Noesis-split meshes" warning. A common cause for this is the use of Blender's "duplication" feature. To solve it, follow the steps above for "Noesis-split meshes" then import the resulting mesh back in to blender, and you should see that you have several blank "Objects" that came in along with your mesh. Delete those, export back out of blender, convert the fbx to fbx, then import the result into blender and repeat if needed.

    Following the deletion of these Objects, you may notice deformations in the submesh/submeshes, if this is the case, replace the armature (and update the armature modifier) with a new one and export again.

    hashtag
    Differences between fbx and glb

    There are a few differences between Noesis and WolvenKit when it comes to exporting your meshes:

    Autodesk (fbx)
    glTF Binary (glb)

    You can easily convert between the two formats by hand — or use : Switch to Blender's Scripting perspective, create a new file, paste the contents in, and run it.

    Entity: .ent files

    All the dirty detes on entity files

    hashtag
    Definition

    Serves as the top-level container for entities and their properties within the game. Most things that you can see, touch, or interact with have an .ent file somewhere in their hierarchy. Examples are player equipment, weapons, NPCs, interactables (doors, vending machines…)

    For the purpose of modding, we distinguish between two different kinds of entity files.

    circle-info

    To see a minimal example in action, see the guide for .

    hashtag
    Mesh/Component entity (simple entity)

    The minimal way of adding something (e.g. meshes) to the game. This entity can be directly spawned (e.g. ) or referenced from within.

    For player equipment (weapons and armour), you can use mesh entities to encapsulate parts of your item. You load such .ent files via partsValues, which will be added to the corresponding appearance as if the components had been in the .app file itself.

    triangle-exclamation

    As of April 2023, partsValues will be ignored for anything but player equipment.

    This is good practice to avoid repetition, and also to make it easy on yourself if you want to change paths later in your project (imagine having defined 20 appearances with 5 components each, and then wanting to rename your mesh folder…)

    hashtag
    Root entity

    The entry point for the game to display an or . This kind of entity only defines those that are shared among all appearances. Meshes are defined in the , where they can be assigned different properties (e.g. materials) per appearance.

    From ArchiveXL item additions, this kind of file is usually called a root entity.

    • An entity file can define multiple appearances, which can point to different .app files.

    • For , root entities are used as the defining key (one entity => one item, which can have multiple appearances)

    • Names support , allowing you to load different appearances based on body gender or camera mode. These are only used for player equipment and look like &FPP

    hashtag
    What are suffixes?

    In a , you can give the game a list of appearances and have them mapped to an by entry name. While that's pretty good already, have you ever wanted to be more specific — for example, "for a male character, use this appearance, but for a female use this other one?"

    This is where suffixes come in. You append them to an appearance's name in the , and the game will pick the correct appearance (and the correct, and the correct mesh!) based on the best match.

    circle-check

    Find step-by-step walkthrough on using suffixes in the .

    If you are registering an item via ArchiveXL, you can define suffixes via appearanceSuffixes: [ … ] in the .yaml file.

    circle-info

    Your item will inherit the suffix setup from the $base component. In the example of Items.GenericHeadClothing, that will be

    hashtag
    What can possibly go wrong?

    circle-exclamation

    These bad beans can be the reason why your item is invisible!! You can and should disable the suffixes if you don't need them.

    To do so, add an empty array to the yaml entry:

    hashtag
    Which suffixes exist?

    circle-info

    For a full list, see For a more in-depth list, check (TODO: Psi's github?)

    For clothing items, the following suffixes are relevant:

    Suffix
    Explanation

    hashtag
    Suffix load order

    1. the base appearance (with no suffix)

    2. the most specific suffix collection it can find

    hashtag
    Example:

    V has a female body gender and you're in photo mode (third person camera). Your base appearance is called appearance_.

    full appearance name

    3d objects: .mesh files

    Documentation on .mesh files and their properties.

    This page contains information on .mesh files and their properties.

    • If you want to export or import mesh files, see here.

    • If you want to learn how to edit a mesh's appearance, check this guide.

    • If you want to mess with a .mesh's materials, see .

    • A mesh file's shadow is defined in via .

    circle-info

    In the context of Cyberpunk, a mesh is the file that defines the topology and the materials of an object in the game world.

    A mesh can have several submeshes, each of which has own material assignments.

    hashtag
    Material assignment

    hashtag
    Step 1: Appearances

    circle-info

    This page only contains mesh-specific information. Find more details on materials, the .

    This is how to determine which parts of the mesh have which material:

    hashtag
    ChunkMaterials

    You assign materials based on the "chunks" (the individual submeshes) inside a mesh. Open the mesh file in Wolvenkit and open the "appearances" array, then make sure that each of your submeshes has an entry inside the array.

    hashtag
    Material definition

    Materials are defined in the array materialEntries inside your mesh:

    circle-exclamation

    While you can mix external and local materials, you can not mix preloaded and non-preloaded ones. For details, see .

    Property
    Description

    hashtag
    Preload… what?

    Many of CDPR's early meshes use preloadLocalMaterialInstances instead of localMaterialBuffer.materials. As far as we are concerned, you can use the two interchangeably, but:

    If you are using a mix of local and external materials, you must use the corresponding lists:

    local
    external

    If you mix the two, the materials outside of preload… will appear as transparent the first 1-2 times you trigger your item's appearance.

    hashtag
    Step 3: Material definition

    A material definition can be in a CMaterialInstance inside the mesh or in a in the project. For local materials, Wolvenkit will display material names as defined in the materialEntries.

    For more details on material definitions, .

    hashtag
    MaterialInstance: The local material

    The materials themselves are inside the array localMaterialBuffer.materials (or preloadLocalMaterials in case of older meshes).

    circle-check

    You can't go wrong by using those. However, if you don't have any properties that are unique to your mesh or appearance (for example a custom normal map), you might consider .

    A material instance looks like this:

    circle-info

    For an overview of materials that you might want to use for something, check .

    For how to find out which properties a material has, check .

    hashtag
    Material reference:

    A relative path to an external material, usually encapsulated in a . Use this if you don't need to add extra properties.

    GitHub - psiberx/cp2077-archive-xl: Cyberpunk 2077 mod that allows you to expand game resources without conflicts.GitHubchevron-right
    Home | WolvenKitwiki.redmodding.orgchevron-right

    Cheat Sheet: Body

    Which body parts are where?

    On this page, you can find information how the Cyberpunk player body is set up, along with its file paths.

    circle-info

    You can find the list of skin tones, hair and facial expressions under

    There is no dedicated guide as for how to create body mods yet, but the process is roughly the same as for creating .

    Using Mods

    Modding your game, for users

    circle-info

    This page contains instructions on installing mods. If you want to create mods instead, check .

    circle-check

    If this doesn't cover your needs, maybe check out our more detailed guides:

    Variants and appearances

    For the purpose of recoloring or exchanging items

    hashtag
    Summary

    Created by @manavortex Published November 05 2022

    This page is a look-up for or items. For an overview of existing items, see .

    As for how to find this information when it's not on the page, check

    Finding and reading log files

    This page will tell you how to find the right log file for your problem.

    hashtag
    A list of framework logfiles

    This section has a list of log files by framework. If you've arrived here from one of the troubleshooting channels on , the file you're supposed to find is most likely in this list.

    If you aren't looking for a particular log file, please proceed to .

    Cheat sheet: Materials

    Various kinds of materials, and where to find them

    circle-info

    This page contains a brief overview of existing materials. For a more in-depth explanation as well as downloadable example files, check .

    For an overview of Multilayered properties, check .

    For preview images of multilayered materials, check . (This page needs further data!)

    base\animations\ui\photomode\photomode_female_facial.anims
    base\animations\ui\photomode\photomode_male_facial.anims

    4

    Boredom

    facial_bored

    5

    Anger

    facial_pissed

    6

    Satisfaction

    facial_pleased

    7

    Disgust

    facial_disgusted

    8

    Happiness

    facial_happy

    9

    Fear

    facial_scared

    10

    Surprise

    facial_surprised

    11

    Sadness

    facial_sadness

    12

    Whistle

    facial_whistling

    Surprise

    idle__surprise__male

    Aggressive

    idle__aggression__male

    Anger

    idle__anger__male

    Interested

    idle__interested__male

    Disinterested

    idle__disinterested__male

    Disappointed

    idle__disappointed__male

    Disgust

    idle__disgust__male

    Exertion

    idle__exertion__male

    Nervous

    idle__nervous__male

    Fear

    idle__fear__male

    Terrified

    idle__fear_reaction__male

    Pain

    idle__pain__male

    Sleepy

    idle__tiredness__male

    Unconscious

    idle__unconscious__male

    Dead

    idle__dead__male

    v_standard2_archer_hella__basic_01.ent v_standard2_archer_hella__police_01.ent

    Archer Quartz (Nomad version)

    v_standard2_archer_quartz__basic_01.ent v_standard2_archer_quartz_nomad__01.ent

    Chevalier Thrax

    v_standard2_chevalier_thrax__basic_01.ent

    Makigai Maimai

    v_standard2_makigai_maimai_01_basic_01.ent

    Thorton Colby Station wagon

    v_standard2_thorton_colby__basic_01.ent

    Thorton Colby Pickup (Nomad version)

    v_standard25_thorton_colby_pickup__basic_01.ent v_standard25_thorton_colby_pickup_nomad__basic_01.ent

    Thornton Galena (Nomad version)

    v_standard2_thorton_galena_01__basic_01.ent v_standard2_thorton_galena_nomad__01.ent

    Villefort Cortes (police version) (Delamain cab)

    v_standard2_villefort_cortes_01__basic_01.ent v_standard2_villefort_cortes_01__police_01.ent v_standard2_villefort_cortes_02__delamain_01.ent

    Chevalier Emperor

    v_standard3_chevalier_emperor_01__basic_01.ent

    Thornton Mackinaw Pickup (w rear shell) (Nomad version)

    v_standard3_thorton_mackinaw_01__basic_01.ent v_standard3_thorton_mackinaw_larimore_01.ent v_standard3_thorton_mackinaw_nomad_01__basic_01.ent

    Mahir Supron

    v_standard25_mahir_supron_01__basic_01.ent

    Villefort Columbus

    v_standard25_villefort_columbus_01__basic_01.ent

    Kaukaz z71 Aras

    v_kaukaz_z71_aras__basic_01.ent

    Mahir mt28 coach

    v_mahir_mt28_coach_basic_01.ent

    Miltech Basilisk

    v_militech_basilisk_01__basic_01.ent

    Herrera Outlaw

    v_sport1_herrera_outlaw_basic_01.ent

    Quadra Turbo

    v_sport1_quadra_turbo__basic_01.ent

    Rayfield Aerondight

    v_sport1_rayfield_aerondight__basic_01.ent

    Rayfield Caliburn

    v_sport1_rayfield_caliburn__basic_01.ent

    Mizutani Shion (Nomad version)

    v_sport2_mizutani_shion__basic_01.ent v_sport2_mizutani_shion_nomad__basic_01.ent

    Jonnys Porsche 911

    v_sport2_porsche_911turbo__basic_01.ent

    Quadra Type 66 (Nomad version)

    v_sport2_quadra_type66__basic_01.ent v_sport2_quadra_type66_nomad__basic_01.ent

    Villefort Alvarado

    v_sport2_villefort_alvarado__basic_01.ent

    Villefort Alvarado Cabrio

    v_sport2_villefort_alvarado__cabrio_01.ent

    Kuanagi Sportsbike

    v_sportbike1_yaiba_kusanagi_basic_01.ent

    Arch Nemesis Sportsbike

    v_sportbike2_arch_nemesis_basic_01.ent

    Brennan Apollo Sportsbike

    v_sportbike3_brennan_apollo_basic_01.ent

    Kaukaz Bratsk

    v_utility4_kaukaz_bratsk_extended__basic_01.ent v_utility4_kaukaz_bratsk__basic_01.ent v_utility4_kaukaz_bratsk__basic_concrete_truck_01.ent v_utility4_kaukaz_bratsk__basic_container_truck_01.ent v_utility4_kaukaz_bratsk__basic_dump_truck_01.ent v_utility4_kaukaz_bratsk__basic_machine_truck_01.ent v_utility4_kaukaz_bratsk__basic_metalstud_truck_01.ent

    Kaukaz Zeya

    v_utility4_kaukaz_zeya__barrels_01.ent v_utility4_kaukaz_zeya__basic_01.ent v_utility4_kaukaz_zeya__container_01.ent v_utility4_kaukaz_zeya__freight_01.ent v_utility4_kaukaz_zeya__full_01.ent

    Militech Behemoth

    v_utility4_militech_behemoth_basic_01.ent v_utility4_militech_behemoth_basic_flatbed.ent

    Mackinaw Monster truck

    v_utility4_thorton_mackinaw_bmf_01.ent

    Militech Griffin AV

    av_militech_griffin__basic_01.ent

    Militech Manticore AV

    av_militech_manticore_basic_01.ent

    Militech Wyvern AV

    av_militech_wyvern__basic_01.ent

    Train

    av_public_train.ent av_public_train_b.ent

    Rayfield Excalibur AV

    av_rayfield_excalibur__basic_01.ent

    Zetatech Atlus AV

    av_zetatech_atlus_basic_01.ent av_zetatech_atlus_basic_02.ent

    Zetatech Bombus AV

    av_zetatech_bombus__basic.ent

    Zetatech Canopy AV

    av_zetatech_canopy__basic_01.ent

    Zetatech Octant AV

    av_zetatech_octant.ent av_zetatech_octant__basic_01.ent

    Zetatech Surveyor AV

    av_zetatech_surveyor_basic_01.ent

    Zetatech Valgus AV

    av_zetatech_valgus_basic_01.ent

    Logo

    index

    numerical index of corresponding material in target list (as defined by isLocalInstance)

    isLocalInstance

    Selects the material target list. True: local material in localMaterialBuffer.materials or preloadLocalMaterialInstances False: material reference inexternalMaterials or preloadExternalMaterials For more information on this, see the page for local/external materials.

    name

    unique name of material, used to select the material via chunkMaterial

    localMaterialBuffer.materials

    externalMaterials

    preloadLocalMaterialInstances

    preloadExternalMaterials

    here
    component
    corresponding section
    below
    .mi file
    check here
    creating and using an external material instead
    here
    here
    reusing materials
    .mi file
    Example: A mesh with two materials, one of them a local instance, one of them an external .mi file
    You may have to create additional entries in "chunkMaterials": Either duplicate an existing entry from the right-click menu, or select the array and use the yellow (+) in the side panel.
    For a detailed example, see re-using materials
    baseMaterial picks the material (shader), while "values" contains properties to adjust it.
    Windows 10 or abovearrow-up-right
    Windows Updatearrow-up-right
    This here is much clearer:
    1. Have a clean install (ArchiveXL, TweakXL, Red4Ext, version 1.2.3. of This Mod Doesn't Exist)

    2. Create a new character (female body gender, male brain gender, Nomad lifepath)

    3. Add the pink unicorn helmet via CET command Game.AddToInventory("Items.this_is_just_an_example")

    4. Add the Sword of Truth via CET command Game.AddToInventory("Items.this_is_also_just_an_example")

    5. Optional: you can create a save here

    6. Equip the helmet

    7. Equip the sword

    8. Hit the car mechanic

    9. the game crashes

    tab, you can drop a comment
  • If there is neither, you can try and message the author (click on their Nexus profile name)

  • check at least Step 0
    remove all mods
    dependencies
    the next section
    these mods
    create a ziparrow-up-right
    error checker tool
    core frameworks
    isolated
    create a ziparrow-up-right
    redModding Discordarrow-up-right
    corrupts save games
  • How you split your .app files is largely a matter of taste. At CDPR, they usually shove everything into one file.

  • Defines how your item will look if a certain hair type is loaded (e.g., hide the back half of a bandana for long hair). When resolving the appearance name via rootentity.ent, the game will look for &Short, &Long, &Dreads, &Buzz, &Bald

    ignored: you are not in first person camera

    appearance_&Female&TPP

    best match! The game will use this one!

    itemsFactoryAppearanceSuffix.Gender

    This item is gendered When resolving the appearance name via rootentity.ent, the game will look for appearanceName&Female and appearanceName&Male.

    itemsFactoryAppearanceSuffix.Camera

    This item has special rules for first and third person camera When resolving the appearance name via rootentity.ent, the game will look for appearanceName&FPP and appearanceName&TPP.

    itemsFactoryAppearanceSuffix.Partial

    If the current item has hide_T1part part and slot OuterChest is not hidden, will search rootentity.ent for&Full or &Part

    appearance_

    Found first, then ignored because a more specific appearance exists.

    appearance_&Male appearance_&Male&FPP appearance_&Male&TPP

    Ignored: V's body gender isn't male

    appearance_&Female

    ignored: a better match exists

    creating custom props
    via AMM
    Appearance: .app files
    NPC
    prop
    components
    app file
    creating props
    suffixes
    root_entity file
    .app file
    root_entity
    app file
    ArchiveXL item addition guide
    This entity adds four physical mesh components, which will appear when it is spawned. It does not reference an .app file and does not have appearances.

    itemsFactoryAppearanceSuffix.HairType

    appearance_&Female&FPP

    Vehicle Drive Model Data Record

    %USERPROFILE%\Saved Games\CD Projekt Red\Cyberpunk 2077
    C:\Users\<yourusername>\Saved Games\CD Projekt Red\Cyberpunk 2077
    %USERPROFILE%\AppData\Local\REDEngine\ReportQueue
    C:\Users\<yourusername>\AppData\Local\REDEngine\ReportQueue
    appearanceSuffixes: [ 
      itemsFactoryAppearanceSuffix.Gender, 
      itemsFactoryAppearanceSuffix.Camera ]  
    appearanceSuffixes: []
    Vehicle.VehicleDriveModelDataDefault_4w.tweak
    groups:
      Vehicle.VehicleDriveModelDataDefault_4w:
        type: VehicleDriveModelData
        members:
          airResistanceFactor:
            type: Float
            value: 0.349999994 
          antiSwaybarDampingScalor:
            type: Float
            value: 1 
          bankBodyFBTanMultiplier:
            type: Float
            value: 0.119999997 
          bankBodyLRTanMultiplier:
            type: Float
            value: 0.119999997 
          bikeCurvesPath:
            type: raRef:CResource
            value: 0 
          bikeMaxTilt:
            type: Float
            value: 0 
          bikeTiltCustomSpeed:
            type: Float
            value: 0 
          bikeTiltPID:
            type: array:Float
            value: [ ]
          bikeTiltReturnSpeed:
            type: Float
            value: 0 
          bikeTiltSpeed:
            type: Float
            value: 0 
          bodyFriction:
            type: Float
            value: 0.600000024 
          brakingFrictionFactor:
            type: Float
            value: 1.39999998 
          burnOutRotationModifier:
            type: Float
            value: 0 
          center_of_mass_offset:
            type: Vector3
            value:
              x: 0
              y: 0
              z: -0.200000003
          chassis_mass:
            type: Float
            value: 1500 
          differentialOvershootFactor:
            type: Float
            value: 0 
          driveHelpers:
            type: array:TweakDBID
            value: [ "Vehicle.VehicleDriveModelDataDefault_4w_inline0", "Vehicle.VehicleDriveModelDataDefault_4w_inline1", "Vehicle.VehicleDriveModelDataDefault_4w_inline2", "Vehicle.VehicleDriveModelDataDefault_4w_inline3" ]
          forwardWeightTransferFactor:
            type: Float
            value: 0.800000012 
          handbrakeBrakingTorque:
            type: Float
            value: 2000 
          lowVelStoppingDeceleration:
            type: Float
            value: 3 
          maxWheelTurnDeg:
            type: Float
            value: 35 
          momentOfInertia:
            type: Vector3
            value:
              x: 0
              y: 0
              z: 0
          momentOfInertiaScale:
            type: Vector3
            value:
              x: 1
              y: 1
              z: 1
          perfectSteeringFactor:
            type: Float
            value: 1 
          rollingResistanceFactor:
            type: Float
            value: 0.00949999969 
          sideWeightTransferFactor:
            type: Float
            value: 0.5 
          slipAngleCurveScale:
            type: Float
            value: 1 
          slipAngleMinSpeedThreshold:
            type: Float
            value: -1 
          slipRatioCurveScale:
            type: Float
            value: 1 
          slipRatioMinSpeedThreshold:
            type: Float
            value: -1 
          slopeTractionReductionBegin:
            type: Float
            value: 12 
          slopeTractionReductionFactor:
            type: Float
            value: 1.5 
          slopeTractionReductionMax:
            type: Float
            value: 30 
          smoothWheelContactDecreaseTime:
            type: Float
            value: 0.0500000007 
          smoothWheelContactIncreseTime:
            type: Float
            value: 0.0500000007 
          tankAcceleration:
            type: Float
            value: 3 
          tankCTOD:
            type: Float
            value: 0 
          tankCTOI:
            type: Float
            value: 0 
          tankCTOP:
            type: Float
            value: 1 
          tankDeceleration:
            type: Float
            value: 1 
          tankGravityMul:
            type: Float
            value: 1 
          tankMaxSpeed:
            type: Float
            value: 20 
          tankSpringDamping:
            type: Float
            value: 5000 
          tankSpringDistance:
            type: Float
            value: 0.600000024 
          tankSpringRadius:
            type: Float
            value: 0.5 
          tankSpringStiffness:
            type: Float
            value: 50000 
          tankSpringVerticalOffset:
            type: Float
            value: 0.800000012 
          tankSpringsLocalPositions:
            type: array:Vector2
            value: [  ]
          tankTurningSpeed:
            type: Float
            value: 100 
          total_mass:
            type: Float
            value: 1300 
          turnUpdateBaseSpeedThreshold:
            type: Float
            value: 10 
          turnUpdateInputDiffForFastChange:
            type: Float
            value: 1 
          turnUpdateInputDiffForSlowChange:
            type: Float
            value: 0 
          turnUpdateInputDiffProgressionPow:
            type: Float
            value: 0.800000012 
          turnUpdateInputFastChangeSpeed:
            type: Float
            value: 1 
          turnUpdateInputSlowChangeSpeed:
            type: Float
            value: 0.100000001 
          turnUpdateMaxSpeedThreshold:
            type: Float
            value: 30 
          turnUpdateMaxSpeedTurnChangeMul:
            type: Float
            value: 1.5 
          turnUpdateMaxSpeedTurnMul:
            type: Float
            value: 0.230000004 
          turningRollFactor:
            type: Float
            value: 0.300000012 
          turningRollFactorWeakContactMul:
            type: Float
            value: 1 
          turningRollFactorWeakContactThresholdMax:
            type: Float
            value: 0.600000024 
          turningRollFactorWeakContactThresholdMin:
            type: Float
            value: 0.899999976 
          useAlternativeTurnUpdate:
            type: Bool
            value: false 
          waterParams:
            type: TweakDBID
            value: "Vehicle.VehicleWaterDefault" 
          wheelSetup:
            type: TweakDBID
            value: "Vehicle.VehicleWheelDrivingSetup_4_AWD" 
          wheelTurnMaxAddPerSecond:
            type: Float
            value: 65 
          wheelTurnMaxSubPerSecond:
            type: Float
            value: 100 
          wheelsFrictionMap:
            type: TweakDBID
            value: "CarDrivingFrictionMap.Default" 
    Your keybind is stored in bin\x64\plugins\cyber_engine_tweaks\cyber_engine_tweaks.log
    or
  • delete the file bin/x6/plugins/cyber_engine_tweaks.asi

  • move the folder bin/x6/plugins/cyber_engine_tweaks out of plugins (e.g. your Desktop). Do not delete it yet.

  • Download the most recent CET from Nexusarrow-up-right

  • Extract the downloaded archive to your game directory (the bin folder will merge with the one that is already there)

  • Start the game: CET should now ask you to bind a key. If it doesn't:

    1. Update both the game and the mod (double-check if you're sure)

    2. Head to the troubleshooting guide and follow the steps in the red box at the top

  • Optional: Restore your mods and/or settings Now that CET works, find the old directory from step 2. Move the following files/folders:

    1. Mods: the directory mods from the old cyber_engine_tweaks folder

    2. Settings: The .json files directly inside cyber_engine_tweaks

  • Optional: delete the old folder (or leave it, it's your diskspace)

  • That's it! You're good to go!

  • Your install directory

    C:\GOG Games\Cyberpunk 2077\

    Path from the guide

    bin\x64\plugins\cyber_engine_tweaks

    Folder you go to

    C:\GOG Games\Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks

    compatibility modearrow-up-right
    general troubleshooting page
    here
    Discordarrow-up-right
    check your CET install
    clean reinstall of CET
    REDmodding Discordarrow-up-right
    Reset your keybind
    Reinstall CET
    Reinstall CET
    Reinstall CET
    Reinstall CET

    Export a whole characterarrow-up-right or an animated characterarrow-up-right?

    will be imported over

    <yourModDir>\archive\source\base\characters\garment\player_equipment\torso\t2_002_vest__puffy\t2_002_pwa_vest__puffy.mesh

    WolvenKitarrow-up-right

    >= 8.8.0 (8.7.0 works, but has a slightly different UI)

    Blenderarrow-up-right

    >= 3.1 stable

    WKit Blender AddOnarrow-up-right arrow-up-right

    >= 1.1.0

    with Noesis
    Wolvenkit's Import/Export toolarrow-up-right
    Replace meshes
    Simarilius's githubarrow-up-right
    Noesis
    break a mesh
    8.8arrow-up-right
    Import/Export toolarrow-up-right
    raw directory.
    Cyberpunk Blender Pluginarrow-up-right
    here
    Cyberpunk Blender Pluginarrow-up-right
    import via Noesis,
    this scriptarrow-up-right
    Import/Export toolarrow-up-right
    troubleshooting page
    without materials
    corresponding wiki page
    You have to do this for each mesh individually, or you can copy and paste the settings with the buttons
    Export settings: "Tangents" must be checked
    Thanks to Na for the screenshot
    Wait, this isn't what I want!

    A dialogue asks you for a file to overwrite. Make sure that it has your mesh!

    Submesh names

    submesh0

    submesh_00_LOD_1

    Blenderarrow-up-right

    >= 3.1 stable

    Noesisarrow-up-right Noesis Import/Export Pluginarrow-up-right

    >= 4.459 >= Sep 28, 2021

    Armature

    Rotation W: 0

    Rotation W: 1

    Rotation Z: -1

    Rotation Z: 0

    with Wolvenkit
    run into issues
    stick to it
    Noesis Import/Export Pluginarrow-up-right
    this scriptarrow-up-right
    Note the differently named submeshes
    circle-check

    While you can use this information to show/hide parts of the player body via chunkmasks, you might consider using ArchiveXL tags instead.

    Many of the mesh files are pulled in via morphtargets. If you want to create a body mod, you need to edit both.

    hashtag
    Player Base Body

    male body

    base\characters\common\player_base_bodies\player_man_average\t0_000_pma_base__full.mesh

    t0_000_pma_base__full

    female body

    base\characters\common\player_base_bodies\player_female_average\t0_000_pwa_base__full.mesh

    t0_000_pwa_base__full

    female body, big boobs

    base\characters\common\player_base_bodies\player_female_average\t0_000_pwa_base__full_breast_big.mesh

    hashtag
    Seamfix meshes

    These meshes cover up seams at arms and shoulders, where the mesh edges might show gaps.

    male body

    base\characters\common\player_base_bodies\player_man_average\t0_000_pma_base__full_seamfix.mesh

    t0_000_pma_base__full_seamfix

    female body

    base\characters\common\player_base_bodies\player_female_average\t0_000_pwa_base__full_seamfix.mesh

    t0_000_pwa_base__full_seamfix

    hashtag
    Head

    The player base heads (and scars, tattoos, cyberware) are defined in .app files in the folder base\characters\head\player_base_heads\appearances\head

    For a guide on how to actually use those things, check the NPV guide.

    hashtag
    Male body gender

    path
    component name

    eyes

    base\characters\head\player_base_heads\player_man_average\h0_000_pma_c__basehead\he_000_pma_c__basehead.mesh

    he_000_pma__basehead

    teeth

    base\characters\head\player_base_heads\player_man_average\h0_000_pma_c__basehead\ht_000_pma_c__basehead.mesh

    ht_000_pma__basehead

    hashtag
    Female body gender

    path
    component name

    eyes

    base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\he_000_pwa_c__basehead.mesh

    he_000_pwa__basehead

    teeth

    base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\ht_000_pwa_c__basehead.mesh

    ht_000_pwa__basehead

    hashtag
    Arms

    The player base body does not come with arms attached — this makes it easier to switch out the different kinds of cyberarms.

    circle-info

    Arms are using different meshes for the first person perspective. You can usually find them near the regular meshes in a subfolder with the name fpp.

    You can look up the component names and their properties in the .ent files per body gender in these folders:

    path

    Default (female)

    base\characters\common\player_base_bodies\player_female_average\arms_hq

    Default (male)

    base\characters\common\player_base_bodies\player_man_average\arms_hq

    Cheat Sheet: Head
    A new head for V
    • Installing Cyberpunk

    • Installing mods via Vortex

    hashtag
    How to install mods

    triangle-exclamation

    TL;DR:

    The first thing you will be told on Discord is to read this guide.

    When installing a mod, make sure to install all of its dependencies. You will find a list on the Nexus description tab under "Requirements".

    If you do not do this, your mod will not work.

    You need to . Without it, most of your mods will not work.

    You mod Cyberpunk 2077 by adding files to your game directory. There is no need to overwrite base game files, since the game natively supports modding.

    circle-check

    The game directory is the toplevel folder of your game install.

    Unless you changed the default settings, it will be installed to:

    STEAM C:\Program Files (x86)\Steam\steamapps\common\Cyberpunk 2077\

    GOG C:\Program Files (x86)\GOG Galaxy\Games\Cyberpunk 2077\

    You can install mods by hand, by using Vortexarrow-up-right, or by using Mod Organizer 2 with additional steps detailed here.arrow-up-right

    circle-info

    Regardless of your past experiences, the Nexus mod managerarrow-up-right works reliably and well for modding Cyberpunk, as long as you do not install more than ~250 REDmods.

    hashtag
    Dependencies / Requiremends

    Although Cyberpunk natively supports modding, this out-of-the-box support is extremely limited. To allow modders greater freedom, a number of frameworks have been created to allow e.g. adding items, influencing the weather, or add flying cars.

    circle-exclamation

    Since this kind of mod interacts with the game's code on such a fundamental level, they are prone to breaking whenever CDPR changes their API. This is the reason why game updates break mods — we recommend to turn off auto-update and manually upgrading once the frameworks you need have been brought up-to-date.

    triangle-exclamation

    Unless they are marked as optional, you have to install the dependencies, and their dependencies as well.

    If you don't, then your mod will not work.

    hashtag
    Overview of mod folders

    circle-info

    TL;DR: you can ignore this.

    This list is supposed to give you an overview of which files go where. It is not a bucket list of things you have to install.

    Folder path in your game dir
    Description of folder

    /archive/pc/mod

    holds .archive files from non-REDmods

    /bin/x64/plugins

    Cyber Engine Tweaks () ()

    /mods

    Directory for REDmods

    hashtag
    Installing and activating REDmod

    If REDmod is not installed and activated, your mods in /mods will not load.

    Loading a mod as REDmod means that Cyberpunk will precompile it and integrate it into the game's file, optimizing load times. By contrast, vanilla mods (from /archive/pc/mod) will be loaded individually and might add to your load times.

    • For instructions on how to install, see here.

    • For documentation on the Vortex installation toggle, see here.

    • For instructions on how to activate it, see here for GOG and here for Steam and Epic.

    REDmods are installed in Cyberpunk 2077\mods, where every mod has a subfolder with an info.json.

    circle-exclamation

    hashtag
    Installing Mods

    You can install mods via Vortex or manually. There are upsides and downsides to each — however, for beginners, we recommend using Vortex.

    circle-check

    If you had terrible experiences with Vortex for other games, be assured: Cyberpunk integration is working extremely well. Maybe give it another chance?

    hashtag
    Manual install

    "Manual install" is a rather glorified term for "extracting the downloaded archive into your game directory". However, you have to make sure that the right files end up in the right folders.

    You can inspect the file structure by simply opening the downloaded file, or by using this feature on Nexus (unless a mod author has disabled it):

    The file structure is different for REDmods and non-REDmods. Mod authors usually tell you which file is which, though.

    hashtag
    REDmod:

    circle-info

    If the downloaded archive contains an info.json and a folder named archives, you're dealing with a REDmod.

    Extract the entire folder into /mods/. You should have /mods/ModName afterwards.

    hashtag
    Non-REDmod

    In your archive, find the folders corresponding to this overview and extract them directly to your game directory. Their content will be added to the already existing files, overwriting anything that needs to be replaced.

    hashtag
    Anything else

    Some mods are just a loose collection of files and it's up to you and the mod's install instructions to put them in the right place.

    As a rule of thumb: usually, but not always…

    • .archive files go into /archive/pc/mod/

    • .xl files go into /archive/pc/mod/

    • .reds files go into /r6/scripts/

    • .lua files go into a subfolder of /bin/x64/plugins/cyber_engine_tweaks/

    hashtag
    Troubleshooting

    If you have problems with Vortex, check the corresponding section of the guide.

    For everything else, this wiki has a dedicated troubleshooting page that has solutions to many common problems. If that doesn't cut it, you're welcome to find us on Discordarrow-up-right in the #mod-troubleshooting channel (but your first answer will be a link to that guide).

    🆘Troubleshootingchevron-right
    here
    .
    circle-check

    When adding an entry, please include the following information:

    • Relative path

    • Item spawn code(s)

    • Number of variants

    • Mapping of variant names to item spawn codes

    hashtag
    T1 (inner torso) — Shirts

    hashtag
    Reinforced Bra (4 variants)

    File Path: base\characters\garment\citizen_prostitute\torso\t1_047_tank__pushup\

    image
    # available variants

    4

    Undershirt_02_basic_01 Undershirt_02_basic_02 Undershirt_02_rich_01 Undershirt_02_rich_02

    name of variant
    corresponding meshMeshAppearance

    Undershirt_02_basic_01

    panther

    Undershirt_02_basic_02

    violet

    Undershirt_02_rich_01

    black_pink

    hashtag
    Duo-Layer-Bustier (6 variants)

    File Path: base\characters\garment\citizen_prostitute\torso\t1_097_tank__corset_doll\

    image

    Undershirt_03_basic_01 Undershirt_03_basic_02 Undershirt_03_basic_03 Undershirt_03_basic_04 Undershirt_03_rich_01 Undershirt_03_rich_02

    name of variant
    corresponding meshMeshAppearance

    Undershirt_03_basic_01

    blue

    Undershirt_03_basic_02

    black_red

    Undershirt_03_basic_03

    yellow_pink

    hashtag
    T2 (outer torso) — Jackets

    hashtag
    Crystaljock Bomber (6 variants)

    File Path: base\characters\garment\player_equipment\torso\t2_084_jacket__short_sleeves

    image

    Jacket_01_basic_01 Jacket_01_basic_02 Jacket_01_old_01 Jacket_01_old_02 Jacket_01_rich_01 Jacket_01_rich_02

    name of variant
    corresponding meshMeshAppearance

    Jacket_01_basic_01

    purple_green

    Jacket_01_basic_02

    black

    Jacket_01_old_02

    semurai_blue_panther

    hashtag
    Reinforced Puffer vest (4 variants)

    File Path: base\characters\garment\player_equipment\torso\t2_002_vest__puffy

    image

    Vest_17_basic_01 Vest_17_basic_02 Vest_17_rich_01 Vest_17_rich_02

    name of variant
    corresponding meshMeshAppearance

    Vest_17_basic_01

    bwstripes

    Vest_17_basic_02

    bbstripes

    Vest_17_rich_01

    pwstripes

    hashtag
    Legs — Pants, skirts etc.

    hashtag
    Windbreaker Pants (9 variants)

    File Path: base\characters\garment\player_equipment\legs\l1_070_pants__loose

    image

    Pants_12_basic_01 Pants_12_basic_02 Pants_12_basic_03 Pants_12_old_01 Pants_12_old_02 Pants_12_old_03 Pants_12_rich_01 Pants_12_rich_02 Pants_12_rich_03

    name of variant
    corresponding meshMeshAppearance

    Pants_12_basic_01

    ???

    Pants_12_basic_02

    spandex_pink_stripes

    Pants_12_basic_03

    spandex_green_pattern


    hashtag
    Feet — Shoes

    hashtag
    H1 (Head)

    hashtag
    H2 (Head) — Face

    recolouring
    replacing
    here
    this guide
    circle-info

    The paths below are given relative to your Cyberpunk 2077 install directory.

    Name of framework
    Path to log file

    redscript

    r6\logs\redscript_rCURRENT.log

    red4ext

    red4ext\logs\red4ext.log

    ArchiveXL

    red4ext\plugins\ArchiveXL\ArchiveXL.log

    hashtag
    Finding the log files

    If you don't want to download and run script files from the internet, you can go here and complete the steps by hand. Otherwise:

    1. Download this scriptarrow-up-right (right-click -> save as) You can (but probably don't want to) look at the code on Presto's github repositoryarrow-up-right.

    2. Now, do either of the following things:

      1. Move it to your Cyberpunk game folder and double-click it

      2. Drag-and drop your Cyberpunk game folder on the file that you downloaded

    3. The script will have created a folder _LOGS in your Cyberpunk directory, where you will find a file with everything it has found..

    hashtag
    Alternatively: By hand

    Browse to your Cyberpunk game folder and use the windows search to search for *.log.

    circle-exclamation

    Make sure to include the asterisk and the dot: *.log, as you will otherwise see files that you don't care about.

    circle-info

    Make sure to run this in the game's root folder, unless you have already narrowed down the problem (e.g. if it's a CET mod, you can run this search in bin\x64\plugins\cyber_engine_tweaks).

    The list of results should look like this:

    This will give you a long list of log files
    circle-info

    You can sort this list by file size, name, or date modified by clicking on the corresponding header.

    With a few exceptions, log files have the name of their mod. If they don't, check what folder they're in.

    hashtag
    There's too many of them!

    If you're drowning in log files and have no idea how to filter them, you can delete or remove them. Don't worry, they will be re-created on next launch.

    triangle-exclamation

    Don't delete anything that isn't Type: Text Document ending in .log! Doing that will break other mods or even your entire install.

    Now, restart your game and do whatever you did to make the error appear. Then, search the Cyberpunk directory for *.log again.

    hashtag
    Finding the relevant log file

    circle-info

    You can ignore files that

    • have a date modified older than your last game launch: they won't have any information about your problem

    • have a size of 0: they're empty, the mod in question never initialized.

    1. Sort the files by size (if you just deleted them) or by date modified (if you didn't)

    2. Open each of the files in a text editor (such as Notepad, it's installed with Windows). The relevant information will be at the very bottom.

    3. You are looking for lines with error or warning. If you want to see what they look like, scroll down to the .

      1. If the log file doesn't have any, ignore it. Close it and proceed to the next file.

      2. You found errors: Congratulations, you've found at least silver. Check for how to proceed.

      3. You found warnings: These might indicate that you're on to something, but don't let them panic you. If the mod is doing what it should, just ignore them. You can already, or keep looking for errors.

    hashtag
    Making sense of them

    hashtag
    Error

    circle-check

    There's definitely something going on here, you're on the right track!

    Errors look like this:

    An error in the log files almost always means that something exploded in a way that nobody has planned for.

    • If the file is directly in bin\x64\plugins\cyber_engine_tweaks, that means CET is broken and you need to troubleshoot it.

    • If the file is in a subfolder of bin\x64\plugins\cyber_engine_tweaks, you have found a broken mod, but CET mods won't break the game. In this case, treat it like a warning.

    • If the log is anywhere else, you have found .

    hashtag
    Warning

    circle-info

    If the mod with the warnings is working, you can ignore them. If the game is crashing or if you can't find any errors, you can try the bisect method or troubleshoot it and hope that you're lucky.

    If your warning isn't listed below, use your own best judgement.

    hashtag
    Field with this name is already defined

    This might indicate that a Redscript mod is loaded twice. Search the Cyberpunk root folder the mod name and make sure that you have no duplicates. If you're uncertain about this, try the bisect method on your r6 folder.

    Discordarrow-up-right
    the next section

    For theory about material templates, check here.

    If you don't know how to edit material properties, check here.

    hashtag
    Simple / Basic materials

    hashtag
    PBR material

    You can find a material with Color (RGB), Roughness and Metalness under

    hashtag
    White MultilayerMask

    You can find a mlmask with three white layers under the following path:

    circle-info

    A white mlMask will apply the selected material to the whole surface of the mesh.

    hashtag
    Textured Materials

    For further details, see here.

    engine\materials\metal_base.remt

    Cyberpunk's default textured (or emissive) material. Super versatile.

    base\materials\mesh_decal.mt

    For decals etc., supports alpha channel. Can optionally be made half-transparent (for tattoos etc.)

    base\fx_shaders\holo_mask.mt

    Special effect material that transforms a mesh into an hologram. Can use a custom texture for decal and is color controllable.

    base\surfaces\atlases\wood\wood_bare\wood_bare_01_pine.mi

    Basic wood texture, no masks

    hashtag
    Cyberspace Material

    Works exactly like multilayered, but uses base\characters\common\cyberspace\silverhand_overlay_cyberspace_mml.mi instead.

    hashtag
    Metal Materials

    base\environment\decoration\containers\cases\coffin\textures\m_z_gold.mi

    a shiny gold (metal_base.remt)

    hashtag
    Emissive Materials

    See here how it works and how to configure it.

    material
    description

    base\environment\decoration\furniture\kitchen\neokitsch_fridge\textures\mi_neokitsch_fridge_z_emissive.mi

    White emissive bright glow (from a fridge)

    base\materials\screen\screen_fluff_blue.mi

    blue/pinkish oscillating glow (from the collar of the jacket V wears in the trailer)

    base\fx_shaders\multilayer_blackbody_inject.mt

    A glowing shader with mlmask and -setup

    hashtag
    Glass

    For more details on glass materials and instructions on how to configure them, see here.

    Basic glass, with warping properties, simple tint as color, simple opacity

    base\materials\glass_onesided.mt

    Non-warping glass, destructible, tintable via colors

    base\vehicles\common\materials\glass_windshield_tinted_black.mi

    Device screen glass

    base\fx\shaders\parallaxscreen.mt

    hashtag
    Gradient recolor

    base\environment\decoration\decals\mesh_decal_lines\textures\lines_plain_black.mi

    hashtag
    Coloured Plastic

    Use engine\materials\metal_base.remt, the example below has been copied from base\environment\architecture\watson\japan_town\building\hotel\motel_notell\room\_plastic_black.mi

    BaseColor

    base\materials\placeholder\white.xbm

    Normal

    optional: path to your normal map

    Roughness

    optional: path to your roughness map

    RoughnessBias

    0.200000003

    hashtag
    Liquid

    Use base\materials\fillable_fluid_vertex.mt or see here for details.

    this page
    here
    here

    Base Types Map

    Referenced from base\appearances_mappings.json, base\vehicles\base_types_map.csv maps vehicle names to their respective .ent files. The names are defined in each vehicle's .app file as baseEntityType.

    Name
    .ent File

    Arch_Nemesis

    NPCs and their files

    Heroes, villians, as long as their interesting (and we've located them) their here

    Most of them are pretty easy to guess/find but theres the odd curveball.

    Character
    Entity File
    Appearance File (appearanceName)

    MLSETUP Builder

    The tool of your choice for editing multilayered materials

    hashtag
    Introduction: What is MLSB?

    MLSetupBuilder (commonly referred to as "MLSB") is a Cyberpunk 2077 modding tool to comfortably edit MLSetup files, developed and maintained by Neurolinked.

    There is a dedicated channel on the and a thread on the , where you can find a chat history full of undocumented features as well as previews from the most recent development versions.

    bin\x64\plugins\cyber_engine_tweaks\cyber_engine_tweaks.log
    bin\x64\plugins
    - archive
      - pc
        - mod          << .archive files from non-REDmods go here
    - bin
      - x64
        - plugins      << Cyber Engine Tweaks goes here
    - mods             << REDmods go here
    - r6               << redscript folder
    - tools
    [2023-04-15 12:04:18.956] [error] |Something| Some Explanation
    [2023-04-14 20:28:18 UTC+01:00] [1234] [ErrorSource]  DoSomething(): Error ! Some Explanation: Some Details
    [WARN - Thu, 13 Apr 2023 21:54:13 +0200] At Path\to\Cyberpunk 2077\r6\scripts\something.reds:1234:1:
    @addField(inkScrollArea)
    ^^^
    field with this name is already defined in the class, this will have no effect
    engine\materials\pbr_simple.mt
    base\characters\cyberware\player\a0_005__strongarms\entities\meshes\textures\white.mlmask

    base\fx\shaders\neon_tubes.mt

    A glowing shader with color parameter

    base\fx\shaders\signages.mt

    The standard neon for advertising fonts in Night City. Comes in many colours, can be customized via textures and gradients. Check "city_deco_font" for examples.

    base\fx\shaders\hologram_two_sided.mt

    half-transparent holo material, allows three colours to tint it

    BaseColorScale

    Colour as x/y/z values (color picker blend file herearrow-up-right)

    base\vehicles\sportbike\v_sportbike2_arch_nemesis_basic_01.ent

    Archer_Hella

    base\vehicles\standard\v_standard2_archer_hella__basic_01.ent

    Archer_Quartz

    base\vehicles\standard\v_standard2_archer_quartz__basic_01.ent

    Archer_Quartz_Nomad

    base\vehicles\standard\v_standard2_archer_quartz_nomad__01.ent

    Brennan_Apollo

    base\vehicles\sportbike\v_sportbike3_brennan_apollo_basic_01.ent

    Chevalier_Emperor

    base\vehicles\standard\v_standard3_chevalier_emperor_01__basic_01.ent

    Chevalier_Thrax

    base\vehicles\standard\v_standard2_chevalier_thrax__basic_01.ent

    Chevalier_Thrax_Dex

    base\vehicles\standard\v_standard2_chevalier_thrax__dex.ent

    Herrera_Outlaw

    base\vehicles\sport\v_sport1_herrera_outlaw_basic_01.ent

    Kaukaz_Bratsk

    base\vehicles\utility\v_utility4_kaukaz_bratsk__basic_01.ent

    Kaukaz_Bratsk_Extended

    base\vehicles\utility\v_utility4_kaukaz_bratsk_extended__basic_01.ent

    Kaukaz_Z71_Aras

    base\vehicles\special\v_kaukaz_z71_aras__basic_01.ent

    Kaukaz_Zeya

    base\vehicles\utility\v_utility4_kaukaz_zeya__basic_01.ent

    Mahir_Supron

    base\vehicles\standard\v_standard25_mahir_supron_01__basic_01.ent

    Mahir_MT28_Coach

    base\vehicles\special\v_mahir_mt28_coach_basic_01.ent

    Makigai_MaiMai

    base\vehicles\standard\v_standard2_makigai_maimai_01_basic_01.ent

    Militech_Basilisk

    base\vehicles\special\v_militech_basilisk_01__basic_01.ent

    Militech_Behemoth

    base\vehicles\utility\v_utility4_militech_behemoth_basic_01.ent

    Militech_Griffin

    base\vehicles\special\av_militech_griffin__basic_01.ent

    Militech_Manticore

    base\vehicles\special\av_militech_manticore_basic_01.ent

    Militech_Wyvern

    base\vehicles\special\av_militech_wyvern__basic_01.ent

    Mizutani_Shion

    base\vehicles\sport\v_sport2_mizutani_shion__basic_01.ent

    Mizutani_Shion_Nomad

    base\vehicles\sport\v_sport2_mizutani_shion_nomad__basic_01.ent

    Porsche_911turbo

    base\vehicles\sport\v_sport2_porsche_911turbo__basic_01.ent

    Quadra_Type66

    base\vehicles\sport\v_sport2_quadra_type66__basic_01.ent

    Quadra_Type66_Nomad

    base\vehicles\sport\v_sport2_quadra_type66_nomad__basic_01.ent

    Quadra_Turbo

    base\vehicles\sport\v_sport1_quadra_turbo__basic_01.ent

    Rayfield_Aerondight

    base\vehicles\sport\v_sport1_rayfield_aerondight__basic_01.ent

    Rayfield_Calibrun

    base\vehicles\sport\v_sport1_rayfield_caliburn__basic_01.ent

    Rayfield_Excalibur

    base\vehicles\special\av_rayfield_excalibur__basic_01.ent

    Thorton_Colby

    base\vehicles\standard\v_standard2_thorton_colby__basic_01.ent

    Thorton_Colby_Pickup

    base\vehicles\standard\v_standard25_thorton_colby_pickup__basic_01.ent

    Thorton_Colby_Pickup_Nomad

    base\vehicles\standard\v_standard25_thorton_colby_pickup_nomad__basic_01.ent

    Thorton_Galena

    base\vehicles\standard\v_standard2_thorton_galena_01__basic_01.ent

    Thorton_Galena_Nomad

    base\vehicles\standard\v_standard2_thorton_galena_nomad__01.ent

    Thorton_Mackinaw_Larimore

    base\vehicles\standard\v_standard3_thorton_mackinaw_larimore_01.ent

    Thorton_Mackinaw

    base\vehicles\standard\v_standard3_thorton_mackinaw_01__basic_01.ent

    Thorton_Mackinaw_Nomad

    base\vehicles\standard\v_standard3_thorton_mackinaw_nomad_01__basic_01.ent

    Villefort_Alvarado

    base\vehicles\sport\v_sport2_villefort_alvarado__basic_01.ent

    Villefort_Columbus

    base\vehicles\standard\v_standard25_villefort_columbus_01__basic_01.ent

    Villefort_Cortes

    base\vehicles\standard\v_standard2_villefort_cortes_01__basic_01.ent

    Yaiba_Kusanagi

    base\vehicles\sportbike\v_sportbike1_yaiba_kusanagi_basic_01.ent

    Zetatech_Atlus

    base\vehicles\special\av_zetatech_atlus_basic_01.ent

    Zetatech_Bombus

    base\vehicles\special\av_zetatech_bombus__basic.ent

    Zetatech_Canopy

    base\vehicles\special\av_zetatech_canopy__basic_01.ent

    Zetatech_Octant

    base\vehicles\special\av_zetatech_octant.ent

    Zetatech_Surveyor

    base\vehicles\special\av_zetatech_surveyor_basic_01.ent

    Zetatech_Valgus

    base\vehicles\special\av_zetatech_valgus_basic_01.ent

    Decoration

    base\vehicles\common\templates\vehicle_decoration_base.ent

    Disposal_Alvarado

    base\vehicles\decoration\entities\v_disposal_alvarado_base.ent

    Disposal_Galena

    base\vehicles\decoration\entities\v_disposal_galena_base.ent

    /r6

    redscriptarrow-up-right folder

    /red4ext

    Red4extarrow-up-right, ArchiveXL, TweakXL

    enable REDmod
    githubarrow-up-right
    Nexusarrow-up-right

    TweakXL

    red4ext\plugins\TweakXL\TweakXL.log

    Cyber Engine Tweaks

    bin\x64\plugins\cyber_engine_tweaks\cyber_engine_tweaks.log

    next section
    here
    start troubleshooting
    something to troubleshoot

    silverhand.app

    Judy

    judy.ent

    judy.app

    Panam

    panam.ent

    panam.app

    Evelyn

    evelyn.ent

    evelyn.app

    Misty

    misty.ent

    misty.app

    Meredith

    stout.ent

    meredith_stout.app

    Dex

    dex.ent

    dex.app

    Jackie

    jackie_welles.ent

    jackie_welles.app

    Smasher

    adam_smasher.ent

    boss_adam_smasher_mm.app

    River

    river_ward.ent

    river_ward.app

    Kerry

    kerry_eurodyne.ent

    kerry_eurodyne.app

    Cheri Nolwin

    q105_yakuza_manager.ent

    service_sexworker_wa.app (_q105__yakuza_receptionist)

    T-Bug

    t_bug.ent

    t_bug.app

    8ug8ear

    8ug8ear.ent

    8ug8ear.app

    Alt Cunningham

    alt.ent

    alt.app

    Claire

    claire.ent

    clair.app

    Goro Takemura

    goro_takemura.ent

    goro_takemura.app

    Rita Wheeler

    lizzies_bouncer.ent

    gang_mox_wa.app (_beyond_bouncer_01)

    Placide

    placide.ent

    placide.app

    Saul

    saul.ent

    saul.app

    Mitch

    mitch.ent

    mitch.app

    Wakako Okada

    wakako_okada.ent

    wakako_okada.app

    Rogue

    rogue.ent

    rogue.app

    US Cracks

    sq017_red_menace.ent

    sq017_purple_force.ent

    sq017_blue_moon.ent

    us_cracks_band.app

    Lizzy Wizzy

    lizzy_wizzy.ent

    celebrity_chrome.app

    Yorinobo

    yorinobu_arasaka.ent

    yorinobu_arasaka.app

    Hanako

    hanako.ent

    hanako.app

    Saburo

    saburo_arasaka.ent

    saburo_arasaka.app

    Mr Hands

    mr_hands.ent

    service__fixer_ma.app

    Vik

    ripper_doc.ent

    victor_vektor.app

    Dakota Smith

    dakota_smith.ent

    dakota_smith.app

    Dino

    dino.ent

    dino.app

    Muamar Reyes

    capitan_reyes.ent

    capitan_reyes.app

    Regina Jones

    reggie.ent

    service__fixer_wa.app

    Padre

    padre.ent

    sebastian_perez.app

    Ripperdocs

    service__ripperdoc_ma.ent service__ripperdoc_mb.ent service__ripperdoc_wa.ent

    service__ripperdoc_ma.app service__ripperdoc_mb.app service__ripperdoc_wa.app

    Trauma Team

    corpo__traumateam_ma.ent

    corpo__traumateam_ma.app

    Maxtac

    corpo__max_tac_ma.ent max_tac_mb.app max_tac_wa.app

    max_tac.app max_tac_mb.app max_tac_wa.app

    Rachel Casich

    sq023_rachel.ent

    service__specialist_wa.app ( _sq023__bd_producer )

    Mama Welles

    mama_welles.ent

    gang__valentinos_wa.app ( _sq018__mama_welles )

    Jonny Silverhand

    silverhand.ent

    applied by morphtarget

    female body, small boobs

    base\characters\common\player_base_bodies\player_female_average\t0_000_pwa_base__full_breast_small.mesh

    applied by morphtarget

    female body, flat feet

    base\characters\common\player_base_bodies\player_female_average\l0_000_pwa_base__cs_flat.mesh

    l0_000_pwa_base__cs_flat

    eyebrows

    base\characters\head\player_base_heads\player_man_average\h0_000_pma_c__basehead\heb_000_pma_c__basehead.mesh

    heb_000_pma__basehead_morph

    pimples

    base\characters\head\player_base_heads\player_man_average\h0_000_pma_c__basehead\hx_000_pma_c__basehead_pimples_01.mesh

    hx_000_pma__morphs_pimples_01

    freckles

    base\characters\head\player_base_heads\player_man_average\h0_000_pma_c__basehead\hx_000_pma_c__basehead_makeup_freckles_01.mesh

    hx_000_pma__morphs_makeup_freckles_01

    eyebrows

    base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\heb_000_pwa_c__basehead.mesh

    heb_000_pwa__basehead_morph

    pimples

    base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\hx_000_pwa_c__basehead_pimples_01.mesh

    hx_000_pwa__morphs_pimples_01

    freckles

    base\characters\head\player_base_heads\player_female_average\h0_000_pwa_c__basehead\hx_000_pwa_c__basehead_makeup_freckles_01.mesh

    hx_000_pwa__morphs_makeup_freckles_01

    Mantis Blades (female)

    base\characters\cyberware\player\a0_003__mantisblade\entities\a0_003_wa__mantisblades.ent

    Mantis Blades (male)

    base\characters\cyberware\player\a0_003__mantisblade\entities\a0_003_ma__mantisblades.ent

    Gorilla Arms (female)

    base\characters\cyberware\player\a0_005__strongarms\entities\a0_005_wa__strongarms.ent

    Gorilla Arms (male)

    base\characters\cyberware\player\a0_005__strongarms\entities\a0_005_ma__strongarms.ent

    Rocket Launcher

    base\characters\cyberware\player\a0_006__launcher

    Monowire (female)

    base\characters\cyberware\player\a0_002__monowire_whip\entities\a0_002_wa__monowire_whip.ent

    Monowire (male)

    base\characters\cyberware\player\a0_002__monowire_whip\entities\a0_002_ma__monowire_whip.ent

    a0_003_wa__mantisblade_upperarm_left
    a0_003_wa__mantisblade_upperarm_right
    a0_003_ma__mantisblade_upperarm_left
    a0_003_ma__mantisblade_upperarm_right
    a0_005_wa__strongarms_holstered_r
    a0_005_wa__strongarms_holstered_l
    a0_005_wa__strongarms_l
    a0_005_wa__strongarms_r
    a0_005_wa__strongarms_photo_mode_r
    a0_005_wa__strongarms_photo_mode_l
    a0_005_ma__strongarms_holstered_r
    a0_005_ma__strongarms_holstered_l
    a0_005_ma__strongarms_l
    a0_005_ma__strongarms_r
    a0_005_ma__strongarms_photo_mode_r
    a0_005_ma__strongarms_photo_mode_l
    a0_002_wa__monowire_whip_l_cableless
    a0_002_wa__monowire_whip_r_cableless
    a0_002_ma__monowire_whip_l_cableless
    a0_002_ma__monowire_whip_r_cableless
    a0_001_pwa_base_hq__full  
    a0_001_pwa_base_hq__full 
    left_arm    
    right_arm  
    a0_000_pwa_base__fists                                                         
    a0_001_pma_base_hq__full  
    a0_001_pma_base_hq__full 
    left_arm    
    right_arm  
    a0_000_pma_base__fists  
    hashtag
    Installation

    For integration with Wolvenkit, install MLSB as a plugin:

    1. Click on "Home" in Wolvenkit's title bar

    2. Select "Plugins" in the left sidebar

    3. If MLSB is installed, you'll see an "Update" button, otherwise, it will say "Install". Do that.

    We will now launch MLSB and do the initial setup.

    1. In Wolvenkit's Plugin view, click "Open", this will open a Windows Explorer with the install folder (Cyberpunk 2077\tools\neurolinked\mlsetupbuilder)

    2. Navigate to the folder with the higest version (at the time of this guide, that is MlsetupBuilder-1.6.7)

    3. Start MlsetupBuilder.exe

    4. Optional: You can pin that file to your start menu or create a shortcut if you want to launch MLSB directly.

    hashtag
    Usage

    circle-info

    To make the most of MLSB's features, you will want to configure it first. However, you can start using the tool right away.

    Here's how (or scroll down for the screenshot):

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

    2. Select "Convert to JSON"

    3. This will generate an mlsetup.json file in your project's raw folder. This folder will only be visible in the "source" or "raw" tab of your project explorer

    4. Right-click on the newly created mlsetup.json file

    5. Select "Open in MLSetupBuilder"

    hashtag
    Using MLSB

    As of Version 1.6.7, this is what you will see now:

    Start by importing the file from the preview. That will populate the Layer Config box with the MLSetup that you just loaded.

    The preview was hiding an empty 3d viewport. To use that, you will need to configure MLSB first, but you can already click through the individual layers and assign material properties (such as roughness, normal strength, base material and colour) from the "Material Properties" panel.

    circle-info

    Don't forget to hit "Apply" after you have changed a material.

    Once you're done:

    • select File -> Export

    • overwrite the original mlsetup.json

    • switch back to Wolvenkit

    • in the "raw" folder, right-click on your file

    • select "Import/Convert from JSON"

    Congratulations — you now have an .mlsetup! If you pack your mod and launch the game, you should now see your changes.

    hashtag
    About That 3d Viewport

    This is where you can load models from the game for a direct preview which layer will affect which parts: simply click on the "Library" button.

    hashtag
    MLSB Library

    Here, you can either browse to your model directly, or use text search:

    After selecting a model, you can close the library browser again. Now selecting a layer will show you directly which parts of the mesh it corresponds to.

    That's it! Happy recoloring!

    hashtag
    Configuration

    hashtag
    Connecting to Wolvenkit

    We're assuming that you have already configured Wolvenkit. If you haven't, please do so nowarrow-up-right.

    1. In Wolvenkit, extract a partial depotarrow-up-right (Generate Materials). Note that this window shows you the Depot Path for Step 5.

    2. While it is doing that (it may take a few minutes), download WolvenKit Console arrow-up-rightand extract it to a folder of your choice.

    3. Now, switch to MLSetupBuilder.

    4. Select "File -> Preferences"

    5. Apply the following settings:

    Game archives folder

    C:\Your\Path\To\Cyberpunk 2077\archive\pc\content

    uncook folder

    You can find this folder in your WolvenKit's settings as "Depot Path" (you've seen it in the window from Step 1)

    Wolvenkit Depot Path

    You can find this folder in your WolvenKit's settings as "Depot Path" (you've seen it in the window from Step 1)

    Wolvenkit-CLI.exe

    The executable of Wolvenkit Console from Step 2

    1. Press Ctrl+R to reload MLSB and make sure that the settings are applied.

    hashtag
    Building the depot

    Again, this step is optional, you can use MLSB straight away.

    1. Open the menu "Build" and select "Repository" to uncook the archives:

    1. Select the following settings (if you want to uncook everything, this step can take several hours, so we'll only do the essentials for now)

    1. Click "Uncook".

    2. Wait. Do not interact with the program in any way until the process has finished - especially interacting with the console might just freeze up the entire windows cmd process. This is not MLSB's fault, but due to a Windows standard implementation.

    triangle-exclamation

    This process can take some time — if you have selected everything, it can be several hours on slow machines. (You should've listened during step 1, choomba ;))

    1. When the process is complete, close the Depot Generator window.

    2. Optional: if you can't see any changes, press Ctrl+R to relaod MLSB.

    hashtag
    Building the Microblend Depot

    1. Repeat Step 1 from MLSETUP Builder, but select Microblends this time

    2. In the bottom left corner, hit "Start"

    3. Wait.

    4. When the process is complete, close the Depot Generator window.

    5. Optional: if you can't see any changes, press Ctrl+R to relaod MLSB.

    That's it, you're done now and can use the 3d viewport!

    hashtag
    Troubleshooting

    hashtag
    Help, my Layer Config List says object Object

    You need to install the most recent versionarrow-up-right. If that doesn't make the error go away and your most recent version is something with 1.6.7, update the interface.js — download it here arrow-up-rightfrom Neurolinked's github repository, then replace the file with the same name in MLSB's install directory, subfolder resources\app\js.

    If you have installed it as a Wolvenkit plugin, that directory will be Cyberpunk 2077\tools\neurolinked\mlsetupbuilder.

    hashtag
    There's an exception when generating my depot!

    Does the progress bar still move? If yes, then you're good - ignore this.

    If not, you haven't left your fingers off MLSB and need to start over. Click "Uncook", then go afk until it's done.

    If that doesn't help either, it's worth trying Wolvenkit Console's latest Nightlyarrow-up-right.

    hashtag
    Video Guides

    Redmodding Discordarrow-up-right
    Cyberpunk 2077 Modding Discord Serverarrow-up-right

    Undershirt_02_rich_02

    gold

    Undershirt_03_basic_04

    pink_panther

    Undershirt_03_rich_01

    white_2

    Undershirt_03_rich_02

    black_gold

    Jacket_01_old_01

    green

    Jacket_01_rich_01

    neon_yellow

    Jacket_01_rich_02

    silver

    Vest_17_rich_02

    gbstripes

    Pants_12_old_01

    corduroy_brown_paint

    Pants_12_old_02

    ???

    Pants_12_old_03

    spandex_red_skull

    Pants_12_rich_01

    spandex_orange_stripes

    Pants_12_rich_02

    cotton_purple_gradient

    Pants_12_rich_03

    spandex_gold_green

    Cyber Engine Tweaks
    Logo

    Vehicle Record

    This is the main vehicle record in TweakDB, referenced from VehicleObject in the game, that references all the other vehicle-related records. Below is the .tweak vehicle template (that's also in the TweakDB) that you can customize for creating your own vehicle. The name Vehicle.vehicle_template near the top will need to be customized to your vehicle name.

    is an important field here, because this is the file that ties our record to the resource files needed for rendering.

    Multilayered

    The substance style super shader

    hashtag
    About

    A significant portion of assets for Cyberpunk 2077 leverage the complex multilayered.mt supershader. The supershader has several different component files which are used to create masks to blend procedural textures without baking them. You can read more about this technique in by CDPR Technical Art Director Krzysztof Krzyścin.

    circle-info

    Logo
    Logo
    Logo
    Logo
    Logo
    entityTemplatePath
    Vehicle.vehicle_template.tweak
    groups:
      Vehicle.vehicle_template:
        type: Vehicle
        members:
          affiliation:
              type: TweakDBID
              value: "Factions.Unaffiliated" 
          appearanceName:
              type: CName
              value: "None" 
          archetypeName:
              type: CName
              value: "vehicle" 
          attachmentSlots:
              type: array:TweakDBID
              value: [ "AttachmentSlots.Engine1", "AttachmentSlots.Engine2", "AttachmentSlots.Engine3", "AttachmentSlots.Engine4" ]
          audioResourceName:
              type: CName
              value: "None" 
          brakelightColor:
              type: array:Int32
              value: [ ]
          cameraManagerParams:
              type: TweakDBID
              value: "Camera.VehicleCameraManager_Default" 
          crackLockDifficulty:
              type: String
              value: "HARD" 
          crowdMemberSettings:
              type: TweakDBID
              value: "Crowds.DefaultCarPackage" 
          curvesPath:
              type: raRef:CResource
              value: "base\\gameplay\\curves\\vehicle\\vehicle_ui.curveset"
          destroyedAppearance:
              type: CName
              value: "None" 
          destruction:
              type: TweakDBID
              value: "Vehicle.VehicleDestructionParamsDefault_4w" 
          displayName:
              type: gamedataLocKeyWrapper
              value: 0 
          driving:
              type: TweakDBID
              value: "Driving.Default_4w" 
          effectors:
              type: array:TweakDBID
              value: [ ]
          enableDestruction:
              type: Bool
              value: false 
          entityTemplatePath:
              type: raRef:CResource
              value: "base\\vehicles\\common\\gameplay\\vehicle_template.ent" 
          fxCollision:
              type: TweakDBID
              value: "Vehicle.FxCollision_Default" 
          fxWheelsDecals:
              type: TweakDBID
              value: "Vehicle.FxWheelsDecals_Default" 
          fxWheelsParticles:
              type: TweakDBID
              value: "Vehicle.FxWheelsParticles_Default" 
          headlightColor:
              type: array:Int32
              value: [ ]
          hijackDifficulty:
              type: String
              value: "HARD" 
          icon:
              type: TweakDBID
              value: "UIIcon.ItemIcon" 
          interiorColor:
              type: array:Int32
              value: [ ]
          interiorDamageColor:
              type: array:Int32
              value: [ ]
          leftBackCamber:
              type: Float
              value: 0 
          leftBackCamberOffset:
              type: Vector3
              value:
                x: 0
                y: 0
                z: 0 
          leftBlinkerlightColor:
              type: array:Int32
              value: [ ]
          leftFrontCamber:
              type: Float
              value: 0 
          leftFrontCamberOffset:
              type: Vector3
              value: 
                x: 0
                y: 0
                z: 0 
          manufacturer:
              type: TweakDBID
              value: "" 
          model:
              type: TweakDBID
              value: "Vehicle.Turbo" 
          multiplayerTemplatePaths:
              type: array:raRef:CResource
              value: [ ]
          objectActions:
              type: array:TweakDBID
              value: [ "VehicleActions.VehicleHijackFrontLeft", "VehicleActions.VehicleHijackFrontRight", "VehicleActions.VehicleMountFrontLeft", "VehicleActions.VehicleMountFrontRight", "VehicleActions.VehicleMountBackLeft", "VehicleActions.VehicleMountBackRight", "VehicleActions.VehicleCrackLockFrontLeft", "VehicleActions.VehicleCrackLockFrontRight" ]
          persistentName:
              type: CName
              value: "None" 
          player_audio_resource:
              type: String
              value: "" 
          priority:
              type: TweakDBID
              value: "SpawnableObjectPriority.Regular" 
          queryOnlyExceptions:
              type: array:CName
              value: [ "trunk_a", "trunk_b", "hood_a", "door_fl_a", "door_fr_a", "door_bl_a", "door_br_a", "door_a_hidable", "door_b_hidable", "door_a", "door_b", "door_c", "door_front_right", "door_back_right", "door_front_left", "door_back_left", "av_zetatech_valgus__ext01_door_fl_01", "av_zetatech_valgus__ext01_door_fr_01", "av_militech_basilisk__ext01_turret_b", "body_transport", "av_militech_basilisk__ext01_canopy_a", "av_militech_basilisk__ext01_canopy_b", "av_militech_basilisk__ext01_turret_a", "av_militech_basilisk__ext01_body_kit_nomad", "wing_right_nomad", "wing_left_nomad", "wing_left_nomad", "seat_a_01", "seat_a_02", "seat_b_01", "seat_b_02", "seat_c_01", "seat_c_02", "seat_d_01", "seat_d_02", "seat_e_01", "seat_e_02", "seat_a_03", "seat_a_04", "seat_b_03", "seat_b_04", "seat_c_03", "seat_c_014", "seat_d_03", "seat_d_04", "seat_e_03", "seat_e_04", "av_zetatech_surveyor__int01_jumpseat_02", "av_zetatech_surveyor__int01_jumpseat_5657", "av_zetatech_surveyor__int01_jumpseat_5537", "av_zetatech_surveyor__int01_jumpseat_8866", "av_zetatech_surveyor__int01_jumpseat_01", "av_zetatech_surveyor__int01_jumpseat_5331", "av_zetatech_surveyor__int01_jumpseat_7123", "av_zetatech_surveyor__int01_jumpseat_1477", "deathrace_spoiler_01", "av_zetatech_valgus__ext01_landinggear_back_01", "av_zetatech_valgus__ext01_propeller_01", "av_zetatech_valgus__ext01_propeller_02", "v_common_suitcase_01", "jammer_antenna_01", "v_standard25_villefort_columbus__ext01_jammer_top_gear_01", "av_zetatech_surveyor__ext01_missilelauncher_l_01", "av_zetatech_surveyor__ext01_missilelauncher_r_01" ]
          randomPassengers:
              type: array:TweakDBID
              value: [ "Passengers.GenericDriverEntry", "Passengers.GenericPassengerEntry" ]
          reverselightColor:
              type: array:Int32
              value: [ ]
          rightBLinkerlightColor:
              type: array:Int32
              value: [ ]
          rightBackCamber:
              type: Float
              value: 0 
          rightBackCamberOffset:
              type: Vector3
              value: 
                x: 0
                y: 0
                z: 0 
          rightFrontCamber:
              type: Float
              value: 0 
          rightFrontCamberOffset:
              type: Vector3
              value: 
                x: 0
                y: 0
                z: 0 
          savable:
              type: Bool
              value: false 
          statModifierGroups:
              type: array:TweakDBID
              value: [ "VehicleStatPreset.BaseCar" ]
          statModifiers:
              type: array:TweakDBID
              value: [ ]
          statPools:
              type: array:TweakDBID
              value: [ "BaseStatPools.VehicleHealth" ]
          tags:
              type: array:CName
              value: [ "InteractiveTrunk" ]
          tppCameraParams:
              type: TweakDBID
              value: "Camera.VehicleTPP_DefaultParams" 
          tppCameraPresets:
              type: array:TweakDBID
              value: [ "Camera.VehicleTPP_4w_Preset_Low_Close", "Camera.VehicleTPP_4w_Preset_High_Close", "Camera.VehicleTPP_4w_Preset_Low_Far", "Camera.VehicleTPP_4w_Preset_High_Far" ]
          traffic_audio_resource:
              type: String
              value: "" 
          type:
              type: TweakDBID
              value: "Vehicle.Car" 
          unmountOffsetPosition:
              type: Vector3
              value: 
                  x: 1.64999998
                  y: 5
                  z: 2.5 
          vehAirControl:
              type: TweakDBID
              value: "Vehicle.VehicleAirControlCar" 
          vehAirControlAI:
              type: TweakDBID
              value: "Vehicle.VehicleAirControlCarAI" 
          vehBehaviorData:
              type: TweakDBID
              value: "" 
          vehDataPackage:
              type: TweakDBID
              value: "Vehicle.VehicleDataPackageDefault" 
          vehDefaultState:
              type: TweakDBID
              value: "Vehicle.Veh4WDefaultState" 
          vehDriveModelData:
              type: TweakDBID
              value: "Vehicle.VehicleDriveModelDataDefault_4w" 
          vehDriveModelDataAI:
              type: TweakDBID
              value: "" 
          vehDriverCombat_FPPCameraParams:
              type: TweakDBID
              value: "Vehicle.VehicleDriverCombatFPPCameraParamsDefault" 
          vehDriverCombat_ProceduralFPPCameraParams:
              type: TweakDBID
              value: "Camera.VehicleProceduralFPPCamera_DefaultCombatParams" 
          vehDriver_FPPCameraParams:
              type: TweakDBID
              value: "Vehicle.VehicleDriverFPPCameraParamsDefault" 
          vehDriver_ProceduralFPPCameraParams:
              type: TweakDBID
              value: "Camera.VehicleProceduralFPPCamera_DefaultParams" 
          vehEngineData:
              type: TweakDBID
              value: "Vehicle.VehicleEngineData_4_Default" 
          vehImpactTraffic:
              type: TweakDBID
              value: "Driving.VehicleImpactTraffic_DefaultParams" 
          vehPassCombatL_FPPCameraParams:
              type: TweakDBID
              value: "Vehicle.VehiclePassengerLCombatFPPCameraParamsDefault" 
          vehPassCombatL_ProceduralFPPCameraParams:
              type: TweakDBID
              value: "Camera.VehicleProceduralFPPCamera_DefaultCombatParams" 
          vehPassCombatR_FPPCameraParams:
              type: TweakDBID
              value: "Vehicle.VehiclePassengerRCombatFPPCameraParamsDefault" 
          vehPassCombatR_ProceduralFPPCameraParams:
              type: TweakDBID
              value: "Camera.VehicleProceduralFPPCamera_DefaultCombatParams" 
          vehPassL_FPPCameraParams:
              type: TweakDBID
              value: "Vehicle.VehiclePassengerLFPPCameraParamsDefault" 
          vehPassL_ProceduralFPPCameraParams:
              type: TweakDBID
              value: "Camera.VehicleProceduralFPPCamera_DefaultParams" 
          vehPassR_FPPCameraParams:
              type: TweakDBID
              value: "Vehicle.VehiclePassengerRFPPCameraParamsDefault" 
          vehPassR_ProceduralFPPCameraParams:
              type: TweakDBID
              value: "Camera.VehicleProceduralFPPCamera_DefaultParams" 
          vehWheelDimensionsSetup:
              type: TweakDBID
              value: "Vehicle.VehicleWheelDimensionsSetup_Default" 
          vehicleUIData:
              type: TweakDBID
              value: "Vehicle.VehicleDefaultUIData" 
          visualDestruction:
              type: TweakDBID
              value: "Vehicle.VehicleVisualDestructionParamsDefault" 
          visualTags:
              type: array:CName
              value: [ ]
          weakspots:
              type: array:TweakDBID
              value: [ ]
          weapons:
              type: array:TweakDBID
              value: [ ]
          widgetStyleSheetPath:
              type: raRef:CResource
              value: 0
    While the multilayered supershader is very common, there are hundreds of other non Substance-style shaders, some with traditional baked PBR textures.
    circle-check

    For a list of shader properties in multilayered.mt, see here.

    hashtag
    Composition

    The multilayered shader is composed of three distinct parts:

    1. Layer Masks | Mask textures that control where each surface is visible .mlmask files

    2. Layer Definitions | Controls procedural effects such as tiling or color for each layer .mlsetup files

    3. Layer Surfaces | Links PBR textures to create numerous pre-defined visual surfaces .mltemplate files

    circle-info

    For editing mlsetup files, you'll want to use the MlSetupBuilder (downloadarrow-up-right)

    hashtag
    What is the mlmask?

    MLMASK files are the core element of the substance-style integration. These files contain an array of up to 20 textures which are used to control the blending between pre-defined surfaces called mltemplates. These mask textures are more-or-less 1:1 with substance-style layer masks.

    Demonstration of how mlmask files are used to mask meshes. Each mask represents a separate surface.

    As shown above, each mesh using the multilayer shader uses a unique mlmask file that is hand authored by CDPR artists. To take effect in game, each mask file is linked by the mlsetup file.

    hashtag
    What is the mlsetup?

    MLSETUP files are fairly self-explanatory when considering the name, multilayer setup. These files correspond with an mlmask file and are responsible for setting up parameters for each layer from the mlmask. Each layer within an mlsetup contains information very similar to materials or shaders.

    File structure of mlsetup viewed with WolvenKit

    hashtag
    MLSETUP Definition

    Property
    Description

    colorScale

    Sets a color from within the file

    material

    Path to file

    matTile

    Tiling multiplier for the main surface texture

    hashtag
    What is the mltemplate?

    MLTEMPLATE files are the actual visible surfaces that appear on meshes using the multilayered.mt supershader. The multilayer templates include a wide variety of surfaces such as steel, iron, aluminum, plastic, nylon, linoleum, carpet, soil, grass, rubber, concreate, and everything else imaginable. Each template can use a unique color, normal, roughness, and metallic PBR texture. The mltemplate files are selected from within each layer definition of an mlsetup file. Meshes can blend up to 20 mltemplate surfaces into a single material by masking them with the mlmask.

    File structure of mltemplate viewed with WolvenKit
    A sample preview of some materials created by mltemplate files
    An example how colour and roughness affect the material in-game

    hashtag
    Technical Details

    Multilayered Shaders

    engine\materials\multilayered.mt

    base\materials\multilayered_clear_coat.mt | Adds clearcoat effect

    base\materials\vehicle_destr_blendshape.mt | Adds procedural vehicle damage

    base\materials\cloth_mov_multilayered.mt

    base\materials\multilayered_terrain.mt

    hashtag
    multilayered

    Texture Channels
    Red
    Green
    Blue
    Alpha

    GlobalNormal

    Normal R

    Normal G

    ?

    ?

    Name
    Description

    MultilayerMask

    See mlmask

    MultilayerSetup

    See mlsetup

    GlobalNormalIntensity

    Sets visual intensity of normal map texture

    hashtag

    this documentationarrow-up-right
    Releases · Neurolinked/MlsetupBuilderGitHubchevron-right

    Core Mods explained

    A list of modding frameworks and links to their documentation

    circle-info

    You're probably used to the term Core Mod from other games. However, the technical term for these kinds of mod is aframework, which is what they're usually referred to by Cyberpunk modders.

    circle-check

    The whole world: .streamingsector

    Documentation on .streamingsector files

    circle-info

    If you want to know how to find a streaming sector, see .

    For a list of interesting locations, see .

    For a guide how to modify streaming sector files, see .

    Material properties explained

    How materials work, and how you can configure them

    circle-info

    If you want to learn how material assignment works for the object, check

    For information on material templates, see

    Refitting: Mesh sculpting techniques

    Best Practices for actually changing meshes

    hashtag
    Summary

    Created by @manavortex | Edited by Na Published January 29 2023

    This guide will give you a number of techniques when it comes to editing meshes in Blender (displayed version: 3.4.1)

    Assumed skill level: - You have - You are able to read and comprehend instructions.

    6DKCf9m.png
    S89HHto.png
    pwW4wul.png
    glEvzEl.png
    vMM9RVQ.png

    mbTile

    Tiling multiplier for the microblend texture

    metalLevelsIn

    ?

    metalLevelsOut

    Clamps metalness output levels

    microblend

    Procedural detail texture

    microblendContrast

    Controls influence of microblend texture

    microblendNormalStrength

    Multiplier for adjusting normalblend strength

    microblendOffsetU

    Shifts UV map for microblend texture

    microblendOffsetV

    Shifts UV map for microblend texture

    normalStrength

    Sets intensity of mltemplate normal map

    offsetU

    Moves UV in X direction

    offsetV

    Moves UV in Y direction

    opacity

    Sets layer opacity

    overrides

    ?

    roughLevelsIn

    ?

    roughLevelsOut

    Clamps roughness output levels

    base\materials\ver_mov_multilayered.mt

    MaskAtlas

    ?

    ?

    ?

    ?

    GlobalNormalUVScale

    ?

    GlobalNormalUVBias

    ?

    MaskAtlas

    ?

    MaskTiles

    ?

    Layers

    ?

    LayersStartIndex

    ?

    SurfaceTexAspectRatio

    Sets number of mlmask layers to be used

    MaskToTileScale

    ?

    MaskTileSize

    ?

    MaskAtlasDims

    ?

    MaskBaseResolution

    ?

    SetupLayerMask

    ?

    NormalsTextureDDXYMultiplier

    ?

    MicroblendsTextureDDXYMultiplier

    ?

    mltemplate
    mltemplate
    If you are trying to troubleshoot your core mods, you can run the log file utility.

    hashtag
    TL;DR: What do I download?

    For an explanation of what the individual frameworks do, see below. Entries in italics are optional.

    Redscriptarrow-up-right

    Red4extarrow-up-right – ArchiveXLarrow-up-right – TweakXLarrow-up-right – EquipmentExarrow-up-right – Codewarearrow-up-right

    Cyber Engine Tweaksarrow-up-right

    hashtag
    What is a framework?

    While the game natively supports mods, this would have had us limited to replacing already existing items, but we wanted flying cars. So a bunch of brilliant people drilled deep into the code of Cyberpunk 2077 and created a bunch of tools that let us do more.

    The most prominent example of a framework mod is the Skyrim Script Extender — fortunately, Cyberpunk 2077 is rather more stable.

    triangle-exclamation

    Since this kind of mod interacts with the game's code on such a fundamental level, they are prone to breaking whenever CDPR changes their API. This is the reason why game updates break mods — we recommend to turn off auto-update and manually upgrading once the frameworks you need have been brought up-to-date.

    hashtag
    Existing Frameworks

    The first-level frameworks (CET, Redscript and Red4ext) allow access to the game's functions and types, which are known through reverse engineering. The second-level frameworks (e.g. ArchiveXL, TweakXL, Codeware, SystemEx) make use of these to offer further methods of interaction. For details, see below.

    hashtag
    Redscript

    Redscript (Nexusarrow-up-right | GitHubarrow-up-right) is an open-source programming language and toolkit, natively working with Cyberpunk 2077's scripting runtime. Essentially, it is extending the already-existing Redmod scripting system by including data from the decompiled game script blob final.redscripts.

    It allows additions and edits of the game's high-level logic and functions, including additions through Red4ext. The scripts are compiled into r6/cache/modded and are preloaded together with the rest of the game's cache.

    Some examples for existing mod include, but are not limited to

    • changing combat balance

    • editing NPC behaviour

    • altering the interface

    • adding or removing UI widgets

    hashtag
    Cyber Engine Tweaks (CET)

    Cyber Engine Tweaks (Nexus arrow-up-right| GitHubarrow-up-right) is a first-level framework with a LUA wrapper, which will let you access anything exposed via RTTI by RedScript and Red4ext. On top of that, it lets you bind hotkeys for custom functions and interact with the game's Tweak database at runtime.

    circle-info

    Additions made to the tweak database via CET are not persistent; you will need TweakXL for that.

    Lots of mods and scripts run on top of CET, tweaking the game in various ways from changing the weather to adding a wardrobe system before CDPR added a wardrobe system.

    The perhaps most prominent example is Appearance Menu Mod (wiki | Nexusarrow-up-right), which turns Cyberpunk 2077 into The Sims: Capitalist Dystopia.

    hashtag
    RED4ext

    RED4ext (Nexus arrow-up-right| GitHubarrow-up-right) is Cyberpunk 2077's equivalent to Skyrim Script Extender. Aside from being required for many mods, it is a perquisite for other core dependencies such as ArchiveXL, TweakXL, and Equipment-EX.

    circle-exclamation

    With Red4ext >= 1.13, you no longer need cybercmdarrow-up-right. Make sure to uninstall it!

    Rather than being added to the game's cache for preloading, Red4ext reads and modifies the game's memory at runtime. This happens via RTTI, which is the game engine's original system for scripting and serialization.

    chevron-rightTechnical deteshashtag

    Red4ext and its plugins are written in C++. The framework itself has two components:

    The shared library exposes types, functions and classes via RTTI to make them available in-game. This contains reverse-engineered information from redscript.finals as well as code defined by its plugins.

    The plugin loader will activate .dll files from red4ext/plugins (such as ArchiveXL, TweakXL...). They can be considered standalone programs that are activated through Red4ext and unlock other areas of Cyberpunk's code. This contains essentials like

    • game version checking

    • logging

    • hooking

    As a modder, you can only use types and functions that are already registered via RTTI.

    hashtag
    ArchiveXL

    ArchiveXL (Nexusarrow-up-right | GitHubarrow-up-right) allows us to load custom resources into Cyberpunk 2077. Working under the hood, it is the essential tool to add rather than replace.

    For ArchiveXL-specific documentation, check the corresponding sub-page.

    hashtag
    TweakXL

    TweakXL (Nexusarrow-up-right | GitHubarrow-up-right) is an extension of RED4ext to modify the TweakDB by writing script extensions in both YAML and RED format. By loading files from r6/tweaks, it can alter predefined records in Cyberpunk's database, changing properties such as weapon damage or the number of hitpoints.

    By interacting with REDEngine 4's database, it lets you view and alter information about game entities and behaviour in real time (accessible via Cyber Engine Tweak's Tweak Browser tab).

    hashtag
    Equipment-EX

    Equipment-EX (Nexusarrow-up-right | GitHubarrow-up-right) makes use of every single one of the frameworks mentioned above to overhaul CDPR's wardrobe system. Extending it from 6 slots to more than 30, it lets you save an unlimited number of outfits and supports modded items.

    hashtag
    Codeware

    Codeware (Nexusarrow-up-right | GitHubarrow-up-right) is not strictly speaking a framework but a library, exposing Red4ext's extra functionality to redscript (keyword @native). By defining utility functions and -classes, the mod enforces best practices, reducing the likelihood of crashes.

    For example, while you could always see an NPC's appearances in Wolvenkit, it was not possible to access that information at runtime.

    hashtag
    Log files for the frameworks

    hashtag
    Logs: Cyber Engine Tweaks

    This will tell you what mods and scripts CET is loading, and if there have been any errors in the process.

    If all goes well, it will look like this:

    hashtag
    Logs: Redscript

    It will tell you which .reds files it has been loading, and if any of them failed.

    circle-info

    Please note the warning in the log:

    • If the mod is working, ignore it

    • If the mod isn't working, this tells you what to check. You can't have mods installed twice!

    If all goes well, it will look like this:

    hashtag
    Logs: RED4ext

    It will tell you which of the framework DLLs it has been loading.

    If all goes well, it will look like this (version numbers are fake):

    hashtag
    Logs: ArchiveXL

    Tells you which .xl files have been found and processed and what it has been adding into the game files upon startup.

    If it loads correctly, you will see something like this:

    circle-info

    Note that the example contains a bunch of warnings. That indicates problems with the modded files (which I ignore, since they are working),

    hashtag
    Logs: TweakXL

    Tells you which tweaks have been read and processed, pointing out errors and warnings in the process. If your custom item additions don't work, you might find a hint here.

    If it loads correctly, you will see something like this:

    hashtag

    GitHub - psiberx/cp2077-archive-xl: Cyberpunk 2077 mod that allows you to expand game resources without conflicts.GitHubchevron-right
    GitHub - psiberx/cp2077-tweak-xl: Cyberpunk 2077 mod that allows you to modify TweakDB.GitHubchevron-right
    Cyber Engine Tweakschevron-right
    StreamingSectors are the files that define the world in Cyberpunk, they tell the engine what goes where, and define everything from the meshes you see and how you can interact with them, to the locations of lights, sounds and fx. They call up the NPCs, they define the minimap.

    The fundamental bits of the structure are 2 main lists, the nodes, and the nodeData. The nodes define the assets that make up the sector, and the nodeData tells the engine where to put them. Theres a nodeRef list as well, which seem to be the link that quests use to tie in to triggers etc via the .scene files. Theres also some bits that define variants, that seem to be how sectors change after missions, not worked those out yet.

    hashtag
    Theory

    Streaming Sectors contain the world's data, holding a node tree that includes all its models and entities.

    circle-info

    Other than the world environment, streaming sector files can also define

    • navigation

    • sound

    • collision

    • illumination

    as there are several types.

    hashtag
    LOD data and grid sizes

    The world is broken up into a grid, with several sizes of squares available (bit like graph paper with major and minor grid lines). The size of the grid in use is dependent on the Level of Detail (LOD) of the sector file your looking at, which is the last digit of the filename.

    Chunk sizes are as below.

    LOD
    Interior
    Exterior

    0

    32

    64

    1

    64

    128

    For every location, there can be multiple overlapping levels of LOD sectors with progressively more detail as you go down the levels.

    For instance, Lizzies bar is located at approximately -1200, 1562, 22:

    Via AMM: this targets the bouncer rather than the bar, but they're right next to each other, so it's fine.

    Filenames are structured as sectortype_X_Y_Z.streamingsector . If you preview a sector in wkit, the axes are shown as Z=-Y and Y=Z.

    hashtag
    Calculating the files

    I've left the detail of the process below for record, but if you just want a list of sectors I've created a python script to find the ones that a set of co-ordinates are in. You can find it HEREarrow-up-right. Simply enter the co-ordinates in the player_loc dict in block 3 then run all blocks. You'll be given 2 lists containing of all the interior and exterior sectors which contain the co-ords within their bounding boxes. The list also shows the distance from the centre of the sectors to the co-ords given.

    From those co-ordinates we can calculate the sector files for interior/exterior sectors by dividing by the grid size for the LOD and rounding. (ie 1200/32=38 etc)

    LOD
    Interior
    Exterior

    0

    -38_49_0

    -19_24_0

    1

    -19_24_0

    -9_12_0

    At the level 0 files the whole building isn't covered by 1 sector, so you end up needing 4, conversely the exterior level 2 is several city blocks.

    circle-info

    For example, the loft apartment uses these files:

    interior_-24_-16_1_1.streamingsector: inner walls, floors, collision

    interior_-48_-31_2_0.streamingsector: interior decoration, clutter

    Note that the numbers are simply duplicated and rounded down. No, I don't know how you round down 2*16 to 31 either.

    Some locations are partially defined in quest sectors, where parts of the location are locked away behind story triggers (for example half of V's apartment, as a lot of decoration will only be shown after completing quests). The exact process isn't fully understood as of May 2023.

    hashtag
    Node Types

    List below is the node types I've found so far while building the blender sector import script.

    MinimapDataNode

    worldAISpotNode

    worldAcousticSectorNode

    worldAmbientAreaNode

    herearrow-up-right
    here
    hashtag
    Checking material properties

    You can see a material's default properties by opening the .(re)mt file in WolvenKit and inspecting the parameters array. Any properties that you don't overwrite by adding them to your CMaterialInstance or .mi file will take the default properties specified in the file.

    hashtag
    Roughness/Metalness

    A roughness/metalness preview. Yes, it's not a sphere.

    hashtag
    Multilayered Material

    For a full documentation, check the corresponding page.

    To set it up, use these keys for the "values" array of your material:

    GlobalNormal

    path\to\normal.xbm

    MultilayerMask

    path\to\mask.mlmask ()

    MultilayerSetup

    path\to\material.mlsetup

    an example multilayered material

    hashtag
    Textured Material

    The most commonly used material for anything textured is engine\materials\metal_base.remt. Despite its name, this material isn't necessarily metallic.

    circle-info

    You can also use this material as emissive, for a documentation, see below.

    The material can be transparent, you need to set the enableMask flag to True and make sure its not set to False anywhere higher in the material chain. Note this is not in the values, its just below the baseMaterial definition. When set the material will use the alpha channel of the BaseColor.

    To make your mesh load a texture, use the following CKeyValuePairs in your material's "values" array:

    BaseColor

    path to your texture.xbm (Diffuse/Albedo)

    Roughness

    path to your roughnessMap.xbm (if you have one)

    Metalness

    path to your metalnessMap.xbm (if you have one)

    Normal

    path to your normalMap.xbm ()

    example use of metal_base.remt as a textured material
    circle-info

    The .xbm is a container around the texture. Export the xbm to png via WolvenKit.

    circle-exclamation

    If your texture has any brightness issues in-game, toggle around the isGamma flag during import.

    The expected isGamma settings are:

    normals: false diffuse/albedo: true anything that is used in .inkatlas files: true

    hashtag
    Further properties

    LayerTile

    Material scaling (zoom on surface) > 1 zooms in, >1 zooms out

    hashtag
    Plastic

    The most commonly used material for anything textured is engine\materials\metal_base.remt. Despite its name, this material isn't necessarily metallic.

    To turn the material into plastic, use the following CKeyValuePairs in your material's "values" array:

    BaseColor

    base\materials\placeholder\white.xbm

    Normal

    optional: path to your normal map

    Roughness

    optional: path to your roughness map

    RoughnessBias

    0.200000003

    You can find a ready-to-download template herearrow-up-right.

    hashtag
    Emissive Material

    You can make engine\materials\metal_base.remt glow by adding the correct parameters, or you can poke through the game files and search for emissive > .mi to find Cyberpunk material templates to learn from.

    For a list of such templates, check here.

    Emissive

    path to emissive texture, e.g. engine\textures\editor\white.xbm The texture works like an alpha mask.

    EmissiveEV

    float, e.g. 2.0: emissive brightness. Brightness varies depending on your colour. Unless you want to actively blind people, you might want to stay below 4.

    EmissiveColor

    Glow colour as RGB (copy from e.g. mi_neokitsch_fridge_z_emissive.mi)

    Find a ready-to-use glowing .mi file herearrow-up-right.

    hashtag
    Glass

    Cyberpunk's glass material, such as base\materials\glass_onesided.mt

    circle-info

    All glass materials can consider the vertex color attribute, which you can edit directly in Blenderarrow-up-right.

    Opacity

    float, 0.0 - 1.0: Controls glass transparency.

    GlassTint

    A texture to tint your glass. (TBD: Does it work as a mask?)

    TintColor

    Glass tint as RGB (copy from e.g. mi_neokitsch_fridge_z_emissive.mi).

    IOR

    as float, 1.0-2.0: The refraction properties of your material.

    Find a ready-to-use bottle glass .mi herearrow-up-right.

    hashtag
    Non-warping glass

    For a glass material without view distortion and warping, use base\vehicles\common\materials\glass_windshield_tinted_black.mi

    Opacity/OpacityBackFace

    float, 0.0 - 5.0: Controls glass transparency. OpacityBackFace will only affect inside-facing normals.

    FrontFacesReflectionPower / BackFacesReflectionPower

    float, 0.0-10.0: How strongly should the glass reflect?

    TintColor/TintSurface

    Surface and refraction color as RGB (copy from e.g. mi_neokitsch_fridge_z_emissive.mi).

    Find a ready-to use glass .mi file herearrow-up-right

    hashtag
    Half-transparent glass

    base\environment\decoration\electronics\devices\device_neokitsch\textures\device_neokitsch_glass_black.mi

    hashtag
    Device screen glass

    base\fx\shaders\parallaxscreen.mt

    ParalaxTexture

    Texture that your screen should display, e.g. base\materials\placeholder\black.xbm

    LayersSeparation

    1

    ScanlinesIntensity

    0

    ScanlinesDensity

    0

    Find a ready-to-use example of a turned-off screen herearrow-up-right.

    hashtag
    Liquid

    Cyberpunk has its own liquid shader(s) such as base\materials\fillable_fluid_vertex.mt. Projecting this material onto a submesh will turn the submesh into a transparent container filled with the liquid you specified. If you flip the container on its head, the fluid will drain to the bottom and fill it up again.

    To control the offsets, you need to adjust the vectors FluidBoundingBoxMax and FluidBoundingBoxMin.

    It shares various properties (such as IOR, FresnelBias, BlurRadius) with the glass shader.

    TintColor

    liquid's color as RGB (copy from e.g. mi_neokitsch_fridge_z_emissive.mi).

    FillAmount

    float, e.g.0.0: Probably works in combination with the bounding box. You'll have to experiment.

    FluidBoundingBoxMin FluidBoundingBoxMax

    Vectors (X, Y, Z, W) controlling the maximum distance from the container's walls. Each value is a float (decimal) speficying the axis in question - you'll simply have to play around with them (you can ignore W). For a bottle material I've used Max: 0.03, 0.03, 0.155 Min: -0.03, -0.03, 0.09

    Find a ready-to use (black) liquid .mi file herearrow-up-right.

    3d objects: .mesh files
    Re-using materials: .mi
    circle-info

    For a step-by-step refitting guide, check here.

    You can find video guides for refitting linked on the community guides page

    hashtag
    Prerequisite: Deleting shapekeys

    Before you start editing your mesh, you should delete its shapekeys. This is necessary for the Sculpt Mode to show your changes in real time, and you don't need them anymore after editing your mesh.

    Order matters, because deleting a shapekey will apply it. Start at the bottom!
    circle-check

    Some people have been told to delete the Armature modifier before sculpting. That's not necessary!

    hashtag
    Sculpting

    The obvious approach is to change your mesh by moving vertices. However, this will take a very long time and probably be frustrating. A faster way is to use Blender's Sculpt Mode.

    circle-info

    The downside of the sculpt mode is that it can edit only the selected mesh. For a workaround, see here.

    The Sculpt Mode is pretty much What You See Is What You Get.

    The easiest tools for beginners are Grab, Elastic Deform, and Smooth

    circle-info

    In the "Tool" panel (Toggle shortcut: N), you can optionally enable symmetry (blue on the picture below).

    Elastic Deform and x-symmetry are your friends!

    A useful shortcut to keep in mind is F, which will let you change the cursor size.

    circle-info

    You can import a body mesh as a reference.

    You will find the player's body under base\characters\common\player_base_bodies\player_female_average\ base\characters\common\player_base_bodies\player_male_average\

    hashtag
    Affecting only parts of the mesh

    hashtag
    Method 1

    You can hide those parts that you don't want to sculpt.

    Use the Edit Mode (Shortcut: Tab) to make a selection. Then, leave only those parts visible that you want to affect before switching back to Sculpt Mode.

    circle-info

    Useful hotkeys:

    • H: Hide selection

    • Shift+H: Hide everything but selected

    • Alt+H: Unhide everything

    hashtag
    Method 2

    You can also use the Lattice Deform Method below to selectively edit only part of the mesh.

    hashtag
    Method 3

    You can use Blender's mask brush and functionarrow-up-right in Sculpt Mode to mask the parts that you do not want to sculpt.

    hashtag
    Affecting Several Meshes

    hashtag
    Material Separation Method

    This method is a workaround that you can use when you have only 2-3 meshes. You can fuse all meshes together, then split them apart after you're done.

    Pros:

    • Relatively simple, and good to make small, simple changes to 2-3 meshes.

    • Allows symmetrical sculpting.

    Cons:

    • Destructive editing

    • Can be a little time-consuming because you have to join, separate, and rename meshes every time you want to import it back to WolvenKit.

    Let's assume that we're sculpting Rogue's pants. For surface material assignment, the seams are an own submesh — the pants (submesh_00) are coloured via multilayered material, while the seams have a variation of metal_base with coloured stitches.

    We don't want to edit those separately, so we'll fuse them into one mesh, sculpt everything in one go, and then split them apart again.

    To allow splitting, we need to make sure that every submesh has its own unique material. Select the mesh, switch to the "Material Properties tab on the right", and duplicate the assigned material:

    You can rename the material to e.g. "seams", but it's not necessary.
    circle-info

    Before the next step, make sure to remember the submesh numbers, because you need to restore them later. Changes in the submesh order will mess up material assignment in WolvenKit.

    You can create a copy by duplicating the meshes (shortcut: Shift+D)

    Now, join the meshes together — hold CTRL, select the main mesh, and join the meshes together (shortcut: Ctrl+J)

    circle-check

    You now have a single mesh which you can sculpt to your heart's content.

    Once you're done, you can separate the meshes again. Switch to Edit Mode, then select something that belongs to the former submesh. From the menu, pick the following entry: Select -> Select Similar (Hotkey: Shift+G) -> Material

    Split your submesh by material

    Then, split off the selection into its own submesh again: Right-Click -> Separate (Hotkey: P) -> Selection

    circle-check

    Make sure to restore the original mesh names before exporting your mesh from Blender.

    circle-info

    After importing back into WolvenKit, remember to delete the GarmentSupport parameters from your mesh, as they will now produce string cheese.

    hashtag
    Lattice Modifier Method

    The Lattice modifier deforms the base object according to the shape of a Lattice object.

    Pros:

    • Can edit as many meshes at once as you want, no matter what armature they are parented to.

    • 100% Non-destructive sculpting.

    • No need to separate, rejoin, and rename meshes after sculpting is done.

    • Good for making small, local changes to multiple meshes.

    • Edits can be stacked on top of each other by stacking modifiers.

    • Does not have to go through all the steps like Material Separation Method each time you want to import to WolvenKit.

    Cons:

    • Trying to select desired vertices of the lattice can be difficult.

    • Can be hard to restrict edits to areas not covered by the lattice, thus possibly making unwanted edits.

    • Does not allow symmetrical sculpting.

    Begins by adding a Lattice to the scene. In Object mode, go to the menu Add > Lattice. Reshape the lattice so that it covers the part of the base meshes that you want to edit or all the meshes that you want to edit.

    Go to the Object Data Properties panel, and increase the resolution as you wish. for most edits, 6-10 levels are fine.

    A lattice I made to do some edits to the hand only.

    Now select your base mesh(es). Add the Lattice modifier to the mesh then choose your Lattice in the Object option.

    To apply this modifier to all base meshes, while still selecting this mesh, hold Ctrl then select all the meshes that you want to edit, or hold Shift then drag to select all the meshes that you want to edit. Click the drop-down menu arrow in the modifier, then click Copy to Selected.

    Go to edit mode, select vertices and start moving them around to edit your base mesh(es).

    When you are done, you do not have to apply this modifier. As long as your export settings are correct, and you remember to delete all Shape keys, the changes will be applied automatically upon export. That's why this method will make all the changes non-destructive and you can revert to vanilla by toggling the modifier.

    circle-info

    You can stack modifiers to make desired changes to your mesh(es).

    hashtag
    Mesh Deform Modifier Method

    The Mesh Deform modifier allows an arbitrary mesh (of any closed shape) to act as a deformation cage around another mesh. This method resolves many problems of the previous methods.

    Pros:

    • Can edit as many meshes at once as you want, no matter what armature they are parented to.

    • 100% Non-destructive sculpting.

    • No need to separate, rejoin, and rename meshes after sculpting is done.

    • Easier control than editing vertices of a lattice.

    • Allow symmetrical sculpting.

    • Edits can be stacked on top of each other by stacking modifiers.

    Cons:

    • If you have a lot of meshes and the vertex count is relatively high, the waiting time to bind can be just a little long.

    In this example, I will work with the head mesh (1 submesh) and the body mesh (10 submeshes).

    In Object Mode, duplicate everything by right-clicking on the collections and hit Duplicate Collection .

    Still in Object Mode, select all the newly duplicated meshes and join them together by using hotkey Ctrl + J or navigate to the menu > Object > Join .

    Now you should have an unified, joined mesh along side the vanilla meshes.

    This mesh will be our cage mesh, we will use it as a proxy to make edits to the main meshes. Now we have to prepare it so that it works well as a cage.

    Add a Remesh modifier to this mesh, use Voxel setting. Decrease the Voxel Size until the human shape is fairly recognizable but the mesh is not too high poly. Also, enable the Smooth Shading option. Below is my setting for this model.

    Now, apply the modifier by hovering the mouse above it and using the hotkey Ctrl + A, or click on the drop-down menu arrow and hit Apply.

    Now we need to "bloat" the cage mesh so that it covers the whole base meshes. We will make use of the Shrink/Fatten function. You should toggle visible the base meshes along with this cage so it's easier to see. Switch to Edit Mode, and select all vertices by using the hotkey Ctrl + A. Hold Alt + S, then drag Left Mouse button to fatten the whole mesh. For finer control, also hold Shift while dragging it. Make sure that it completely engulfs the base meshes.

    Your bloated meshes should look something like this, it should completely cover the base meshes.

    Switch back to Object Mode, select all the base meshes instead. Add a Mesh Deform modifier, then select the cage mesh in the Object option. Then select the drop-down menu arrow, click Copy to Selected to apply the same modifier to all base meshes. Then go to each meshes and click the button Bind to bind them to the cage. Depending on the complexity and vertices count, it can take anywhere from 1 to 30 seconds to finish binding.

    You have finished binding all meshes to the base meshes. Now, all the editing you made to the cage mesh in Sculpting and Editing Mode will be reflected on the base meshes.

    To see the edits easier, select the cage mesh, then go to Object properties. Scroll down to the Viewport Display setting menu, in the Display As option, chose Wire. This will render the cage as wire and you can see the vanilla meshes below as you edit.

    circle-info

    Hint: to make symmetrical changes, enable the symmetrical editing in Sculpt Mode. If your cage doesn't cover the whole base meshes, you can add a Mirror Modifierarrow-up-right to the cage mesh. It will be reflected on your base meshes as well.

    After finishing sculpting, you don't have to apply the modifier to the base meshes. As long as your export settings are correct, and you remember to delete all Shape keys, the changes will be applied automatically upon export. That's why this method will make all the changes non-destructive and you can revert to vanilla by toggling the modifier.

    circle-info

    You can cleverly combine these methods to make changes to your mesh as you desire.

    hashtag
    Troubleshooting

    circle-info

    If your problem isn't listed here, check Troubleshooting your mesh edits.

    hashtag
    Sculpt changes don't show before I enter and leave Sculpt Mode

    You need to delete the shapekeys.

    exported a mesh and imported it into Blender

    Troubleshooting your mesh edits

    When you can't import, or your imported mesh looks weird

    hashtag
    Importing

    hashtag
    My import won't show up in-game!

    Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks\cyber_engine_tweaks.log
    [2023-04-21 23:23:30 UTC+01:00] [info] [Options] [3004] Cyber Engine Tweaks is starting...
    [2023-04-21 23:23:30 UTC+01:00] [info] [Options] [3004] CET version v1.24.1 [HEAD]
    [2023-04-21 23:23:30 UTC+01:00] [info] [Options] [3004] Game version 1.6202
    [2023-04-21 23:23:30 UTC+01:00] [info] [Options] [3004] Root path: "C:\Games\Cyberpunk 2077\bin\x64"
    [2023-04-21 23:23:30 UTC+01:00] [info] [Options] [3004] Cyber Engine Tweaks path: "C:\Games\Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks"
    [2023-04-21 23:23:30 UTC+01:00] [info] [Options] [3004] Lua scripts search path: "C:\Games\Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks\mods"
    [2023-04-21 23:23:30 UTC+01:00] [info] [StateTickOverride] [3004] Main thread function CBaseInitializationState::OnTick hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [StateTickOverride] [3004] Main thread function CInitializationState::OnTick hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [StateTickOverride] [3004] Main thread function CRunningState::OnTick hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [StateTickOverride] [3004] Main thread function CShutdownState::OnTick hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [HookGame] [3004] CRenderNode_Present_InternalPresent function hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [HookGame] [3004] CRenderGlobal_Resize function hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [HookGame] [3004] CRenderGlobal_Shutdown function hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [Hook] [3004] RealRunScriptFunction function hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [Hook] [3004] RealCreateFunction function hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [Hook] [3004] CScript::Log function hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [Hook] [3004] CScript::LogChannel function hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [Hook] [3004] CScript::TDBIDConstructorDerive function hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [Hook] [3004] CScript::ToStringDEBUG function hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [Hook] [3004] CScript::TranslateBytecode function hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [Hook] [3004] CScript::TweakDBLoad function hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [Hook] [3004] PlayerSystem::OnPlayerSpawned function hook complete!
    [2023-04-21 23:23:30 UTC+01:00] [info] [Hook] [3004] Hook mouse clip function!
    [2023-04-21 23:23:30 UTC+01:00] [info] [OptionsInitHook] [3004] Hidden options hook: success
    [2023-04-21 23:23:31 UTC+01:00] [info] [InitializeTweakDBMetadata] [15668] CDPRTweakDBMetadata::Initalize() - Primary TweakDB initialization successful!
    Cyberpunk 2077\r6\logs\redscript_rCURRENT.log
    [INFO - Sat, 22 Apr 2023 10:08:08 +0100] Using defaults for the script manifest (manifest not present)
    [INFO - Sat, 22 Apr 2023 10:08:08 +0100] Compiling files: C:\Games\Cyberpunk 2077\r6\scripts\a-bunch-of-stores-atelier-store.reds, C:\Games\Cyberpunk 2077\r6\scripts\virtual-atelier\vendor-preview\GarmentItemPreview.reds
    [WARN - Sat, 22 Apr 2023 10:08:08 +0100] At C:\Games\Cyberpunk 2077\r6\scripts\appearanceChangeUnlocker\mirrorUnlocker.reds:38:1:
    @addField(inkScrollArea)
    ^^^
    field with this name is already defined in the class, this will have no effect
    
    (a bunch of these warnings)
    
    [INFO - Sat, 22 Apr 2023 10:08:08 +0100] Compilation complete
    [INFO - Sat, 22 Apr 2023 10:08:08 +0100] Output successfully saved in C:\Games\Cyberpunk 2077\r6\cache
    Cyberpunk 2077\red4ext\logs\red4ext.log
    [2023-04-22 10:08:05.698] [RED4ext] [info] RED4ext (v4.7.11) is initializing...
    [2023-04-22 10:08:05.698] [RED4ext] [info] Game patch: 4.511 Hotfix 999
    [2023-04-22 10:08:05.698] [RED4ext] [info] Product version: 4.511
    [2023-04-22 10:08:05.698] [RED4ext] [info] File version: 4.7.11.13361
    [2023-04-22 10:08:05.717] [RED4ext] [info] RED4ext has been successfully initialized
    [2023-04-22 10:08:05.816] [RED4ext] [info] RED4ext is starting up...
    [2023-04-22 10:08:05.816] [RED4ext] [info] Loading plugins...
    [2023-04-22 10:08:05.816] [RED4ext] [info] Loading plugin from 'C:\Games\Cyberpunk 2077\red4ext\plugins\ArchiveXL\ArchiveXL.dll'...
    [2023-04-22 10:08:05.874] [RED4ext] [info] ArchiveXL (version: 4.7.11, author(s): psiberx) has been loaded
    [2023-04-22 10:08:05.874] [RED4ext] [info] Loading plugin from 'C:\Games\Cyberpunk 2077\red4ext\plugins\Codeware\Codeware.dll'...
    [2023-04-22 10:08:06.180] [RED4ext] [info] Codeware (version: 5.7.11, author(s): psiberx) has been loaded
    [2023-04-22 10:08:06.180] [RED4ext] [info] Loading plugin from 'C:\Games\Cyberpunk 2077\red4ext\plugins\RedHotTools\RedHotTools.dll'...
    [2023-04-22 10:08:06.262] [RED4ext] [info] RedHotTools (version: 1.6.11, author(s): psiberx) has been loaded
    [2023-04-22 10:08:06.263] [RED4ext] [info] Loading plugin from 'C:\Games\Cyberpunk 2077\red4ext\plugins\TweakXL\TweakXL.dll'...
    [2023-04-22 10:08:06.291] [RED4ext] [info] TweakXL (version: 4.8.12, author(s): psiberx) has been loaded
    [2023-04-22 10:08:06.291] [RED4ext] [info] 4 plugin(s) loaded
    [2023-04-22 10:08:06.291] [RED4ext] [info] RED4ext has been started
    [2023-04-22 10:09:13.572] [RED4ext] [info] RED4ext is shutting down...
    [2023-04-22 10:09:14.297] [RED4ext] [info] ArchiveXL has been unloaded
    [2023-04-22 10:09:14.322] [RED4ext] [info] TweakXL has been unloaded
    [2023-04-22 10:09:14.353] [RED4ext] [info] RedHotTools has been unloaded
    [2023-04-22 10:09:14.468] [RED4ext] [info] Codeware has been unloaded
    [2023-04-22 10:09:14.469] [RED4ext] [info] 4 plugin(s) unloaded
    [2023-04-22 10:09:14.488] [RED4ext] [info] RED4ext has been shut down
    
    Cyberpunk 2077\red4ext\plugins\ArchiveXL\ArchiveXL.log
    [2023-04-22 10:08:06.654] [info] Scanning for archive extensions...
    [2023-04-22 10:08:06.654] [info] Reading "something.xl"...
    [2023-04-22 10:08:06.667] [info] Configuration completed.
    
    [2023-04-22 10:08:11.443] [info] |Localization| Initializing voiceover index...
    [2023-04-22 10:08:11.444] [info] |Localization| No voiceover maps to merge.
    
    [2023-04-22 10:08:11.469] [info] |Localization| Initializing translations for "en-us" language...
    [2023-04-22 10:08:11.469] [info] |Localization| Processing "something.xl"...
    [2023-04-22 10:08:11.469] [info] |Localization| Merging entries from "your\mod\name\translations.json"...
    [2023-04-22 10:08:11.474] [warning] |Localization| Some translations merged with issues.
    
    [2023-04-22 10:08:11.512] [info] |Localization| Initializing subtitles for "en-us" language...
    [2023-04-22 10:08:11.512] [info] |Localization| No subtitles to merge.
    
    [2023-04-22 10:08:17.489] [info] |Journal| Journal tree is initializing...
    [2023-04-22 10:08:17.489] [info] |Journal| No entries to merge.
    
    [2023-04-22 10:08:18.381] [info] |FactoryIndex| Initializing factory index...
    [2023-04-22 10:08:18.382] [info] |FactoryIndex| Processing "something.xl"...
    [2023-04-22 10:08:18.382] [info] |FactoryIndex| Adding factory "your\mod\name\factory.csv"...
    [2023-04-22 10:08:29.926] [info] |FactoryIndex| All factories added to the index.
    
    [2023-04-22 10:08:29.863] [info] |Streaming| World streaming is initializing...
    [2023-04-22 10:08:29.863] [info] |Streaming| Processing "your_streaming_sector.xl"...
    [2023-04-22 10:08:29.863] [warning] |Streaming| Streaming blocks merged with issues.
    
    [2023-04-22 10:08:35.585] [info] |Localization| Initializing lipsync maps for "en-us" language...
    [2023-04-22 10:08:35.585] [info] |Localization| No lipsync maps to merge.
    Cyberpunk 2077\red4ext\plugins\TweamXL\TweakXL.log
    [2023-04-22 10:08:16.150] [info] Scanning for tweaks...
    [2023-04-22 10:08:16.150] [info] Reading "something.yaml"...
    [2023-04-22 10:08:16.416] [error] Items.a_wip_mod.your_item.icon.atlasPartName: Invalid value, expected CName.
    [2023-04-22 10:08:16.416] [warning] Items.a_wip_mod_appearance: Cannot clone Items.a_wip_mod_appearance, the record doesn't exists.
    [2023-04-22 10:08:16.416] [info] Importing tweaks...
    [2023-04-22 10:08:17.064] [info] Import completed.
    [2023-04-22 10:08:17.066] [info] Executing scriptable tweaks...
    [2023-04-22 10:08:17.066] [info] Executing "EquipmentEx.PatchOriginaltems"...
    [2023-04-22 10:08:17.307] [info] Executing "EquipmentEx.PatchCustomItems"...
    [2023-04-22 10:08:17.422] [info] Executing "EquipmentEx.RegisterOutfitSlots"...
    [2023-04-22 10:08:17.450] [info] Executing "EquipmentEx.RegisterAppearanceSuffixes"...
    [2023-04-22 10:08:17.451] [info] Execution completed.
    [2023-04-22 10:08:17.451] [warning] Items.aModdedItem.aTweak refers to a non-existent record or flat.
    

    BaseColorScale

    Colour as x/y/z values (color picker blend file herearrow-up-right)

    Refraction Depth

    float 0.0-10.0: Control refraction amount here.

    FresnelBias

    float, 0.0 - 2.0: How much does the glass behave like a lens (that is, warp the picture behind it)?

    BlurRadius

    float, 0.0 - 1.0: Blur amount when looking through the glass

    VertexColorTint

    float, 0.0 - 1.0: Transparency of vertex colour tint

    Emissive

    0

    Roughness

    0.200000003

    Metalness

    0

    white file
    if you have one
    Index of refractionarrow-up-right
    We need to troubleshoot your import.

    hashtag
    Does the Wolvenkit preview update?

    Yes: The problem is somewhere else, the mesh import works fine.

    No: Is there an error message in the console?

    hashtag
    Is there an error message in the console?

    Yes: Here's where your problem is. Make the error message go away by checking the rest of this guide.

    No: Do you have extra shapekeys?

    hashtag
    Do you have extra shapekeys?

    In Blender, check your shapekey section. It should look like the green box (or be empty).

    If it does not, you need to apply any extra shapekeys, because Wolvenkit will ignore them on reimport. Expand the box below to find out how.

    chevron-rightGet the edit out of the shapekeyshashtag

    Do the following things:

    1. Duplicate your mesh: Select it in Object Mode, then press Shift+D

    2. Click the arrow under the - button next to the shapekey box

    3. Click New Shape from Mix

    4. Now, delete all the other shapekeys (select them and click -)

    5. Delete your new shapekey as well. That will apply it.

    6. In Object Mode, select the duplicate of your mesh (that still has all the shapekeys)

    7. Delete your extras. That will reset it to an un-refitted shape.

    8. Go to Edit Mode (hotkey: tab)

    9. Select all vertices (hotkey: A)

    10. Delete all vertices (hotkey: X)

    11. Go back to Object Mode (hotkey: tab)

    12. Select your shapekey-less refitted mesh

    13. Select your empty mesh

    14. Join them together (hotkey: ctrl+J)

    If everything went well, you should now have a mesh with Wolvenkit-compatible shapekeys!

    hashtag
    Tangents

    You get an error message like this:

    Message: One or more Geometry in provided GLTF doesn't contain Tangents data. Tangents must be included within glTF files.

    hashtag
    Use the Cyberpunk Blender IO Plugin to export

    Quick, easy, recommended: the plugin will tell you exactly what's broken and how to fix it. Download it herearrow-up-right.

    Alternatively, you can check by hand:

    chevron-rightExpand if you like to sufferhashtag
    1. Check if your mesh is triangulated. If you aren't sure whether or not it is, go into edit mode, select everything, and go to Face -> Triangulate (Shortcut: Ctrl+T)

    2. Check your export settings and make sure that you have the correct box checked upon export:

    3. If the error persists, check that each of your submeshes has an UV map: If not, you have to create one (and probably UV unwrap your mesh).

    hashtag
    Bone: neutral_bone not present in export Rig(s)/Import Mesh

    The neutral bone is created by the glb export plugin when there are vertex groups without a parent bone. WolvenKit will not let you import if there is a mismatch.

    circle-info

    Your armature in Blender needs to have a bone for every vertex group in the submesh, and there must not be vertices with no vertex group assigned.

    You then need to import over an already-existing .mesh file which supports all those bones.

    The following two scripts help you finding and/or fixing the problem. Switch to the Blender Scripting perspective and create a new, blank text file. Then, toggle the Blender system console to see their output (Blender: Window -> Toggle System Console)

    Missing bones

    To find which bones you're missing, you can use this scriptarrow-up-right, which will print their names to console.

    Vertices without weights

    You can use this Python scriptarrow-up-right to either select or auto-delete vertices with no weight.

    hashtag
    Option 1: Fuck those bones

    You can import the mesh with Noesis, which will not do any of these checks. For that, you need to import/export via .fbx.

    circle-exclamation

    Since noesis expects differently-named submeshes under the root armature, you'll want to export the mesh via noesis, join your changed meshes on those under Noesis_Root, and import it again. Caution: You'll have to rotate your armature in this case.

    triangle-exclamation

    While this will get your mesh into the game, the missing bones mean that parts of it won't move the way you expect it!

    hashtag
    Option 2: The Netrunner suit

    The armature from the following mesh has a lot of bones and will often resolve most of your issues:

    Try using the Netrunner body as a base for import. You can use Wolvenkit's feature for this.

    circle-info

    To create more submeshes, you can either

    • Try the import setting

    • create more submeshes with the correct naming in Blender, e.g. submesh_01_LOD_1, submesh_02_LOD_1

    hashtag
    Option 3: Transferring bones

    It's time to play 3d puzzle and assemble bones from multiple sources. Unfortunately, there is no simple solution for this yet. You need to

    • find the bones that your armature is missing in other meshes

    • transfer them arrow-up-rightinto your import target mesh

    • export all the extra meshes into Blender

    • , which you should do with the linked Python script

    • and finally reimport everything back into Cyberpunk.

    hashtag
    Everything else

    WolvenKit will not import a mesh that has any kind of issues. Those include, but are not limited to:

    • non-flat faces

    • zero faces/edges

    • loose vertices/edges

    There is no guarantee that any of the steps below will actually solve your problem.

    hashtag
    Edit Mode

    In Edit Mode, you can find a few commands in the Mesh -> Clean Up menu:

    • Delete Loose

    • Split Non-Planar Faces

    • Split Concave Faces

    • Merge By Distance

    circle-exclamation

    If you select your whole mesh, Merge By Distance will merge the individual parts, obliterating the seams. To avoid that, make sure to do them one after another: - Select a vertex/edge/face in Edit Mode - hold down Ctrl Num+ to select everything connected - use Merge By Distance before proceeding to the next part of your mesh

    hashtag
    It's still broken

    Your last option is the 3d print toolarrow-up-right to (hopefully) find out what is wrong with your mesh.

    Fortunately, the tool is free, easy-to-use and already included in your Blender.

    circle-info

    If you don't have a 3d print entry in the tools of your 3d viewport, you might need to enable the plugin in Blender's settings first.

    Use the 3d print tool in edit mode to directly fix your issues
    • Zero Edges: Those are bad, fix them (click on them, then press X and just delete them)

    • Non-Flat Faces: Those are even worse, as they can make the game crash. You need to split them up until they are flat, or investigate the surrounding edges/vertices to see what's going wrong here.

    • Zero Faces: Only fix if you have <100 of them — the tool doesn't always identify them correctly (the mesh analyzed above was h0_000_pwa_c__basehead, which is absolutely fine).

    hashtag
    In-Game

    hashtag
    My mesh won't show up

    hashtag
    In Blender

    • make sure that you have exactly one UV map

    • check Face Orientation — most materials won't show backfaces (red). You can import submeshes with the suffix _doubled to make WolvenKit generate them for you, like it does with hair.

    hashtag
    In Wolvenkit

    When saving your mesh, check the console for errors. In version >= 8.9.0, a basic material validation is taking place. If you don't see any warnings, make sure that the resource paths in your mesh are correct and that you aren't loading invisible textures.

    hashtag
    My mesh won't move at all

    Some meshes require an entAnimatedComponent along with the garment's component. Check here for details.

    hashtag
    Changes from Blender are missing in-game

    For example, you have moved something, but the change doesn't show in the game: this most often happens when you change things around in edit mode, since they are stored as object properties rather than applied immediately.

    1. Select the object in edit mode

    2. Press Ctrl+A

    3. Select "All Transforms" to apply all transformations.

    hashtag
    My mesh is moving weirdly

    E.g. you've changed a shape, but now everything moves at an offset.

    As stated in the importing/exporting guide, it is easy to fuck up the mesh's properties, and this is most likely what happened. The easiest way to "fix" this is to apply your shape deformation to the original object.

    hashtag
    Replacing the vertices

    1. Import the original object into Blender, without any of your changes. If you have to, reexport the working file from Wolvenkit.

    2. In Object Mode, select all meshes under the reimported armature (the original ones).

    3. Switch to Edit Mode and select all vertices (Ctrl+A)

    4. Delete them (x, vertices, Return)

    5. Go back to Object mode

    6. For each of your edited objects:

      1. select the submesh that you edited (submesh_00_LOD_1)

      2. select the empty submesh from the reimported armature (submesh_00_LOD_1.001)

    7. You can now delete the empty armature and export the other one for re-import.

    After joining the submeshes

    hashtag
    My mesh is completely warped

    If you have added the item via ArchiveXLarrow-up-right or swapped out an in-game item with something that belongs in a different slot (e.g. a jacket on the head slot), you might have to fix the corresponding entity file.

    hashtag
    My mesh is string cheese/exploding vertices/a puddle on the floor

    Looks like we have guests from beyond the Blackwall

    hashtag
    GarmentSupports

    circle-info

    To check if it's this, equip only the edited item. If it breaks as soon as you put on another clothing item with garment supports, then the solution below applies.

    hashtag
    Option 1 (likely to work): Import your mesh with garment supports

    On the .glb import setting, check the "" box.

    hashtag
    Option 2 (guaranteed to work): delete GarmentSupport from the mesh

    This will break automatic shrinking when you put clothes over your item. But hey, if the alternative is a broken mess…

    2

    128

    256?

    2

    -9_12_0

    -5_6_0

    worldBendedMeshNode

    worldBuildingProxyMeshNode

    Proxy mesh for building at further distance. Textures are normally embedded so cant export automatically currently.

    worldCableMeshNode

    worldCollisionNode

    partial support, defines 3 types of collision, box, capsule and mesh. Can import the first 2.

    worldCompiledCommunityAreaNode_Streamable

    worldCompiledSmartObjectsNode

    worldDestructibleEntityProxyMeshNode

    worldDeviceNode

    worldEffectNode

    worldEntityNode

    Defines an object defined by an ent file (door, vending machine, fan etc)

    worldEntityProxyMeshNode

    worldFoliageNode

    worldGINode

    worldGIShapeNode

    worldGISpaceNode

    worldGenericProxyMeshNode

    Proxy mesh for objects at distance.

    worldGuardAreaNode

    worldInstancedDestructibleMeshNode

    as worldInstancedMeshNode but breakable

    worldInstancedMeshNode

    Instanced copies of a static mesh uses a worldTransformBuffer in the nodeData to define the number of copies and positions of all the copies

    worldInstancedOccluderNode

    worldInterestingConversationsAreaNode

    worldInteriorAreaNode

    worldLightChannelShapeNode

    worldLightChannelVolumeNode

    worldPerformanceAreaNode

    worldPhysicalDestructionNode

    worldPopulationSpawnerNode

    worldReflectionProbeNode

    worldRoadProxyMeshNode

    Road Mesh.

    worldRotatingMeshNode

    worldStaticDecalNode

    Static Decal, nodeData has x,y,z not sure how engine decides what to project to

    worldStaticFogVolumeNode

    worldStaticMeshNode

    Static mesh, nodeData has position data

    worldStaticOccluderMeshNode

    worldStaticParticleNode

    worldStaticSoundEmitterNode

    worldTerrainCollisionNode

    worldTerrainMeshNode

    The ground, textures are embedded so cant export automatically currently.

    worldTrafficCompiledNode

    worldTriggerAreaNode

    worldSmartObjectNode

    worldStaticLightNode

    worldInteriorMapNode

    worldAdvertisementNode

    worldMeshNode

    Credits to EzioMavericks for the video
    t0_005_pwa_body__t_bug.mesh
    t0_005_pma_body__t_bug.mesh
    Redscriptchevron-right
    RED4ext Plugin Devchevron-right
    Logo
    Logo
    Join the objects (Ctrl+J). This will fuse your edited mesh into the empty one, retaining all of the original's properties.
    merge their rigsarrow-up-right
    Logo

    Vortex Mod Manager

    Installing and setting up Vortex Mod Manager, the recommended way to install, manage, and upgrade mods.

    triangle-exclamation

    hashtag
    Windows 10 or higher is required to use Vortex mod manager. If you are not using Windows, see our Manual Install page.

    Vortex is a multi-game mod manager developed for and by NexusModsarrow-up-right, the website where most are hosted. Here you can download mods manually or with Vortex and keep track your download history.

    circle-info

    To use Vortex, you need an account there. If you don't have one, you can sign up – don't worry, it's free.

    hashtag
    Why do I need this?

    Technically speaking, you don't. You can or use (but without our support, sorry, choom). However, Vortex for Cyberpunk is the most beginner-friendly way of managing your mods and will save you a lot of hassle.

    circle-info

    If you have PTSD from modding Skyrim or Fallout with Vortex, be assured that Vortex for Cyberpunk is integrated extremely well. Go ahead, give it a try!

    If you run into issues with Vortex that aren't addressed in this guide, you can contact or join our and find (volunteer) help in the #vortex-support channel.

    hashtag
    TL;DR

    • Your staging folder must be on the same drive as your game installation

    • Your staging folder must not be your game install directory

    • Vortex has . If you put wrong options, mods can go brr.

    hashtag
    Download

    Once you are signed in on Nexus, it's time to download Vortex Mod Manager.

    circle-info

    If you can download it on your own, you can skip to the or section of this guide.

    1. Click , it will take you directly to the download page

    2. Select the "Manual Download" option on the first entry:

    1. You'll now see a download page. If you don't have Nexus Premium,

      1. Select "Slow Download"

      2. Wait through the five seconds cooldown

    hashtag
    Installation

    Once you run the installer, you may get a prompt from Windows, asking you if you want to allow this app to make changes to your device. Select yes, and then Vortex will begin its install.

    If you chose the custom install location option, you will a prompt asking you where you would like to install Vortex to. Further instructions will assume an install location of C:\Program Files\Black Tree Gaming Ltd\Vortex

    Congrats! You've finished installation! Vortex should launch automatically and you can now move onto setup.

    hashtag
    Setup

    Here is where we get into the weeds, the particulars of Vortex setup before we can use it.

    circle-info

    If you can setup Vortex on your own, skip to the section of this guide. (Why are you reading this?)

    hashtag
    Logging into Nexusmods

    If you are already logged in, proceed to the next section ""

    1. If Vortex didn't open by itself, open it from the start menu.

    2. Log into Nexusmods by clicking on the red circle in the top right of your client

    1. You will see either a browser window or an error message that Vortex couldn't open one – in this case, copy the URL in the box at the bottom and open the browser window yourself

    1. Optional: log into nexusmods (if you aren’t)

    2. Allow Vortex to access your Nexus account by clicking "Authorize":

    1. Click "Log in to Vortex":

    1. Instead of the red icon, you should now see your profile picture and username from nexusmods.

    hashtag
    Vortex: Adding Cyberpunk

    This section will tell you how to add Cyberpunk to Vortex's managed games.

    1. On the sidebar on the left side of your dashboard, click "Games"

    2. In the page that now shows, type "Cyberpunk" into the search bar

    3. Hover over its thumbnail and click "manage"

    1. The extension should download automatically

    2. You need to restart Vortex – agree to the prompt.

    3. Optional: If Vortex was able to auto-detect your game install, you are done now and can proceed with the section.

    Vortex can now manage your game! Proceed to the next section, .

    hashtag
    Settings

    This section tells you how to set the recommended settings in Vortex, grouped by tab. If a tab isn't covered, there are no recommendations and you can do what you like.

    Start by clicking "Settings" in the left sidebar of your Vortex Dashboard, then select the first tab.

    hashtag
    Interface

    The settings here tell Vortex what to do with your mods as it gets them.

    Here's a screenshot of the recommended settings with an explanation below:

    To put a mod in the game, Vortex requires you to complete four steps. The folders for these are configured in the .

    1. Downloading: Putting the mod into Vortex's download cache, either by clicking the button on Nexus or by dragging-and-dropping an archive onto the client. The archive will now live in Vortex's download directory.

    2. Installing: Unpacks the mod and copies it to Vortex's staging directory.

    3. Enabling: This mod should be included in the next deploy

    In theory, you can configure Vortex so that you hit the download button on the website and it will download, install, enable and deploy for you. The downside with that is that you might not notice errors as they pop up in the background, which is why we recommend doing that one single click by yourself.

    hashtag
    V2077 Settings

    circle-exclamation

    This setting controls the automatic REDmod conversion. For an explanation of what that means, see .

    This only has one setting, but it's recommended to keep it toggled "on" unless otherwise directed specifically by install instructions on a mod.

    hashtag
    Mods

    This section controls Vortex file storage. It's mostly a matter of personal preference and disk space availability on your end.

    hashtag
    Mods: Staging

    triangle-exclamation

    This folder MUST be on the same drive as your Cyberpunk.exe, or the deploy might fail.

    Where Vortex keeps its mods, ready to deploy them into the Cyberpunk game directory.

    The default folder location is {USERDATA}{game}\mods, which resolves to C:\Users\YourUsername\AppData\Roaming\Vortex\cyberpunk2077\mods

    You can keep it as this, or you can make a folder for it in a place you can easily access it, like C:\Games\Mods. Wherever you decide, you want to make sure it is accessible and you can remember it in case of issue.

    hashtag
    Mods: Download

    Where Vortex stores downloaded archives. Can be wherever you like, even on a different drive.

    We recommend keeping an extra folder in there for manually downloaded mods, as Vortex can manage these as well – you just have to drag-and-drop them into the client.

    hashtag
    Dashboard

    Finally, we will return to our dashboard.

    No matter what settings you chose in interface, you should still have a section labeled "Tools", where at this point you should at least see four things, the last of which will be disabled:

    It can be helpful here to toggle "Enable Toolbar" above it so that you can always see them wherever you are in Vortex.

    These are different options to launch the game via Vortex.

    circle-check

    Click on the three dots next to "Launch Game with REDmods Enabled" and set it as primary. This will make Vortex pick this option when you click on the Cyberpunk 2077 picture on the far left.

    "REDmod Deploy Latest Load Order" is also incredibly useful if your mods are acting up: Just using the "deploy" button on the main management page can fail – by using this button, you can debug your REDmod deployment.

    hashtag
    Use

    You're almost to the mod page, but first, you need to get some mods. Let's start by installing the , which contains everything that other mods require.

    1. Click on "Collections" in the sidebar

    2. Select "Discover more collections."

    3. Wait until the selection page pops up.

    This will open a window in Vortex, with the thumbnail and name of the collection, which profile you want to install it to if enabled, and any additional install instructions.

    1. Click "Install Now": This collection has no extra instructions.

    2. You will get a new window for the first mod: click the "Download" button

    1. The Nexus "Slow/Fast" download button for the corresponding version will open. The correct version has been picked by the mod author.

    2. Click "Slow Download" (unless you're a premium user)

    3. Rinse and repeat this process until you have all mods in the collection.

    circle-info

    As this is a collection, each mod will – regardless of our settings – be installed as its downloaded. As they deploy, you will see a screen pop up with a lot of code flowing by. Don't worry, this is just Vortex deploying your REDmods.

    Before you play your game, check the bell in the top right corner next to your profile picture. Click it to expand the notifications. What you want to see is all green or blue--any red or orange issues will need to be resolved before starting your game.

    At this point, assuming your notifications are all green or blue, you can safely play your game. However, you won't notice many changes, as the framework mods aren't doing much on their own...

    hashtag
    Starting up the game

    circle-check

    The game should always launch with just the core frameworks enabled. If it doesn't, head over to the and make sure that you can launch and start a new game.

    Since this is your first time launching the game with mods, you should see a prompt to bind an overlay key for Cyber Engine Tweaks (CET). (If it does not, check .) You can assign whatever you like, this button will hide or unhide the CET overlay.

    While you have it open, you can navigate to the "Settings" option, and select "Skip Start Menu" and "Suppress Intro Movies" (if you don't want them). The setting will become active after the next restart.

    Make sure to click save to keep your choices.

    hashtag
    Downloading a mod with Mod Manager Download enabled

    Let's get a mod that'll change something. For this example, we've picked KS UV framework, which will change V's feet.

    circle-info

    Usually, you want to start at the description page to see the exact file that you need to download. For a detailed guide on the parts of a mod page and how to navigate Nexus, see our Downloading Mods section.

    For now, you can simply go straight to the page of the KSUV mod.

    So that you can see the changes in-game immediately, to know if you've installed correctly, you will download the first option, "Recommended. UV Framework New High Heel Feet with Custom Textures - Classic Install". This will change the feet visually now, and allow for custom textures later. Click "mod manager download". A window will pop up telling you that you need another mod "" installed before downloading this. You can do this after downloading this mod; your feet just won't fit in any vanilla shoes until you do. For now, click download to continue to the final download page, where you will select "slow".

    Once your timer counts down, it should begin downloading in Vortex. The setting "Bring Vortex to foreground when starting downloads in browser" is enabled by default, so if you didn't change it, the Vortex window should pop up now. Otherwise, click over to it, and you should be able to see a 1 next to Downloads in the sidebar.

    Assuming you're using recommended settings, the mod won't have installed itself, so you will click on "Mods" in the left sidebar. You should already have mods installed, enabled, and downloaded from the collection. Scroll down until you locate the blue "Never Installed" button next to the mod you want to install. Click it once, and if you're using recommended settings, it should enable and deploy automatically.

    For this mod, a window will pop up, warning you that it may need manual adjustment, due to multiple .archive files. These are important windows to pay attention to, because many mods that have multiple files do require manual adjustment. This information is usually found on the description page, which is why you want to read it carefully before download.

    For this mod, however, that is ok, and intended. You may simply click "Understood".

    To test your new body framework mod, simply select "New Game" and pick a female-bodied V. If the feet are flat, it is not installed correctly. If they look a little funny, like barbie feet, you've done it right.

    hashtag
    Downloading a mod manually to manage in Vortex

    Let's install a mod without a mod manager download button and manage it in Vortex to show you how it works.

    circle-info

    Mod authors sometimes disable mod manager integration for a variety of reasons. Usually, Vortex can handle these files just fine – if not, it will complain about it, and loudly so.

    1. Click , which will take you straight to the files tab.

    2. Select whichever one you like, like the "Arey", third option down.

    3. Optional: Check what it looks like

    1. Scroll down to the third option, Arey Hair PHYSICS ENABLED The file doesn't have any particular instruction.

    2. Optional: view the file contents – they sometimes contain helpful information:

    1. Manually download the file – you know the drill by now.

    2. Return to the Vortex "mods" page. You have two ways to install the mod now:

      • Drag-and-drop the downloaded file on your client, or

    1. You should now have successfully installed the file.

    2. If you have used the recommended settings, it should enable and deploy automatically. Otherwise, you need to do that yourself.

    3. Start the game

    If your hair is two big buns--you did it! If it's just the normal single bun with braids, go back and try again.

    Congratulations! You know how to use Vortex!

    Optional, depending on your browser: Select your download location for files that you don't want to keep

  • Wait until the installer is downloaded

  • Run the installer: either

    • select the file from your download history (Ctrl+J for most browsers)

    • go to your download directory and double-clicking the file

  • Proceed with the steps in the next section

  • You will now see a popup complaining about "Game support not installed". Don't panic, this is expected!
  • Click the "download" button at the bottom of the window to install the Vortex plugin for Cyberpunk:

  • Vortex will tell you that it couldn't detect your game install and prompt you to set it manually. Click "Continue".

  • In the explorer window that now pops up, navigate to the folder containing your Cyberpunk exe (e.g. C:\Games\Cyberpunk 2077\bin\x64)

  • Once you are in the right folder, click "Select Folder"

  • Deploying: The mod has been copied from Vortex's staging directory to your Cyberpunk game directory.

    Select Core Modsarrow-up-right and click "Add to Vortex".

    Click on the "images" tab (to the right of "files")

  • Find the picture named "Arey"

  • Navigate back to the "Files" tab

  • use "Install From File" in the orange bar and select the file you just downloaded in the explorer window that pops up

    Head to the character creator and create a female-bodied V
  • Check hair 48 – normally, it looks like this:

  • Deploy mods when Enabled

    Automatically deploys each mod as you enable it, merging step 3 and 4. We recommend enabling this, as it saves you a click.

    Install Mods when downloaded

    Automatically completes step 2 when you download a mod. We recommend disabling this as it lets you address issues and popup one after the other

    Enable Mods when installed

    Automatically completes step 2 when you install a mod. We recommend enabling this, as it saves you a click.

    Run Vortex when my computer starts

    Starts Vortex with Windows - disable or enable at your discretion

    Cyberpunk 2077 modsarrow-up-right
    herearrow-up-right
    install mods manually
    Mod Organizer 2arrow-up-right
    Nexus supportarrow-up-right
    Discordarrow-up-right
    a lot of options
    Install
    Setup
    this linkarrow-up-right
    Settings
    Adding Cyberpunk
    Settings
    Settings
    Mods section
    here
    core framework collectionarrow-up-right
    troubleshooting page
    here
    Filesarrow-up-right
    -KS- Vanilla Shoes for High Feetarrow-up-right
    this linkarrow-up-right
    The initial dashboard on launch
    If your browser doesn't open automatically, copy the url starting with users.nexusmods in the box
    Allow Vortex to authorise your account
    Log into Vortex and close the page
    The games page, with the extension dialogue open
    Recommended automation settings
    This option can also show up on the dashboard.
    Mod staging folder default location
    The default tools on the dashboard.
    Collection installation confirmation window
    The download window for a mod in the collection.
    Notifications are ordered with most recent at the top--which means there was a successful REDmod deployment notification AFTER the failure, so the failure can be safely dismissed.
    CET overlay on the main menu screen on the Settings option.
    The example mod's "Mod Manager Download" button
    The warning window that pops up in Vortex for mods with more than one .archive file
    The left is what you're shooting for--if you see the right, the mod isn't working.
    Arey hair by Wingdeer
    The naming convention tells us that it's a hair replacer from Wingdeer for the female body gender, changing hair 48, There's also a preview picture included.
    The "Install From File" button
    Vanilla hair 48
    Arey hair in place of hairstyle 48

    Cheat Sheet: Hair

    Overview of hair related things

    hashtag
    Summary

    Created by @manavortex Published November 04 2022 Updated February 3 2023

    circle-info

    If you want to change an NPC's hair instead, you can check or guide.

    circle-check

    To look up hairstyles in more detail, you can use .

    hashtag
    Name of meshes by index

    triangle-exclamation

    These names correspond to the mesh files.

    • To find a hair's .app file, search the correct mesh in Wolvenkit, then right-click on it and select "find files using this".

    circle-exclamation

    List has been confirmed working before 1.6, but might need updating (especially since new hair was added)

    hashtag
    Colour in files by index

    Colour in CC
    Name in Files

    hashtag
    Hair .ent files

    Hairs and all their components are assigned and defined via . You can find them here:

    The last number in the file name matches the first number in the :

    e.g., if you wanted to edit the entity file for female V's hair 28 hh_083_wa__ponytail_01, you could search for

    To find a hair's root entity, repeat the same process with its .app file

    04

    hh_089_ma__thompson

    hh_028_wa__corpo_bun

    05

    hh_090_wa__alt

    hh_075_ma__peralez

    06

    hh_078_wa__evelyn

    hh_036_ma__high_tight

    07

    hh_035_ma__mohawk_tall

    hh_059_wa__voodoo_02

    08

    hh_036_ma__high_tight

    hh_030_ma__punk_idol

    09

    hh_082_ma__afro_bun

    hh_062_ma__slick_back

    10

    hh_079_wa__denny

    hh_085_ma__takemura

    11

    hh_091_wa__dakota

    hh_037_ma__gungho

    12

    hh_063_wa_messy_bob

    hh_039_wa__punk_shaved

    13

    hh_042_wa__topknots

    hh_051_wa__judy

    14

    hh_999_ma__buzz_cap

    hh_999_ma__buzz_cap

    15

    hh_008_ma__demo

    hh_025_ma__pompadour

    16

    hh_011_wa__demo

    hh_008_ma__demo

    17

    hh_029_wa__misty

    hh_011_wa__demo

    18

    hh_040_wa__pixie_bob

    hh_026_ma__rattail

    19

    hh_041_wa__valentino

    Hh_027_ma__scavenger

    20

    hh_044_wa__classic

    hh_031_mb__morgan_blackhand

    21

    hh_045_ma__short_spiked

    hh_032_ma__ripper_doc

    22

    hh_051_wa__judy

    hh_040_wa__pixie_bob

    23

    hh_060_wa__voodoo_03

    hh_047_wa__swirl_pomp

    24

    hh_064_wa__bob_fringe

    hh_048_ma__dual_braids

    25

    hh_068_wba__animals_03

    hh_058_wa__voodoo_01

    26

    hh_081_wa__buns_02

    hh_060_wa__voodoo_03

    27

    hh_083_wa__ponytail_01

    hh_061_ma__midlength_wavy

    28

    hh_083_wa__ponytail_01

    hh_065_wa__afro_knots

    29

    hh_077_wa__nomad_02

    hh_068_wba__animals_03

    30

    hh_088_wa__corpo_bob

    hh_073_ma__nomad_01

    31

    hh_118_wa__gillean

    hh_082_ma__afro_bun

    32

    hh_115_wa__alanah

    hh_089_ma__thompson

    33

    hh_121_wa__t_bug

    hh_103_ma__maelstrom_spikes

    34

    hh_151_wa__judy_variation02

    hh_120_ma__arasaka_bun

    35

    hh_006_ma__demo

    hh_007_ma__demo

    36

    hh_083_wa__ponytail_01

    hh_112_ma__kicinski

    37

    hh_093_mba__sumo

    hh_113_ma__iwinski

    38

    hh_085_ma__takemura

    hh_045_ma__short_spiked

    39

    hh_054_wa__rogue_young

    hh_094_ma__saul

    40

    hh_049_ma__thiago

    hh_049_ma__thiago

    41

    hh_039_wa__punk_shaved

    hh_122_ma__roy

    42

    hh_103_ma__maelstrom_spikes

    hh_093_mba__sumo

    43

    hh_106_wa__ponytails

    hh_006_ma__demo

    44

    hh_140_ma__short_afro

    hh_140_ma__short_afro

    45

    hh_141_ma__afro

    hh_141_ma__afro

    46

    hh_142_wa__afrohawk

    hh_142_wa__afrohawk

    47

    hh_143_ma__flat_top

    hh_143_ma__flat_top

    48

    hh_144_wa__afro_braid_bun

    hh_144_wa__afro_braid_bun

    49

    hh_146_ma__dread_undercut

    hh_146_ma__dread_undercut

    50

    hh_999_ma__buzz_cap

    hh_999_ma__buzz_cap

    03_ginger_copper

    5

    04_teal_ombre

    6

    06_black_carbon

    7

    07_blonde_golden

    8

    08_blonde_dishwater

    9

    09_blue_sapphire

    10

    10_brown_ombre

    11

    11_red_apple

    12

    12_gray_gunmetal

    13

    13_ginger_strawberry

    14

    14_teal_ash

    15

    15_pink_magenta

    16

    16_pink_rose

    17

    17_blue_steel

    18

    18_blue_red_ombre

    19

    19_cold_white

    20

    20_cyberpunk_yellow

    21

    21_goblin_green

    22

    22_liliac

    23

    23_mermaid_aquamarine

    24

    24_purple_ombre

    25

    25_black_salt_n_pepper

    26

    26_green_toxic

    27

    27_brown_medium

    28

    28_blue_sky

    29

    29_citrus_yellow

    30

    30_dark_purple

    31

    31_green_orange

    32

    32_liliac_ombre

    33

    33_phoenix_fire

    34

    34_purple_blonde

    35

    35_silver_rose

    01

    hh_033_wa__player

    hh_145_ma__v_short

    02

    hh_059_wa__voodoo_02

    hh_053_ma__kerry_eurodyne

    03

    hh_034_wa__militech_agent

    1

    05_brown_liquorice

    2

    01_blonde_platinum

    3

    02_red_merlot

    this
    this
    NoraLee's NPV part pickerarrow-up-right
    .ent files
    .mesh file name

    hh_035_ma__mohawk_tall

    4

    base\characters\head\player_base_heads\appearances\entity\hairs 
    player_base_heads > hairs > hairs_083

    Cheat Sheet: Photo Mode

    Photo Mode Cheat Sgeet

    This page acts as a look-up table for photo mode. For theoretical knowledge, check the Animationssection, for more hands-on advice on creating own photo mode stuff, see Animations/Poses in the Modding Guides section.

    hashtag
    .anims

    You can find all photo mode animation sets in the following folder:

    You can find the following files there:

    Entity
    Action
    Idle
    Face

    hashtag
    Poses and files

    hashtag
    idle

    The Photo Mode idle animations are named and indexed as follows:

    index
    animation name
    translation

    Weapons

    We need guns, lots of guns.

    Weapons dont seem to have ent files that tie them together in quite the same way as most things they do however have app files that have the component lists, so who cares?

    (Just to be difficult some rifles are referenced by a random file in the quests folder called empty_entity.ent, and the katanas and knives seem to have ents) If your wanting to import to Blender Sim created a bunch of dummy ent files to let you import things:

    Generally speaking the files are in \base\weapons then organised by type and then name. But searching an app file then right clicking and find used files is faster than browsing, so here are the file names.

    Weapon
    App or Ent File
    Ent file
    base\animations\ui\photomode\
    tick the boxarrow-up-right
    herearrow-up-right
    Select Base Mesharrow-up-right
    Preserve Submesh Orderarrow-up-right
    Import Garment Supportarrow-up-right

    photomode__male__idle.anims

    photomode_male_facial.anims

    Johnny

    -

    photomode__johnny__idle.anims

    photomode_johnny_facial.anims

    3

    idle_stand_03

    C'mere, Gonkbrain

    4

    idle_stand_04

    Peace & Love

    5

    idle_stand_05

    Don't Even

    6

    idle_stand_06

    Serious 'Tude

    7

    idle_stand_07

    What Do We Have Here?

    8

    idle_stand_08

    Sir, Yes, Sir!

    9

    idle_stand_09

    Dead End, Amigo

    10

    idle_leaning_01

    Waiting for Godot

    11

    idle_posing_01

    Who's Number One?

    12

    idle_posing_02

    Wanna Try Me?

    13

    idle_laying_01

    Like One of Your French Girls

    14

    idle_cigarette_01

    The Pensive Philosophizer

    15

    idle_cigarette_02

    Break Time

    16

    idle_cigarette_03

    Last Drag Before the Gig

    17

    idle___mariner_moon

    In the Name of the Moon, I'll Punish You!

    18

    ???

    V's Bizarre Pose

    19

    idle_sitting_crossed_01

    Needed a Breather

    20

    idle_squat

    Slav Squat

    21

    idle_johnny_breathtaking

    You're Breathtaking!

    22

    idle___drake_no

    Hard Pass

    23

    idle___drake_yes

    Now You're Talking!

    24

    idle___fist_in_hand

    Got a Problem?

    25

    idle___joker_stairs

    Joker Stairs

    26

    idle___military_salute

    For the Glory of the Motherland!

    27

    idle___na_kortah

    On the Trail

    28

    idle___praise

    V for Victory

    29

    idle___runthejewel

    Run the Jewels

    30

    idle___selfie

    Selfie Time

    31

    idle___talk_to_the_hand

    Talk to the Hand

    32

    idle__baseballbat

    With a baseball bat

    33

    idle__fists

    I Know Kung-Fu

    34

    idle__hammer

    With a Hammer

    35

    idle__handgun

    My name is V. Just V.

    36

    idle__katana

    With a Katana

    37

    idle__knife

    With a Knife

    38

    idle__knuckles

    Knuckle Sandwich

    39

    idle__lmg

    With an LMG

    40

    idle__rifle

    With a Rifle

    41

    idle__shotgun

    With a Shotgun

    42

    idle__smg

    With an SMG

    43

    idle_cp2020_alt

    Alt (circa 2020)

    44

    idle_mammoth_fighter

    Black Mastodon

    45

    idle_triceratops_fighter

    Blue Triceratops

    46

    idle_facepalm

    Facepalm

    47

    idle_eddie

    Rhapsody of a Rockerboy

    48

    idle_cold_army

    Cold-blooded Soldier

    49

    idle_cp2020_dj_gang

    Elvis Lives

    50

    idle_carrot

    Ready for War

    51

    idle_show_off

    Check the 'cep, baby!

    52

    idle_bizzare_buongiorno

    V's Bizarre Buongiorno

    53

    idle_bizzare_josi

    V's Bizarre Gesture

    54

    idle_bizzare_look_at_me

    V's Bizarre Step

    55

    idle_bizzare_hey_you

    V's Bizarre Pick-up Line

    56

    idle_fireball

    Hawaiian King's Energy Blast

    57

    idle_k_heart

    From Korea with Love

    58

    idle_live_v_and_prosper

    Fortune and Long Life

    59

    idle_from_nc_with_love

    I <3 Night City

    60

    idle_metal

    Chromatic fucking rock!

    61

    idle_mindblown

    Mind. Blown.

    62

    idle_nighticty_with_love

    Good Vibes Only

    63

    idle_planet_jupiter

    Thunder Warrior

    64

    idle_planet_mars

    Fire Warrior

    65

    idle_planet_mercury

    Water Warrior

    66

    idle_planet_moon

    Lunar Warrior

    67

    idle_planet_venus

    Love Warrior

    68

    idle_popcorn

    Lemme Grab the Popcorn

    69

    idle_trex_fighter

    Red Tyrannosaurus

    70

    idle_cp2020_rocker

    Unleash Your Inner Silverhand

    71

    idle_smart

    Think Smart

    72

    idle_super_hero

    Knight City

    73

    idle_giant_salute

    Scout Salute

    74

    idle_dance

    Indian Sweetheart

    75

    idle_thunder

    When Lightning Strikes

    76

    idle_vege

    I promise it's going to hurt!

    77

    idle_whistling

    Distracted Girlfriend

    78

    idle_fighter

    You ready for this?

    79

    idle_sabertooth_fighter

    Yellow Saber-toothed Tiger

    f!V

    photomode__female__action.anims

    photomode__female__idle.anims

    photomode_female_facial.anims

    m!V

    1

    idle_stand_01

    Tabula Rasa

    2

    idle_stand_02

    What Can I Get Ya?

    photomode__male__action.anims

    Frag grenade (hex)

    w_explosives_001__frag_grenade_01.ent

    Frag grenade (rounded)

    w_explosives_001__frag_grenade_02.ent

    Flash grenade

    w_explosives_flash_grenade.app

    https://www.nexusmods.com/cyberpunk2077/mods/9077arrow-up-right

    Incendary grenade

    w_explosives_incendiary_grenade.app

    Biohazard grenade

    w_explosives_biohazard_grenade.app

    EMP grenade

    w_explosives_emp_grenade.app

    Recon grenade

    w_explosives_recon_grenade.app

    w_explosives_cutting_grenade.app

    w_explosives_homing_delivery.app

    w_explosives_sticky_delivery.app

    Arasaka Kenshin

    w_handgun__arasaka_kenshin.app

    Arasaka Yukimura

    w_handgun__arasaka_yukimura.app

    Slaughtomatic

    w_handgun__budget_slaughtomatic.app

    Liberty (rogues)

    w_handgun__constitutional_liberty__rogue.app

    Unity

    w_handgun__constitutional_unity.app

    Kangtao chao

    w_handgun__kangtao_chao.app

    Malorian (jonnys)

    w_handgun__malorian_silverhand.app

    Militech Lexington

    w_handgun__militech_lexington.app

    Militech Lexington (Silenced)

    w_handgun__militech_lexington__silenced.app

    Militech Omaha

    w_handgun__militech_omaha.app

    Arasaka Kappa

    w_handgun__arasaka_kappa.app

    Tsunami Nue

    w_handgun__tsunami_nue.app

    Tsunami Nue (Jackies)

    w_handgun__tsunami_nue_jackie.app

    Tsunami Nue w scope

    w_handgun__tsunami_nue_scope.app

    Defender

    w_lmg__constitutional_defender.app

    ma70hb

    w_lmg__midnight_ma70hb.app

    Darra Nova

    w_revolver__darra_nova.app

    Darra Quasar

    w_revolver__darra_quasar.app

    Malorian Overture

    w_revolver__malorian_overture.app

    Militech Crusher

    w_revolver__militech_crusher.app

    Techtronika Burya

    w_revolver__techtronika_burya.app

    Arasaka Masamune

    w_rifle_assault__arasaka_masamune.app

    Arasaka Masamune w scope

    w_rifle_assault__arasaka_masamune_scope.app

    Darra Umbra

    w_rifle_assault__darra_umbra.app

    Militech Ajax

    w_rifle_assault__militech_ajax.app

    Nokota Copperhead

    w_rifle_assault__nokota_copperhead.app

    Nokota Copperhead w scope

    w_rifle_assault__nokota_copperhead_scope.app

    Nokota Sidewinder

    w_rifle_assault__nokota_sidewinder.app

    Tsunami Kyubi

    w_rifle_assault__tsunami_kyubi.app

    Sor22

    w_rifle_precision__midnight_sor22.app

    Militech Achilles

    w_rifle_precision__militech_achilles.app

    Rostovic Kolac

    w_rifle_precision__rostovic_kolac.app

    Techtronika Pozhar

    w_rifle_precision__techtronika_pozhar.app

    Techtronika Grad

    w_rifle_sniper__techtronika_grad.app

    Tsunami Ashura

    w_rifle_sniper__tsunami_ashura.app

    Tsunami

    w_rifle_sniper__tsunami_nekomata.app

    Carnage

    w_shotgun__budget_carnage.app

    Tactician

    w_shotgun__constitutional_tactician.app

    Rostovic Igla

    w_shotgun_dual__rostovic_igla.app

    Rostovic Palica

    w_shotgun_dual__rostovic_palica.app

    Rostovic Satara

    w_shotgun_dual__rostovic_satara.app

    Rostovic Testera

    w_shotgun_dual__rostovic_testera__base1.app

    Arasaka Shingen

    w_smg__arasaka_shingen.app

    Guillotine

    w_smg__budget_guillotine.app

    Darra Pulsar

    w_smg__darra_pulsar.app

    Militech Saratoga

    w_smg__militech_saratoga.app

    Militech Saratoga tactical

    w_smg__militech_saratoga_tactical.app

    Senkoh lx

    w_smg__senkoh_lx.app

    Kangtao Dian

    w_special__kangtao_dian.app

    Kangtao Zhuo

    w_special__kangtao_zhuo.app

    Militech Heavy Machine Gun (HMG)

    w_special__militech_hmg.app

    Chainsword

    w_budget_chainsword_appearances.app

    Butchers knife

    butchers_knife_appearances.app

    Chefs knife

    w_chefs_knife_appearances.app

    Kukri

    w_kukri_appearances.app

    Machete

    w_machete_appearances.app

    Machete Borg Axe

    w_machete_borg_axe_appearances.app

    Machete Borg

    w_machete_borg_appearances.app

    wakizashi

    w_wakizashi_appearances.app

    Cattle Prod

    w_cattle_prod_appearances.app

    Cane

    w_cane_appearances.app

    Crowbar

    w_crowbar_appearances.app

    Dildo

    w_dildo_appearances.app

    Iron Pipe

    w_iron_pipe_appearances.app

    Pipe Wrench

    w_pipe_wrench_appearances.app

    Tire iron

    w_tire_iron_appearances.app

    Tomahawk

    w_tomahawk_appearances.app

    Baseball Bat

    w_baseball_bat_appearances.app

    Katana (25 appearances)

    w_katana_appearances.app

    Katana (29 appearances)

    w_katana_grip.app

    w_katana__common__grip1_04.ent

    w_katana__common__grip1_03.ent

    w_katana__common__grip1_03_decal_01_tygerclaws.ent

    w_katana__common__grip1_02.ent

    w_katana__common__grip1_01.ent

    Wakakos katana

    w_katana__common__grip1_wakako.ent

    Witcher freebie

    w_katana__common__grip1_witcher.ent

    w_knife_appearances.app

    neurotoxin

    w_knife__combat__grip1_02.app

    punk

    w_knife_punk_appearances.app

    tanto

    w_tanto_appearances.app

    Kanabo

    w_kanabo_appearances.app

    Shovel

    w_shovel_appearances.app

    Tech Sledgehammer

    w_sledge_hammer_tech_player.app

    A playlist by the original authorarrow-up-right

    Shader Docs

    hashtag
    Understanding and leveraging RED4 shaders

    We do not have official documentation from CDPR about how shaders are used by artists. Thus any 2d/3d artist is looking at hundreds of black-box shaders with unknown usage. This is extremely demotivating for anyone looking to bring new assets to life with REDengine. The following list of tables is an attempt to make life easier for artists by using the community to document commonly used shaders.

    hashtag
    About the documentation

    • The name and path of each shader will be documented by the header.

    • Next we are using a table for each texture parameter with the exact name listed by CDPR in the w2mg file, how REDengine uses each specific RGBA channel, and the usable range of the channel if not 0-1/0-255.

    • When applicable, vertex color properties will be listed underneath the texture table with a similar format.

    hashtag
    Shaders

    hashtag
    skin

    Texture
    Red
    Green
    Blue
    Alpha
    Vertex Colors
    Description
    Properties
    Description

    hashtag
    Notes

    • The DetailNormal texture contains generic normal details that are shared between most faces. This is not a tiling/procedural texture. The DetailNormalInfluence scalar parameter can be used to lower the intensity to simulate makeup or synthetic skin.\

    • The MicroDetail texture contains a microblend tiling texture used to add procedural detail to the normal map. We believe the Roughness texture blue channel is used to mask parts of the face from exhibiting this detail, such as the lips, eyelids, and ears.

    hashtag
    mesh_decal

    Texture
    Red
    Green
    Blue
    Alpha
    Properties
    Description

    hashtag
    Notes

    • DiffuseColor multiplies against the texture color to add procedural color

    hashtag
    glass

    Texture
    Red
    Green
    Blue
    Alpha
    Vertex Colors
    Description
    Properties
    Description

    hashtag
    Note

    • There are a number of ways you can colorize your glass. GlassTint is the texture used to determine glass color. TintColor is procedural color. TintFromVertexPaint value determines how much vertex color affects the glass color. GlassTint seemingly has the highest priority, as in it will override other color parameters. Below is a test result from the process of making a glass wing.

    • There are many different other glass shaders, this one is just the most basic that is used for small objects.

    hashtag
    television_ad

    Texture
    Red
    Green
    Blue
    Alpha
    Properties
    Description

    hashtag
    Note

    • AdTexture: TV screen will play looping animations that are actually sprites like a .gif. We believe this is for optimization purposes since videos are heavy.

    • TilesWidth, TilesHeight, and PixelsHeight combine will help the game define the dimension of your tile (sprite) on the sprite sheet.

    • You should calculate your sprite sheet dimension so it completely fits in a square sheet. For example, a simple dimension is 5x5 tiles with 300x300 pixel sprite. Such a dimension will produce animation with 25 frames of a square sprite.

    circle-check

    It's recommended that you use free tools like to make .gif and convert it into a sprite sheet for AdTexture

    • There are many screen shaders, this one is used for small TV screens.

    circle-check

    If used cleverly with a properly done mesh, you can make use of this shader to put animation on your clothing or other items

    Scalar, vector, color, and other properties will follow with their own unique description table.

  • An asterisk (*) is used to notate some degree of uncertainty, or need for more independent testing.

  • SecondaryAlbedo

    ?

    ?

    ?

    ?

    Normal

    Normal

    Normal

    None

    ?

    DetailNormal

    Additive Normal

    Additive Normal

    None

    ?

    Roughness

    Roughness

    None

    MicroDetail mask (0.5-1)*

    ?

    MicroDetail

    Additive Normal

    Additive Normal

    None

    ?

    TintColorMask

    ?

    ?

    ?

    ?

    Detailmap_Stretch

    Additive Normal

    Additive Normal

    None

    ?

    Detailmap_Squash

    Additive Normal

    Additive Normal

    None

    ?

    EmmisiveMask

    ?

    ?

    ?

    ?

    Bloodflow

    ?

    ?

    ?

    ?

    ?

    MicroDetailInfluence

    Controls MicroDetail normal intensity

    TintColor

    ?

    TintScale

    ?

    SkinProfile

    ?

    EmissiveEV

    ?

    CavityIntensity

    ?

    BloodColor

    ?

    DetailNormalInfluence

    Controls DetailNormal normal intensity

    SecondaryMask

    ?

    ?

    ?

    ?

    NormalTexture

    Normal

    Normal

    None

    ?

    NormalAlphaTex

    ?

    ?

    ?

    ?

    NormalsBlendingModeAlpha

    ?

    ?

    ?

    ?

    RoughnessTexture

    Roughness*

    Roughness*

    Roughness*

    ?

    MetalnessTexture

    Metalness*

    Metalness*

    Metalness*

    ?

    ?

    UVRotation

    ?

    UVScaleX/Y

    ?

    SecondaryMaskUVScale

    ?

    SecondaryMaskUVInfluence

    ?

    NormalAlpha

    ?

    UseNormalAlphaTex

    ?

    NormalsBlendingMode

    ?

    RoughnessScale

    ?

    RoughnessBias

    ?

    MetalnessScale

    ?

    MetalnessBias

    ?

    AlphaMaskContrast

    ?

    RoughnessMetalnessAlpha

    ?

    AnimationSpeed

    ?

    AnimationFramesWidth

    ?

    AnimationFramesHeight

    ?

    DepthThreshold

    ?

    MaskTexture

    ?

    ?

    ?

    ?

    Roughness

    Roughness

    Roughness

    Roughness

    ?

    Normal

    Normal

    Normal

    Normal

    ?

    Control how much vertex color will tint the glass color. If set to max value, vertex color will completely replace TintColor.

    FrontFacesReflectionPower

    How much front face reflect light

    BackFacesReflectionPower

    How much back face reflect light

    IOR

    Index of Refraction?

    RefractionDepth

    ?

    FresnelBias

    ?

    GlassSpecularColor

    Color of light reflected from glass

    NormalStrength

    Control how much normal map affects mesh

    NormalMapAffectsSpecular

    Control how much normal map affects reflected light

    SurfaceMetalness

    Metalness

    MaskOpacity

    ?

    GlassRoughnessBias

    ?

    MaskRoughnessBias

    ?

    BlurRadius

    ?

    BlurByRoughness

    ?

    DirtTexture

    Color

    Color

    Color

    Color

    How much screen scanline is visible

    PixelsHeight*

    Height of sprite in pixel

    EmissiveEV

    Energy Voltage of light emission

    EmissiveEVRaytracingBias

    Energy Voltage of light emission by Raytracing

    EmissiveDirectionality

    ?

    EnableRaytracedEmissive

    Enable Raytraced Emission

    BlackLinesIntensity

    ?

    BlackLinesRatio

    ?

    BlackLinesSize

    ?

    LinesOrDots

    ?

    DistanceDivision

    ?

    Metalness

    ?

    Roughness

    ?

    IsBroken

    If enabled, the animation will have a broken TV overlay effect

    UseFloatParameter

    ?

    UseFloatParameter1

    ?

    AlphaThreshold

    ?

    DirtOpacityScale

    Opacity of Dirt Texture

    DirtRoughness

    Roughness of Dirt

    DirtUvScaleU

    UV Scale of Dirt Texture

    DirtUvScaleV

    UV Scale of Dirt Texture

    HUEChangeSpeed

    ?

    More examples of such sprite sheets can be found in the path below

    Albedo

    Color

    Color

    Color

    ?

    Red

    Ambient Occlusion*

    Green

    Subsurface Scattering Mask

    Blue

    Improved Facial Lighting Mask

    SecondaryAlbedoInfluence

    ?

    SecondaryAlbedoTintColorInfluence

    ?

    DetailRoughnessBiasMin/Max

    ?

    DiffuseTexture

    Color

    Color

    Color

    Opacity Mask

    VertexOffsetFactor

    ?

    DiffuseColor

    Procedural Color

    DiffuseAlpha

    Alpha

    GlassTint

    Color

    Color

    Color

    ?

    Red

    Color

    Green

    Color

    Blue

    Color

    TintColor

    Procedural Color

    Opacity

    Overall Opacity

    OpacityBackFace

    Opacity of back face

    AdTexture*

    Color

    Color

    Color

    Color

    TilesWidth*

    How many tiles are on the horizontal axis of the sprite sheet

    TilesHeight*

    How many tiles are on the vertical axis of the sprite sheet

    PlaySpeed

    Speed of which animation will play

    Ezgif.comarrow-up-right
    How glass color is affected by different parameters
    AdTexture as Sprite Sheet Example. This is the Trauma Team news in the game.

    MicroDetailUVScale01/02

    UVOffsetX/Y

    TintFromVertexPaint

    InterlaceLines

    base/materials/skin.mt
    base/materials/mesh_decal.mt
    base\materials\glass.mt
    base\fx\shaders\television_ad.mt
    base\environment\decoration\advertising\digital\textures\animated\textures

    Comprehensive Component Hierarchy List

    Hierarchy of WolvenKit.RED4.Types.entIComponent

    circle-info

    Full list of components, organized by hierarchy, useful for researching and documenting new components.

    circle-info

    If you decide to document a component, make a new expandable entry on on the Documented Components page, followed by the discovered behavior and usage and link back to that in this list.

    • AIObjectSelectionComponent

    • AIOffMeshConnectionComponent

    • AISignalHandlerComponent

    entAnimationControllerComponent
  • entAnimationSetupExtensionComponent

  • entAnimGraphResourceContainer

  • entEffectAttachmentComponent

  • entExternalComponent

    • entMorphTargetManagerComponent

  • entFacialCustomizationComponent

  • entIMoverComponent

    • gameRootTransformAnimatorComponent

    • moveComponent

  • entIPlacedComponent

    • entAmbientSoundEmitterComponent

    • entBaseCameraComponent

      • entRenderToTextureCameraComponent

        • gameuiHolocallCameraComponent

      • entVirtualCameraComponent

      • gameCameraComponent

        • gameFPPCameraComponent

        • gameFreeCameraComponent

      • gamePhotoModeBackgroundCameraComponent

      • gameWorldSpaceBlendCamera

    • entDynamicActorRepellingComponent

    • entISkinableComponent

      • entCorpseComponent

    • entIVisualComponent

      • cpConveyorComponent

      • entClothComponent

    • entMarketingAnimationComponent

    • entPhysicalTriggerComponent

      • entPhysicalImpulseAreaComponent

      • entTriggerComponent

    • entPlaceholderComponent

    • entSimpleColliderComponent

    • entSlotComponent

      • gameHitRepresentationComponent

      • gameOccupantSlotComponent

    • entSoundListenerComponent

    • entStaticOccluderMeshComponent

    • entTargetPointComponent

    • entTransformComponent

      • entVisualOffsetTransformComponent

    • entTriggerActivatorComponent

    • gameaudioAcousticPortalComponent

    • gameAudioEmitterComponent

    • gameaudioSoundComponentBase

      • gameaudioSoundComponent

      • gameaudioVehicleAudioComponent

    • gameEntityStubComponentPlacedProxy

    • gameEnvironmentDamageReceiverComponent

    • gameinfluenceBumpComponent

    • gameinfluenceComponent

    • gameinfluenceHeatAgentComponent

    • gameinfluenceObstacleComponent

    • gamemappinsMappinComponent

    • gameMovingPlatform

    • gameNavmeshDetector

    • gamePingComponent

    • gameprojectileComponent

    • gameprojectileSpawnComponent

    • gameStaticAreaShapeComponent

      • gameStaticTriggerAreaComponent

    • gameTransformAnimatorComponent

    • mpInteractionActivatorComponent

    • senseComponent

    • senseSensorObjectComponent

    • senseVisibleObjectComponent

    • vehicleChassisComponent

    • WidgetBaseComponent

      • IWorldWidgetComponent

        • AdvertisementWidgetComponent

    • workWorkspotResourceComponent

  • entLocalizationStringComponent

  • entRagdollComponent

  • entTransformHistoryComponent

  • entVertexAnimationComponent

  • entVisualControllerComponent

  • entWetnessComponent

  • gameAIDirectorTensionAnalyzeComponent

  • gameAttachmentSlots

  • gameaudioMusicSyncComponent

  • gameBraindanceDissolveComponent

  • gameComponent

    • AICAgent

      • AIHumanComponent

      • AIVehicleAgent

    • AITargetTrackerComponent

      • TargetTrackingExtension

    • cpTestComponent

    • ElevatorController

    • EntityStubComponent

    • gameAttitudeAgent

    • gameDeviceCameraControlComponent

    • gameDeviceComponent

      • PSD_Detector

      • PSD_Master

    • gameEntitySpawnerComponent

    • gameEntityStubComponent

    • gameInventory

    • gameMasterDeviceComponent

    • gameScriptableComponent

      • AdamSmasherComponent

      • AIRelatedComponents

    • gameSquadMemberComponent

      • SquadMemberBaseComponent

    • gameStatsComponent

    • gameStatusEffectComponent

    • gameVisionModeComponent

    • scnVoicesetComponent

    • vehicleCameraManagerComponent

    • vehicleController

    • vehicleGarageComponent

    • vehiclePersistentData

  • gameComponentsStateSaveComponent

  • gameCrowdMemberComponent

    • CrowdMemberBaseComponent

  • gameDismembermentComponent

  • gameDoorComponent

  • gameEthnicityComponent

  • gameFootstepComponent

  • gameHumanoidBody

  • gameImpostorComponent

  • gameinteractionsReactionComponent

  • gameITriggerDestructionComponent

    • gameBodyTriggerDestructionComponent

    • gamePuppetTriggerDestructionComponent

  • gameLadderComponent

  • gamemountingMountableComponent

    • gameMovingPlatformMountableComponent

    • gameObjectMountableComponent

    • gamePuppetMountableComponent

    • vehicleVehicleMountableComponent

  • gameMultiEcsManagerComponent

  • gameMuppetComponent

    • gameMuppetBlackboardsComponent

    • gameMuppetInputStates

    • gameMuppetInventory

    • gameMuppetLocomotionComponent

    • gameMuppetPhysicsComponent

    • gameMuppetRawInput

    • gameMuppetStats

    • gameMuppetUpperBodyRequestsComponent

  • gameMuppetInputHandlerComponent

  • gameNarrationPlateComponent

  • gameNetrunnerPrototypeComponent

  • gameObjectCarrierComponent

  • gamePhantomEntityComponent

  • gamePhotoModeBackgroundViewComponent

  • gamePhysicalDestructionListenerComponent

  • gamePlayerCommandConsumerComponent

  • gamePlayerControlledComponent

    • gamestateMachineComponent

  • gamePlayerMappinComponent

  • gamePlayerTierComponent

  • gameScanningActivatorComponent

  • gameSimpleOccupantSlotSpawner

  • gameSourceShootComponent

  • gameTargetingActivatorComponent

  • gameTargetingLocalizedEffectComponent

  • gameTargetShootComponent

  • gameTPPRepresentationComponent

  • gameuiICharacterCustomizationComponent

    • gameuiCharacterCustomizationBrokenNoseController

    • gameuiCharacterCustomizationPersonalLinkController

    • gameuiICharacterCustomizationBodyController

      • gameuiCharacterCustomizationBodyController

    • gameuiICharacterCustomizationBodyPartsController

      • gameuiCharacterCustomizationBodyPartsController

        • gameuiCharacterCustomizationFeetController

  • gameVisionActivatorComponent

  • gameWeakspotComponent

  • moveIMotionPlannerComponent

    • moveMotionPlannerComponent

      • moveDroneMotionPlannerComponent

  • movePoliciesComponent

  • worldTrafficLightListenerComponent

  • gameScreenshot360CameraComponent
  • gameTPPCameraComponent

  • vehicleTPPCameraComponent

  • vehicleVehicleProxyBlendCamera

  • entInstancedAnimationComponent
    entDebug_ShapeComponent
  • entDecalComponent

  • entEffectSpawnerComponent

  • entEnvProbeComponent

  • entFogVolumeComponent

  • entISkinTargetComponent

    • entMorphTargetSkinnedMeshComponent

    • entSkinnedClothComponent

      • entCharacterCustomizationSkinnedMeshComponent

      • entPhysicalSkinnedMeshComponent

  • entLightBlockingComponent

  • entLightChannelComponent

  • entLightComponent

    • cpGameplayLightComponent

    • gameLightComponent

      • vehicleLightComponent

  • entMeshComponent

    • entDebug_MeshComponent

    • entEditorMeshComponent

    • entPhysicalMeshComponent

      • entAppearanceProxyMeshComponent

      • entBakedDestructionComponent

    • HudMeshComponent

  • entParticlesComponent

  • entPhysicalDestructionComponent

  • entVectorFieldComponent

  • entVirtualCameraViewComponent

    • ScriptableVirtualCameraViewComponent

  • gameBinkComponent

  • gameWeaponAudioComponent

    StreetSignWidgetComponent

  • WorldWidgetComponent

  • WidgetHudComponentInterface

    • WidgetHudComponent

  • WidgetMenuComponentInterface

    • WidgetMenuComponent

  • ScriptableDeviceComponent
    • ActionsSequencerController

    • ActivatedDeviceController

      • BarbedWireController

    • ActivatedDeviceNPCController

    • AlarmLightController

    • AOEEffectorController

    • ArcadeMachineController

      • PachinkoMachineController

    • BaseAnimatedDeviceController

      • MainframeController

      • RetractableAdController

    • BaseDestructibleController

    • BasicDistractionDeviceController

      • BlindingLightController

        • ReflectorController

    • BillboardDeviceController

    • CandleController

    • ChestPressController

    • CoderController

    • ConveyorController

    • DataTermController

    • DisplayGlassController

    • DisposalDeviceController

    • DoorController

      • MovableWallScreenController

      • WindowController

    • DoorProximityDetectorController

    • DropPointController

    • ElectricLightController

      • GameplayLightController

    • ExitLightController

    • ForkliftController

    • FridgeController

    • GenericDeviceController

    • GlitchedTurretController

    • HoloDeviceController

    • HoloFeederController

    • InteractiveAdController

    • InteractiveSignController

    • IntercomController

    • InvisibleSceneStashController

    • JukeboxController

    • LadderController

    • LaserDetectorController

    • LcdScreenController

      • ApartmentScreenController

    • MasterController

      • AccessPointController

      • ActivatorController

    • MediaDeviceController

      • HoloTableController

      • RadioController

    • MovableDeviceController

    • NcartTimetableController

    • NetrunnerChairController

    • OdaCementBagController

    • PortalController

    • ProximityDetectorController

    • RoadBlockController

    • SecurityGateLockController

    • SecurityLockerController

    • SpeakerController

    • StashController

    • StillageController

    • ToiletController

    • TrafficLightController

      • CrossingLightController

      • TrafficZebraController

    • VehicleComponent

      • AVComponent

      • CarComponent

    • VendingMachineController

      • IceMachineController

    • VendingTerminalController

    • VentilationEffectorController

    • WardrobeController

    • WeakFenceController

    • WeaponTrainingController

    • WeaponVendingMachineController

    • WindowBlindersController

    AICustomComponents

    • CentaurShieldController

  • AIMandatoryComponents

    • HitReactionComponent

      • HitReactionMechComponent

    • StatusEffectManagerComponent

  • AIPhaseStateEventHandlerComponent

  • AppearanceRandomizerComponent

  • AreaEffectVisualizationComponent

  • BossStealthComponent

  • CombatHUDManager

  • DEBUG_VisualizerComponent

  • DetectorModuleComponent

  • DeviceConnectionHighlightComponent

  • DeviceDebuggerComponent

  • DeviceTimetable

  • DiodeControlComponent

  • DisarmComponent

  • DisassemblableComponent

  • DrillMachineScanManager

  • DroneComponent

  • DurabilityComponent

  • EntityAttachementComponent

  • Example_FxSpawning

  • FastTravelComponent

  • FollowSlotsComponent

  • FxResourceMapperComponent

  • gameAINetStateComponent

    • NPCStatesComponent

  • GameplayRoleComponent

  • InputDeviceController

  • InspectableObjectComponent

  • InspectionComponent

  • MinotaurMechComponent

  • ObjectMoverComponent

  • OdaComponent

  • PhotoModePlayerEntityComponent

  • PlayerPhone

  • QuickSlotsManager

  • ReactionManagerComponent

  • ResourceLibraryComponent

  • RewireComponent

  • RoyceComponent

  • SampleComponentWithCounter

  • SampleCounterDisplayComponent

  • SasquatchComponent

  • ScannerControlComponent

  • ScavengeComponent

  • SimpleTargetManager

  • StimBroadcasterComponent

  • TankTurretComponent

  • TestScriptableComponent

  • TrapComponent

  • UpdateComponent

  • VendorComponent

  • WeaponPositionComponent

  • WorkspotMapperComponent

  • gameuiCharacterCustomizationGenitalsController

  • gameuiCharacterCustomizationHairstyleController

  • entColliderComponent
    entAnimatedComponent
    gameinteractionsComponent
    gameTargetingComponent
    gameScanningComponent
    SlidingLadderController

    CleaningMachineController

  • ConfessionBoothController

  • ExplosiveDeviceController

    • C4Controller

    • ExplosiveTriggerDeviceController

    • SensorDeviceController

      • SecurityTurretController

      • SurveillanceCameraController

  • FanController

  • NetrunnerControlPanelController

  • SmokeMachineController

  • AOEAreaController
  • BaseNetworkSystemController

    • DoorSystemController

  • DestructibleMasterDeviceController

    • DestructibleMasterLightController

  • DeviceSystemBaseController

    • PersonnelSystemController

    • SecuritySystemController

    • SurveillanceSystemController

  • DisassembleMasterController

  • ElectricBoxController

  • FuseBoxController

  • FuseController

  • LiftController

  • MaintenancePanelController

  • NetworkAreaController

  • RoadBlockTrapController

  • SecurityAlarmController

  • SecurityAreaController

  • SecurityGateController

  • SimpleSwitchController

  • SmartHouseController

  • SoundSystemController

  • TerminalController

    • ComputerController

      • SmartWindowController

    • ElevatorFloorTerminalController

  • TrafficIntersectionManagerController

  • VentilationAreaController

  • TVController
    • WallScreenController

    MotorcycleComponent
    entSkinnedMeshComponent
    entGarmentSkinnedMeshComponent

    File Formats

    All inclusive list of REDengine file formats

    Created by @manavortex Published April 10 2023 Game version: 1.6.1_DLSS

    circle-info

    For an exhaustive list, see the W2RC File Format Table.

    hashtag
    .app (Appearance definition)

    This file contains a list of appearances with their associated components. To load them, you require a .ent.

    Holds a list of components.

    hashtag
    .ent (Entity)

    hashtag
    Root entity

    The entry point for the game to display an or . This kind of entity usually doesn't have components by itself, but only points towards the where they are defined.

    From ArchiveXL item additions, this kind of file is usually called a root entity.

    hashtag
    Mesh entity / Component entity

    For player items, an .ent file can serve as a wrapper, splitting components out of the .app file by putting them in their own file.

    hashtag
    Components

    Not a file type but an internal data structure and part of or files. Components are how the game adds anything to the in-game world, from pag3d data over player interaction prompts to explosion sounds.

    hashtag
    .inkatlas (Texture mapping)

    hashtag
    .mesh (3d object)

    A 3d object, holding , , and .

    A mesh can have several submeshes, which can be displayed or hidden via .

    hashtag
    .mi / .mt / .remt

    A material definition for a shader. You can assign those to CMaterialInstance entries in your mesh and then define their qualities by changing their parameters.

    circle-info

    For further detes on materials, see . For an explanation on .mi files, see .

    hashtag
    Relevant properties:

    hashtag
    .streaingsector (world data

    This file holds world environment information and -properties. Due to its complexity, information is grouped on its sub-page.

    hashtag
    .xbm (Texture)

    A regular texture file. Can be exported to .png via WolvenKit, edited, and imported back into the game.

    circle-info

    If you stick to the game's naming schema, Wolvenkit will auto-detect the right import settings for you.

    hashtag
    Normal maps

    Can be either blue or yellow (inverted), both exists. For a guide how to make your own, see .

    Cyberpunk normal maps are swizzled (a technique originally employed in DTX-5).

    • The red channel stores the X axis

    • The green channel stores the Y axis

    • The blue channel is empty, since the Z-data will be calculated from red and blue.

    hashtag
    Relevant properties:

    hashtag

    hashtag
    W2RC File Format Table

    Extension
    Description
    Fully Parsed

    hashtag
    Generic Format

    <explanation>

    hashtag
    Generic FIle Format Table

    Extension
    Description

    hashtag
    Archive Format

    hashtag
    File Structure

    Name
    Type/Size
    Info

    hashtag
    Header

    Name
    Type/Size
    Info

    hashtag
    Custom Data (WolvenKit)

    The following data only applies for archives created with WolvenKit

    Name
    Type/Size
    Info

    hashtag
    File List

    Name
    Type/Size
    Info

    hashtag
    File Record

    Name
    Type/Size
    Info

    hashtag
    File Segment

    Name
    Type/Size
    Info

    Pathfinding/AI

    Animation graph

    Animation data

    Mesh appearance configurations

    ?

    Terrain related

    ?

    ?

    ?

    ?

    Bink video

    Bink video

    Camera curve preset

    ?

    Character editor preset

    Minimap

    Quest related

    Cutscene related

    See mlsetup

    See anims

    See app

    Configuration for credits

    6-sided cube texture

    ?

    ?

    ?

    ?

    Entity

    Environment definition

    ?

    ?

    ?

    ?

    ?

    ?

    Font

    Foliage brush

    Destructible foliage element

    ?

    Game main configuration file

    ?

    ?

    ?

    ?

    ?

    Hair profile

    ?

    UI animation

    UI texture atlas

    UI character related

    UI font

    UI

    UI settings

    UI

    UI

    UI

    UI

    UI

    UI

    UI

    UI

    Quest info

    Quest info

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    Pins on map

    Mesh/model

    Instanced external shaders/materials

    Masks for multilayer supershader

    Setup file for multilayer supershader

    Template file for multilayer supershader

    Blend shapes/shape keys

    Base shader

    navmesh

    AI navigation meshes

    ?

    Audio

    Audio

    Particles

    Nvidia PhysX related

    Nvidia PhysX related

    Nvidia PhysX related

    Point of Interest Map pin

    ?

    Quest

    Quest progression

    regionset

    ?

    Similar to mt, difference is unclear

    Resource list

    Rig/skeleton for animation

    Cutscene

    Cutscene versioning

    ?

    ?

    Skin profile

    ?

    Terrain

    The world in manageable pieces

    Terrain

    Links all the sectors

    Terrain

    Multiple textures

    ?

    ?

    ?

    Leftover mesh file with RED3 extension

    Leftover mi file with RED3 extension

    ?

    Texture

    Texture

    Files

    data

    Raw file data

    File List

    See below.

    IndexPosition

    uint64

    Offset of beginning of file list

    IndexSize

    uint32

    Size of file list

    DebugPosition

    uint64

    Always 0

    DebugSize

    uint32

    Always 0

    Filesize

    uint64

    Size of file (excluding Filesize)

    CustomDataLength

    uint32

    WolvenKit only

    Size

    int32

    Size of uncompressed data

    ZSize

    int32

    Size of compressed data

    PathCount

    int32

    Number of custom paths

    PathStrings

    zstring[PathCount]

    Custom file paths

    CRC

    uint64

    Checksum of ???

    FileEntryCount

    uint32

    Number of files

    FileSegmentCount

    uint32

    Number of file segments

    ResourceDependencyCount

    uint32

    Number of resource dependencies

    FileRecords

    [FileEntryCount]

    See below.

    FileSegments

    [FileSegmentCount]

    See below.

    ResourceDependencies

    uint64[ResourceDependencyCount]

    NumInlineBufferSegments

    uint32

    Number of inline buffers

    SegmentsStart

    uint32

    Index of the first

    SegmentsEnd

    uint32

    Index of the last

    ResourceDependenciesStart

    uint32

    Index of the first resource dependency

    ResourceDependenciesEnd

    uint32

    Index of the last resource dependency

    SHA1Hash

    uint8[20]

    SHA1 hash of the file

    Size

    uint32

    Size of uncompressed data

    Different per material — see parameters/[2] for a list of properties

    e.g. BaseColor, Metalness, NormalStrength or VectorField, FresnelColor, Albedo

    IsGamma

    Override in-game gamma (lighting)? - Set to "false" for normals - Set to "true" for diffuse/albedo and any parts of the UI

    actionanimdbarrow-up-right

    Animation

    acousticdataarrow-up-right

    Audio

    csvarrow-up-right

    Standard CSV file

    wemarrow-up-right

    Audio file

    Header

    Header

    See specification of Header below.

    Custom Data

    Custom Data

    WolvenKit only. See specification of custom data below.

    Magic

    char[4]

    Constant: "RDAR"

    Version

    uint32

    Currently 12

    Magic

    char[4]

    Constant: "LXRS"

    Version

    uint32

    Currently 1

    FileTableOffset

    uint32

    Always 8

    FileTableSize

    uint32

    NameHash64

    uint64

    FNV1A64 hash of the filename

    Timestamp

    int64

    Windows filetime of file creation

    Offset

    uint64

    Offset of the data

    ZSize

    uint32

    Size of compressed data

    root entity
    Appearance: .app fileschevron-right
    NPC
    prop
    .app file
    Entity: .ent fileschevron-right
    .ent
    .app
    Componentschevron-right
    appearances
    materials
    rigging
    chunkmasks
    here
    here
    The whole world: .streamingsectorchevron-right
    here
    aiarcharrow-up-right
    animgrapharrow-up-right
    animsarrow-up-right
    apparrow-up-right
    archetypesarrow-up-right
    areasarrow-up-right
    audio_metadataarrow-up-right
    audiovehcurvesetarrow-up-right
    behaviorarrow-up-right
    bikecurvesetarrow-up-right
    bk2arrow-up-right
    bnkarrow-up-right
    camcurvesetarrow-up-right
    cfoliagearrow-up-right
    charcustpresetarrow-up-right
    cminimaparrow-up-right
    communityarrow-up-right
    conversationsarrow-up-right
    cooked_mlsetuparrow-up-right
    cooked_animsarrow-up-right
    cookedapparrow-up-right
    creditsarrow-up-right
    cubemaparrow-up-right
    curvesetarrow-up-right
    devicesarrow-up-right
    dtexarrow-up-right
    effectarrow-up-right
    entarrow-up-right
    envarrow-up-right
    envparamarrow-up-right
    envprobearrow-up-right
    esarrow-up-right
    facialcustomarrow-up-right
    facialsetuparrow-up-right
    fb2tlarrow-up-right
    fntarrow-up-right
    folbrusharrow-up-right
    foldestarrow-up-right
    fparrow-up-right
    gamedefarrow-up-right
    garmentlayerparamsarrow-up-right
    genericanimdbarrow-up-right
    gidataarrow-up-right
    gradientarrow-up-right
    hitrepresentationarrow-up-right
    hparrow-up-right
    iesarrow-up-right
    inkanimarrow-up-right
    inkatlasarrow-up-right
    inkcharcustomizationarrow-up-right
    inkfontfamilyarrow-up-right
    inkfullscreencompositionarrow-up-right
    inkgamesettingsarrow-up-right
    inkhudarrow-up-right
    inklayersarrow-up-right
    inkmenuarrow-up-right
    inkshapecollectionarrow-up-right
    inkstylearrow-up-right
    inktypographyarrow-up-right
    inkwidgetarrow-up-right
    interactionarrow-up-right
    journalarrow-up-right
    journaldescarrow-up-right
    lane_connectionsarrow-up-right
    lane_polygonsarrow-up-right
    lane_spotsarrow-up-right
    lightsarrow-up-right
    lipmaparrow-up-right
    locationarrow-up-right
    locopathsarrow-up-right
    lootarrow-up-right
    mappinsarrow-up-right
    mesharrow-up-right
    miarrow-up-right
    mlmaskarrow-up-right
    mlsetuparrow-up-right
    mltemplatearrow-up-right
    morphtargetarrow-up-right
    mtarrow-up-right
    null_areasarrow-up-right
    opusinfoarrow-up-right
    opuspakarrow-up-right
    particlearrow-up-right
    physarrow-up-right
    physicalscenearrow-up-right
    physmatlibarrow-up-right
    poimappinsarrow-up-right
    psreparrow-up-right
    questarrow-up-right
    questphasearrow-up-right
    remtarrow-up-right
    reslistarrow-up-right
    rigarrow-up-right
    scenearrow-up-right
    scenesversionsarrow-up-right
    smartobjectarrow-up-right
    smartobjectsarrow-up-right
    sparrow-up-right
    spatial_representationarrow-up-right
    streamingquerydataarrow-up-right
    streamingsectorarrow-up-right
    streamingsector_inplacearrow-up-right
    streamingworldarrow-up-right
    terrainsetuparrow-up-right
    texarrayarrow-up-right
    traffic_collisionsarrow-up-right
    traffic_persistentarrow-up-right
    voicetagsarrow-up-right
    w2mesharrow-up-right
    w2miarrow-up-right
    workspotarrow-up-right
    xbmarrow-up-right
    xcubearrow-up-right
    File List
    specification of file list
    File Record
    specification of file record
    File Segment
    specification of file segment
    file segment
    file segment
    Navigation
    Navigation
    Navigation

    Troubleshooting

    If your mods are causing trouble, here's what you can do

    dThis page contains troubleshooting information for people who are using mods rather than making mods. You will find step-by-step guides, grouped by different problems.

    circle-info

    Did you know? You can us your browser's search function (Ctrl+F) to quickly find your problem on the page – simply type a word from your error message.

    hashtag
    Navigation

    triangle-exclamation

    Before you start debugging, make sure that

    • your graphics driver is up-to-date

    circle-exclamation

    Before you start debugging, update your mods and make sure that all dependencies have the latest version, in particular the (, , , and ).

    If you are on RED4Ext >= 1.13, make sure to uninstall cybercmd!

    This section aims to give you a quick overview. If your exact problem isn't listed here, please look through the different sections below and try anything that looks promising.

    circle-check

    To enable REDmods, check (you need to first)

    hashtag
    Your game is crashing

    hashtag
    During car chases

    If your game is crashing during certain car chase missions, try removing .

    If you can't play because the game is crashing, this section will point you towards the right troubleshooting steps in the guide below.

    • If you're done with this shit and would rather reinstall, see

    hashtag
    Crash on startup

    If you're trying to start your game, but it never even launches, this is the right section for you. Otherwise:

    • If the game crashes before you make it to the menu, see

    • If the game crashes when you're trying to load a save, see

    hashtag
    Something about files or permissions

    If you think that your error is file-related, you can check the section "" or use your browser's search function (Ctrl+F) to search this page for your error.

    hashtag
    Some other error

    Your problem lies with either red4ext or redscript. Find the section "" below and follow the steps for your error message.

    hashtag
    Crash before menu

    If you're starting the game, but never make it to the in-game menu, this is the right section for you. Otherwise:

    • If the game never even starts, see

    • If the game crashes when you're trying to load a save, see

    hashtag
    2.0 / PL: Missing tweakdb.bin or inaccessible memory

    If you run into the error above, or if the game complains about attempting to read inaccessible memory, do this:

    1. Go to your Cyberpunk directory and find the folderr6\cache.

    2. Find the filetweakDB.bin and copy it (Ctrl+C

    hashtag
    If that doesn't fix it

    Your problem most likely related to Cyber Engine Tweaks. To find out how to troubleshoot it, check the "" section.

    hashtag
    Cyberpunk has flatlined

    See

    hashtag
    Crash on loading a save

    If you can make it to the menu but crash out when you're loading a save or starting a new game, this is the right section for you. Otherwise:

    • If the game never even starts, see

    • If the game crashes before you make it to the menu, see

    • If you can start a new game without crashing, see

    hashtag
    If you broke it with the savegame editor

    Check — in the meantime, revert to the backup.

    hashtag
    Otherwise

    Most likely, you have an issue with an .archive mod. Here's what you can do:

    1. To rule out that it's a save game problem (those are extremely rare), start a new game.

    2. Go to the section and start with the first two entries on the list

    If that doesn't solve your problem, or if the issue is save-game related, feel free to browse around some more.

    hashtag
    Corrupt(ish) saves

    circle-info

    You only need to read this if you can start a new game without mods, but crash on loading a previous save game. For any other problem, please see the corresponding section(s).

    Some mods store data in save files. Removing those mods may (but doesn't have to) lead to your save game crashing until you install them again.

    At the current time (09/2023, before PL), that has been confirmed to affect those mods:

    • - see the expandable list below for uninstall instructions, or check the mod's pinned post on Nexus

    chevron-rightUninstalling Immersive Rippers hashtag

    Error reason: Unhandled exception Expression: EXCEPTION_ACCESS_VIOLATION (0xC0000005) Message: The thread attempted to read inaccessible data at 0x10. File: <Unknown>(0)

    1. Run (Usage instructions are on the modpage itself)

    circle-check

    If you are experiencing this issue with a mod that is not on this list, please check

    hashtag
    Crash during the game

    This section tells you how to deal with crashes during gameplay.

    hashtag
    When editing the inventory

    Kiroshi Crowd Scanner and Tooltip Fixer do not play together (, discord). Uninstall one of them.

    If you can make it crash reliably

    You're lucky, because it means that you can systematically troubleshoot. Go to the section; start with .archive mods, but if that doesn't fix it, do the other folders as well.

    If you can't

    Occasionally, crashes can be triggered by cross-platform saves. You can disable them in the main menu under Gameplay -> Miscellaneous

    hashtag
    If that wasn't it

    … that puts you in the same boat as the rest of us: most veteran players live with occasional crashes, especially while tabbing out and back in under certain circumstances.

    That being said, if the crashes exceed what you're willing to live with, you'll have to find out a way to improve it, but your options are thin on the ground. Depending on how long it takes for the crash to occur, you might try

    • resetting your game (if the error persists, it's not mods)

    • certain types of mod to home in on the cause (see the for an overviev)

    Best of luck!

    hashtag
    redscript / RED4ext

    When your game doesn't even start up, either of these frameworks isn't working properly. Below, you can find a list of the most common error messages with steps to resolve them.

    hashtag
    Corrupt or missing script files

    Cyberpunk 2077 encountered an error caused by a corrupt or missing script file and will now be forced to close. Please verify...

    You have a problem with Red4ext.

    circle-exclamation

    If you are using RED4ext >= 1.13, uninstall cybercmd if you have it — it's no longer necessary and can cause false positives.

    circle-info

    The first step whenever you run into this error is deleting the folder r6/cache and verifying your game files.

    If that doesn't help, it's time for more detailed troubleshooting:

    • If you are on Linux, make sure to double-check the , as Steam sometimes resets these between updates

    • if you don't have red4ext/logs/red4ext.log, then RED4ext doesn't work, you have to update / fix RED4ext

    • if you have red4ext/logs/red4ext.log, then look inside, it will tell you which mods aren't compatible with the current game patch and may be the cause of this issue

    If that doesn't solve your problem, you can

    • and reinstall the core frameworks

    hashtag
    Corrupted archives

    Cyberpunk 2077 encountered an error caused by corrupted or missing archives and and will now be forced to close. Please verify...

    One of the .archive files in your folder is broken. To find out which one, try the approach, starting with the first two folders.

    hashtag
    The game isn't starting: other reasons

    There are various non-mod-related reasons why the game couldn't be starting. If you have followed these steps and they haven't gotten you anywhere, check the errors in this section:

    Other than that, there are general troubleshooting steps, because missing Windows stuff can make Cyberpunk go brr. Make sure that

    • your graphics driver is up-to-date

    • you have the most recent version of installed

    • you have installed (, Microsoft)

    Also, try starting the game without Reshade to rule it out as a source of crashes (this happened after the DLSS patch) and temporarily disable your antivirus.

    If none of that helps, find us on in #mod-troubleshooting.

    hashtag
    Too many mods

    There is such a thing as too many mods which are making the game crash. This number seems pretty random, but generally doesn't start below ~460.

    To fix this, you need to disable analysis in the settings:

    hashtag
    Failed to initialize script data

    This is not a Cyberpunk error!

    Check your NVidia Control Panel panel. If power saving options are enabled, turn them off:

    If you don't, check for other power config options in your operating system.

    hashtag
    Steam: verify file integrity loop

    The error below is partial to Steam:

    There are two potential fixes:

    hashtag
    Run as admin

    Before trying to implement any of the other solutions, configure the REDprelauncher.exe in the Cyberpunk root directory to always run as administrator.

    • Right-click on the file and select Properties

    • Switch to the Compatibility tab

    • Check the box Run this program as an administrator

    hashtag
    Run without antivirus

    The second reason might be that your antivirus fucks with your game files in a way that the game can't cope with.

    Try the following steps:

    • Turn off your antivirus and your firewall - anything that counts as "System Protection".

      • Yes, that includes Windows Defender

      • Yes, all of it. That includes your computer's bodyguard if it has one.

    If it works now, you need to find out how to keep your antivir away from your game directory. If it doesn't, then you can turn the stuff back on now.

    hashtag
    You pirated the game

    There's a chance of >95% that we have already found the source of your problems — pirated copies just don't mod well. That's the first reason why things won't work.

    The second reason is that CDPR needs to earn money to pay people to make games for us. If you can at all afford it, please buy the game. It's a good deal: how much are you willing to spend for a movie ticket? How long does a movie keep you entertained?

    You are, of course, welcome to peruse the troubleshooting guide. It might even help you. But know that pirated copies will never be explicitly supported.

    hashtag
    Finding the broken mod: known problem children

    hashtag
    Stuff that isn't mods

    It doesn't have to be either of these. But if it is, you'll never find it with the rest of the list. Rule it out by deactivating them while you're debugging.

    • Antivirus

    • ReShade

    circle-info

    If you can start a new game without mods, but can't load an existing save, see.

    hashtag
    Frameworks / Core Mods

    These mods are not problem children – quite the opposite. But if they are outdated, either your game or your mods won't work. Make sure that you with the most recent game version.

    hashtag
    Script mods

    Some mods go far beyond the ordinary, adding whole new features to the game (why no flying cars, CDPR?). Unfortunately, that means they're more prone to breaking than others. Here's a non-comprehensive list.

    circle-exclamation

    Being on this list does not mean that a mod is "bad" or that you shouldn't use it – they break much for the same reason as the frameworks do, and are fixed in the same way (the modder has to update). Until that happens, you will have to disable them.

    hashtag

    Adds flying cars to Cyberpunk. While this is awesome, it will absolutely break whenever CDPR changes anything, and requires updating.

    hashtag

    Displays in-world holographic arrows that direct you towards your quest objectives. Is very likely to break upon patches.

    hashtag

    Adds car chases and a bunch of related features. While CP2077 needs more car chases and explosions, this usually breaks and will require an update.

    hashtag

    Adds mod settings to the in-game menu – Redscript version. This needs to be updated after every game patch.

    hashtag

    Adds mod settings to the in-game menu – CET version. The mod itself will be fine, but it's dependent on being up-to-date.

    hashtag
    spawn0

    Most famous for edits of the female body that defy gravity and wreak havoc on V's spinal disks, this modder has been around since the early days, and the same is true for their mods.

    However, modding has come a long way since then, and spawn0 never followed. For that reason, their mods are known to have compatibility issues with pretty much everything in the general vicinity.

    On the bright side, their mods won't crash your game and are downwards compatible until the dawn of time. With Phantom Liberty, sp0 mods have been known to cause crashes to desktop near the dam.

    hashtag
    Finding the broken mod (log files)

    circle-info

    Bad news: The game's logs are usually less helpful than the Swiss navy. Good news: Mods are doing a far better job. Bad news again: You have to find the right log file in the game directory. Good news again: There's intel how (see below)

    jackhumbert's mod will give you additional information. There is a chance that it shows you something helpful, most of the time it

    If you don't want to download and run script files from the internet, you can go and by hand. Otherwise:

    1. Download (right-click -> save as) Link goes to Presto's

    2. Now, do either of the following things:

      1. Move it to your Cyberpunk install folder and double-click it

    The list will give you useful information along with a list of files to check. Once you've found the broken mod, you can go for instructions on how to troubleshoot further – they also tell you when you should ask for help!

    hashtag
    Finding the broken mod (bisecting)

    You have hundreds of mods, and one of them is broken. How do you find out which one it is without wasting the entire day?

    circle-check

    Don't worry! As long as you have less than 2048 mods, bisection lets you find the problem child with only 10 rounds. (Otherwise, it's 11)

    Some mods install themselves to multiple directories, but that doesn't matter. Due to the fact how mod loading works, you can find the error like this.

    circle-exclamation

    If you are using Vortex, you should enable and disable mods through Vortex rather than directly on disk. The principle below still works, you're just selecting the halves inside Vortex instead of moving them between directories. If you do opt to work directly on disk, do not save changes to files if Vortex prompts for it.

    hashtag
    Which kind of mod is it?

    circle-info

    If you already know which folder contains the broken mod, .

    You can find a video of the process .

    To find out the type of broken mod, take each Directory from the following list and complete the steps in the next paragraph after the table.

    Kind of mod
    Directory
    explanation
    1. Rename the game data folder (game folder for short – e.g. archive/pc/mod) to a backup folder by appending an underscore (e.g. /mod_).

    circle-info

    You can put the innocent folders back if you want: due to the way mods are loading, there won't be side-effects.

    hashtag
    Go bisect

    Congratulations, you have found which folder causes the problem — you're more than halfway there. All that's left is to find the broken mod. Here's how.

    circle-info

    The process is the same every time, no matter if you are moving files or folders.

    circle-info

    If you don't vibe with text, there's a below.

    1. Switch on half of the mods from your backup folder by moving them back to the game folder.

    hashtag
    Bisect: Video demonstration

    hashtag
    Audio problems

    If your CPU is too busy, the game will try to save resources by dropping audio, starting with dialogue audio. Disabling spatial audio from the main menu might help:

    hashtag
    It's not connected to CPU load

    Missing footsteps had in the past been connected to a bug in Let , so it is worth debugging your script mods. However, if you're on the most recent version (check the github for previews), you might just have to your mods at random.

    hashtag
    Mod(s) aren't loading/triggering

    circle-info

    If the mod in question is Cyber Engine Tweaks (CET), check the corresponding subpage. If it's anything else, read on.

    Normally, a mod should just work, as long as all of their requirements are working. If you aren't certain what that means, you can check for detes, or just follow the checklist below.

    • Make sure that you have in your launcher.

    • If items or hairs aren't changing, you need to install (why?)

    circle-info

    If you've been using Mod Organizer 2 to install your mods, chances are high that it's been doing it incorrectly, at least for some of the more important mods. You'll need to do additional steps detailed in order to get MO2 working with Cyberpunk.

    hashtag
    That wasn't it: Getting the mod to work

    If your mod is or , you can check the sections below. Otherwise, follow the .

    hashtag
    Mod isn't working: General troubleshooting

    Here's what you can do:

    1. Check that you've enabled the feature (see ).

    2. Check the on the mod's nexus page. Make sure that you have installed them all and that they are up-to-date.

    3. Make sure that all of your are up-to-date and starting up correctly (here's how you can )

    hashtag
    Mod isn't working: CET

    You have installed Cyber Engine Tweaks, but it's not active / not letting you bind a key:

    hashtag
    Mod isn't working: a CET mod or script

    circle-info

    You will find all the files mentioned below under

    1. Find the cyber_engine_tweaks.log.

    2. Update everything that shows an error

    3. If any file paths are listed: Make sure that the directories exist and aren't

    hashtag
    Deleting user settings

    circle-info

    You almost never need to do this.

    However, if you want to remove anything that Cyberpunk might have stored on your disk, you need to find and delete the following folders (as per :

    • %userprofile%\Saved Games\CD Projekt Red\Cyberpunk 2077

    • %userprofile%\AppData\Local\REDEngine

    • %userprofile%\AppData\Local\CD Projekt Red

    You can quickly navigate to the folders by pasting the path into your Windows Explorer's path bar, or pressing Windows+R, pasting the path there, and

    hashtag
    The nuclear option: a clean install

    circle-check

    This is the last resort and you do not need to do this — run for the same result in less time. However, if you're still set on reinstalling, the instructions below will help you completing that in minimal time.

    hashtag
    Back it up, baby!

    triangle-exclamation

    Unless you back them up, your mods will be lost. If you don't want that, make backups of the following folders:

    • /mods

    hashtag
    Quick (download <4GB)

    triangle-exclamation

    Unless you , all your settings and manually installed mods will be lost.

    circle-exclamation

    The instructions below tell you which folders not to delete. Delete everything else.

    1. Go to the Cyberpunk 2077 install directory

    2. Delete everything except for the folder archive

    3. Inside archive, delete everything but

    hashtag
    Modular / minimal download (download <1GB

    triangle-exclamation

    Unless you , all your settings and manually installed mods will be lost.

    circle-check

    Will download < 1GB.

    Rename or remove the following folders. If you do not have them, you don't need to do anything.

    Afterwards, verify your files.

    hashtag
    Nuke it from the orbit: The thorough version

    In case neither of these options is good enough for you, you can find a full reinstall guide on .

    hashtag
    A fresh install: Starting from scratch

    You have completed either of the previous steps. Your game should start now. If it does not, you either have leftover files (check for how to get rid of them), or you have a problem that is not related to Cyberpunk. Make sure to follow the hints in the red box .

    Now it's time to systematically install mods. We'll start by and making sure that the game starts up without any framework-dependent mods. Afterwards, you can add back all of your mods, and if the game stops working, find the offender via .

    circle-check

    Don't worry about your savegames — those are fine, even if they won't load right now. We're just laying the foundation here that you can later build upon.

    Let's go about it step-by-step.

    hashtag
    Installing the frameworks

    circle-info

    This step will tell you how to set up your Cyberpunk install with the necessary dependencies so that you can start modding.

    Check the . For each of the frameworks, complete the following steps:

    • If you didn't have it in your previous install, skip it.

    • Install it (manually or via Vortex, your choice)

    • Install all of its

    circle-exclamation

    If you are using redmod (have any folders inside of /mods), you probably have installed. That is no longer necessary with RED4ext >= 1.13 and can lead to false positives. Uninstall it!

    Once you are done, start up your game and load a savegame. If you don't have one or the game still crashes, start a new game.

    This should now work. If it doesn't, you need to check your to see which framework is causing trouble, or find us on in #mod-troubleshooting.

    circle-exclamation

    You need to complete this step before proceeding: if the core frameworks aren't working without mods, they won't work with mods – adding anything now will just make debugging more difficult.

    Fortunately, this is not rocket science. Be methodical and install them one by one. If you need help, you can find us on (#mod-troubleshooting)

    hashtag
    Adding (back) your mods

    circle-check

    If you don't (yet) have any mods, you can head over to Nexus and start installing. Make sure that you include all necessary !

    circle-exclamation

    This section assumes that

    • you installed all required

    hashtag
    If you're using Vortex

    Head directly to the section and pretend you have just removed all your mods.

    hashtag
    If you made a manual backup:

    For each folder that you have (check link for a list), repeat the following steps:

    1. Put it back into its original place in your new/fresh install

    2. Start up the game

    3. Load a non-modded savegame or start a new game

    If your crash(es) are back, you can now go to the section and follow the steps for your folder.

    hashtag
    Something something files

    Your error goes something like this:

    These are caused by access errors – Cyberpunk is trying to read or write a file, and for some reason, it can't.

    Follow the steps in this section one by one, or find us on in #mod-troubleshooting.

    hashtag
    Make sure that the file path exists

    circle-info

    Ignore this if you can't spot any file paths in the error message

    If Cyberpunk is trying to move files to a subdirectory that it can't access, make sure that the directory actually exists (if it doesn't, create it). The most frequent candidate for this is /r6/cache/modded.

    hashtag
    Make sure that no previous game instance is running

    Sometimes, the game instance doesn't shut down properly and is still running in the background, althoguh you can't see a window. This problem goes away after rebooting.

    • Open your task manager (Ctrl+Shift+Esc)

    • Switch to the Details tab

    • Sort by Name and scroll to C

    circle-info

    It is possible that your antivirus is causing this problem. Before you lose your mind, try temporarily disabling it.

    hashtag
    Reboot your PC

    Always a good idea to do that from time to time – in this case, it could make the error go away.

    If it doesn't, check the next steps on the list.

    hashtag
    Make sure that all files in the game directory are writable

    Sometimes, files in your Cyberpunk game directory are set to read-only.

    hashtag
    What kind of monster would do something like that???

    We've had confirmed reports of the following culprits:

    • Steam

    • mo2 mod manager

    • various flavours of antivirus

    circle-info

    You can fix this either via or via , the results will be the same.

    hashtag
    Via system console:

    • Press Windows+R

    • type cmd and press Return to open the command line

    • run the following command (replace the path with your actual game dir):

    hashtag
    Via Windows Explorer:

    • Navigate to the Cyberpunk game directory and right-click on it

    • Select Properties (the last entry in the drop-down menu)

    • Uncheck the "Read-only" box:

    hashtag
    File Ownership

    Sometimes, file ownership got messed up, and not all files in the folder are accessible by your current Windows account. It is a mystery how this comes to be.

    You can fix it via or via ; either of those will do. If in doubt, the commandline one is more thorough.

    hashtag
    Via commandline

    circle-exclamation

    In any of the commands below, you need to substitute C:/Path/to/Cyberpunk2077 with the path to your game directory.

    • Press Windows+R

    • Type cmd and press return

    • Run the following command (make sure to insert your real Cyberpunk path):

    hashtag
    Via Windows Explorer

    We haven't included the full instructions here, but you can check .

    hashtag
    Reboot your PC again

    If none of these things has helped, reboot your computer.

    hashtag
    The error should be gone now.

    Not to say that your game will work now – but if you still have an error, it's hopefully a different one. Go back to the start of the guide and let's fix that one too!

    hashtag
    Redscript Compilation Failed

    You're running into the following error:

    circle-info

    This workflow is geared at the exact error above. If you have a different one, it's still worth checking this, but you can also head back and find the right section.

    hashtag
    0. Make sure that you don't have multiple versions of installed

    In the past, Codeware wasn't a standalone mod, but was instead bundled inside of other mods. Since that is different now, the leftover versions can cause errors.

    1. Search your Cyberpunk directory for Codeware.

    2. If you have exactly one folder, this is not your problem — proceed to .

    hashtag
    1. Make sure that you have the latest versions

    triangle-exclamation

    Actually check this. Do not rely on memory or common sense – if in doubt, re-download. (This is totally not something that the guide's author learned the hard way)

    1. Check Redscript ( | )

    2. If you are on RED4ext >= 1.13:

      uninstall cybercmd

    3. Otherwise:

    hashtag
    Optional, but recommended:

    Check that you have the latest versions of all troublesome Redmods.

    hashtag
    2. Check redscript.log

    It is in r6/log/redscript.log.

    See if you can find any errors – warnings may or may not be a problem, see for context.

    hashtag
    3. Reset Redscript

    circle-exclamation

    If you rename or delete any directories, make sure to create a new, empty directory.

    hashtag
    Redscript: Disable dependent mods

    Vortex: Disable them

    Manual: Remove the contents of r6/scripts/.

    circle-info

    You can zip the directory from the windows context menu, then delete its contents.

    hashtag
    Resetting the redscript cache

    • delete r6/cache

    • verify game files

    circle-check

    Make sure your game starts up without error.

    hashtag
    4. Reinstall your mods

    Hopefully, your problem should be gone now.

    It's time to put your mods back and see if you can start the game - see .

    hashtag
    XML Document parsed with errors

    XML document parsed with errors: C:\Path\toCyberpunk 2077\r6/config/inputUserMappings.xml Error description: Error parsing element attribute

    According to InputLoader's , you can ignore this. Keep searching! (You can also try reinstalling InputLoader and hope that the error goes away)

    hashtag
    You forgot your CET keybind

    Delete the file Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks\bindings.json. The game should let you bind a new key at the next startup.

    hashtag
    Photomode screenshots are blank

    With 1.62, screenshots are now saved to Documents\CDPR\Cyberpunk\Screenshots , and the previous location will receive an empty file.

    With 1.63, screenshots have now been moved back to \Pictures\Cyberpunk 2077

    hashtag
    Press [none] to continue

    That is due to requiring an update.

    hashtag
    I have another problem that isn't on this list

    Here's the catch-all solution. After this, your game will work (or the problem you have is not Cyberpunk related).

    1. (optional, as this might solve it): .

    2. If your problem doesn't go away, follow the instructions .

    hashtag
    I really just want to get this working, what do I do?

    circle-exclamation

    You might want to deactivate ReShade before you start debugging. Especially after DLSS, it has been known to cause crashes.

    The bad news is, at this point you have little choice but to reset your Cyberpunk install and re-mod it from scratch. The good news is that the process is really streamlined. If you don't run into any hitches, you're <30 minutes away from a working game.

    Now, how do we go about this?

    hashtag
    Is there a shortcut?

    Yes! There is a batch script that will automate steps 1-4 of the list below for you.

    If you don't want to download and run script files from the internet, you can go and complete the steps by hand. Otherwise:

    1. Download the mod remover script by either

      • downloading it from and following the install instructions

      • grabbing it from (right-click -> save as) and moving it to your Cyberpunk dir Link goes to the

    circle-check

    Instead of following these instructions, you can also . Do yourself a favour and check the instructions, as you might be left with residual files otherwise.

    hashtag
    Step 1: Temporarily disable all your mods

    hashtag
    Vortex

    • Follow the instructions and prompts

    Press the purge button — this will remove any and all installed mods.

    triangle-exclamation

    Do not press deploy.

    hashtag
    If all your mods were managed via Vortex:

    Start Cyberpunk however you want, as long as it's not via Vortex. If it starts now, you're done here and can proceed with – otherwise, go to .

    hashtag
    If you had a mixed install:

    Complete the instructions in the section now.

    hashtag
    Manual

    Find the following folders:

    and rename them to

    circle-info

    The purpose of renaming them is that the game won't find them anymore, but you still have a back-up of the files inside. Feel free to achieve this goal however.

    You can optionally create a new, empty folder with the same name.

    circle-check

    Check if the problem is gone.

    If it is, put the folders back one after the other and apply the .

    hashtag
    Step 2: disable CET

    Find the folder

    and move it out of plugins (e.g. put it on your desktop).

    triangle-exclamation

    If you'd rather delete it, make sure that you retain a copy of your mods and plugins directories, as they contain your mod settings (AMM decorations etc.)

    circle-check

    Check if the problem is gone.

    If it is, put the folder back and apply the to cyber_engine_tweaks\mods and cyber_engine_tweaks\scripts until you have found the culprit.

    hashtag
    Step 3: Remove scripts and tweaks

    First, remove (or rename) the cache:

    circle-check

    Verify game files. Check if the problem is gone.

    If that didn't do the trick, find the following folders:

    and rename them, you know the drill.

    circle-check

    Check if the problem is gone.

    If it is, put them back one by one until you find the one that breaks it. If that is one of r6\scripts or r6\tweaks, apply the .

    hashtag
    Step 4: Remove RedScript

    circle-info

    You can try first, but at this point, you'll going to have to verify your files anyway.

    Delete the following files and folders. You don't need a backup, as you can reinstall RedScript from . If any of them don't exist, that's okay — just means you don't have to delete them.

    circle-info

    @Auska has compiled a handy script for unix people:

    hashtag
    Step 5: Repair game files

    Exact procedure as documented by @ArsenicTouch

    hashtag
    GOG

    Go to Games -> Installed, right-click on your game and select the following menu entry:

    hashtag
    Steam

    1. Open your library

    2. Right-click on "Cyberpunk 2077" and select "Properties"

    3. Select "Local Files"

    hashtag
    Epic

    1. Open your "Library"

    2. On the "Cyberpunk 2077" tile, find the "…"

    3. Select "Manage"

    hashtag
    Step 6: Launch the game

    All files you deleted have been re-acquired. If there are no left-over files from earlier modding attempts, your game should work now.

    circle-exclamation

    If it does not and you have exhausted the reset options as specified in this guide ( and both) and your game still does not start, then your problem exists outside of Cyberpunk. In this case, you can

    • check your (separately for )

    hashtag
    Step 7: Install the core frameworks

    Now that your un-modded game is starting, it's time to . Do this before you enable your other mods, as they won't work without their dependencies and can only add problems at this stage.

    circle-info

    You can now re-enable your mods. Do it in chunks and check that the game keeps working so that you can narrow down where the problem is, in case it isn't gone for good.

    hashtag
    Dealing with a broken mod

    You have followed all the steps and your game is launching, but you now have a mod on your hands that just doesn't work, and you want it to. What do you do now?

    circle-info

    If you join a to ask for help, people will walk you through this list, so you might as well do it first. Nobody will unbundle someone else's mod and just fix it for free unless they want to use it themselves.

    hashtag
    1. Make sure you have the correct dependencies

    Many mods require frameworks or other mods to work. Check the mod's page and description for those, and install them.

    Repeat the process by installing the dependencies' dependencies, until you have everything necessary.

    hashtag
    2. Check the mod's description

    Often, the description contains detailed installation instructions, known incompatibilities and/or workarounds. Sometimes, mods worked on past versions of Cyberpunk, but the author stopped updating. In that case, proceed to of this list.

    triangle-exclamation

    Before you get upset, please keep in mind that modders don't do this for a living (these are called "game developers" and they get paid for it). Somebody made this in their spare time, for their own use, and then decided to share it with you for free. Do you know the easiest way to avoid toxic users? It's not publishing your mods. No reward system, credit points or reputation will ever make up for online abuse.

    As a mod author, I can tell you that I will ignore assholes, but gladly spend an extra hour after work to help out someone who politely asks me for help.

    hashtag
    3. Check the mod's comment section

    You're unlikely to be the first person to run into this problem. There is a good chance that the comment section on the download page has helpful information. Look for either a pinned post by the mod's author or a user discussion about your problem — these often contain a solution.

    hashtag
    4. If you are using a mod manager: Try installing it manually

    While mod managers are very reliable and get better with every new release, you should rule out that they are the cause of the problem by installing the mod from hand.

    If everything else works and installing the mod by hand still breaks compilation, then it is broken. See "" below. start your game client's file verification.

    hashtag
    5. Contact the mod's author

    Describe your problem as clearly as you can, and add all useful data.

    Bad bug report: "Your mod doesn't work lol pls help"

    Good bug report (example): "Hi, installing your mod (manually and Vortex) causes a Redscript compilation error on startup (possible screenshot of error popup). xxx.log says <citation of error message>. All my dependencies are up-to-date, and I've ruled out that it's any other mod. Can you help me out?"

    Good bug report (example 2): "Hi, when I try to equip Item <item name and colour>, it doesn't show up and I only get glitches. I'm using Hyst's boob mod and <specific version and variant> of your mod. I hope you can help me? Thank you for making this."

    triangle-exclamation

    As per the last red box, do keep in mind that you're asking a favour. The modder doesn't have your problem, and if they do, they know exactly how to fix it. The most time-efficient response for them is to ghost you, so any kind of response is either them being nice or getting mad when you or someone involved ignores visible information.

    hashtag
    5. Hands-on troubleshooting

    At this point, you have exhausted all easily accessible solutions. If you still want the mod to work, you will have to get involved yourself. A commendable attitude! (Not sarcasm, it really is.)

    circle-info

    This is the point where you might want to join a , because now you're entering the territory where other modders can actually help you.

    hashtag

    Usually, there will be a that will point you towards the source of your problem. If there isn't (the game loads and the mod just fails silently), that means that the error is inside the archive and you have to become a modder.

    hashtag
    Fixing scripts

    But sometimes, you're lucky. Sometimes, the error is in a script file. You can tell this by a log entry pointing towards a file in your Cyberpunk folder (e.g. r6\scripts\my_broken_script.reds).

    Open up that file in a text editor like and try to find and fix the problem. Sometimes, the log file has more information. Sometimes, an online syntax check can help you — there isn't one for redscript, but it's fairly close to lua.

    Sometimes, such mistakes are trivial — a forgotten , or incorrect file encoding. Often, they are not.

    circle-info

    A tip for

    hashtag
    Ascending from user to modder

    If the error isn't in any script files, you will have to unbundle the .archive, load it in , and get your hands dirty. We'll be seeing each other, choomba!

    hashtag

    your Windowsarrow-up-right is up-to-date (no, really)
  • you have the most recent version of .NET Desktop Runtimearrow-up-right installed

  • you have Visual C++ Redistributable 2022arrow-up-right installed (direct downloadarrow-up-right, Microsoft)

  • Find a download-ready collection for Vortex herearrow-up-right.

    During a quest in a car chase

  • it's not even starting

    • Corrupt or missing script files

    • Corrupted archives

  • Redscript Compilation Failed (Popup message)

  • You're on Linux

  • You have trouble with your pirated game

  • Photomode screenshots are borked

  • Your icons are gone: see Resetting the redscript cache

  • Press [none] to continue

  • You have audio issues

  • You have trouble with CET (Cyber Engine Tweaks)

    • You forgot your CET keybind

  • XML Document parsed with errors

  • You installed a mod, but it's not doing anything

  • A mod is causing problems, and you have no idea which:

    • Known problem children

    • Searching: Bisect

    • Searching:

  • Something with files or ACCESS_VIOLATION

  • Deleting user settings

  • This is a waste of time, I'm reinstalling

    • Modding a clean install

  • )
  • In r6\cache, browse to the folder modded (create it if it doesn't exist)

  • paste tweakDB.bin here (Ctrl+V)

  • If asked to overwrite, select Yes

  • If you have Phantom Liberty, repeat the process with tweakdb_ep1.bin

  • Downgrade your game to 1.63_hotfix_1

  • Install Immersive Rippersarrow-up-right and all of its dependencies and all of their dependencies

  • Load into your previously-crashing save

  • Move at least 100m away from the closest ripper

  • Copy the following commands and run them in the CET-Console:

    1. Save your game in a new slot and close it

    2. Remove Immersive Rippers .archive file("Cyberpunk 2077\archive\pc\mod\ImmersiveRippers.archive")

    3. Save your game again and remove all mods used in version 1.63

    4. OPTIONAL: Load the save in vanilla 1.63, it should work there too.

    5. Download the newest version of Cyberpunk2077! The clean created save should work for vanilla and modded instances of the game.

    if that doesn't help, go to Troubleshooting in the corresponding section (you will need to verify your game files).

    Now, start the game.

  • If the error persists, verify game files through your client (you won't catch any viruses doing that)

  • Start the game again

  • Drag-and drop your Cyberpunk folder on the file that you downloaded

  • After running, the script will have created a folder _LOGS in your Cyberpunk directory, which contains a file listing all the log files for you.

  • .lua (cyber engine tweaks)

    \bin\x64\plugins

    Cyber Engine Tweaks

    redscript

    \r6\scripts

    redscript mods

    red4ext

    \r6\tweaks

    red4ext tweaks

    Only do this with the last subfolder in the path, the result should be
    \archive\pc\mod_
    , not
    archive_\pc_\mod_\.
  • The folder is now hidden from the game. Since it doesn't know, it will try to look inside anyway - create a new empty folder with the original name for that (e.g. /archive/pc/mod).

  • Start the game. You will now run into one of these two scenarios:

    • Your problem is gone: Jackpot. This is the correct folder for the next section: Go bisect Before you go there, you can restore all the other folders you moved, deleting the empty directories.

    • Your problem is still there: This folder is innocent. Proceed with the next directory from the table above.

  • Remember (roughly) which batch you moved (e.g. "everything after E" or "the first half")
  • Start the game. You will now run into one of two scenarios:

    • The error is still there: Progress! Go to Step 5.

    • The error is gone: Progress too! Go to step 4

  • The error is gone: You have identified which mods aren't the problem! Good! Do the following:

    1. In your backup folder, find the last batch of mods that you touched

    2. Half of these go into the game folder

    3. Go back to step 2 – you should now definitely see the problem again.

  • The error is still there: You have narrowed it down, let's narrow it down further. Do the following:

    1. In your game folder, find the last batch of mods that you touched

    2. Half of these go back into the backup folder

    3. Go back to step 2 for the next round – the problem might be there or not.

  • Repeat this process until you know which mod is causing the crash. Then, you can either try to update it, or do a full uninstall

  • If materials aren't updating, you need to install material overridearrow-up-right (why?)
  • If you already have all of that, check the next section.

  • Check the other log files in the game directory (here's a guide how)

  • Optional: reach out to us on Discordarrow-up-right in #mod-troubleshooting

  • Search the CET folder for log files log files

  • Try to resolve any errors or reach out to us on Discordarrow-up-right in #mod-troubleshooting

  • /archive/pc/mod

  • /bin/x64/plugins/cyber_engine_tweaks

  • /r6/scripts

  • /r6/tweaks

  • The script linked above will do that for you.

    the folders
    pc
  • Inside pc, delete everything but the folders content and ep1

  • Verify your files

  • Start the game and load a savegame (you can also do this after installing all of them, but if you run into issues, that will make isolating the point of failure more difficult).

  • Optional (for CET): Start the game and make sure that it asks you to bind a key. If not, check the corresponding section of this guide.

  • your game is starting
  • you can (without crashing) do either of these things:

    • load a savegame

    • start a new game

  • If you didn't make it that far, the steps below won't help you and will only obscure your problem. Please head back to Step 1: Temporarily disable all your modsand complete the process.

    If you need help, find us on Discordarrow-up-right in #mod-troubleshooting!

    Cyberpunk is trying to write to a file that doesn't exist
    Check if you can see anything Cyberpunk in the list.
  • If yes, right-click on it and select End Task

  • If that didn't help, run the command whoami to see your current user name. You will need it for the next step. It should be identical to your Windows username, but if you have spaces or special characters, Windows might get funny about the spelling.

  • Run the following command (putting your actual game dir and the username from whoami):

  • Delete everything you have found.

  • Reinstall the latest version of Codewarearrow-up-right from Nexus.

  • Delete the folder r6/cache

  • Verify your game

  • install cybercmd (github arrow-up-right| Nexusarrow-up-right)
    create a new directory r6/cache/modded (this will prevent errors)
  • Make sure that r6/scripts is empty

  • Make sure that red4ext/plugins is empty (that the red4ext core frameworks aren't getting loaded)

  • of the person who wrote most of this guide
    .
  • Optional: If you don't want the script to delete modded files for you (because you just want to disable mods), right-click on the file and select Edit, then find and delete line 6:

  • Make sure that the file is in your Cyberpunk directory. If you downloaded from Nexus, you should have a cyberpunk2077_disable_all_mods.bat.

  • Double-click it

  • Follow the instructions and prompts

  • Verify your game files

  • Optional: You can now proceed to Step 5 and start modding your game again.

  • Click "Verify integrity of game files…"
    Click "Verify"

    update the Windows stuff

  • google your error message and try solutions at random

  • .archive

    \mods

    Redmod directory: contains .archive mods (in subfolders)

    .archive

    \archive\pc\mod

    Legacy directory: contains .archive mods

    core mods
    Redscriptarrow-up-right
    Red4extarrow-up-right
    Cyber Engine Tweaksarrow-up-right
    ArchiveXLarrow-up-right
    TweakXLarrow-up-right
    I don't wanna debug, I just want mods!
    There was a game update and now your mods aren't working
    Your game is crashing
    install REDMod
    Eye Exposure Adaptionarrow-up-right
    Something something files
    Your game isn't starting
    disable CET
    Commands
    CyberCAT's troubleshooting section
    bisect
    Immersive Rippersarrow-up-right
    mod removerarrow-up-right
    Broken mods: How to help
    sourcearrow-up-right
    bisect
    to a clean state
    temporarily disabling
    bisect section
    launch options
    troubleshoot redscript directly
    temporarily disable all mods
    bisect
    Too many mods
    Message: Failed to initialize scripts data!
    Steam file verification loop
    .NET Desktop Runtimearrow-up-right
    Visual C++ Redistributable 2022arrow-up-right
    direct downloadarrow-up-right
    Discordarrow-up-right
    Run as admin
    Run without antivirus
    have them all up-to-date
    Let There Be Flightarrow-up-right
    In-World Navigationarrow-up-right
    Vehicle Combatarrow-up-right
    Mod Settingsarrow-up-right
    Native Settings UIarrow-up-right
    Cyber Engine Tweaksarrow-up-right
    ctdhelperarrow-up-right
    this scriptarrow-up-right
    github repositoryarrow-up-right
    here
    skip to the next section
    below
    There Be Flight
    bisect
    Requirements explained
    enabled mods
    cookedapps nulledarrow-up-right
    herearrow-up-right
    cyber engine tweaks itself
    a dependent mod
    general troubleshooting steps
    Cyber Engine Tweaks (CET)
    a CET mod or script
    Deploying Mods and Starting Game
    requirements
    core frameworks
    check their log files
    Visual C Redistributable 2022arrow-up-right
    direct downloadarrow-up-right
    read-only
    CDPR's own troubleshooting guidearrow-up-right
    this script
    back up your mods and scripts
    back up your mods and scripts
    CDPR's support pagearrow-up-right
    here
    at the very beginning of this guide
    installing the frameworks
    bisect
    framework page
    dependencies
    cybercmdarrow-up-right
    log files
    Discordarrow-up-right
    Discordarrow-up-right
    dependencies
    core mods
    bisecting
    backed up
    bisect
    Discord arrow-up-right
    Windows Explorer
    system console
    system console
    Windows Explorer
    this guide
    to the start of the guide
    Codewarearrow-up-right
    the next step
    githubarrow-up-right
    Nexusarrow-up-right
    here
    Starting from Scratch
    documentationarrow-up-right
    Input Loaderarrow-up-right
    Reset the Redscript cache
    in the next section
    here
    Nexusarrow-up-right
    githubarrow-up-right
    github repositoryarrow-up-right
    reinstall the game
    bisecting
    Remove RedScript
    manual
    bisection method
    bisection method
    bisection method
    resetting RedScript
    Nexusarrow-up-right
    troubleshooting
    nuclear
    file permissions
    REDprelauncher.exe
    install the core frameworks
    modding discordarrow-up-right
    point 5
    Dealing with a broken mod
    modding discordarrow-up-right
    Check the log files
    log file
    Notepad++arrow-up-right
    nil access error in lua
    WolvenKitarrow-up-right
    Creative Commons, Credit: Tom Briskeyarrow-up-right
    Your error message
    Activating mods
    The nuclear option: a clean install
    Crash before menu
    Crash on loading a save
    Crash on startup
    Crash on loading a save
    Crash before menu
    Crash before menu
    Corrupt(ish) saves
    Corrupt(ish) saves
    Step 1: Temporarily disable all your mods
    Bisect: Video demonstration
    icacls "C:/Path/to/Cyberpunk2077" /grant YourUserName:F /T /C
    set DELETE_FILES=1
    Cyberpunk 2077 encountered an error caused by a corrupted or missing TweakDB file and will now be forced to close
    Message: Failed to initialize scripts data!
    File: E:\R6.Release\dev\src\common\engine\src\baseEngineInit.cpp(1019)
    Cyberpunk 2077 encountered an error caused by corrupted or incomplete game data
    Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks
    Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks
    /mods
    /plugins
    /engine
    /r6
    /red4ext
    /archive/pc/mod
    /bin/x64/plugins
    Access is denied
    Can't access file 'some/file'
    could not move file from 'Path\to\blabla.tmp' to 'Path\to\Cyberpunk 2077\subdir\some.file'
    Expression: EXCEPTION_ACCESS_VIOLATION
    The thread attempted to read inaccessible data at 0xsomething
    An exception occured while creating the logger
    attrib -r "C:\Path\To\Cyberpunk\*.*" /s
    takeown /R /A /F "C:/Path/to/Cyberpunk2077" /D N
    REDScript compilation failed. The game will start, but none of 
    the scripts will take effect. This is caused by errors in:
    Cyberpunk 2077\archive\pc\mod
    Cyberpunk 2077\mods
    Cyberpunk 2077\archive\pc\mod_
    Cyberpunk 2077\mods_
    Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks
     r6/cache/modded
    Cyberpunk 2077\red4ext
    Cyberpunk 2077\r6\scripts
    Cyberpunk 2077\r6\tweaks
    Cyberpunk 2077\engine\tools
    Cyberpunk 2077\bin\x64\d3d11.dll
    Cyberpunk 2077\bin\x64\global.ini
    Cyberpunk 2077\bin\x64\powrprof.dll
    Cyberpunk 2077\bin\x64\winmm.dll
    Cyberpunk 2077\bin\x64\version.dll
    Cyberpunk 2077\engine\config
    Cyberpunk 2077\engine\tools
    Cyberpunk 2077\r6\cache
    Cyberpunk 2077\r6\config
    Cyberpunk 2077\r6\inputs
    Cyberpunk 2077\V2077
    rm ./bin/x64/d3d11.dll
    rm ./bin/x64/global.ini
    rm ./bin/x64/powrprof.dll
    rm ./bin/x64/winmm.dll
    rm ./bin/x64/version.dll
    rm ./engine/config
    rm ./engine/tools/*
    rm ./red4ext
    rm ./r6/cache
    rm ./r6/config
    rm ./r6/inputs
    rm ./V2077
    
    mv ./r6/cache/final.redscripts.bk ./r6/cache/final.redscripts
    Game.SetDebugFact("bls_ina_se1_ripperdoc_01_default_on", 0)
    Game.SetDebugFact("cct_dtn_ripdoc_01_default_on", 0)
    Game.SetDebugFact("hey_spr_ripperdoc_01_default_on", 0)
    Game.SetDebugFact("pac_wwd_ripdoc_01_default_on", 0)
    Game.SetDebugFact("std_arr_ripperdoc_01_default_on", 0)
    Game.SetDebugFact("std_rcr_ripperdoc_01_default_on", 0)
    Game.SetDebugFact("wat_kab_ripperdoc_01_default_on", 0)
    Game.SetDebugFact("wat_kab_ripperdoc_03_default_on", 0)
    Game.SetDebugFact("wat_nid_ripperdoc_01_default_on", 0)
    Game.SetDebugFact("wbr_hil_ripdoc_01_default_on", 0)
    Game.SetDebugFact("wbr_jpn_ripdoc_01_default_on", 0)
    Game.SetDebugFact("wbr_jpn_ripdoc_02_default_on", 0)
    before the menu
    when loading a save / starting a game
    randomly during gameplay
    Log files