arrow-left

Only this pageAll pages
gitbookPowered by GitBook
1 of 85

WolvenKit

Loading...

Features

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Getting Started

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

WolvenKit App

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

WolvenKit CLI

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Guides

Loading...

Loading...

Loading...

Loading...

Loading...

Help

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Legacy

WolvenKit 0.7.x series and below

Documentation on Legacy WolvenKit can be found on the Legacy WolvenKit wiki at this linkarrow-up-right.

Uninstall

Uninstalling WolvenKit

hashtag
Now why would you want to do that? 💔

To completely delete WolvenKit portable delete your chosen installation folder, and the REDmodding folder in your users/appdata/roaming/ directory.

To delete the Installer version you can use Windows default Remove Programs or Features tool. You may then manually delete the users/appdata/roaming/REDmodding folder to remove your preferences as well.

Overview

WolvenKit is powerful

hashtag
Asset I/O

WolvenKit includes an all-purpose import and export tool for converting assets to game files and vice versa. Our tooling is bespoke allowing for native conversions with extensive options to suit your needs (check or find the list of ).

Base game and user-generated archives can be browsed on the fly, making game dumps obsolete. Our Asset Browser also features instant preview for assets such as meshes and textures.

Home

WolvenKit - The ultimate mod editor for REDengine games

hashtag
What is WolvenKit?

circle-info

This wiki – and Wolvenkit – are community-driven open source projects! If you want to contribute, you can start

8.6

Have you tried updating to the nightly?

Published May 24 2022

<summary paragraph>

hashtag
Miscellaneous

0.8.0.1

hashtag
Published Apr 06 2021

After a long and hectic development process, we are very excited to finally announce the public Beta release of Wolvenkit for Cyberpunk 2077. That's right everyone, Wolvenkit is no longer a myth! Though there have been many delays, we greatly appreciate the community and our patrons and contributors for sticking by us throughout the development process, and for the hard work by the many programmers, artists, and researchers that have made this whole project possible. So many incredible breakthroughs and discoveries have been made in Cyberpunk 2077 modding thus far, and we are excited to see what the community can do with the new capabilities that will be made available with the release of WolvenKit. Modders will now be able to browse game assets, browse, read, and edit most if not all file formats used by the game, manage projects, and more. As this is only the initial release, some features you may expect are still to come in future releases. By choosing to support us, you will be not only be enabling us to continue to develop Wolvenkit and add further functionality and tools for use by the community, but also gain access to exclusive posts and updates on the development process, as well as private community channels, voting power, behind-the-scenes content, and more. Even the smallest amount can help us to continue / spend more time on developing more tools.

WolvenKit has been completely refactored to migrate to a WPF solution from the Legacy WinForms build. Version 0.8.0.1 brings initial support for CDPR's latest video game Cyberpunk 2077. While we are planning to bring feature parity for Legacy WolvenKit versions, for now support for Witcher 3 projects is extremely limited. The initial feature set for the 0.8.x series focuses on the Asset Browser and Project Packing tool which enables us to efficiently rip assets and repack REDengine files into the archive format.

hashtag
Mod Projects

  • Initial implementation of the Project Explorer enables basic asset management for REDengine files added from Asset Browser.

  • Initial implementation of the build pipeline. Files inside the Mod directory are packed into Cyberpunk format archive files. Optionally the user can choose to auto-install the packed archive file into their game folder.

hashtag
UI/UX

  • The WolvenKit UI has been completely rewritten from scratch to transfer the code base from WinForms to WPF.

hashtag
Development

WolvenKit is an open-source community developed application. The source code for WolvenKit and other projects can be found on our GitHub page.arrow-up-right WolvenKit is primarily written in C# and the GUI uses WPF framework. Anyone can download the source code and build on their own with Visual Studio. If you're a developer who is interested in getting involved, please check out Contributing!

hashtag
File Editor

WolvenKit is built around our RTTI-based file editor. Any REDengine file can be inspected, edited, and saved with the File Editor. The File Editor is also capable of reading and writing in-place buffer data. Game files can also be converted to human-readable json and back for ease-of-use.

hashtag
Projects

WolvenKit can host virtually all of your required project files inside the Project Explorer. Each project is neatly separated into distinct folders which can be accessed through the application. No more whiplash from constantly navigating your file explorer to switch between projects! Feel free to host all of your assets within a mod project. Source files such as blends, psd, xcf, and more can be placed inside your project tree and opened directly with a double click! WolvenKit works with you by organizing your project files automatically.

hashtag
UI/UX

WolvenKit is created with the intention of being an all-purpose mod editor. The application interface is designed to help modders keep their sanity by having every tool at their disposal from the main editor. The application is built with a configurable interface to suit your preferences.

hashtag
Workflows

WolvenKit features a robust build pipeline for handling REDengine assets. Game files can be browsed, extracted, modified, and packed into an archive once again for use in game. WolvenKit can help guide modders along with this process by using our efficient pipelines.

hashtag
Other

hashtag
Blender Integration

WolvenKit supports Blender for one-click imports of fully shaded Cyberpunk meshes using the Multilayered.mt supershader. Find the workflows here:

Exporting Rigs & Anims

Exporting Vehicles

Import/Export
I/O formats for export/import
, contribute to the
, or find us on
!

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.

Our current development focus is REDengine 4 with Cyberpunk 2077.

After installing Wolvenkitarrow-up-right, you can…

  • … dive right in and start creating a mod

  • … read more about the software on the Overview page

  • … check out what's new in our Release Notes

  • … learn about support for The Witcher 3 on the or wikis

  • … find modding guides and know-how on the dedicated

… or join us on Discordarrow-up-right.

hashtag
Quick Links

hashtag
Websites & Community

editing the wikiarrow-up-right
source codearrow-up-right
Discordarrow-up-right
Overviewchevron-right
Release Noteschevron-right
Download, Install and Setupchevron-right
Creating a Modchevron-right
Launch Game from WolvenKit Wolvenkit is now able to run Cyberpunk 2077 from the app itself using the 'Launch Game' button, with support for launching either through platforms (like Steam:// gameid links) or from the executable executable, with support for launching with specific commands (e.g. -qualityLevel=Cinematic_RTX).
  • Pack, Install and Launch game is now included as well to quickly pack mod projects and launch the game.

8.6 new "Launch Game" options

Release Notes

What's new?

hashtag
WolvenKit 8.7

hashtag
Published October 22 2022

8.7 (Latest Stable)chevron-right
circle-info

Supports Cyberpunk 2077 game version 1.6

hashtag
WolvenKit 8.6

Published May 24 2022

circle-exclamation

Does NOT support latest Cyberpunk 2077 game version

hashtag
WolvenKit 8.5

hashtag
Published March 07 2022

circle-exclamation

Does NOT support latest Cyberpunk 2077 game version

hashtag
WolvenKit 8.4

hashtag
Published October 03 2021

hashtag
Patches

hashtag

hashtag

hashtag

circle-exclamation

Does NOT support latest Cyberpunk 2077 game version

hashtag
WolvenKit 8.3

hashtag
Published September 05 2021

hashtag
Patches

circle-exclamation

Does NOT support latest Cyberpunk 2077 game version

hashtag
WolvenKit 8.2

hashtag
Published June 28 2021

hashtag
Patches

hashtag

hashtag

circle-exclamation

Does NOT support latest Cyberpunk 2077 game version

hashtag
WolvenKit 0.8.0.1

hashtag
Published April 06 2021

circle-exclamation

Does NOT support latest Cyberpunk 2077 game version

8.2

hashtag
Published Jun 28 2021

WolvenKit 0.8.2 brings massive improvements in key areas. Features such as the Asset Browser have been refactored to be more robust and efficient. This build also features the first scalable content pipeline for importing various assets. Be sure to thoroughly read the Release Notes and check the showcase video!

circle-exclamation

The Wolvenkit Nightly

What is the Nightly, and why should (or shouldn't) you use it?

hashtag
What is the Nightly?

The Nightly is . Releases are build every day when the code changes (traditionally during the night, but this is CyberPUNK), so you will always have access to the latest and hottest features.

Naturally, the Nightly will have more bugs than the stable version — but you should use it regardless, because we need help catching those bugs.

Log

hashtag
What is the Log?

The Log is WolvenKit's internal logging service to inform the user of what's happening under the hood. It also shows output from the feature, which will check file connections for you.

If something is not working as expected, take a peak into the Log to check for useful information.

8.6chevron-right
8.5chevron-right
8.4chevron-right
8.4.3 (Nov 11 2021)
8.4.2 (Nov 01 2021)
8.4.1 (Oct 06 2021)
8.3chevron-right
8.3.2 (Sept 05 2021)
8.2chevron-right
8.2.2 (Jul 05 2021)
8.2.1 (Jun 29 2021)
0.8.0.1chevron-right
File Validation

Usage

Blender Integrationchevron-rightWolvenKit Projectschevron-right
Support for Witcher modding has been temporarily removed from this build while we work on improving those features. Please continue using Legacy WolvenKit for now ❤️

hashtag
Patches

hashtag
8.2.2 (Jul 05 2021)

hashtag
Fixes

  • Fix for some meshes that did not import successfully (index out of range error)

  • Fix for materials not being written correctly from material json files

  • Fix for critical error with pack tool installing archives with a subfolder which prevents auto-installed mods from loading in game

  • Fixed a bug with settings view not updating

hashtag
Changes

  • Additional information is displayed within the status bar

  • Project creation simplified further

  • Bug and feedback reporters implemented within Options ribbon menu

  • Installer and auto-installation added

hashtag
8.2.1 (Jun 29 2021)

  • Support for bk2 import/export via the Project Explorer right-click context menu

  • Fixed critical bug where some mesh previews crashed the app

  • Fixed a bug where items in the mod project had incorrect paths

  • Fixed a startup issue with InitializeBK accessing the oodle DLL before the game path has been set

hashtag
Asset I/O

  • Implementation of the universal Import/Export Tool brings support for an asset I/O pipeline The Import/Export Tool can be accessed through the WolvenKit editor ribbon. Exported files will be placed inside a new WolvenKit system directory called Raw. The Raw directory will mirror the existing Mod directory 1:1 which enables us to quickly re-import files without having to target an out-path for each import.

  • Support for mesh I/O Native support for mesh to gltf/glb and vice versa

  • Support for xbm I/O Native support for xbm to dds and vice versa

  • Support for bespoke material json I/O Import/Export tool supports material.json files which can be used to manipulate REDengine materials

hashtag
Development

  • Irrlicht has been eliminated from the Solution.

  • The Asset Browser code has been refactored, dramatically improving startup times.

hashtag
File Editor

  • The File Editor has not seen much development. There is a small regression with 8.2, where paths and variables are not displayed correctly. Alternatives such as the 010 editor template or WolvenKit's bespoke I/O for materials are recommended to view CR2W properties.

hashtag
Mod Projects

  • The Raw WolvenKit system directory has been added. This directory hosts all non-REDengine formats such as dds, tga, glb, and other source files such as psd, xcf, or blend files. The Raw directory significantly improves efficiency of the Import/Export Tool. Raw files that can be imported will appear inside the Import/Export Tool. Raw files can also be opened externally with your preferred editor by double clicking them inside the Project Explorer (i.e. opening a .blend file directly with Blender).

  • WolvenKit now leverages a material repository. The material repository can be created all-at-once by exporting all game textures from XBM to TGA (other formats not supported at this time). Alternatively, each mesh exported with materials will have all texture dependencies dumped here. It's recommend to use the all-at-once approach if storage is not an issue. The material repository makes dumping redundant texture dependencies for each and every mesh unnecessary.

  • Basic-yet-powerful operations have been added to the Project Explorer. Rename, copy, paste, and delete have been added to the context ribbon. Batch operations such as batch delete are supported also by using multi-select. Manage your assets from the Project Explorer!

  • The DLC WolvenKit system directory has been removed, to be re-added if/when we have a working DLC pipeline.

  • The publish button has been disabled temporarily in favor of the simple pack tool. The pack tool is a one-click solution to packing all Mod directory files and installing them to the game automatically.

hashtag
UI/UX

  • All REDengine files have been assigned a custom icon

  • Multi-select has been implemented in areas such as the Asset Browser. Shift-select multiple files, right-click, then use the context menu to add selected files to the project.

  • Basic file operations for the Project Explorer have been added to the context ribbon. (rename, copy, paste, delete, etc.)

  • Startup time for projects has been dramatically reduced. The asset browser should initialize much faster

  • Significant cleanup of unusable features/buttons. Witcher 3 modding support has been temporarily removed since the initial implementation is superficial

  • Theming has been completely refactored

  • New Import/Export tool has been added

  • New Material Repository tool has been added

  • Publish has been disabled temporarily

  • Home page has been refactored with support for embedded videos. We plan to feature showcase/guide videos, or community guides as well

  • Sammy icon has replaced the old desktop icon

hashtag
Other

  • Windows Administrative Mode is no longer required to launch WolvenKit. Note: If Cyberpunk is installed to your Program Files folder WolvenKit should still be launched with administrative mode enabled.

  • Basic integration with Blender's shader system via the material.json. Meshes can be imported with materials and textures using HitmanHimself's Blender plugin found here: https://github.com/HitmanHimself/cp77research/releases/tag/1.0.0arrow-up-right Read more about Blender integration with WolvenKit on our dedicated Wiki page.

For more information on this, check How do I report bugs?

circle-check

You should have the latest stable releasearrow-up-right installed as well. See Is it a regression? for more information.

hashtag
How do I install it?

Download the portable version:

Then, extract the downloaded .zip file into a folder on your hard drive (for example, C:\Cyberpunk2077Mod\Wolvenkit_Nightly) and start it. Done!

hashtag
How do I report bugs?

circle-check

Before reporting a bug, make sure that you are on the latest Nightlyarrow-up-right, and that you have a way to reliably reproduce the bug. We need to watch it in action, or we can't fix it.

hashtag
Is it a regression?

Double-check the bug in your stable install. If if works there, but doesn't work in the Nightly, then it's a regression (something that used to work but got broken).

If it's broken in both places: congratulations, you've found a new bug!

hashtag
Reporting a bug

  1. Head to the "Issues" section of Wolvenkit's githubarrow-up-right (you need a github or Google account; they will not send you spam)

  2. Click the "New issue" button

  3. Select the type of issue you are reporting (probably "bug report")

  4. Give a description of the bug, including the following information:

    1. Your Nightly version (date is okay)

    2. Is the bug a regression? (Does it also happen in the latest stable?)

    3. The files necessary to make this happen, or their paths if they are vanilla files

Wolvenkit's Alpha/Beta versionarrow-up-right
REDengine 3arrow-up-right
Legacy WolvenKitarrow-up-right
Cyberpunk 2077 Modding Wikiarrow-up-right

Full install walkthrough (ELI5)

If you want step-by-step instructions on how to install and configure Wolvenkit

hashtag
Summary

Created by @JJTurtle Published October 22 2022

Updated Jul 30 2023 by

This guide is intended for the beginning modder, who is still learning, and wants step-by-step instructions on how to fully install and configure their modding tools and asset depot.

To keep things simple, the recommendations in this guide will centralize many of the modding applications, assets, and related resources.

hashtag
Requirements

triangle-exclamation

If any of the steps in this guide fail, then STOP immediately and either fix them or ask for help on .

Some of the recommendations in this guide may be outdated or obsolete by the time you read it. In that case, use your best judgement and play around!

hashtag
Prerequisites

  1. Hard disk space for the Depot:

    • For regular operations, <5GB storage will be enough

    • If you want to extract materials and meshes, you should have at least 15GB storage

circle-check

Remember, if you don't know how to do something, you can always throw the question into Google or ask ChatGPT or the Bing assistant!

hashtag
We goin' in?

First, install Wolvenkit:

Then, we'll start with :

Let's configure and set up Wolvenkit and all its plugins:

Then, we unbundle those game assets that we need…

hashtag
Now we're goin' in.

We do that by creating a tiny mod to make sure everything worked OK.

Feel free to skip this step, or hit up the and get cracking.

Home

It's cozy!

hashtag
What's a Home good for?

hashtag
Welcome

When WolvenKit is launched the Home functions as bulletin board to help you pick up where you left off. Recent mod projects are displayed as a scrolling list of cards which can be directly clicked to get started. Other crucial functions for creating or opening projects are displayed in the right-hand column.

circle-info

The WolvenKit icon can also be used to swap between Home and the Editor!

hashtag
Mod Manager

Manage REDmod installations and deployment

hashtag
Plugins

Download and update various and extensions for Cyberpunk 2077 modding

hashtag
Settings

Settings can be accessed from the Home sidebar. Learn more about

hashtag
Web Content

WolvenKit is capable of displaying web-based content natively. The Home page features several built-in web pages!

hashtag
Wiki

This Wiki can be viewed from within WolvenKit. Hi WolvenKit users!

hashtag
GitHub

GitHub can be used to directly track progress with WolvenKit development

hashtag
Website

Take a peek at our very own website,

Wolvenkit's Interface

The main interface of WolvenKit

hashtag
Summary

This page explains the main workspace within WolvenKit, the one holding the docking windows for the individual Editor panels.

The Wolvenkit UI as of 8.13

hashtag
Editor panels

For an explanation to the editor panels, please see the corresponding sub-pages:

  • : Your local game files go here

  • : Browse game files or mod files

  • / File Preview: Information about the current file

hashtag
Docking

The docking in WolvenKit is similar to other IDEs such as Visual Studio. All panels can be rearranged by docking to specific areas, or used as a standalone floating window.

circle-info

Try double-clicking an Editor title bar to create a floating window!

hashtag
Status Bar

The Status Bar along the bottom of the application window contains useful information, such as your WolvenKit version number and the current mod project, and provide the ability to install new updates if available.

Editor Difficulty Mode

Editor difficulty mode explained

hashtag
Summary

Created: Dec 03 2024 by Last documented update: Dec 03 2024 by

This page describes Wolvenkit's Editor Difficulty Mode.

hashtag
Where to change it

To change the default, head to Wolvenkit's

To switch it in-editor, use the dropdown in the upper left corner of the .app

circle-info

The person who wrote most of the wiki and implemented the feature uses easy mode as default!

hashtag
Easy

Recommended for beginners. Many properties that you won't want to edit are hidden, other properties that you shouldn't edit are write-protected.

hashtag
Default

Should show all properties that you realistically want to edit for regular use cases. Autogenerated properties are write-protected, irrelevant properties (e.g. platform) is hidden.

hashtag
Advanced

The authentic editing experience from <= 8.14. Rawdogging CR2W without protection. Use at own risk.

Tweak Browser

hashtag
What is the Tweak Browser?

Based on Wkit v. 8.11.0

The Tweak Browser lets you to search for various elements. For instance, you can utilize the TweakDB Editor ⇗arrow-up-right in CET to locate a weapon record ⇗arrow-up-right, then use the identified name to search for the entry in the Tweak Browser in WolvenKit. Once found, you can right-click on the tweak and select 'Add TweakXL Override', once done that you'll create a .yaml file with the tweak array structure.

circle-info

The location of the browser in Wolvenkit depends on your design view. In most cases, you can find it within the right-side navigation. However, if you're unable to locate it, you can easily enable it by navigating to 'View' and selecting 'Tweak Browser'

circle-info

For furter info about TweakDB modding you can check the and the

LocKey Browser

hashtag
What is the LocKey Browser?

Based on Wkit v. 8.11.0

LocKey is a localization key designed to identify localized text strings. These keys, such as 'vehicle_enter' (which is not only user-friendly but also has a unique ID used typically), are employed throughout the game. Prior to display, these keys undergo localization to match the language setting of your game.

The LocKey browser allows to search for a specific localized text and reveals the corresponding LocKey (numbers) that, when localized, contains the desired text (string).

circle-info

The location of the browser in Wolvenkit depends on your design view. In most cases, you can find it within the right-side navigation. However, if you're unable to locate it, you can easily enable it by navigating to 'View' and selecting 'LocKey Browser'

Script Manager

What is the script manager? How do I use it?

circle-info

For more information, see Scripting with wscript

For a step-by-step walkthrough on how to edit a script file, see .

You can toggle the script manager via Tools -> Script Manager.

It looks like this:

hashtag
Adding scripts

Enter a name in the box at the bottom of the panel and click the "Add" button. That will create a new script file in your .

hashtag
Tabs

hashtag
General

Contains a selection of runnable scripts for various workflows, e.g.

  • Export_Vehicle_Ent when

  • Export_Ent for characters (see )

  • export_streamingsectors for

hashtag
Hook

This section contains the settings for

hashtag
UI

This section lets you add your own UI items.

Video and Audio

How to view video and audio files in WolvenKit.

circle-info

This page is about the WolvenKit app. To bulk-export or -import video and audio files, check Video and audio files (CLI)

hashtag
Audio

hashtag
Voice-overs & music

Voice-overs and most music are stored as .wem files – you can use the to filter by extension.

When you select an audio file in your Project Explorer or the Asset Browser, the File Information widget will turn into an audio player:

circle-info

You can convert .wem files to playable formats using . if you'd rather use the command line interface, check .

hashtag
Sound effects

circle-exclamation

Sound effects are stored differently and cannot be previewed in WolvenKit. If you want to search and preview SFX, use the .

You can import and export sound effects stored in .opuspak files using the Import and Export tools respectively. See this page for a walk-through:

hashtag
Video

circle-exclamation

Wolvenkit can't preview video files. Add them to your Wolvenkit project or export them via CLI () and watch them via as bink.

In the past, Wolvenkit used to be able to view videos. However, due to license issues, we had since to remove the plugin.

However, it was only a wrapper around RADTools, which you can also install as external tool.

Import/Export as JSON

How to import or export to/from JSON with Wolvenkit

circle-info

This is not the only means of export! See Tools: Import/Export UI for documentation of the other.

Converting files to JSON will serialize their content to a .json file in your project's raw folder.

Importing them back will re-create the corresponding file under archive.

This is easiest way to and a perquisite for several modding workflows.

hashtag
Export as JSON

This option is in the right-click menu:

hashtag
Import as JSON

This option is in the right-click menu:

circle-info

JSON import will be available for any file in your raw folder with the extension .json. However, if the file hasn't been created via "Convert to JSON", the import will fail.

8.4

Lexar-mode engage

hashtag
Published Oct 03 2021

WolvenKit 8.4 brings major quality-of-life improvements in a relatively small package. Additions to file I/O, browsing user-generated mods, and new options for editing W2RC files can dramatically streamline some modding workflows.

hashtag

Troubleshooting

What to do when your Wolvenkit install acts up

circle-info

This is the troubleshooting page for your Wolvenkit install.

For game issues, check on .

For issues with modding workflows, refer to the corresponding section of the guides or use the search function of .

Launch Profiles

Wolvenkit Launch profiles and what they do

hashtag
Summary

Created: Jun 17 2024 by Last documented update: Jun 17 2024 by

hashtag

Preview

Previews for meshes and entities

triangle-exclamation

Please note that the material preview is a rough draft implementation. Until somebody invests a bunch of time to fix it up, the preview will be neither accurate nor pretty, and many materials may not be created at all.

The Wolvenkit Depot

Wolvenkit's big messy box of stuff

As of 8.13, Wolvenkit supports the . This means that you don't have to do anything besides configuring your — dependencies will be handled as needed.

hashtag
What is the depot?

The depot is the folder where Wolvenkit stores anything it needs to export your project files. As of version 8.13, it can handle everything by itself, and you don't need a depot unless you want to browse game data outside of Wolvenkit.

Import/Export: MLMask and MLSetup

How to import and export multilayered assets

hashtag
MultilayerMask

You can export and import MultilayerMasks via Wolvenkit.

circle-info

Navigating Wolvenkit

UX/UI: Keyboard shortcuts, tips, and tricks

Created: Dec 03 2024 by Last documented update: Dec 03 2024 by

This page will tell you about keyboard shortcuts and nifty tricks that make working with Wolvenkit easier.

hashtag
Project Browser

The context menu in the project browser reacts to Shift

Settings

How to configure Wolvenkit Console

You edit the settings for Wolvenkit.CLI by editing appsettings.json in a text editor.

Runnning Wolvenkit.CLI settings will open that for you.

hashtag
Property Documentation

Wait, it can do that?

Things you had no idea that Wolvenkit could do

hashtag
Summary

Published: Sep 29 by (credit to for spelling out we needed this) Last documented edit: Sep 29 by

This is the Cool Stuff page — a list of things that you had no idea Wolvenkit could do for you.

Blender Integration

The Wolvenkit Blender plugin

circle-info

For a documentation of the Blender Plugin's features and step-by-step usage instructions, see the .

hashtag
How do I use the Blender integration features?

I/O formats for export/import

Overview of supported I/O formats

The following formats are supported by WolvenKit for imports and exports

Textures (CLI)

How to unbundle, uncook, rebuild and pack texture files

hashtag
Exporting

  1. Extract the textures with uncook -p into a folder of your choice. TGA is recommended for CLI version 1.5.1 (latest).

Community

Chat with modders and developers

The majority of communication about WolvenKit happens on our Discord server. Use the following link to join our modding community.

If you want to follow development, look for help with our tools, or contribute, Discord is the place to be. For help with WolvenKit directly, look for the #wolvenkit-support channel.

Official

Guided tours of WolvenKit from yours truly ❤️

Patches

hashtag
8.4.3 (Nov 11 2021)

Fixes

  • Tweak Editor: Array editing

  • Curve Editor: Fixes, zoom and editing

  • Red Resource Editor: Fixes, array editing

  • TweakDB: Fixed arrays and added remaining types

  • Fixed a bug where w2rc buffers would not update on selection changed

  • Fixed dirty filenames for tweak files

  • Fixed theme settings bug which prevented color changes

  • Fixed a bug where the Asset Browser would extract vanilla files while browsing mods

  • Fixed the Asset Browser breadcrumb navigator folder sorting

hashtag
Changes

  • Added tweak CLI command

  • Added check for updates button

  • Added async file search within the Asset Browser

  • Support for simultaneous reads from a single archive file by multiple WolvenKit instances

  • Cleaned up Settings

hashtag
8.4.2 (Nov 01 2021)

Fixes

  • Fixed a bug where parallel unbundling caused a crash

  • Fixed a bug where the app crashed on a pre-release version

  • Fixed a bug with the file editor child item arrow expander

  • Fixed hidden properties in Propertygrids

  • Fixed messagebox layout

  • Fixed compiled packages reading

  • Fixed some TGA texture import issues

  • Fixed miscellaneous asset exports

hashtag
Changes

  • The Home and Welcome pages are redesigned for improved efficiency and UX

  • The Ribbon has been reorganized and cleaned up

  • Some file icons have been updated

  • Added support for reading W2RC file buffers (ent/app/mesh)

  • Added progress indicator to the Status Bar

  • Added unbundle game button to the Ribbon

  • Support for group adding within the tweak editor

  • Logging has been improved

  • Faster archive manager loading

  • Support for double faced meshes with the Import/Export tool

hashtag
8.4.1 (Oct 06 2021)

hashtag
Fixes

  • Critical bugfix for importing mesh files with the Import/Export tool

hashtag
Asset I/O

  • Support for user-generated mod archives

    The Asset Browser is now capable of browsing and extracting user-generated mod archives. A new button called Toggle Mod Asset Browser has been added to the context Ribbon menu. The Asset Browser can swap between vanilla archives and mod archives on the fly. Mods must be installed to game location for browsing.

  • Support for converting W2RC to and from json

    RED/W2RC files can now be converted to standard human-readable json files, and vice versa. Right-click any w2rc or json file within the Project Explorer, and navigate the Convert menu to find conversion options. Functionality not available with the File Editor such as adding or removing chunks and properties is possible with json format. Beware not all file formats are completely stable for conversion! Some elements may not be encoded properly. Use at your own risk!

  • Support for morphtarget I/O

    The Import/Export tool is now capable of exporting morphtarget files to glTF format. Additionally glTF files can now be imported as meshes or morphtargets.

  • Support for TGA format texture imports The Import/Export tool now supports importing TGA format textures directly. When using the TGA format, the compression method is automatically determined by reading the original XBM texture. Additionally TGA supports no-compression storage, meaning any loss in quality can be avoided.

hashtag
Development

  • Updated the RTTI types to 1.31

hashtag
File Editor

  • Added Curve Editor for curvedata within W2RC files Curve data can now be edited directly with a bespoke curve editor window within the File Editor. A new Open Curve Editor button has been added to the value column for any given curveData property.

hashtag
Fixes

  • Fully implemented TGA texture imports TGA texture imports now work as expected (Not fully implemented with WolvenKit 8.3)

hashtag
UI/UX

  • Improved handling handling of json files RED/W2RC json project files inside the Mod directory will continue to open with the File Editor. "Real" json files within the Raw directory will now be opened externally with the system default application. Material json and converted W2RC json files can be edited without leaving the WolvenKit editor.

  • Refreshed Log improves readability

    The Log view has been updated to dramatically improve usability compared to WolvenKIt 8.3. Logs are now displayed completely with word wrapping.

  • Edit the TGA file with software such as Photoshop or Krita.

  • Choose the textures you wish to repack and copy them to another folder (e.g. MODDED), keeping the subfolder structure (the \base folder needs to be the first folder inside the MODDED folder)

  • circle-info

    Both .tga and .xbm files are required in the MODDED folder

    e.g. judy_body_wet.xbm AND judy_body_wet.tga

    hashtag
    Importing

    triangle-exclamation

    Do not replace existing vanilla archives

    1. Import

      Run import -p "MODDED FOLDER PATH" -k this will apply the new TGA texture to the XBM.

    2. Pack

      Run pack -p "MODDED FOLDER PATH", this will create a new .archive file.

    3. Install

      Copy the packed .archive file into the mod folder of your game: Cyberpunk 2077\archive\pc\mod (create this folder if necessary)

    CET Wiki ⇗arrow-up-right
    Cyberpunk 2077 Modding wiki ⇗arrow-up-right
    Right click on the element to 'Add TweakXL Override'
    After that action you'll have a .yaml file inside a 'resources' folder on the root directory of the project
    a capture of the LocKey Browser
    An itemized list on how to make the bug happen
    Home: Plugins
    WolvenKit Settings here.
    RED Modding!arrow-up-right
    search
    the Export tool
    SoundDB web toolarrow-up-right
    Import/Export: Sound effectschevron-right
    RADToolsarrow-up-right
    Audio files
    Video files
    As a rule of thumb, the settings correspond to their names in the Wolvenkit UI in CamelCase.
    triangle-exclamation

    TODO: Need much better documentation here. How do I set the depot path again?

    hashtag
    Example settings file

    An example file (as of PL) can look like this:

    The supported arguments can be found in the Wolvenkit repository for both Importarrow-up-right and Exportarrow-up-right.

    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Warning"
        }
      },
      "XbmExportArgs": {
        "Flip" : false,
        "UncookExtension": "dds"
      },
      "MeshExportArgs": {
        "UncookExtension": "glb",
        "WithMaterials": false
      }
    }
    

    Optional: If you want to create a full asset depot, then you want at least 75GB storage. If you are reading this guide, then you won't need that.

  • Optional, but recommended: a basic level of computer knowledge. The guide contains detailed instructions, but you'll have an easier time if you already know things like like:

    • Open a command prompt and run a command,

    • Locate your download folder and extract a zipped file,

    • Install an application,

    • Find and move files

  • Download Wolvenkit
    Discordarrow-up-right
    Download, Install and Setupchevron-right
    general prep work
    ELI5: Full Prep for Mod Developmentchevron-right
    ELI5: Configure modding toolschevron-right
    The Wolvenkit Depotchevron-right
    modding wikiarrow-up-right
    ELI5: Validate Functionalitychevron-right
    File Editor: Edit or view game files
  • Log: Shows you error messages or File Validation output

  • Tweak Browser: Lets you browse existing tweaks

  • LocKey Browser: Lets you browse translation entries

  • Project Explorer
    Asset Browser
    Properties
    circle-check

    If you've run into a problem that isn't on this list, please reach out!

    • If you have solved the problem already, feel free to edit the wikiarrow-up-right!

    Otherwise, you can either find us on Discordarrow-up-right (#wolvenkit-support), or, if you know that it's a technical issue, or open a thread on Discord's #wkit-bugs-and-requests channel.

    hashtag
    Basic Troubleshooting steps

    hashtag
    .NET

    The different libraries in Wolvenkit require both .NET 6.0arrow-up-right and .NET 7.0arrow-up-right. Make sure to install both!

    hashtag
    Clean reinstall

    Remove everything inside your Wolvenkit install folder, then download the latest release from github and extract the files into your empty directory.

    If that doesn't solve the problem:

    hashtag
    %Appdata%

    You can find Wolvenkit's settings (including your project layout) in the following folder:

    Maybe something here will help you resolve that error.

    hashtag
    Get in touch

    If these (admittedly basic) steps didn't help you resolve the issue, you can get in touch on the REDmodding discordarrow-up-right in the #wolvenkit-support channel.

    Launch Profiles

    You can set up different profiles to launch Cyberpunk 2077 from inside Wolvenkit. Via Launch Profiles, you can select what should happen when you press the button.

    hashtag
    Configuration

    hashtag
    Where to configure

    With a long click on the Install button, you can open a dropdown menu that lets you pick a launch profile:

    hashtag
    Available options

    hashtag
    Create Backup of previous build

    circle-info

    This will not work in combination withClean after build to save disk space

    hashtag
    Create zip file

    Same as the button in the toolbar: Will generate a zip file ready for Nexus upload.

    hashtag
    Install to Game directory

    Installs your mod to your Cyberpunk 2077 directory

    hashtag
    Clean before build to prevent errors

    Clears the packed directory before building. Not doing this may lead to leftover files in the resource directories or have other side effects, so you'll want to keep this checked.

    hashtag
    Clean after build to save disk space

    Clears the packed directory after building/installing/creating a zip file. Check this to save diskspace, but note that it will disable Create Backup of previous build.

    hashtag
    Pack as REDmod

    Check this to pack your mod as REDMod rather than as a legacy mod. You don't generally want this, as it can lead to load order issues and increase your users' demands for support.

    hashtag
    Deploy as REDmod

    Check this to deploy your mod as REDMod rather than as a legacy mod. You don't generally want this, as it's not compatible with

    hashtag
    Launch Game

    Launch the game after installing the mod. Without this, the next three options will do nothing.

    hashtag
    Load last savegame

    When you start the game, it will load your last savegame (by timestamp).

    circle-info

    This is slightly faster than mods that auto-trigger save-load, as it skips the start-up menu completely.

    hashtag
    Load specific savegame

    Loads a specific savegame by name (or tries to).

    circle-info

    This is slightly faster than mods that auto-trigger save-load, as it skips the start-up menu completely.

    hashtag
    Game Commandline Arguments

    You can specify additional , which will be merged with those from the settings

    hashtag
    Default profiles

    WolvenKit will create the following profiles if it can't find them:

    • Install

    • Install as REDMod

    • Install, Launch, and Load Save

    • Install and Launch

    • Launch Game Without Install

    To disable this behaviour, go to the Settings and disable

    hashtag
    Entity Preview

    To be done

    hashtag
    Mesh Preview

    You can find the mesh preview inside the file editor for .mesh files in its own tab. For further explanation of the UI, see UI documentation

    hashtag
    UI documentation

    hashtag
    Appearance dropdown

    Lets you select an appearance from the list of defined appearances

    hashtag
    Level of Detail

    Lets you select the Level of Detailarrow-up-right, which will load higher or lower fidelity meshes to optimize performance.

    hashtag
    Generate Materials for Appearance

    circle-info

    When you hold the Ctrl key, Wolvenkit will regenerate the materials from disk.

    triangle-exclamation

    Please note that the material preview is a rough draft implementation. Until somebody invests a bunch of time to fix it up, the preview will be neither accurate nor pretty, and many materials may not be created at all.

    Will create a rough approximation of the surface material. As of March 2024, this feature needs a lot of work.

    hashtag
    How to generate a depot?

    Use the Depot Generator from Wolvenkit's Tools tab:

    hashtag
    Generating a depot

    You can export materials, or unbundle the whole game:

    hashtag
    Generate Materials

    Exports the game's materials (textures, gradients, mlmasks...). This used to be required by MLSetupBuilder, but is no longer necessary.

    hashtag
    Unbundle Game

    This will extract every file in the game files to your depot folder. You only need this to browse Cyberpunk's files outside of Wolvenkit (but why would you want that anyway?)

    The Wolvenkit Depot
    For the UI documentation, check Tools: Import/Export UI

    For general information such as the file structure and output directory, check Import/Export

    Learn more about the functionality of mlmask files on the REDengine 4 Wikiarrow-up-right

    hashtag
    Exporting MLMASK files

    Mask files can be exported with the Import/Export tool in a similar fashion to texture files. Additionally, WolvenKit will automatically create a custom masklist file, which can be used for importing modified mlmask files.

    circle-info

    Masklist files can be opened and modified with any text-editing program.

    You can use absolute or relative texture paths.

    hashtag
    Importing MLMASK files

    Use the import tool to select any masklist file within the raw directory of the Project Explorer. If you don't have one, export an MLMask first.

    hashtag
    MultilayerSetup

    You can export and import MLSetup files via JSON and edit them with the MLSetupBuilder.

    hashtag
    Export:

    hashtag
    Import:

    and
    Ctrl
    , making other operations available. Check it out!

    hashtag
    Drag and drop

    You can drag and drop files and folders to move them. Hold the Ctrl key to copy them instead.

    hashtag
    Rename and refactor

    You can call up the rename dialogue by pressing f2, as long as you have a node in the project browser selected.

    If you check the Update in project files? box, Wolvenkit will automatically try to update all references in your project to the new file path.

    hashtag
    Copy relative path

    The context menu's Copy Relative Path action will show you other options if you hold Shift and/or Ctrl:

    hashtag
    Collapse/expand a folder and its children

    By holding the Ctrl key when you click on a folder, you can collapse or expand the whole folder and its children.

    hashtag
    File Editor

    The file editor's context menu and menu bar react to Shift and Ctrl, making other operations available. Check it out!

    hashtag
    Difficulty mode

    circle-info

    If you're a beginner, stick to Easy mode — the person who implemented the feature does the same.

    Check Editor Difficulty Mode for the full documentation.

    hashtag
    Delete all but selection

    Holding the Shift key while an array element is selected will offer you Delete all but selection instead of Delete selection.

    hashtag
    Overwrite with selection

    Holding the Shift key while pasting into an array will let you overwrite the current selection with your clipboard.

    Holding down the Ctrl key as well will let you overwrite the entire array with your clipboard.

    hashtag
    Shift: Recursively fold/unfold

    By holding Shift while expanding a node, you can fold/unfold all of its children (and their children) according to specified rules for the most common node types:

    Shift-unfolding

    hashtag
    Double-Click: Fold/unfold all siblings

    Double-clicking a node in an array will toggle the expansion state of all siblings to the expansion state of the node.

    This will collapse all other appearances in the list

    hashtag
    f2: Search and replace in selection

    You can search and replace in selection by using the context menu or pressing the f2 key.

    circle-info

    This can take a long time if your file is big, so you should use the search box first!

    hashtag
    Clean up

    Especially in mesh files, the Clean Up menu is your friend.

    Clean up empty submeshes will delete extra chunks from old templates.

    Delete unused materials will drop any material entries that aren't used by any of your appearances.

    If the Export Materials checkbox in the mesh export settings is enabled, WolvenKit will create a Material.json file under raw. You can find it in the same directory as the mesh.

    For further documentation, see the .

    xbm ↔ png, tga, dds, jpg, bmp, tiff
    Textures can be converted to and from REDengine. For a detailed guide, see
    .\
  • about Ab3d here.arrow-up-right
    settings page
    Exporting Vehicles
    Exporting Characters to Blender
    File Validation
    Script file path

    8.7 (Latest Stable)

    Are we official now?

    hashtag
    Published October 22 2022

    WolvenKit 8.7 is a major step forward. New features include support for building REDmods, sound modding, and animation modding. The UI has been fully transitioned to a title menu and toolbar setup. Texture I/O is significantly more powerful and robust. Numerous fixes for bugs, issues, and pain-points have been implemented. Check out the full release notes below.

    triangle-exclamation

    WolvenKit 8.7 has breaking changes! If you have mod projects created with previous versions of WolvenKit, we strongly recommend reading the full release notes below.

    hashtag
    New Features

    • Support for Cyberpunk 2077 game version 1.6 Upgrading to WolvenKit 8.7 is mandatory for game version 1.6 and beyond. WolvenKit should handle new game releases more gracefully in the future.

    • Support for REDmod

      • Added options for Building and Deploying REDmods

    hashtag
    Changes & Improvements

    triangle-exclamation
    • All XBM textures will be vertically inverted by default during the Import and Export process

    • Mesh UV channel 0 will be vertically inverted during the Import and Export process

    • Texture I/O has been completely refactored Expect improved performance and versatility for users

    • Import/Export arguments are now saved When adjusting advanced import options adjustments are saved per-file. For example if the XBM export format for a specific texture is changed from PNG to TGA, the specific XBM will default to TGA for subsequent exports. This behavior is persistent between WolvenKit sessions.

    hashtag
    Fixes

    • Fixed crash due to game version 1.6

    • Fixed absurd UI layout on first launch by including a default layout

    • Fixed raw textures not displaying or showing incorrectly within Preview window

    Home: Plugins

    Which Wolvenkit plugins exist, what do they do?

    As of version 8.11.1, Wolvenkit offers the following plugins:

    hashtag
    Cyber Engine Tweaks

    One of Cyberpunk's core mods (wikiarrow-up-right | Nexus pagearrow-up-right). Will install the latest version for you.

    Documentation about using and developing with CET can be found in the wiki.

    hashtag
    Redscript

    Another of Cyberpunk's core mods ( wiki | ). Will install the latest version for you.

    Documentation about development with redscript can be found in the wiki.

    hashtag
    MLSetup Builder

    Written and developed by Neurolinked (): A tool for Cyberpunk-specific "texture" editing.

    Documentation can be found on under

    hashtag
    Wolvenkit Resources

    This plugin is necessary to use the 's context menu functionality of "find used files" and "find files using this". It provides the information that Wolvenkit needs to connect those files.

    hashtag
    RedMod

    CDPR's official interface for modding.

    Check the yellow wiki for documentation:

    hashtag
    Red4Ext

    One of Cyberpunk's core mods (). This will install the latest version for you.

    It is necessary as a requirement for e.g. ArchiveXL and TweakXL.

    hashtag
    TweakXL

    One of Cyberpunk's core mods (). This will install the latest version for you.

    For documentation, check ->

    hashtag
    RedHotTools

    Will install the Wolvenkit plugin of for you.

    For install and usage documentation, check ->

    Properties

    hashtag
    What is the Properties viewer?

    The Properties Viewer is used to provide extra information about selected files from within the Asset Browser or the Project Explorer. The Properties Viewer can also generate instant previews for REDengine texture and mesh files.

    circle-info

    Ensure Show File Preview is enabled within Settings if previews are not working.

    hashtag
    Using the Properties viewer

    hashtag
    Mesh Preview

    Mesh files can be previewed by selecting them within the Asset Browser or Project Explorer.

    hashtag
    Controls

    • Hold and drag Left Mouse Button to rotate the mesh

    • Hold and drag Right Mouse Button or use Mouse Scroll to zoom

    • Hold and drag Middle Mouse Button to pan

    hashtag
    Image Preview

    Image files can be previewed by selecting them within the Asset Browser or Project Explorer. The image previewer is capable cropping, flipping, and markup. While the markups will not get saved to original file, they can be exported by using the save button.

    circle-exclamation

    Do not use the Image Preview tool for creating mods. Refer to the tool for fully exporting textures.

    hashtag
    Audio Preview

    Audio files can be previewed by selecting them within the Asset Browser or Project Explorer.

    hashtag
    Video Preview

    triangle-exclamation

    Important: Due to licensing issues, Wolvenkit no longer features a video preview. You can find s on Google.

    Double click BK2 files in the Project Explorer or right-click them in the Asset Browser

    Space to play / pause Esc = End video Use the bottom bar to scrub through the video.

    Wolvenkit.CLI: Usage

    hashtag
    Summary

    This page contains information on the general use of Wolvenkit's command line interface. For more specific information, please see the corresponding sub-pages:

    • Settings

    circle-exclamation

    As of January 2024, Wolvenkit.CLI does not work under Linux. You can run it though qemu and virtofs.

    hashtag
    Help

    • Display general help/list all commands: --help

    • Display help for a specific command: archive -h

    hashtag
    Using WolvenKit Console globally

    You can now install and update the Wolvenkit Command Line Tools (wolvenkit.cli) as a dotnet global tool. The console can be used anywhere directly from the command line, with no custom installation, and easy update.

    Open command prompt/powershell and type in:

    dotnet tool install -g wolvenkit.cli

    WolvenKit Console can now be run from anywhere using CMD/Powershell:

    wolvenkit.cli uncook -p "D:\SteamLibrary\steamapps\common\Cyberpunk 2077\archive\pc\content\basegame_1_engine.archive"

    For updates to WolvenKit console, open CMD/Powershell and type:

    dotnet tool update --global wolvenkit.cli

    hashtag
    Video Guide for launching CLI

    hashtag
    Processing files in bulk

    To process multiple .archive files (for e.g. extracting duplicate textures), write yourself a batch file:

    Import/Export: Sound effects

    How to import and export audio from opusinfo/opuspaks.

    Unlike music and voice-overs, sound effects in Cyberpunk 2077 are stored inside .opuspak files, which are described by a single sfx_container.opusinfo file.

    circle-info

    For the UI documentation, check Tools: Import/Export UIarrow-up-right

    For general information such as the file structure and output directory, check Import/Exportarrow-up-right

    hashtag
    Exporting sound effects

    In order to export sound effects, you need to have the sfx_container.opusinfo file in your project. Find it in the and .

    With the opusinfo selected in the Export tool (if you don't see the file, press Refresh), you should now see the export options on the right.

    The important field for us here is "Selected for Export". Click the three dots on the right to open a selection window where you can choose which hashes to export. Click the hash you want and press the arrow button pointing right to add it to selection.

    circle-info

    Hash is basically an ID of a sound. To find the hashes you need, you can use the .

    Once you've selected what you want, press Finish to confirm the selection and back in the Export tool press "Export Selected". The sounds you've chosen should now be in the raw folder of your project. You will find two files for each of the sounds, one is origin .opus and the other is .wav. You can usually ignore the .opus file.

    hashtag
    Importing sound effects

    triangle-exclamation

    Note that importing sounds this way is incompatible with any other mod modifying the sounds this way. You should prefer using !

    To import back a sound effect, all you need is the sound file in .wav format with the exact same filename it had when you exported it. It should also be in the same folder (raw).

    You can usually leave the default settings as they are. After pressing "Import selected", your project's archive folder should now contain a new modified sfx_container.opusinfo and one or more sfx_container_XXX.opuspak (XXX being a number). The opuspak contains your new sound (and other sounds too).

    Tools

    Documentation of the "Tool" menu in Wolvenkit's taskbar

    hashtag
    Depot Generator

    Tool for building a depot, a collection of extracted game assets to use them in other tools such as .

    hashtag
    Sound Modding Tool

    <info>

    hashtag
    Script Manager

    See for details

    hashtag
    Import Tool

    See for details

    hashtag
    Export Tool

    see for details

    hashtag
    Hash Tool

    <to be done>

    hashtag
    Settings

    Bug Reports

    Help us log bugs with the WolvenKit application

    hashtag
    Where can I submit feedback or bugs?

    • Reach out on Discord! We have a dedicated channel for WolvenKit issues.

    • Check out the page to view, track, and submit new issues.

    Asset Browser

    Live archive explorer

    hashtag
    What is the Asset Browser?

    The Asset Browser is used to navigate, search and filter Cyberpunk 2077 game files so you can transfer these to the The Asset Browser eliminates the need for uncooking the entire game installation, as individual files can be pulled directly from archive files.

    Scripting with wscript

    a brief introduction to scripting within Wolvenkit.

    Wolvenkit is scriptable using javascript and its internal API. With it you can automate tasks such as exporting, as well as make changes to files programmatically.

    circle-info

    For documentation of the , check the corresponding sub-page.

    hashtag

    Contributing

    Please help

    hashtag
    Interested in contributing code?

    Please do! Fork the project and please commit your changes in small incremental steps with descriptive messages. Code quality is not the biggest concern but refrain from simple mistakes. It's a good idea to create an issue when implementing a feature so people don't work on the same feature/issue in an asynchronous manner.

    Video and audio files (CLI)

    Extracting and playing from archives

    circle-info

    This page is about the command line interface. For the Wolvenkit GUI, check

    hashtag
    Archives

    Glossary

    Demystification of REDengine modding jargon

    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

    hashtag

    FAQ

    Frequently asked questions

    hashtag
    What can I do with WolvenKit?

    The page provides a broad look at what's possible to achieve with WolvenKit.

    hashtag

    Long file path support

    Wolvenkit showed me a popup, how do I fix this?

    hashtag
    What are long filepaths, and why do I need them?

    circle-info

    This should be a standard setting in every operating system. Unfortunately, Windows doesn't care.

    Modding with WolvenKit

    How to make mods using Wolvenkit

    This wiki focuses on workflows that are central to WolvenKit. You can find much more knowledge and documentation in the wiki, for example the Modding Guides section:

    WolvenKit Console

    The command-line modding tool

    hashtag
    What is the WolvenKit Console?

    WolvenKit Console is the core "Modkit" that drives the WolvenKit application. The Console supersedes the original CP77 Tools application created by rfuzzo. The same core functionalities of WolvenKit are available from command line for simplicity and extendibility for power users.

    %appdata%\REDModding\WolvenKit

    Added Mod Manager for REDmods

  • Animation I/O Added support for importing .re format animation files created with the REDmod Blender animation add-on. Learn morearrow-up-right

  • Sound Modding Tool Added support for importing .wav format audio files within WolvenKit's new Sound Modding tool. Learn morearrow-up-right

  • Launch Profiles Added support for creating custom launch profiles when building mods. Launch profiles can be added, removed, or modified from the Build menu or the Launch Profiles button in the Toolbar. Modify or create new launch profiles such as automatically starting Cyberpunk 2077 when building mods.

  • Support for hot archive installation with Red Hot Tools by @psiberx WolvenKit features a new Hot Reload button which directly installs archives to the archive/pc/hot directory. This allows users to quickly install archive files while Cyberpunk 2077 is running, cutting iteration-time down to seconds. Learn morearrow-up-right

  • Depot Generator Tool Added Depot Generator tool to consolidate game-dump operations into a single tool. The Depot Generator is able to generate material files with the users preferred image extension. Additionally the Depot Generator can fully unbundle all archives in one click.

  • XBM import arguments are now exposed When importing XBM files, texture setup parameters are now exposed making the texture pipeline much more powerful.
  • 16bit color channel textures are now supported WolvenKit is now capable of working with higher bit-depth images due to newly exposed parameters.

  • MLMASK I/O improvements MLMASK I/O now supports the same image formats as XBM during export and import. Additionally WolvenKit will now accept masklist files which include a 0 layer.

  • Added Title Menu WolvenKit now has a traditional categorized menu within the titlebar itself, hooray!

  • Mod Manager and Plugins added to Home

    • The new REDmod Mod Manager has been added as a tab within the Home page.

    • Plugins have been moved from the Menu Bar to a new tab within the Home page.

  • Simplified Toolbar Drop-down elements have been moved from the Toolbar to the Menu.

  • Added Launch Profiles button to Toolbar A new configurable Launch Profiles button has been added to the Toolbar.

  • Added Open Game Folder button Navigate to Menu > Game > Open Game Folder to find the Cyberpunk 2077 directory with the System File Explorer.

  • The Ribbon has now been fully deprecated The Ribbon was off by default in version 8.6, but has now been completely removed.

  • Help and Feedback dialogues have been removed We saw virtually zero usage of these features, so they have been removed.

  • Improved some log errors messages Some log error messages have been improved to help users diagnose issues.

  • File Preview is turned on by default On first launch File Preview is turned on by default aiming to improve feature discoverability.

  • The Mod Browser button is now a switch Changed the Mod Browser located inside the Asset Browser from a button to a switch aiming to improve feature discoverability.

  • Fixed exception when generating materials to Depot

  • Fixed numerous issues when exporting meshes with materials

  • Fixed mesh to json serialization exception

  • Fixed freeze with Asset Browser when search bar is empty

  • Fixed crash with Asset Browser when game path is not set

  • Fixed memory leak issue with certain animated UI elements

  • Fixed an issue where the Cyberpunk2077.exe lookup did not work on first run

  • Fixed an exception with long file paths during Import/Export operations

  • Fixed an issue with Project Explorer losing files that are modified externally

  • REDengine

    The proprietary video game engine developed by CD Projekt Red for The Witcher 3 and Cyberpunk 2077. Alternatively referred to as RED3, RED4

    hashtag
    GitHub

    A website which hosts code and helps programmers collaborate on projects. The source code for WolvenKit is hosted here. You can compile the WolvenKit source code yourself, or for non-developers you can find WolvenKit releases here first.

    hashtag
    Modding Tools

    hashtag
    WolvenKit

    The unofficial community modding toolkit. (Hint: This is the WolvenKit Wiki)

    hashtag
    WolvenKit CLI

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

    hashtag
    CP77 Tools

    The original Cyberpunk 2077 modding CLI tool. (Deprecated by WolvenKit CLI)

    hashtag
    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. We aim to deprecate the Modkit with WolvenKit.

    hashtag
    WolvenKit

    hashtag
    masklist

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

    hashtag
    Material json

    Material json files are used by Tools: Import/Export UI 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

    hashtag
    W2RC/CR2W

    The file magic number for REDengine files. For more information about magic numbers see this Wikipedia pagearrow-up-right. REDengine format files are commonly referenced as W2RC/CR2W files for shorthand. Originally only CR2W was used, but it was discovered years later that the magic should be read backwards, as Witcher 2 Resource Class.

    hashtag
    Raw

    Generic term used to refer to non-REDengine files that have a CR2W 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.

    hashtag
    Uncooked

    A term used to describe a CR2W 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.

    hashtag
    Cooked

    A CR2W file that's imported or encoded as an engine file, then debugged, compressed, and buffered by the REDengine build process. Files extracted with the Asset Browser using WolvenKit (including Legacy) are cooked files.

    hashtag
    Packed

    The final unified package file used by REDengine games. The Witcher 3 uses bundle files while Cyberpunk 2077 uses the archive file format.

    hashtag
    Modding

    hashtag
    Vanilla

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

    WolvenKit GitHubarrow-up-right
    How do I download WolvenKit?

    Follow the instructions on the Download page.

    hashtag
    Where can I get help with WolvenKit?

    Browsing this wiki is the best place to start! Follow the Getting Started pages, especially the guide for Creating a Mod. For additional help from other WolvenKit users, check out our Community information.

    hashtag
    How can I open or browse archive files?

    WolvenKit is capable of directly reading the .archive format. Archives do not need to be dumped or exported for use. The Asset Browser is capable of browsing any archive with instant previews for assets such as textures and models. Learn more on the dedicated Asset Browser page. Do you need help learning how to use WolvenKit? Try following the guide for Creating a Mod!

    hashtag
    How can I import or export textures with WolvenKit?

    WolvenKit is capable of exporting textures to common formats such as TGA, DDS, PNG, JPG, etc. Additionally formats such as TGA and DDS are supported for importing textures. Check the dedicated Textures page to learn more. Do you need help learning how to use WolvenKit? Try following the guide for Creating a Mod!

    hashtag
    How can I import or export models with WolvenKit?

    WolvenKit is capable of exporting models natively to glTF, and other formats such as FBX through conversion. Additionally the glTF format is supported for importing models. Check the dedicated Models page to learn more. Do you need help learning how to use WolvenKit? Try following the guide for Creating a Mod!

    Overview
    Required files are contained within these archives
    • audio_1_general.archive

    • audio_2_soundbanks.archive

    • basegame_5_video.archive

    • lang_en_voice.archive

    hashtag
    Video files

    Using the toolarrow-up-right, decompress basegame_5_video.archive located at: <gamedir>\Cyberpunk 2077\archive\pc\content.

    Once extracted, they can be viewed via RADToolsarrow-up-right as Bink Videos and converted to other formats.

    hashtag
    Audio files

    ww2oggarrow-up-right can be used to convert decompressed archive audio to .ogg through command line, as well as Revorbarrow-up-right (both of these tools have Linux versions that can be found herearrow-up-right) to get smaller and cleaner files that can be played via other media players such as VLC. ffmpegarrow-up-right can be used for more convenient playback.

    To execute conversion: .\ww2ogg.exe "<!AudioFilePath!>.wem" --pcb packed_codebooks_aoTuV_603.bin

    circle-exclamation

    Make sure to include the --pcb argument – you will only get gibberish if you don't.

    circle-info

    The files are optimized for people with audio dampener. If you don't pack any, turn down your volume. You have been warned!

    A combination of these tools can be found at the Wwise Audio Tools repositoryarrow-up-right which has a command line tool that can be downloaded from the repository or installed through the AUR. It has Linux and Windows support and converts WEM files to OGG without the hassle of the external PCB file or having to run through multiple programs for a clean output.

    ./wwtools converts all WEMs in the current directory to OGG files ./wwtools wem [input.wem] (--info) will convert the specified WEM to OGG and if the optional info flag is used it will print the information about the file and exit.

    Playback through ffmpeg: ffplay.exe <!AudioFilePath!>.ogg Foobar2000arrow-up-right can also be used along with its vgmstreamarrow-up-right plugin.

    Video and Audio
    For a documentation of the individual commands, see Wolvenkit.CLI: Command List
  • For further instructions on using it, see Wolvenkit.CLI: Usage

  • circle-exclamation

    As of January 2024, Wolvenkit.CLI does not work under Linux. You can run it though qemu and virtofs.

    hashtag
    Installing WolvenKit Console

    hashtag
    As a dotnet tool

    For a global install, you can install it as a dotnet tool. Open up the windows command line (Windows+R, type cmd, hit return) or Powershell, then enter the following:

    Verify if the installation was successful:

    circle-info

    You can also use dotnet tool list -g to see if WolvenKit CLI is present. You'll see in the last column the command to run it.

    circle-exclamation

    If starting WolvenKit CLI fails with an error regarding .NET version, it means you need to install or update the SDK. You can check your setup with dotnet sdk check. You can install the latest version required for this tool by following this linkarrow-up-right. As of writing this note, you need to keep .NET v8 up-to-date.

    hashtag
    By downloading it from the repository

    You can download WolvenKit Console from the Releases page on the GitHub repository (Releasearrow-up-right | Nightlyarrow-up-right). Select the download starting with WolvenKit.Console.

    Extract it to a directory of your choice (for example C:\Cyberpunk_Modding\WolvenKit.Console).

    You can run WolvenKit Console from that directory, for example:

    To make the command globally available, add the directory to your Windows Patharrow-up-right.

    WolvenKit.Cli.exe unbundle -p "<gamedir>\Cyberpunk 2077\archive\pc\content\<nameofarchive>" -o "<outputfolder>"
    dotnet tool install -g wolvenkit.cli 
    cp77tools -help
    C:\Cyberpunk_Modding\WolvenKit.Console\Wolvenkit.CLI.exe -help
    hashtag
    Where is it?

    In the default view (as of 8.11), you will find it pinned to the right side of the viewport.

    If it isn't there, check the View menu and make sure that it's enabled.

    hashtag
    Using the Asset Browser

    circle-info

    Wolvenkit Search has its own sub-page: Wolvenkit Search: Finding files

    hashtag
    Navigation

    The left-side breadcrumb navigator can be used to quickly navigate through game directories. Game files are displayed in the right-side panel, in addition to folders. Folders in the file list can also be navigated by double-clicking.

    hashtag
    Mod Browser

    You can switch the Asset Browser to Mod Browsing mode via button. The search will no longer consider base game files and search in your loaded .archives instead.

    Wolvenkit will search any installed mods and anything under the . There is no way to browse an .archive file in a different folder — if you insist on doing that, check .

    hashtag
    Adding files to projects

    • Double-click files to add them directly to the Project Explorer

    • To select multiple files hold shift and then left click two separate files. These two files and all files between them will be selected. Right-click any of the highlighted files to open the context menu. Then choose Add Selected Item(s) to Project.

    circle-info

    Files added to the Project Explorer with the Asset Browser will not include external buffer files. Buffers are stored within the main file.

    hashtag
    Context Menu

    As of 8.11.1, the context menu has the following entries:

    hashtag
    Add selected items to project

    See Adding files to projects above

    hashtag
    Open without adding to project

    What it says — you can browse a file in the File Editor without adding it to your project. Saving (Hotkey: Ctrl+S) lets you save it to disk, though.

    hashtag
    Find used files

    circle-info

    Requires the Wolvenkit Resources plugin to be installed.

    Will make the Asset Browser display a list of everything your current file is linking to.

    hashtag
    Find files using this

    circle-info

    Requires the Wolvenkit Resources plugin to be installed.

    Like Find used files, but the opposite: will make the Asset Browser display a list of everything that links to your current file.

    hashtag
    Browse to asset folder

    Will navigate the asset browser to the current selection's path in the game files (if it is a game file).

    hashtag
    Copy Relative Path

    Copies the selection's relative path to clipboard.

    Project Explorer.
    Adding Scripts

    See Script Manager -> Adding scripts

    hashtag
    Script file path

    Any .wscript files you have created or edited will be stored in the following location:

    You can delete or edit them via Script Manager.

    hashtag
    Editing Scripts

    The editor shows your source code with code formatting and includes code suggestion for the Wolvenkit api.

    For questions or suggestions about the scripting interface please visit the #wolvenkit-scripts channel on the Discord server.

    hashtag
    API Commands

    Documentation of the API can be found at

    hashtag
    Utility Functions

    There is also a utility library called Logger.wscript shipped with wolvenkit that assists with writing messages to the wolvenkit Log. It can be included with the following statement:

    it provides the following functions:

    Logger.Info(obj)

    Prints the supplied object or text in yellow in the log window.

    Logger.Warning(obj)

    Prints the supplied object or text in purple in the log window.

    Logger.Error(obj)

    Prints the supplied object or text in red in the log window.

    Logger.Success(obj)

    Prints the supplied object or text in light blue in the log window.

    Logger.Debug(obj)

    Prints the supplied object or text only to the log file.

    Script Manager
    WScript API Documentationchevron-right
    Join the Cyberpunk 2077 Modding Serverarrow-up-right for active development
  • Visit our GitHub organizationarrow-up-right to track progress, development, and issues

  • hashtag
    I'm not a programmer, how can I help?

    The best way to contribute to WolvenKit directly without submitting code is by writing documentation or guides. We are always in need of help documenting WolvenKit within this wiki. You can submit changes by creating a GitBook account and using this invitation to our Organization: https://app.gitbook.com/invite/-MP5ijqI11FeeX7c8-N8/OVHjxIctfql4c2fCdDv9arrow-up-right If you have any questions or want to chat with developers, please reach out on our Discord!

    hashtag
    Building WolvenKit with Visual Studio

    hashtag
    Install .NET 8

    https://dotnet.microsoft.com/en-us/download/dotnet/8.0arrow-up-right

    hashtag
    Install the latest Visual Studio release

    https://visualstudio.microsoft.com/downloads/arrow-up-right

    hashtag
    Check out the source code with Git

    https://github.com/WolvenKit/WolvenKitarrow-up-right

    hashtag
    Build and Run

    1. Open All.sln

    2. Build WolvenKit on Debug

    In the year of our lord 2025, Windows does not (by default) support file paths longer than 256 characters — and if you're somebody who likes to use subfolders, this will break Wolvenkit's mod packing.

    We decided to show you a warning at every startup, because

    • the fix is super easy

    • we can't solve the problem in Wolvenkit

    • if you run into this, you'll be unable to create mods

    hashtag
    How to enable long filepath support?

    hashtag
    Windows

    circle-check

    If you don't trust something you read on a random modding wiki, find the full guide at microsoft.comarrow-up-right.

    1. Open the registry editor as administrator (Keyboard shortcuts: Windows+R, type regedit, pressCtrl+Shift+Enter)

    2. In the search bar at the top, enter the following: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

    3. In the window on the right, find LongPathsEnabled

    4. Double-click on it and set the numeric value to 1

    5. Reboot

    chevron-rightOutdated guide (may not work)hashtag
    1. Open a Powershell window as administrator (Keyboard shortcuts: Windows+R, type powershell, pressCtrl+Shift+Enter) Correct Powershell (shows Administrator in the title bar): Incorrect Powershell (doesn't show Administrator in the title bar ⇒ runs as user):

    2. Paste the following command:

    1. Press Enter

    That's it! You now have long path support enabled.

    hashtag
    Linux

    This feature is supported out-of-the-box. Just try to stay under 4000 characters.

  • … or our knowledge base, where you can find documentation like

    That's just a small selection, hit up Cyberpunk 2077 Modding and look around!

    circle-info

    Do you have a guide you'd like to submit for the Wiki? Check out Cyberpunk 2077 Modding — if that doesn't cover your needs, you're welcome to sign up as an editorarrow-up-right or visit us on our Discord!

    Full install walkthrough (ELI5)chevron-right
    Exporting Characters to Blenderchevron-right
    Exporting Vehicleschevron-right
    Cyberpunk 2077 Modding
    Wolvenkit.CLI: Command List
    Textures (CLI)
    Video and audio files (CLI)
    file an issue on githubarrow-up-right
    Cyberpunk 2077 Modding
    Cyberpunk 2077 Modding
    Nexus pagearrow-up-right
    githubarrow-up-right
    Asset Browser
    Nexus pagearrow-up-right
    Nexus pagearrow-up-right
    psiberx's modding utilityarrow-up-right
    Cyberpunk 2077 Modding
    Cyberpunk 2077 Modding
    Cyberpunk 2077 Modding
    Import/Export
    bk2 viewerarrow-up-right
    Video Preview showcase
    Asset Browser
    add it to your project
    SoundDB web toolarrow-up-right
    You should now see the file in the project explorer.
    The Export Tool looks something like this.
    Hash selection window
    The import tool with a sound effect selected.
    Example of imported sound effect result.
    Script Manager
    Import Tool
    Export Tool
    Create Zip

    8.5

    Buffer overflow

    hashtag
    Published Mar 07 2022

    WolvenKit 8.5 ushers in a new era for mod development. The File Editor now supports editing buffers for the .ent and .app formats. Buffer editing opens the doors to countless new possibilities for modders. Virtually all aspects of the UI have been streamlined and refreshed with quality-of-life improvements.

    triangle-exclamation

    WolvenKit 8.5 has numerous breaking changes! If you have mod projects created with previous versions of WolvenKit, we strongly recommend reading the full release notes below.

    circle-exclamation

    .NET must be updated to 6.0 (x64) for WolvenKit 8.5+

    hashtag
    Known Issues

    • Some TGA image previews may be incorrect All TGA's exported from WolvenKit will be previewed correctly within the Properties window. However TGA's exported from other applications with bottom left Origin will appear inverted. This is only an issue with the image preview tool with the TGA format. The texture will not be inverted when imported as an XBM.

    hashtag
    Asset I/O

    hashtag
    What's New

    • MLMASK I/O has been streamlined The default format for mask I/O has been changed from DDS to PNG. Additionally mask textures are now placed into a subfolder using the original mlmask file name. When exporting .mlmask files WolvenKit will automatically generate a file within the raw directory. The content of the masklist is automatically generated for convenience. Masklist files now accept absolute and/or relative paths. For example: Absolute Path Q:\projects\Judy\files\source\raw\base\characters\main_npc\judy\textures\ml_s1_001_wa_shoe__judy_masksset.mlmask\0.png Relative Path ml_s1_001_wa_shoe__judy_masksset.mlmask\0.png

    hashtag
    Texture I/O

    • Default export format is now TGA After careful consideration the Import/Export tool will now export TGA by default. The flow chart below demonstrates the necessity of this change. DDS imports and exports remain unchanged in version 8.5.

    • Keep is now disabled by default Starting with version 8.5 textures will no longer be rebuilt by default. Standalone textures that don't require an original XBM will be created instead. There are numerous benefits: - Texture resolution/size will be updated automatically on import - Standalone TGA imports work flawlessly - Checking DDS compression is not necessary - High quality 32bpp RGBA compression is always used The drawback is that standalone textures will not preserve the isGamma boolean. This boolean must be set true for all color texture imports.

    • Support for isGamma Standalone texture imports now expose the isGamma boolean, meaning color textures can be correctly displayed as sRGB. The isGamma boolean is set to false by default, meaning the user should manually check the box for color textures. We plan to automate this process with an upcoming patch.

    hashtag
    Development

    hashtag
    Dependencies

    • Upgraded to Visual Studio 2022 Visual Studio 2022 is now required to compile WolvenKit.

    • Upgraded to .NET 6 The .NET dependency was upgraded from .NET 5 to .NET 6. Users can download .NET 6 from the following link:

    hashtag
    File Editor

    hashtag
    What's New

    • Support for editing buffers Buffers can now be edited and saved with WolvenKit! Currently .app and .ent buffer editing is supported. All properties can be modified including floats, strings, and paths. This opens the doors to countless new modding possibilities.

    • True native file editing WolvenKit is now capable of adding and removing elements of REDengine files within the document editor. Various options for adding or removing elements have been added.

    • Improved file handling Numerous quality of life enhancements have been implemented: - An asterisk (*) is added to the file name tab when unsaved changes are present - A confirmation dialogue has been added for closing edited files without saving - A

    hashtag
    Redesigned File View

    • Tree View replaces List View The left-hand navigation panel now uses a beautiful and intuitive tree view. Tree view elements are organized in a sensible way, rather than a flat list.

    • Collection Editor has been removed The Collection Editor introduced with version 8.4 has been removed. The right-hand properties panel now displays editable-content efficiently without a floating window.

    • Default engine values are now displayed Properties that are not written to file display REDengine default values. These values are automatically inserted by the game at runtime when left unset. Inherited default values are marked with italic font and darkened text.

    hashtag
    Fixes

    hashtag
    Miscellaneous

    • Fixed bugged mesh previews for new installations of WolvenKit

    hashtag
    Mod Projects

    triangle-exclamation

    BREAKING CHANGE Installed mod archives will no longer use the mod prefix! The name of the archive will now directly match the mod project name. For a mod project called JudyEdit, the archive will be automatically installed as shown below: OLD modJudyEdit.archive NEW (8.5+) JudyEdit.archive WolvenKit will automatically uninstall old mod archives when the mod project is updated, however take care to warn users if your archive name has changed.

    triangle-exclamation

    BREAKING CHANGE The WolvenKit project structure has changed! Existing projects will function as expected, however mod projects created with WolvenKit 8.5+ will not be backwards compatible. The changes can be summarized as follows:

    • The Mod directory has been renamed to archive

    • Packing and Installing have been separated into separate actions Pack Project - Compiles mod project without installing (New) Pack & Install - Compiles mod project and installs to Game Directory

    • The tweak directory folder structure is preserved Any user-created folder structures for tweaks are preserved by the WolvenKit installation process. Tweaks and folders are installed exactly as they appear within the tweak project directory.

    hashtag
    UI/UX

    hashtag
    Project Explorer

    • Added filtering to Project Explorer The Project Explorer can now be filtered by directory. SOURCE | All project directories (default) archive | Archive directory raw | Raw directory scripts | Script directory tweaks | Tweaks directory PACKED | Internal WolvenKit folder for mod deployment. Can be used to install extra files.

    • Added flat file view to Project Explorer A flat file list toggle button has been added to the Project Explorer which displays all project files in a simple alphabetical list without folders.

    hashtag
    Miscellaneous

    • WolvenKit mod projects (.cpmodproj) can be opened directly Mod projects can now be opened natively from Windows Explorer. The WolvenKit installer will automatically assign mod projects to be opened with WolvenKit. For WolvenKit portable, double-click any .cpmodproj file from Windows Explorer, then locate wolvenkit.exe.

    • Replaced Ribbon with menu bar (optional) Added a streamlined menu bar as an alternative to the Ribbon. Moved contextual actions to their respective editors.

    • Streamlined Home view

    ELI5: Configure modding tools

    Set relative locations of modding tools inside the applications

    hashtag
    Section Brief

    Configure the WolvenKit (wkit) application and MlSetupBuilder (mlsb), and make sure the Asset Browser loads the game's assets.

    circle-exclamation

    If you do not use the folder structure I recommended in , then use whatever path WolvenKit automatically fills in for you. Also be aware that your experience will not match my screenshots.

    hashtag
    Configuring Wolvenkit

    If your Wolvenkit is already configured (because you have followed the ), then you don't need to do anything here.

    Otherwise, please do that now or use the to configure Game Executable Path and (optionally) Depot Path.

    hashtag
    Installing Plugins

    1. In Wolvenkit, click on

    2. Click on

    3. REDMod should already be installed. If it isn't, please follow the instructions .

    1. Now that all plugins are installed, you can configure (but read the blue box first). This step is optional; you don't need to do it at this time, but you won't be able to make full use of the plugin if it is not configured.

    circle-info

    If you have been following the setup instructions exactly, then the paths you need to enter here are:

    • uncook folder: C:\Cyberpunk2077Mod\Depot

    For detailed configuration instructions, head to -> ->

    hashtag
    Testing

    Let's make sure that your game path is configured correctly and that Wolvenkit can access the files:

    1. Click on Continue to Editor

    2. Open the Asset Browser

    1. After several seconds, a success notification will appear and the asset folder structure will appear on the left. This means WolvenKit was able to access the Cyberpunk archive and extract the game assets.

    Congratulations - everything is working! If you haven't done this during the full prep, now is a good time to . Otherwise, you can move on to !

    circle-info

    Please note that before you can do anything with files, you need to create a Wolvenkit project.

    Project Explorer

    hashtag
    What is the Project Explorer?

    The Project Explorer is primarily a tool for organizing and navigating mod project files. The Project Explorer gives a constant tree view of all mod project files which streamlines the modding workflow significantly. There are four main WolvenKit directories inside the Project Explorer.

    hashtag
    Project Explorer Tabs

    You can switch between different tabs at the top of the project explorer (see the red arrow on the screenshot below). Their function (and content) will be explained in the next sections.

    hashtag

    hashtag
    Archive

    Only shows you files under your_wolvenkit_project/source/archive.

    Contains files that will be bundled into your mod's .archive file. For more information, check the documentation under ->

    hashtag
    Raw

    Location: your_wolvenkit_project/source/raw.

    Your (dirty?) working directory. Contains files that will not be part of your mod, as well as exported files. For more information, check the documentation under ->

    hashtag
    Resources

    Location: your_wolvenkit_project/source/resources

    Contains control files for your mod. For more information, check the documentation under ->

    hashtag
    Source

    Location: your_wolvenkit_project/source

    Will show you everything under your project's source folder. No context sorting.

    hashtag
    Using the Project Explorer

    WolvenKit features a bespoke which is capable of opening and modifying any REDengine file. Double-click any file within the archive directory of the Project Explorer to open the document viewer. Non-REDengine files which are typically stored in the raw directory can be accessed with the Project Explorer as well. Files such as blend, psd, png, and many more can be opened with the preferred system application. For example, double-clicking a .tga file will open the file with the users system preferred image application.

    Any file within the Project Explorer can be moved by dragging and dropping. Additionally files can be copied by holding Control while dragging and dropping.

    hashtag
    Context Menu

    Right-click any file within the Project Explorer to explore the Context Menu.

    hashtag
    Open in MLSetupBuilder

    Requires MLSetupBuilder plugin for WolvenKit. Install by navigating to the Toolbar panel.

    hashtag
    Export to JSON/Import to JSON

    Writes any REDengine file within the archive directory to human readable JSON format, as a mirrored file within the raw directory. JSON files can then be modified and converted back to REDengine format from the context menu by right-clicking the JSON file.

    hashtag
    Delete

    Moves any project file to the OS/system Recycle Bin.

    hashtag
    Rename

    Opens a dialogue box which allows any project file to be renamed.

    The Update in project files option will make WolvenKit update all references in your source and resources folder.

    circle-exclamation

    If you're renaming a folder, WKit will replace all occurrences of the folder's path! It might be better to rename individual files.

    If you learned this the hard way, can help.

    hashtag
    Copy

    Select any project file to be copied.

    hashtag
    Paste

    Pastes copied project file.

    hashtag
    Copy relative path

    Copies the selected file path to OS/system clipboard, trimming off all folders outside the game directory. Extremely useful for modifying paths while using the File Editor.

    circle-info

    By pressing Shift and/or Ctrl, you can display alternative copy options

    hashtag
    Replace with original

    Replaces the selected file with the original unmodified version from the game archives. (archive directory only)

    hashtag
    Open in File Explorer

    Find the selected file with the OS/system file explorer.

    hashtag
    Filtering

    The Project Explorer can be filtered by directory.

    SOURCE | All project directories (default) archive | Archive directory raw | Raw directory resources | Mirrors the game directory, use it to place additional files PACKED | Internal WolvenKit folder for mod deployment. Will be wiped before packing the project! Additionally the rightmost hamburger-style button can be used to toggle a flat file list without folders.

    Quest Editor

    Quest Editor 101

    The Quest Editor is designed to work .questphase files. It enables a node-based workflow: you select a node on the graph editor to edit and inspect its properties.

    Wolvenkit's Quest Editor
    triangle-exclamation

    Undo and redo actions are currently not supported but are planned.

    Be careful with your edits and it wouldn't hurt to make periodical backups anyways!

    hashtag
    Right-click context menu

    Common actions:

    • Duplicate Node: Creates an exact copy of the selected node in the same file, including all its properties, but with a new unique ID and no connections.

    • Copy Node: Copies the selected node to the clipboard. The copied node can then be pasted in the same file or a different questphase or scene file by right clicking -> Paste Node in the target file.

    circle-info

    FYI: When a node from a scene is copied from a scene file and pasted into a questphase file, the resulting quest node is automatically unwrapped from its scnQuestNode

    • Goto Node: Navigates the graph editor view and selects the specified node ID

    • Detach Node: Removes all incoming and outgoing connections from the selected node.

    • Delete Node (Soft Delete): Replaces the selected node with a special '' node. This is the default deletion for any signal-stopping node such as a PauseCondition, Choice, etc. This is the recommended way to remove such nodes from quests that have already been published, as it prevents users with existing saves from getting stuck in a signal-stopping node.

    Unique actions:

    • Recalculate Sockets for Phase and Scene nodes: syncs new in/out sockets created inside a Phase or Scene.

    • Add Output for Randomizer node: creates a new output node on the Randomizer node

    • Add Case for Switch node: creates a new switch case output + condition pair

    hashtag
    Shortcuts

    Shortcut
    Action

    Tools: Import/Export UI

    What are the Import/Export tools? What do they do?

    circle-info

    This page provides the UI documentation for the Import/Export tool. For a documentation of the functionality, see Import/Export.

    For documentation of the individual import/export settings, find the child-pages of Usage -> Import/Export

    hashtag
    What are the Import Export tools?

    To edit a REDengine file, it first needs to be converted to a more accessible format. This is where the Import/Export tools come in.

    Before moving files (or in cases of OCD), please note the section.

    As of Wolvenkit 8.9.0, you can find both the import and the export tool in the menu "Tools":

    hashtag
    UI Preview

    You can browse the file structure via Wolvenkit's Project Explorer. Here's how it looks:

    hashtag
    Import Tool

    circle-exclamation

    Importing will overwrite files in archive without a prompt. Do a backup from time to time!

    If you mess up a file beyond repair, you can restore it to default by selecting the "replace with original" option from the right-click menu.

    circle-info

    For detailed documentation of the different import settings, check the .

    UI element
    Explanation

    hashtag
    Export Tool

    triangle-exclamation

    Exporting will overwrite already-existing files in raw without a prompt.

    The Export Tool lets you export any files in your project's archive directory:

    circle-info

    For detailed documentation of the different export settings, check the .

    UI element
    Explanation

    Import/Export

    Wolvenkit Import and Export explained

    hashtag
    Section Brief

    hashtag
    UI/Workflow documentation

    This section contains general information and workflow documentation about importing and exporting files with Wolvenkit.

    • For a documentation of the UI, check :

      • ->

      • ->

    hashtag
    File Structure: the raw folder

    circle-info

    Moving or renaming files usually breaks the import. Read on to find out why.

    When exporting a resource, Wolvenkit puts the exported file into your project's raw folder. In the UI, you can find it in your project explorer:

    The relative paths (starting under archive/raw) are the same, as will the file name (without extensions).

    hashtag
    These files are connected:

    You can import your_file.glb via Import Tool.

    hashtag
    These files are not connected:

    You can not import your_file_mesh_export.glb via Import Tool, because Wolvenkit won't know where to put it.

    hashtag
    Exporting

    Wolvenkit knows to ways of exporting files: , or via the .

    Exported files will be created in your project's raw folder. The relative path will be the same.

    hashtag
    Importing

    Unless importing , Wolvenkit can't create files.

    When using the , we can only import into already existing containers (see for more information)

    The easiest way to do that is:

    1. export an existing file

    2. overwrite the new file in raw with your changes

    3. import the file

    hashtag
    Import from JSON

    This option is in the right-click menu.

    Error Codes

    A list of Wolvenkit error codes, and what they mean

    hashtag
    Summary

    Published: May 1 2024 by Last documented update: Jan 6 2025 by

    This page contains an overview about Wolvenkit's internal error codes and what they mean.

    circle-exclamation

    For developers:

    When editing this page (especially section headers), please update the internal mapping: WolvenKit/Helpers/LogCodeHelper.cs

    hashtag
    What to do with an error

    If you ended up on this page, you ran into a problem that needs to be fixed inside WolvenKit. You now have the following options:

    hashtag
    Install the Nightly

    If you are on the stable release, you should try . There's a good chance that your problem is already solved.

    hashtag
    Update all tools involved

    Make sure that you are on the most recent version of whatever tool's you're using. This includes, but is not limited to, the and .

    hashtag
    Find support on Discord

    Find our and hit up the #wolvenkit-support channel. (If you aren't on the Nightly yet, you should really do that now, because it's the first thing everyone will tell you).

    hashtag
    Create a ticket

    If your error still happens in the Nightly, you need to tell us about it. It's easy: bugs that don't get reported don't get fixed.

    Head to Wolvenkit's github page and (you need a github or Google account, but they won't send you spam).

    To fix the bug, we need to watch it in action. Please include everything we need to make it happen — at the very least, we need the most recent log file:

    hashtag
    Error code list

    circle-info

    If the steps below don't help, please get in touch via , , or browse the page. Keep your most recent log file ready!

    hashtag
    0x2000: Type not supported (8192)

    WolvenKit ran into a problem during internal conversion. Here's what you can do:

    1. Install

    2. Re-create whatever file you were trying to work on at that time:

      1. A game file from an earlier patch: Add it to your project again

    hashtag
    0x3002: Resources plugin

    The may have become corrupted. Open Home -> Plugins and remove it, then restart Wolvenkit, reinstall the plugin, and try again.

    hashtag
    0x5000: Invalid settings

    You have an unspecified issue with your settings. Double-check them and make sure that everything is configured correctly.

    If that doesn't help, remove or re-name your settings file and restart WolvenKit:

    hashtag
    0x5001: Invalid Game File Executable

    Check your -> and make sure that it points at your Cyberpunk2077.exe. For more information, check the wiki link.

    hashtag
    0x5002: Failed to launch game executable

    Check and make sure that all your settings are valid. If that doesn't fix your problem, you may have to reset your settings, see for detes.

    hashtag
    MTO requirement

    You are here because a popup in Wolvenkit told you about Material and Texture Override.

    The mod is necessary because Cyberpunk caches all of the base game's .mlsetup files, so your changes won't be visible without it. You can .

    circle-info

    The original MTO can crash the game under certain circumstances, so you should remove it and install the new version instead.

    To avoid the dependency, you can use .

    Wolvenkit Search: Finding files

    These aren't the files you're looking for… yet.

    hashtag
    Summary

    This page will show you how to use the Wolvenkit search to find files inside the Asset Browser/Mod Browser.

    hashtag
    Wait, this is not what I want!

    • To find the game files from an item's code (e.g. Items.Q005_Johnny_Pants), please check on the yellow wiki.

    hashtag
    Wolvenkit's search bar

    You can use the search bar at the top of the asset browser to search the game files:

    To search in your currently installed mods instead, switch to Mod Browser:

    hashtag
    Operators

    You can chain the search operators below with the > character, which will run the results of the first search through the second search.

    hashtag
    Examples:

    Let's get to the meat of the matter.

    hashtag
    By archive

    This is mostly useful for the mod browser, as it allows you to e.g. retrieve files from your other mods without switching projects or digging through your mod directory.

    Use the archive switch to show only files in a certain archive (name or path):

    circle-info

    This operator has to be chained via > if you want to refine it.

    a:ArchiveXL_Netrunner .mesh will show nothing a:ArchiveXL_Netrunner > .mesh will show all mesh files by archive match ArchiveXL_Netrunner.

    hashtag
    By full / partial path

    hashtag
    Full

    This is the default search behaviour, and you don't need to include these operators.

    Search will only show you files under this path.

    hashtag
    Partial

    To limit your search to a certain folder, you can put the folder path and the search term:

    You don't need to include slashes. These search terms below will yield the same results:

    hashtag
    File Extension

    You can limit your search to certain file extensions:

    hashtag
    Hash

    If you only know a file's hash, you can still search for it:

    hashtag
    Or

    You can search for multiple terms by using the | operator:

    triangle-exclamation

    This does not like spaces. word1|word2 will work, word1 | word2 will not.

    hashtag
    Not

    You can exclude terms from the search by prefixing them with !:

    hashtag
    Regular Expression

    Wolvenkit lets you search for regular expressions. The main limitation is that you can't use spaces:

    .* will work by default.

    About

    hashtag
    WolvenKit is made possible by the community

    All aspects of WolvenKit are created by incredible community members. Many members of the RED Modding community donate their time and effort to engineer tools, applications, and support for modding for REDengine. We want to acknowledge the hard work and generosity of our contributors that make WolvenKit what it is today.

    hashtag
    Core Developers

    These individuals turn our dreams into reality

    hashtag
    Outstanding contributions

    Community members who've logged countless hours bringing WolvenKit to the next level

    hashtag
    PNDR - Art & Graphic Design

    • Created dozens upon dozens of vector-based icons for WolvenKit's Asset Browser and Project Explorer

    hashtag
    HOMESICK - Art & Graphic Design

    • Created WolvenKit brand images, including the Sammy avatar

    hashtag
    All code contributors

    Check out the 50+ contributors to the WolvenKit source code

    hashtag
    Other extraordinary help

    Community members or organizations that empower REDengine modding with WolvenKit

    hashtag
    AB4D - 3D Graphics for .Net

    WolvenKit's real-time mesh preview system was powered by AB4D. (Deprecated in v8.6)

    hashtag
    NEUROLINKED

    Neurolinked created MLSB (mlsetup-builder), a software for working with and creating complex multilayered Cyberpunk assets.

    hashtag
    TURK645

    The basis for converting Cyberpunk multilayered materials into Python script for Blender was Turk's incredible Blender add-on for shader automation. Their research and development helped make the Cyberpunk Blender add-on possible.

    Toolbar

    The buttons on Wolvenkit's toolbar, and which menu function they call

    circle-info

    The toolbar buttons are convenience shortcuts to menu functions. Find the full documentation there.

    You can find the toolbar below the .

    Red ModdingRed Moddingchevron-right
    Join the Cyberpunk 2077 Modding Community Discord Server!Discordchevron-right
    %APPDATA%\REDModding\WolvenKit\WScript
    import * as Logger from 'Logger.wscript';
    @echo off
    setlocal
    
    set "cli_path=C:\01_apps\Wolvenkit_CLI_8_15\Wolvenkit.CLI.exe"
    set "modpath=F:\CyberpunkFiles\temp"
    
    FOR %%F IN ("%modpath%\*.archive") DO (
        SET "baseName=%%~nF"
        "%cli_path%" uncook -p "%%F" -o "%modpath%\output"  REM -w *.xbm --uext png
        
        REM Move PNG files and preserve relative paths
        FOR /R "%modpath%\output" %%G IN (*.png) DO (
            SET "relPath=%%~pG"
            SETLOCAL enabledelayedexpansion
            SET "newDir=%modpath%\out\!baseName!\!relPath!"
            mkdir "!newDir!" >nul 2>&1
            move "%%G" "!newDir!"
            ENDLOCAL
        )
    )
    
    PAUSE
    EXIT

    Paste Settings

    Pastes the Import Settings from the previous step to the currently active file.

    This will not work if you copy/paste between incompatible file types.

    Paste Settings

    Pastes the Export Settings from the previous step to the currently active file.

    This will not work if you copy/paste between incompatible file types.

    Import Selected

    Imports anything you checked in the left-hand list

    Import All

    Imports all files in your project. ⚠ This button will always export everything, regardless of your filter.

    Refresh

    Refreshes the file list on the left

    Reset Settings

    Restores the Import Settings to default

    Copy Settings

    Copies the Import Settings of your currently selected file (h0_000_pwa_c__basehead.glb in the screenshot above) so that you can paste them to other files.

    Export Selected

    Exports anything you checked in the left-hand list

    Export All

    Exports all files in your project. ⚠ This button will always export everything, regardless of your filter.

    Refresh

    Refreshes the file list on the left

    Reset Settings

    Restores the Export Settings to default

    Copy Settings

    Copies the Export Settings of your currently selected file (h0_000_pwa_c__basehead.mesh in the screenshot above) so that you can paste them to other files.

    corresponding subpage
    corresponding subpage
    Annotated example. For more information about the files, see below.
    This is your import tool. For detailed documentation of the different export settings, check the corresponding subpage.
    This is your export tool. For detailed documentation of the different export settings, check the corresponding subpage.
    Tools: Import/Export UI
    Adding a new texture with WolvenKit 8.2.2

    Destroy Node (Hard Delete): Permanently removes the selected node from the graph. This is safe to use when creating a new scene, but should be used with caution on signal-stopping scene nodes that are already in use, as it can cause user to be stuck in your quest.

  • Convert to Phase: Converts the selected nodes and packages them into a Phase node. Does not alter any logic and preserves all incoming and outgoing sockets.

  • Deletes connection

    Ctrl + C

    Copies the currently selected node

    Ctrl + P

    Pastes the copied node

    Delete

    Performs a "soft delete" by replacing the node with a 'Deletion Marker' (soft delete). This only happens if the editor finds the selected node is a signal-stopping node like a Pause Condition, Choice, etc.

    If it's a regular (non signal-stopping) node, it will be permanently deleted.

    If it's already a 'Deletion Marker', it gets permanently destroyed.

    Shift + Delete

    Permanently destroys the selected node(s) (hard delete).

    Ctrl + D

    Duplicates the currently selected node.

    Ctrl + N

    Opens the dialog to create a new node.

    Ctrl + G

    Opens the "Go to Node" dialog to jump to a specific node by its ID.

    ↑ ↓ ← → (Arrow Keys)

    Navigates between nodes. The editor uses a "smart walk" system that considers both spatial position and connection history to determine the next node to select.

    Deletion Markerarrow-up-right

    Alt + Click on a socket or Right-click on a connection

    Depot Path
    mana vortex
    mana vortex
    mana vortex
    mana vortex
    mana vortex
    AAbdii
    mana vortex
    mana vortex

    JSON export will generate a text file. If you don't know what that means, ignore this option, or read more about it under Import/Export as JSON

    • Import/Export as JSON -> Export as JSON

    • Import/Export as JSON ->Import as JSON

  • For a detailed explanation of the different settings and their workflow, check the nested pages or use the "next" button at the bottom of the page.

  • Import/Export Tool
    Tools: Import/Export UI
    Tools: Import/Export UI
    to JSON
    Export Tool
    from JSON
    Import Tool
    Import Tool
    Export Tool
    Import/Export
    New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" `
    -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
    source/archive/base/path/your_file.mesh
    source/raw/base/path/your_file.glb
    source/archive/base/path/your_file.mesh
    source/raw/base/path/your_file_mesh_export.glb
    Save As
    button has been added to save files as a copy
  • Temporary file preview Any file can now be opened without being added to a project. Files can be previewed by selecting them within the Asset Browser. Additionally when editing any REDengine file, referenced files can be opened temporarily in a new tab. To open a referenced file, click the blue arrow icon inside the tree view.

  • Document window preview REDengine files such as xbm, inkwidget, and mlmask can now be previewed directly within the File Editor. Below the main file tab, a new set of preview tabs are available for select formats.

  • Main document inline buffer viewing Buffer viewing has been dramatically improved. Buffers are now visualized within the main file tree rather than individual tabs. Understanding the relationship between buffers and the main file is now more intuitive.

  • The Raw directory has been renamed to raw (no longer capitalized)

  • The script directory remains the same

  • The tweakdbs directory has be renamed to tweaks

  • Added drag-and-drop to Project Explorer The Project Explorer now supports drag-and-drop for files. Click and hold any file to move folders. Additionally files can by copied by holding CTRL while dragging.

  • Added warning for overwriting files in the Project Explorer When adding files to a mod project with the Asset Browser a confirmation dialogue has been added for overwriting existing files.

  • The Home page has been restyled and refined further. A new transition effect has been added when switching to Home.
  • Added native file preview for new file formats Inkwidget and mlmask files can now be previewed directly within the File Editor.

  • Added manual update button Within the Settings page a WolvenKit manual update check button has been added.

  • Added per-project layouts WolvenKit Editor layouts can be saved to a specific mod project.

  • Support for Asset Browser without a mod project The Asset Browser can now be loaded without creating a mod project. Game files can be browsed and previewed without adding them to a project.

  • Logging has been improved Existing log messages have been cleaned up, and many new events have been added to improve feedback. WolvenKit events and errors are easier to understand.

  • Themed elements have been dramatically reduced Many visual elements were unreadable with dark or light accent colors. Most UI elements have been un-themed to prevent these issues.

  • https://dotnet.microsoft.com/en-us/download/dotnet/6.0arrow-up-right
    masklist
    https://dotnet.microsoft.com/en-us/download/dotnet/6.0arrow-up-right
    See issue #622arrow-up-right

    For every other plugin, click Install or Update.

    WolvenKit-CLI executable: C:\Cyberpunk2077Mod\WolvenKit.CLI\WolvenKit.CLI.exe

    If you have not, then your paths will be different and you need to adjust them accordingly.

    Prep your computer
    installation guide
    settings page
    HOME
    Plugins
    create a depot
    ELI5: Validate Functionality
    Cyberpunk 2077 Modding
    A depot file: Delete the file from the depot and/or re-create the depot
  • A raw file: re-create the file with the latest version of whatever tool you used (Wolvenkit, the ...)

  • The Wolvenkit Nightly
    discord serverarrow-up-right
    create a ticketarrow-up-right
    Discordarrow-up-right
    create a ticketarrow-up-right
    Troubleshooting
    The Wolvenkit Nightly
    Wolvenkit Resources plugin
    Settings
    get it on Nexusarrow-up-right
    0x5001: Invalid Game File Executable
    0x5000: Invalid settings
    Settings
    mana vortex
    mana vortex
    hashtag
    Toolbar options

    hashtag
    New File

    Same as the menu entry -> (creates a new game file)

    hashtag
    Save

    Same as the menu entry -> (saves the currently active editor)

    hashtag
    Save As

    Same as the menu entry -> (saves a copy of the currently active file)

    hashtag
    Save All

    Same as the menu entry -> (saves all currently open file)

    hashtag
    Create Zip

    Same as the menu entry ->

    hashtag
    Install Mod

    Same as the menu entry ->

    hashtag
    Install

    Same as the menu entry ->

    hashtag
    Install and launch

    Like Install, but launches the game afterwards.

    Find it in your toolbar

    hashtag
    Hot Reload

    Same as the menu entry -> . Requires .

    hashtag
    Additional toolbar options

    You can activate the REDMod entries in the settings under "Interface".

    hashtag
    Pack as REDMod

    Same as the menu entry ->

    circle-info

    As a rule of thumb, you generally don't want this. Vortex can auto-convert to REDMod on install. Packing your mod in the legacy format will save work for those people who don't want to use REDMod.

    hashtag
    Install as REDMod

    Same as the menu entry ->

    Menu
    Here, you can search through game files.
    Your currently installed mods will show up on the left
    WolvenKit Projects
    WolvenKit Projects
    WolvenKit Projects
    File Editor
    View Optionsarrow-up-right
    File Validation
    As of 8.11
    https://www.ab4d.comarrow-up-right
    https://github.com/Neurolinkedarrow-up-right
    https://github.com/Turk645arrow-up-right
    Additional Mod Directory

    Scene Editor

    Scene Editor 101

    The Scene Editor is designed to work .scene files. It enables a node-based workflow: you select a node on the graph editor to edit and inspect its properties.

    Wolvenkit's Scene Editor
    triangle-exclamation

    Undo and redo actions are currently not supported but are planned.

    Be careful with your edits and it wouldn't hurt to make periodical backups anyways!

    hashtag
    What do the tabs mean?

    The first tab is the Node Properties tab where properties are dynamically shown and edits are synced with the Graph Editor. This is likely where you'll spend most of your time in.

    Special nodes like a Section node (which are probably the most used node in scenes, used to orchestrate dialogue, animations, workspots, vfx etc) will also show up with a timeline where you can drag, rearrange, and extend events.

    Here is a breakdown of the other tabs:

    hashtag
    Actors & Props

    This tab displays the definitions for actors, props, and other entities that are physically represented in the game world. Use this tab to add new actors or check existing actors in a scene.

    Use the 'Add Actor' and 'Add Prop' buttons to add new actors and props to your scene. These buttons automatically create corresponding entries in the actors/props arrays as well as debugSymbols > performerDebugSymbols. After creation, you can rename the actors and define them (for instance you will need to specify how the actor is going to be spawned for the actor to actually work and show up)

    hashtag
    Logic & Flow

    This tab provides a global view of the logic and flow-control elements for the entire scene. This includes collections of data such as EntryPoints, ExitPoints, NotablePoints and other structures that define how the scene starts, ends, and progresses.

    When looking at big scenes, it can be useful to look through the entries here to identify the major points in the scene.

    circle-info

    Use Ctr + G (Goto Node) to go to a specific node ID

    hashtag
    Dialogue

    This tab contains the scene's entire dialogue repository. It provides access to the scene's embedded LocStore (localization strings) and actual localised ScreenplayStore (screenplay data), which include all dialogue lines, player choices, and associated metadata for the whole scene.

    Use the 'Add Dialogue' button to add a new dialogue entry that can be used in Section nodes to play dialogue. You will need to provide a Locstring ID and optionally, an embedded text to display within the editor. Once created and before you try to use it, you will need to fill out more details such as the lipsync animation names, speaker, addresee, etc for the dialogue to work.

    Similary the 'Add Option' button adds a new option entry that can be used in a Choice node.

    circle-info

    Use SoundDB to grab locstringIDs of existing voicelines:

    hashtag
    Asset Library

    This tab serves as a central library for all external assets referenced within the scene file. This includes animations, effects, workspots. Each of these resource also have buttons to add new entries to.

    circle-info

    For animations - remember you still need to assign the specific animation asset to actors before using them in the actors tab

    hashtag
    Markers & Metadata

    This tab displays misc metadata associated with the scene, including scene category, localMarkers, version, etc


    hashtag
    Right-click context menu

    hashtag
    Common actions:

    • Duplicate Node: Creates an exact copy of the selected node in the same file, including all its properties, but with a new unique ID and no connections.

    • Copy Node: Copies the selected node to the clipboard. The copied node can then be pasted in the same file or a different scene or questphase file by right clicking -> Paste Node in the target file.

    circle-info

    FYI: When a node from a questphase is copied from a questphase file and pasted into a scene file, the resulting scene node is automatically wrapped in a scnQuestNode

    • Goto Node: Navigates the graph editor view and selects the specified node ID

    • Detach Node: Removes all incoming and outgoing connections from the selected node.

    • Delete Node (Soft Delete): Replaces the selected node with a special '' node. This is the default deletion for any signal-stopping node such as a PauseCondition, Choice, etc. This is the recommended way to remove such nodes from quests that have already been published, as it prevents users with existing saves from getting stuck in a signal-stopping node.

    Unique actions:

    • Add Event Socket: creates a new event output socket on Section nodes

    • Add Choice: creates a new choice option socket on Choice nodes

    • Add Input: creates a new input socket on logical gates such as And, Xor, and routers such as Hub.

    hashtag
    Shortcuts

    Shortcut
    Action

    GitHub - WolvenKit/WolvenKit: Community Mod editor/creator for REDengine games.GitHubchevron-right
    Logo

    Settings

    Wolvenkit's settings and what they mean

    hashtag
    Summary

    Last documented update: Jun 17 2024 by (Wolvenkit 8.14 Nightly)

    This page documents Wolvenkit's settings menu, and what the individual entries mean.

    Append default launch profiles
    mana vortex
    mana vortex
    Redscript
    Redscript
    Cyber Engine Tweaks
    Join the Cyberpunk 2077 Modding Community Discord Server!Discordchevron-right
    C:\Users\<yourusername>\AppData\Roaming\RedModding\Wolvenkit\config.json
    // find all .mesh files in mod archives matching ArchiveXL_Netrunner
    archive:ArchiveXL_Netrunner > .mesh
    
    // find all textures with "steel" outside of "Characters"
    // (have negative matches last, as they're expensive)
    .xbm > steel > !characters
    a:ArchiveXL_Netrunner
    archive:ArchiveXL_Netrunner
    path:base\characters\common\player_base_bodies\player_female_average\t0_000_pwa_base__full.mesh
    @base\characters\common\player_base_bodies\player_female_average
    base\characters\common\player_base_bodies\player_female_average t0_000_pwa_base
    base\characters\common\player_base_bodies\player_female_average arms
    base characters common player_base_bodies player_female_average arms
    
    // or simplify it to
    player_base_bodies player_female_average arms
    player_female_average .mesh
    player_female_average .xbm
    hash:9872775577851133397
    player_base_bodies\player_female_average > .mesh|.xbm
    player_base_bodies\player_female_average arms > !morphtarget
    regexp:^.*main_npc.*judy.*\.mesh
    r:^.*main_npc.*judy.*\.mesh
    Archive
    Raw
    Resources

    Destroy Node (Hard Delete): Permanently removes the selected node from the graph. This is safe to use when creating a new scene, but should be used with caution on signal-stopping scene nodes that are already in use, as it can cause user to be stuck in your quest.

    Add Output for Randomizer node - creates a new output node on the Randomizer node

    Deletes connection

    Ctrl + C

    Copies the currently selected node

    Ctrl + V

    Pastes the copied node

    Delete

    Performs a "soft delete" by replacing the node with a 'Deletion Marker' (soft delete). This only happens if the editor finds the selected node is a signal-stopping node like a Pause Condition, Choice, etc.

    If it's a regular (non signal-stopping) node, it will be permanently deleted.

    If it's already a 'Deletion Marker', it gets permanently destroyed.

    Shift + Delete

    Permanently destroys the selected node(s) (hard delete).

    Ctrl + D

    Duplicates the currently selected node.

    Ctrl + N

    Opens the dialog to create a new node.

    Ctrl + G

    Opens the "Go to Node" dialog to jump to a specific node by its ID.

    ↑ ↓ ← → (Arrow Keys)

    Navigates between nodes. The editor uses a "smart walk" system that considers both spatial position and connection history to determine the next node to select.

    https://sounddb.redmodding.org/subtitlesarrow-up-right
    Deletion Markerarrow-up-right
    Wolvenkit Scene Editor: Right-click context menu
    Wolvenkit's Scene Editor

    Alt + Click on a socket or Right-click on a connection

    Logo
    hashtag
    TL;DR

    You must make sure that your Game Executable Path is set. Wolvenkit will not work otherwise.

    Setting
    value

    Game Executable Path (.exe)

    Path to the game's executable file on your hard drive, e.g.

    C:\Games\Cyberpunk 2077\bin\x64\Cyberpunk2077.exe

    Depot Path

    Defaults to C:\Users\yourusername\AppData\Roaming\REDModding\WolvenKit\Depot

    A folder where Wolvenkit can store all its clutter. NOT your game directory.

    hashtag
    Settings: Overview

    For a textual explanation of the seettings, see the next section

    Example settings window for 8.9.1

    hashtag
    Cyberpunk

    hashtag
    Game Executable Path

    triangle-exclamation

    You must set this.

    The path to your Cyberpunk2077.exe , inside under bin\x64.

    circle-info

    If Cyberpunk is installed within Program Files, we recommend running WolvenKit as administrator.

    hashtag
    Launch Command

    circle-check

    Optional

    The path to your Cyberpunk2077.exe , inside . Will be auto-generated from Game Executable Path.

    You can also put the path to the REDLauncher here, if you want that (but why would you?)

    hashtag
    Launch Options

    circle-check

    Optional

    Arguments for the executable. You can find a list in the yellow wiki on the page.

    hashtag
    Depot Path

    circle-exclamation

    You should set this, or Wolvenkit will default to your AppSettings directory. Since this is on the same drive as your Windows install, it can clutter up your harddrive.

    The Depot Path is a WolvenKit system folder for caching game assets. It serves as a cache for mesh exports with materials. WolvenKit builds a repository of visual assets within the Depot for usage with external applications such as MLSetupBuilder or Blender.

    By default, it is set to C:\Users\yourusername\AppData\Roaming\REDModding\WolvenKit\Depot, but you can pick any location. It does not need to be on an SSD, although Wolvenkit might load faster if it is.

    Learn more about the Material exports here.

    hashtag
    Additional Mod Directory

    circle-check

    Optional

    A directory for .archive mods outside of your game directory, for example for resources that you want to load for multiple projects. Mods inside this folder will show up in the Mod Browser after your installed mods.

    hashtag
    Display

    hashtag
    Show CName hashes as hex

    Display hashes for CNames as hexadecimal (rather than decimal)

    hashtag
    Show ResourcePath hashes as hex

    Display hashes for ResourcePaths as hexadecimal (rather than decimal)

    hashtag
    Show NodeRef hashes as hex

    Display hashes for NodeRefs as hexadecimal (rather than decimal)

    hashtag
    Show TweakDBID hashes as hex

    Display hashes for TweakDBID entries as hexadecimal (rather than decimal)

    hashtag
    Show reference graph

    hashtag
    Game language used for LocKeys

    Lets you customize the language for the LocKey Browser. Default: en_us

    hashtag
    Show Graph Editor Node Properties

    Graph Editor: Detailed display?

    hashtag
    File Editor

    hashtag
    Group Large Collections

    Toggles limited collections for improved performance within the File Editor when working when navigating large files.

    hashtag
    Group Size

    Adjusts the amount of elements of in a limited collection within the File Editor.

    hashtag
    Default to Simple Mode

    Starting with 1.14, Wolvenkit offers multiple editor modes. You can find details under .

    hashtag
    Ignored Extensions

    File extensions that you want to open in an external editor

    hashtag
    General

    hashtag
    Do not check for updates

    Will disable Wolvenkit's auto-update

    hashtag
    Show Guided Tour

    UNKNOWN FUNCTIONALITY This toggle may not work in the latest WolvenKit build.

    hashtag
    Update Channel

    The update channel determines which type WolvenKit updates are received.

    • Stable WolvenKit will only show prompts when new releases are published (recommended)

    • Nightly WolvenKit will show the latest development builds which may be unstable

    hashtag
    Your name

    Will be used for automatically generated subfolders / item names. If you configure this, it'll be auto-filled for new projects.

    hashtag
    Your e-Mail

    Will be used when creating new projects.

    hashtag
    Theme Accent

    Changes the accent color of UI elements throughout WolvenKit.

    hashtag
    Interface

    Lets you customize Wolvenkit's interface.

    hashtag
    Import/Export: Show advanced options

    Turn this off unless you know what you're doing

    hashtag
    Update references on rename

    The default state of this box when you open the rename dialogue (shortcut: F2)

    hashtag
    Show REDMod in Ribbon

    Adds the REDMod buttons back to the ribbon. (Why do you want this?)

    hashtag
    Show File Preview

    circle-info

    You can disable this feature to save performance, or simply hide the panel.

    Enables interactive Quick Previews within the Properties panel when navigating the Asset Browser and Project Explorer.

    hashtag
    Append default launch profiles

    Will append the Default profiles to the list of launch profiles if they are not defined (this will not overwrite your custom profiles)

    mana vortex

    8.3

    Good things come to those who wait

    hashtag
    Published Sept 05 2021

    WolvenKit 8.3 arrives with amazing new features, improved workflows, and critical bugfixes. Support for basic REDengine file editing has been implemented. While using our RED4 document viewer, virtually any RED4 file can be opened, modified, and saved using a sleek UI. Additionally the mlmask format has been reverse engineered allowing users to generate new mask files using our bespoke file I/O pipeline. The most common crashes and issues have been addressed; WolvenKit now handles issues with dependencies much more gracefully.

    hashtag
    Patches

    hashtag
    8.3.2 (Sept 05 2021)

    hashtag
    Fixes

    • Fixed a bug where the application would crash on a clean restart

    Changes

    • Added global application error logfile %AppData%\REDModding\WolvenKit

    hashtag
    Asset I/O

    hashtag
    What's New

    • Material I/O has been refactored The material json has been reworked significantly. WithMaterials mesh exports will no longer generate json subfolders within the Raw directory. Without containing folders, each json file is now uniquely named after the source mesh followed by .Material.json. This will significantly declutter any project with materials. The internal structure of the material json has been dramatically simplified; internal mutlilayered component data has been removed. Rather than include the same ml-data for each and every material json, mltemplates and mlsetups will be stored once as json within the Material Repository. This prevents bloated material jsons in excess of 500,000 lines. The Cyberpunk Blender add-on must be updated to 1.0.2 or higher for compatibility.

    • Internal code for accessing shaders (mt) during I/O is more robust Material exports are now more future-proof, and now support multiple game versions.

    hashtag
    Mesh I/O

    • Added material only option for mesh imports Support for importing materials-only to edit mesh materials without worrying about breaking the underlying mesh during the I/O process.

    • Added glTF file import verification options Exposed glTF validation options to the user when importing custom mesh files.

    • Improved detection of invalid normals and tangents Additional checks for bad mesh data improves feedback from WolvenKit when importing meshes.

    hashtag
    Development

    hashtag
    Implemented

    • Updated the RTTI types to 1.30

    • TweakDB writer It's now possible to create Tweak Databases from scratch

    • Reactive UI

    hashtag
    I/O

    • Using glTF Core library for most mesh/morph exports

    • Exporting bones with morphtargets

    • Detect base rig properly instead of using a hack while merging multiple rigs

    hashtag
    Memory Optimizations

    • Disabled webview2 when offline

    • Store hashed names as ascii byte arrays instead of strings

    • Smarter missing hash detection in the hashservice for deferred loading

    hashtag
    Miscellaneous

    • Removed legacy code, hosted elsewhere WolvenKit 7 is updated and working here:

    • Removed unused dependencies

    • Removed solution platforms for anycpu and x86

    hashtag
    Fixes

    • Fixed mainView and app icons

    • Fixed mlmask layer uncooking after directxtex wrapper implementation

    • Fixed mainwindow themeing

    hashtag
    File Editor

    • Initial support for editing various REDengine files with a dedicated in-app GUI WolvenKit 8.3 brings the first release of WolvenKit's core feature; a system for reading and writing REDengine binary files. While development is still in early stages, the File Editor supports editing and saving (non-buffered) paths and values.

    hashtag
    Fixes

    hashtag
    Critical Fixes

    • WolvenKit could not be used while offline due to a bug with webview content The application crashed immediately with no feedback. Bug report here , fixed in . WolvenKit can now be used as expected without webview content. See also:

    • Improved support for future game versions Cyberpunk game update 1.3 caused crashes with the Asset Browser. WolvenKit relied on a cached archive file inside the user appdata folder, which caused a crash when this cache was mismatched to the installed game version. The archive cache file has been removed in favor of direct archive access, which also yields improved performance.

    hashtag
    Miscellaneous

    • Fixed a major issue with the Material Repository Before the release of WolvenKit 8.2 the Material Repository output was switched from PNG to TGA. This resulted in adding ~70gb's of extra data due to lack of compression with TGA. To reduce unnecessary bloat the default format of the repository is now PNG moving forward. Recreating the Material Repository is recommended to save space and update for game version 1.3.

    • Fix a bug with exported PNG and BMP textures Both PNG and BMP files were written using the wrong codec on export (TIFF). The correct codec for each file type is now used. See:

    hashtag
    Mod Projects

    • BREAKING CHANGE - Material I/O Material I/O has been updated so projects with WolvenKit 8.2 may not work as expected. To upgrade projects for WolvenKit 8.3 remove all material json files and subfolders from the Raw directory. Export meshes in the Mod directory using WithMaterials argument to generate new material json files.

    hashtag
    UI/UX

    • Streamlined some UI elements for improved efficiency and simplicity General cleanup of elements lacking padding, margin, etc.

    • Asset Browser interface has been improved extending usability Multiple files and folders can now be selected and added to project using check boxes. New button Add Selected Item(s) to Project has been added to the Ribbon context menu. Advanced filtering options have been implemented to search functions. Items are now sorted alphanumerically and suffixes to the file sizes (kb/mb).

    hashtag
    Other

    • Cyberpunk 1.3 and existing WolvenKit mod projects We strongly recommend rebuilding existing mod projects by replacing old assets with updated versions from 1.3. Many assets have been updated, and some formats have been changed. For example, to update a mesh mod add the mesh file from 1.3 to your mod project and re-import the custom glTF file. This mitigates the risk of crashes or corruption with files.

    Editor Toolbar

    The CR2W Editor's toolbar, and what you can do there

    hashtag
    Summary

    Created: Sep 01 2025 by mana vortex Last documented update: Sep 01 2025 by mana vortex

    This page documents the editor menu bar.

    The editor toolbar as seen in a .mesh file as of Wolvenkit 8.16.2

    hashtag
    Editor Mode

    Here you can toggle the . Please see the corresponding wiki page for details.

    hashtag
    Search Bar

    There's a search bar on the right side of the editor, which will search through all nodes in the tree:

    circle-info

    Since the search is performance-heavy, you need to trigger an update with the Enter key.

    hashtag
    Materials

    Only visible in .mesh and .mi files.

    hashtag
    Copy materials from other mesh

    circle-info

    Hold shift to turn this into Copy materials to other meshes

    Only visible in .mesh files. Lets you copy appearances, material definitions, and materials from a different file.

    You have the following options:

    • From ArchiveXL patch mesh: Requires the mod to be installed. Will read the .xl file and find the corresponding patch mesh, then copy all materials and definitions. This does not work if you custompathed your file already.

    • From project mesh: The dropdown lets you select a project mesh

    • Enter by hand: Put a depot path here. Order of evaluation is project files > mod files > game files. If you have multiple mod files at the same depot path, the first match will be used.

    hashtag
    Generate missing materials

    If you have chunk materials that do not yet have material entries, you can use this button to generate localMaterialInstances for them.

    circle-info

    Consider using instead!

    hashtag
    Toggle "EnableMask"

    Only visible with one or more materialEntries selected. Will toggle IsMasked flag for all of them.

    hashtag
    Toggle "IsLocalInstance"

    Only visible with one or more materialEntries selected. Will toggle IsLocalInstance flag for all of them.

    hashtag
    Add material dependencies

    circle-info

    You can hold down the Shift key to include base game files.

    NPV modders love it: This button collects all required .mi files and textures into a directory in your mod, then updates the internal paths. made easy!

    hashtag
    Clean up

    Only visible in .mesh, .json, .app

    hashtag
    Mesh files

    hashtag
    Delete unused materials

    Hold Shift for Clear all materials (for ArchiveXL material patching)

    Run this directly after you deleted appearances. Will delete material definitions and materials, adjusting the index properties.

    circle-info

    If you are running this on an eye mesh (name must contain he_), a dialogue will ask for your eyelash colour.

    hashtag
    Convert preload materials to local

    Only visible if you have materials in preloadLocalMaterialInstances or preloadExternalMaterialInstances - will move them to materials.localMaterialInstances instead.

    hashtag
    Delete chunk by submesh index

    If you deleted a submesh in Blender, use this to remove all the corresponding chunks (e.g. you deleted submesh_02 out of 11)

    hashtag
    Adjust submesh counts

    Useful for cleaning up those ancient template meshes: this will make sure that the chunkMaterials of each appearance will have an entry for every submesh. This will ignore empty chunkMaterials - use to expand)

    hashtag
    App files

    hashtag
    Delete unused animated components

    Will remove animated components that aren't used as skinning or parentTransform by other components

    hashtag
    Find unused files in project

    Does the same as Project -> Clean Up -> Find Unused Files, but will only consider file extensions that can be used in .app files (.mesh, .rig, .animgraph, .morphtarget). Will let you find those backup files you forgot to delete.

    hashtag
    JSON files

    hashtag
    Delete duplicate entries

    Will delete translation entries that have the same secondaryKey.

    hashtag
    ArchiveXL

    Only visible in .mesh files.

    hashtag
    Un-dynamify appearances

    Will un-do the effect of . This is useful for NPVs and personal ports.

    hashtag
    Clear chunk materials

    Deletes the chunk materials for multiple selected appearances (quickly convert something to )

    hashtag
    Convert hair to CCXL material

    Convert a vanilla hair mesh to be CCXL-ready. You should have the corresponding .mi files in your project already.

    hashtag
    Appearances/Components

    Only visible in .app and .ent files

    hashtag
    Generate CRUIDs in selection

    hashtag
    Regenerate visual controllers

    Regenerates the visualControllers array. This is required for e.g. vehicle mods.

    hashtag
    Regenerate resolved dependencies

    Regenerates the resolvedDependencies array. Use this to make the game preload the files in your mod.

    hashtag
    Edit Components -> Change mesh component properties

    Only visible in .app files

    Quickly edit component properties over multiple appearances:

    hashtag
    Edit Components -> Create new component from existing

    Only visible in .app files

    Create a new component by duplicating an existing one across multiple appearances. You can use after.

    hashtag
    Delete... -> Delete component by name

    Only visible in .app files

    Delete a component across multiple appearances.

    hashtag
    Clear PartsOverrides

    Only visible in .app files

    Deletes everything in the partsOverrides array.

    circle-info

    ArchiveXL uses PartsOverrides to load mesh appearances, so delete at own risk.

    hashtag
    Clear PartsValues

    Only visible in .app files

    Deletes everything in the partsValues array.

    hashtag
    Connect to .ent file

    Only visible in .app files

    Registers all appearances in the .app file in the selected .ent file. You can use that to quickly update your NPV entities.

    circle-info

    For clothes, do yourself a favour and useinstead!

    hashtag
    Force LOD level 0

    Change all components to be always visible.

    circle-info

    This will impact performance, so do this only for your NPV and not for your world addition.

    hashtag
    Change facial animations

    Only visible in .app files

    Change a characters's facial animation setup by picking from a dialogue.

    hashtag
    Generate CRUID(s)

    Generates new CRUIDs for all components in the selection / for all nested components. The game tells things apart via name and id, so if your stuff isn't unique enough, consider running this.

    hashtag
    File Validation

    hashtag
    Run WScript

    Will run script on the active tab

    hashtag
    Find broken references

    Will scan the current file for broken references (depot paths that are neither in the game files nor in your project)

    WolvenKit Projects

    What's a project, how do I get one, and what does it do?

    hashtag
    What is a WolvenKit project?

    To access most WolvenKit features, it's necessary to create a Project first. Projects are primarily used to separate and organize source and game files into distinct directories. Each project can be thought of as the source code for any given mod.

    circle-info

    Check -> to learn about adding files.

    hashtag
    Create a new WolvenKit mod project

    You have two means of creating one:

    • From the : ->

    • From Wolvenkit's view via the Create New Project button

    You will see something like this:

    Field
    explanation

    Click Finish. WolvenKit will now open the new project and proceed to the .

    hashtag
    How it looks like:

    circle-info

    To learn more about the , please check the corresponding wiki page.

    hashtag
    Opening an existing WolvenKit mod project

    1. From the or the page, click the "Open Project" button

    2. Select a .modproj file to open with WolvenKit

    3. WolvenKit will now open the project and proceed to the

    hashtag
    File structure explained

    Your project will contain the following folders:

    Folder name
    Explanation

    hashtag
    Subdirectories in source

    Your Wolvenkit project will have several folders inside of source.

    As of 8.9.1, these are:

    hashtag
    Archive

    Location: your_wolvenkit_project/source/archive

    This directory contains game files in the REDengine format, which you can add via .

    Everything in this folder will be packed into your mod's .archive file.

    hashtag
    Raw

    Location: your_wolvenkit_project/source/raw

    This is your working directory. Keep any files here that you don't want to end up on Nexus.

    When you via Wolvenkit, the exports will be placed in a . Unless you import them again, they will not affect your mod's content. You can keep .blend and texture files here.

    hashtag
    customSounds

    A directory for custom sound files.

    hashtag
    Resources

    Location: your_wolvenkit_project/source/resources

    This folder contains other files for your mod.

    Any of its contents will be so that they extract directly into the Cyberpunk directory. For that reason, you (or Wolvenkit) should create the following subdirectories:

    hashtag
    Project naming and mod load order

    circle-info

    For more details on , see the yellow wiki

    If your mod contains an .archive file, then it will have the same name as your Wolvenkit project. Since .archive files will be loaded in alphabetical order (ASCII):

    If you are creating a compatibility mod (something that modifies the files of another installed mod), then yours needs to load first.

    For example, if you want to do a custom recolour of the mod , then your Wolvenkit project could be named _00_ArchiveXL_Netrunner_Variants, or _ArchiveXL_Netrunner_00_Recolour.

    hashtag
    Building a mod project

    circle-info

    For full documentation of the and the , see the corresponding wiki pages.

    From the click on the button. The will display a result to indicate packing was successful. All files within the archive directory of the will now be packed into archive format. The packed files can be found in the packed (.../modname/packed) directory of the mod project.

    hashtag
    See also

    Import/Export: Textures

    How to import and export textures

    WolvenKit is capable of exporting Cyberpunk XBM files to common formats like png. It will try and automatically determine the correct import settings based on the file name.

    circle-info

    For the UI documentation, check Tools: Import/Export UI

    For general information such as the file structure and output directory, check Import/Export

    For a step-by-step workflow and troubleshooting, see ->

    hashtag
    Exporting a texture from Wolvenkit

    1. Add the xbm file to your project

    2. Open the Export tool (Tools -> Export Tool)

    3. Select your texture

    This will generate a png file in your project's raw folder.

    hashtag
    Export Options

    hashtag
    XBM Export Type

    Choose a common image format for exported textures. Possible options (as of 8.9.1):

    • png

    • dds

    • tga

    hashtag
    Flip Image

    Vertically invert textures for convenience

    hashtag
    Importing textures

    WolvenKit is capable of importing custom images as Cyberpunk XBM files. The Import/Export Tool can replace an existing XBM or generate new standalone XBM.

    circle-info

    For compatibility reasons, you might want to stick to png files.

    The easiest way to go about it is this:

    1. Add an existing xbm file of the same type that you want to import to your Wolvenkit project.

    2. the xbm file: this adds a png file with the same name to your project's raw folder.

    3. Overwrite the png with your edited texture.

    hashtag
    Import Options

    hashtag
    Advanced Options

    By default advanced XBM options are hidden. This can be changed by modifying WolvenKit .

    circle-exclamation

    TODO: Is this still the case? Double-check!

    hashtag
    Texture Group

    Select a preset for import. This will preselect the options below, so pick the right one for your use case!

    circle-info

    Wolvenkit will try to guess the right preset from your file name, so you'll want to stick to the game's naming conventions.

    Name

    hashtag
    SRGB (isGamma)

    Sets isGamma boolean upon import. Color textures (such as diffuse) must be set as true, or they will appear blown-out or too bright in-game.

    hashtag
    VFlip (Default: True)

    Should the image be v-flipped?

    circle-exclamation

    The game saves images as upside-down. Wolvenkit will fix that for you, so unless your texture is already flipped, you'll want to leave this alone.

    hashtag
    RawFormat

    as of 8.9.1

    Raw format for export. Possible values are:

    • TRF_Invalid

    • TRF_TrueColor

    • TRF_DeepColor

    hashtag
    Generate MipMaps

    Should s be created?

    circle-exclamation

    The This requires the texture width and height to be potencies of 2!

    hashtag
    IsStreamable

    ???

    hashtag
    Transparency from Alpha Channel (formerly PremultiplyAlpha)

    Should the image consider transparency?

    circle-info

    Transparency must be read from a png's alpha channel. If you don't know how to create one, see the guide about texture editing on .

    Exporting Characters to Blender

    Step-by-step guide for exporting to Blender for non-mod use (i.e. cosplay, 3d print, etc.)

    hashtag
    Summary

    Created by & Published: September 03 2022 Last documented update: November 2024

    This guide aims to walk you through finding and exporting a character to blender so that its usable for cosplay or 3d printing or whatever. Guide is using nightly WolvenKit, Cyberpunk add-on for Blender, and Blender 3.6.

  • Support for mlmask I/O Native support for encoding mlmaskarrow-up-right files has been added. Through the use of bespoke masklist files new standalone mlmask files can be generated through Tools: Import/Export UI.

  • Improved verifications Added verifications for rendtopology and garment support.

  • Support for morphtarget base mesh import option with UI

  • Improved Asset Browser functionality Improved selection and search (keywords, glob, regex)

  • New splashscreen art

  • Texconv for image I/O has been removed WolvenKit relied on Microsoft Texconv which has been removed in favor of native wrapper.

  • Added DXTEX git submodules We recommend developers to run git submodule update --remote to pick up the latest submodule updates when building WolvenKit.

  • Material helper files are now dumped in the Material Repository

  • Added support for creating mlmasks from bespoke masklist file

  • Nuked custom json exports for mlsetup, mltemplate, hp, using cr2w serialization instead, (will break blender addon)

  • Made most of the Archive classes structs

    Disabled caching of the archive manager

  • Added prompt to run webview2 installer if not installed on app startup

  • Catel has been removed from the solution

  • Shader (mt) data is no longer hard-coded Archives are now accessed directly to determine shader data within mt files. This removes tens of thousands of lines from the code base, and ensures the data is parallel with the users game version.

  • Enabled saving of cr2w files

  • Fixed Asset Browser weirdness

  • Mesh dependency files haven been moved in archives in patch 1.3 Recollecting certain archives causes missing dependencies, removed recollection.

  • rref and raref templates

  • Fixed a bug where wizards and dialogs would not be displayed properly

  • Fixed a crash with the update service while offline
  • Fixed a crash related to recently used items

  • Fixed a bug where loading Asset Browser items was slow

  • Fixed a crash when searching in the Asset Browser

  • Fixed a crash when previewing some wem files

  • Fixed a crash when renaming and deleting files

  • Fixed a file handling crash with external applications Some external applications such as paint.net create temp files inside the project causing a crash.

  • https://github.com/rfuzzo/WolvenKitarrow-up-right
    Learn more about the using the File Editor on the dedicated page.
    Issue #547arrow-up-right
    Pull Request #542arrow-up-right
    Better prerequisites support - Issue #548arrow-up-right
    Issue #563arrow-up-right
    See detailed changes here.

    Optional — if you want to maintain versioning yourself

    Project name

    The name of your mod. This will only be used internally, so name it what you lke.

    Creation location

    The location where you keep your Wolvenkit projects. A subfolder with the project name will be created automatically. Do not put this in your game directory!

    Mod name

    name of your .archive or redmod folder.

    This should be unique, as this will be used to generate your mod's structure, and it would be awkward to overwrite someone else's mod. Although special characters are supported, it's a good habit to avoid them.

    Author name

    Optional — What it looks like - who made this?

    Email

    Optional — can people send you mails about your mod?

    source

    This is where your mod's unbundled files are.

    • Game resources under archive

    • control files in resources

    • exported files that you're modifying in raw

    packed

    Contains both the control files and the bundled archive files inside their folder hierarchy. You can copy this directly to your game directory (or have Wolvenkit do it for you via Install). This folder will be deleted and re-created every time you install or pack your mod.

    script (.reds, )

    r6/scripts

    tweaks (.yaml, )

    r6/tweaks

    CET (.lua, Cyber Engine Tweaksarrow-up-right)

    bin/x64/plugins/cyber_engine/tweaks/mod/your_mod_dir

    Asset Browser
    Menu
    Home
    Editor
    Editor
    Menu
    Home
    Editor
    CR2W
    Asset Browser
    export files
    mirrored folder structure
    packed
    Toolbar
    Menu
    Menu
    Pack Project
    Log
    Project Explorer
    Project Explorerchevron-right
    Source: https://www.academia.edu/19644191arrow-up-right
    Adding files to projects
    File
    New Project

    Version

    Click "Export Selected"
    bmp
  • jpg

  • png

  • Open the Import tool, and select your png file. The correct settings should be applied automatically.

  • Click "Import Selected".

  • TexG_Generic_UI

    Used for UI textures that do not consider in-world lighting

    like generic_color, but without isSRGB

    TexG_Generic_Font

    for fonts

    ???

    TexG_Generic_LUT

    for LUTs

    ???

    TexG_Generic_MorphBlend

    ???

    TexG_Multilayer_Color

    not used for any workflows,use Generic_Color instead

    TexG_Multilayer_Normal

    not used for any workflows,use Generic_Normal instead

    TexG_Multilayer_Grayscale

    not used for any workflows,use Generic_Grayscale instead

    TexG_Multilayer_Microblend

    used for microblends

    tileable normal maps with transparency for use in microblends

    TRF_Grayscale
  • TRF_HDRFloat

  • TRF_HDRHalf

  • TRF_HDRFloatGrayscale

  • TRF_Grayscale_Font

  • TRF_R8G8

  • TRF_R32UI

  • TRF_Max

  • TexG_Generic_Color

    Used for colour textures inside the world (for use as )

    Transparency: from texture's alpha channel SRGB: true

    TexG_Generic_Grayscale

    Used for greyscale textures (for use as or metalness)

    TexG_Generic_Normal

    used for normal maps (for use as )

    No transparency Will be swizzled on import (green channel dropped), which will turn blue maps yellow

    TexG_Generic_Data

    ???

    Export
    Settings
    MipMaparrow-up-right
    Cyberpunk 2077 Modding
    hashtag
    This guide uses the following versions:
    • Cyberpunk 2077 game version 2.1

    • Blender >= 3.6 (stable)arrow-up-right or 4.0arrow-up-right

    • Wolvenkit >= 8.11.1 (stablearrow-up-right | Nightlyarrow-up-right)

    hashtag
    Prerequisites

    circle-exclamation

    This guide works just the same for guns — add the .ent to your project, run the script, import, profit. Vehicles are more complex and have their own guide: please see Exporting Vehicles for these.

    If you want to add a character's animations, you can check the follow-up guide Exporting Rigs & Anims.

    hashtag
    The character's .ent file

    This section will tell you how to find and add an NPC's file to your project. If you already have one (because you're exporting an NPV), you can skip it and go straight to Exporting to Blender.

    hashtag
    Finding the file

    Before we can export anything, we need to find the .ent file for the character we want to export. This tutorial will use Jackie, but it works just the same for everyone else.

    circle-info

    You can find a list of the entity files for a lot of the main characters over on the Cyberpunk 2077 Modding wiki Herearrow-up-right

    The easiest way to find a characters ent if their not already in the list on the wiki is to use Red Hot Tools. Once its installed you can simply walk up to an NPC in game and the inspect tab will show you the ent and appearance info you need. With that info you need to find them in wolvenkit.

    With our project open in Wolvenkit, we switch to the Asset Browser and search for the right file

    circle-info

    You can refine your search, checking only .ent files, by using the following search query:

    This will give us plenty of files — we'll sort them by file extension and scroll to the ent section of the list. jackie_welles.ent looks promising, so we'll double-check if it's the right file:

    • Right-click it and select Open without adding to project

    • Use the entity preview tab to confirm that it's him

    Now, add the file to your project.

    hashtag
    Exporting to Blender

    With the .ent file in your project, you can run the script that will handle the actual export, adding all the necessary files to your project and exporting them in a way that Blender can process.

    Open the Script Manager (Tools -> Script Manager as of Wolvenkit 8.15), find Export_Ent.wscript and run it.

    circle-info

    Wscript cant export files from other mods currently, if your exporting an NPV which uses other mods you will need to add any used files/materials to the project manually if you want them in Blender.

    chevron-rightWhat does the script do/how to do it by hand? (You don't need to know this)hashtag

    If you open the Entity file then expand the appearances bit of the entity template, he has 15 appearances which all appear to be defined in jackie_welles.app. For this next step you need to have the Wolvenkit resources plugin installed (View Options > plugins to install). The app should also be in the search results for jackie, simply right click it, then do find used files. Sort by type again and find the cookedapp files. Theres several which cover the different appearances, for each one you want to include in your export do the following:

    • Right click, do Find used files

    • Sort by type, find the mesh files

    • Select all and right click, add selected to project

    You may need to go through the app file afterwards to check all the meshes got found, it sometimes seems to miss some.

    The mesh files should now be visible in the project explorer, occasionally I find they arent showing up but closing and reopening the project makes them appear.

    Open the Export Tool, and verify your meshes are listed. Double click one then the export options opens, and verify WithMaterials as the export type and LOD Filter is on. Set the texture type to png if it is not. Select Apply to all files of the same extension then confirm.

    Now select Export All (or Export Selected) on the menu bar and a bunch of glb and json files should be exported. After its done a files have been exported notification should pop up to notify you of the success.

    circle-check

    After the script has successfully run, you will find an .ent.json file in your project's raw folder.

    hashtag
    Importing into Blender

    circle-info

    If you right-click the .ent file in the project browser and press Shift and Ctrl, the context menu will let you copy the path to the file!

    Switch to Blender and use the 's from the File -> Import menu.

    circle-exclamation

    Before clicking the import button, please read the next section about Importing a specific appearance.

    circle-info

    Find the full documentation on the yellow wiki under -> ->

    Point it to the exported .ent.json in your project's files. For Jackie, the relative path is source\raw\base\characters\entities\main_npc\jackie_welles.ent.json.

    hashtag
    Importing a specific appearance

    Unless you specify otherwise, the default appearance will be chosen. If you want another, open the .ent file in your project and enter the exact appearanceName into the Blender open dialog.

    You can find the appearance name in your .ent file inside the appearances list:

    The same file that you picked in Step 1

    Now, click the Import Ent from JSON button and wait while the Blender plugin does its thing.

    circle-info

    Blender might need a few minutes to load the materials and bake the shaders. If you aren't getting any errors, just assume that it's still at it.

    To double-check, you can select Window -> Toggle System Console to watch Blender work.

    Editor Difficulty Mode
    Un-dynamify appearances
    Edit Components -> Change mesh component properties
    File Validation

    Creating a Mod

    With great power comes great responsibility

    hashtag
    Purpose of the guide

    Congratulations on installing WolvenKit! It's time to get your hands dirty…

    We're going to create an example project to help get you up to speed with WolvenKit's features and workflows. We'll walk through creating a basic mod step-by-step, while explaining how to get the best out of WolvenKit.

    hashtag
    Before we get started

    Keep in mind that understanding and modding Cyberpunk 2077 can be very challenging. If you're feeling stuck, please consider reaching out to fellow modders and the development team on our

    Now without further ado...

    circle-info

    For a more detailed guide, check .

    circle-check

    Did you know? Modding guides and know-how are collected in the dedicated .

    circle-info

    Prefer visual guides? Check out the video demonstration of this guide below ↓

    hashtag
    Creating a texture replacement mod

    hashtag
    Summary

    WolvenKit is a tool for mod developers to interact with REDengine file formats. Generally speaking, most mods created with WolvenKit share a similar workflow:

    1. Browse and extract game files

    2. Convert game files to common formats that can be modified

    3. Modify the file, often with an external application

    In the guide below we'll cover these steps in detail to replace an image in Cyberpunk.

    circle-info

    What can WolvenKit do? Check out the page to learn more about WolvenKit's features. Have some more questions before getting started? Try the

    hashtag
    Getting Started with WolvenKit

    hashtag
    Starting a project

    1. Ensure WolvenKit is properly configured by following the procedure

    2. Create a new WolvenKit mod project

    3. Configure the Editor using . Use the menu to ensure that the Asset Browser, Project Explorer, Import/Export, Properties, and Log windows are visible.

    hashtag
    Asset Browser

    The Asset Browser is the most fundamental WolvenKit tool. It allows us to browse any archive and add individual files to a local mod project. Any files added from the Asset Browser will be added to the archive directory with their folder structure intact. Files added with the Asset Browser can be viewed, studied, modified, and packed as a modded archive.

    1. Use the "breadcrumb" style navigator in the left-hand side of the Asset Browser to quickly navigate folders

    2. Navigate to the following path: base\characters\garment\player_equipment\torso\t2_084_jacket__short_sleeves\textures\

    3. Use the main file list panel inside the Asset Browser to preview individual files. The XBM file extension always represents a texture file within REDengine. WolvenKit is capable of instantly previewing textures and models. The

    hashtag
    Projects

    are the core of WolvenKit functionality. Projects are primarily used to separate and organize source and game files into distinct self-contained mods. Each project can be thought of as the source code for any given mod. The is the central component for each mod project. Project files are separated into two main system directories:

    The archive directory is for REDengine/Cyberpunk format files. The raw directory is for non-REDengine/generic format source files. These are core directories for WolvenKit's file operations. These folders are never exposed to the game inside the .

    1. (Optional) Navigate to the window to examine the new file added to the archive directory. The preview functionality of the Properties window also works for local project files. Many REDengine assets and common image files (png, tga, etc.) can be automatically previewed by selecting them within the Project Explorer.

    2. (Optional) Files within the Project Explorer have additional options when right-clicked. Directly right-click any file to open the .

    hashtag
    Exporting REDengine Files

    WolvenKit features a bespoke tool for conversions between REDengine and non-REDengine formats. The (creatively named) are extremely robust, featuring advanced options and batch functionality.

    The archive and raw directories within the Project Explorer behave as a mirror to one another; REDengine files are always stored in the archive directory, and the analogous "generic" format file will be stored in the raw directory with the same folder structure. Import and export destinations never need to be specified enabling ultra-fast file I/O, with the added benefit of automatically-organized Raw files.

    1. Open the

    2. Double-click the t2_084_pma_jacket__short_sleeves_decal_d01.xbm file within the Export grid to view advanced options. Any asset within the Import/Export grid can be doubled clicked to adjust advanced I/O options for each file format.

    3. Inspect the XBM Export Type drop down menu, in this case we want to export the texture as a

    hashtag
    Editing Textures

    While this guide is step-by-step, it's counter-productive for the WolvenKit team to guide users on using other software. For that reason, you can find more information on editing texture files on -> .

    We recommend free tools such as , , or for editing PNG format textures. If you don't know how to use that, hit up Google or check Youtube, as it would completely blow up this guide!

    1. Import the t2_084_pma_jacket__short_sleeves_decal_d01.png texture file to an image editing software of your choice

    2. Make a distinct and recognizable change to the image

    3. Export the t2_084_pma_jacket__short_sleeves_decal_d01.png

    circle-info

    Not feeling creative? Feel free to use the the WolvenKit icon replacer below.

    hashtag
    Importing REDengine Files

    1. Return to the WolvenKit Editor

    2. Open the

    3. Select the t2_084_pma_jacket__short_sleeves_decal_d01.png file within the Import grid. Click the Load Settings button towards the top of the Import/Export tool. This sets the compression type and other various options to match the original XBM.

    hashtag
    Building

    WolvenKit features a one-click mod building solution. The build process packs any archive directory files into archive format and installs to the game automatically.

    circle-info

    After you have pressed install, the archive file goes to the (Steam\steamapps\common\Cyberpunk 2077\archive\pc\mod) folder.

    WolvenKit only supports unbundled files. Files that have been decompressed using WolvenKit CLI will not be packed correctly. Buffers must be compressed within the main REDengine file. Files added with the built-in Asset Browser will always be the correct format.

    1. From within the Menu, select the button

    2. Verify the mod project has been packed and installed by viewing the window

    3. Congratulations! Launch Cyberpunk and check out your first mod with WolvenKit!

    hashtag
    Testing In Game

    To verify this texture mod in game, equip the outer torso item Replica of Johnny's Samurai jacket.

    chevron-rightSpawn code for Johnny's jackethashtag

    The following command will give you Johnny's Jacket: Game.AddToInventory("Items.SQ031_Samurai_Jacket",1) Copy and paste the command into the console (CTRL+C to copy, then CTRL+V to paste).

    hashtag
    Final Thoughts

    While not all-encompassing, this guide teaches the core philosophy behind our modding pipeline. If you've followed along so far, you're ready to start getting the most out of WolvenKit. We recommend familiarizing yourself with the Wiki to understand how our Editors work. Please keep in mind that everything in our community from software such as WolvenKit or this Wiki is developed, written, and created by passionate volunteers. If you encounter issues with software or documentation, consider getting involved with us on the

    Enjoy your RED Modding journey!

    Menu

    hashtag
    What is the Menu?

    The Menu is the main navigation bar at the top of the WolvenKit application. The Menu contains key functionality such as saving, opening files, and building mods. Read below for details about each Menu button. The Menu also displays the current mod project name and file opened with WolvenKit.

    hashtag
    Toolbar

    The is available directly below the Menu from the Editor. The buttons add convenience shortcuts to certain menu functions.

    Additionally, the Toolbar contains the Launch Profiles button.

    hashtag
    HOME

    Shows the WolvenKit view

    hashtag
    File

    hashtag
    New File

    Opens the dialogue to create a new file.

    hashtag
    Save

    Save the currently selected document from the File Viewer

    hashtag
    Save As

    Save the currently selected document from the File Viewer as a new file

    hashtag
    Save All

    Save all currently open documents from the File Viewer

    hashtag
    Project

    hashtag
    New Project

    Create a new WolvenKit mod project

    hashtag
    Open Project

    Open an existing WolvenKit mod project

    hashtag
    Project Configuration

    Configure various project settings

    hashtag
    Scan project for broken references

    This will go through every file in your project, checking if referenced resources are in your project or part of the base game.

    If you are using a texture library, you will obviously get false positives here.

    hashtag
    Scan for unused files

    The opposite of "Scan project for broken references" — this will check every file in your project and check if it's used by something.

    Will give you a list that you can copy to clipboard, or options to move/delete the files.

    triangle-exclamation

    This feature is experimental, so handle with care!

    hashtag
    Delete empty folders

    Will yeet folders without files in them. Works recursively (will also delete empty folder trees).

    hashtag
    Run File Validation on entire project

    Will run the on every file in your project, and open the log file afterwards. This will generate a lot of duplicate text, but is the best way to find mistakes.

    hashtag
    Build

    hashtag
    Pack Project

    Generates the install-ready structure in your project's packed folder, then creates a zip file.

    circle-info

    The generated zip file is ready for Nexus upload!

    hashtag
    Pack as REDmod

    Generates the install-ready structure (REDmod format) in your project's packed folder, then creates a zip file.

    circle-info

    This option is hidden by default and can be turned on in the . Read why.

    hashtag
    Install

    Runs , then copies the contents of packed to your game directory. You can learn about on the yellow wiki.

    hashtag
    Install as REDmod

    Runs , then copies the contents of packed to your game directory.

    circle-info

    This option is hidden by default and can be turned on in the . Read why.

    hashtag
    Install & Launch Game

    Runs , then launches the game for you

    hashtag
    Install as REDmod & Launch Game

    Runs , then launches the game for you

    circle-info

    This option is hidden by default and can be turned on in the . Read why.

    hashtag
    Clean All

    Deletes the contents of your Wolvenkit project's packed directory.

    hashtag
    Hot Reload

    Pack archives and instantly install to game directory while Cyberpunk 2077 is running for testing (Requires ).

    hashtag
    Launch Profiles

    Create and modify one-click pack & launch operations

    hashtag
    View

    hashtag
    Project Explorer

    Toggles the on or off

    hashtag
    Asset Browser

    Toggles the on or off

    hashtag
    Properties

    Toggles the panel for your currently selected file or off

    hashtag
    Log

    Toggles the panel on or off.

    hashtag
    Tweak Browser

    Toggles the Tweak Browser on or off. This panel will let you browse the TweakDB.

    hashtag
    LocKey browser

    Toggles the LocKey browser on or off. This panel will let you browse translation strings.

    hashtag
    Show File Preview

    Same as option - enables/disables interactive Quick Previews within the Properties panel.

    circle-info

    This feature impacts performance. Navigating the Asset Browser or Project Explorer will be faster if the preview is toggled off or inactive.

    hashtag
    Layout

    hashtag
    Save Layout to Project

    Saves the UI layout to the current WolvenKit project, making it persistent across sessions.

    If you do this without an open Wolvenkit project, the view will be saved to the default file %USERPROFILE%\AppData\Roaming\REDModding\WolvenKit\DockStates.xml

    hashtag
    Reset Layout

    Resets the UI layout to the default from one of the following files (by priority):

    1. %USERPROFILE%\AppData\Roaming\REDModding\WolvenKit\DockStates.xml

    2. Path\To\Wolvenkit\DockStatesDefault.xml

    This can be especially helpful if the layout is bugged or an editor window is unrecoverable.

    hashtag
    Tools

    hashtag
    Depot Generator

    Tool for building a depot, a collection of extracted game assets to use them in other tools.

    hashtag
    Sound Modding Tool

    Tool for modding sound files

    hashtag
    Script Manager

    Toggles the

    hashtag
    Import Tool

    Toggles the

    hashtag
    Export Tool

    Toggles the

    hashtag
    Settings

    Open the WolvenKit page

    hashtag
    Game

    hashtag
    Launch Game

    Launches Cyberpunk 2077

    hashtag
    Launch Game with Steam

    Launches Cyberpunk 2077 using Steam

    hashtag
    Open Game Folder

    Opens the Cyberpunk 2077 game directory in Windows Explorer

    hashtag
    Extensions

    hashtag
    Plugin Manager

    Opens the WolvenKit Plugin Manager

    hashtag
    Mod Manager

    Opens the WolvenKit Plugin Manager

    hashtag
    Cyberpunk Blender Add-on

    Opens external-link to the Cyberpunk Blender Add-on GitHub page

    hashtag
    Help

    hashtag
    Setting Up WolvenKit

    Opens an external-link to the page

    hashtag
    Creating a Mod

    Opens an external-link to the page

    hashtag
    Discord Invitation

    hashtag
    Opens an external-link to a invitation

    hashtag
    About WolvenKit

    Opens an external-link to the page

    hashtag
    Open Log Folder

    Opens the folder with the Wolvenkit Logs

    File
    New File
    File
    Save
    File
    Save As
    File
    Save All
    Build
    Pack Project
    Build
    Install
    Build
    Install
    Build
    Hot Reload
    Build
    Pack as REDmod
    Build
    Install as REDmod

    File Validation

    What is Wolvenkit File Validation? How do I use it?

    hashtag
    Summary

    Last documented update: March 12 2025 by mana vortex

    This page will tell you how to use and configure the File Validation feature (added in 8.9.1)

    circle-check

    This feature has an impact on performance — every time you save, there will be a short lag while the file validation does its thing. You can turn this off (check ).

    hashtag
    What is it?

    This feature will try to validate the internal structure and — based on your settings — dependent files.

    By default, it will trigger every time you save a file. You can turn this off (check ) and trigger it by hand (see below).

    hashtag
    Running File Validation

    hashtag
    In the editor

    Inside the , you can run File Validation from the menu bar:

    hashtag
    On the entire project

    From the Project Menu in the main bar, you can run File Validation on the entire project.

    Since this can take a long time, Wolvenkit will show you a warning first.

    hashtag
    The automatic hook

    By default, File Validation will trigger every time you save. Since this can impact performance for larger files, you might want to disable it.

    hashtag
    I don't want it, how do I get rid of it?

    In the , switch to the Hooks tab and uncheck the box behind hook_global:

    For details, see below.

    hashtag
    There was an error

    If you're here because of a link in the Wolvenkit console, there's nothing to worry about, your file saved fine! However, you've managed to run into something that the program isn't equipped to handle yet.

    If you would like to help us fix it, you can open a ticket on or create a forum post on our in #wkit-bugs-and-requests.

    Please attach a minimal version of your project's source folder (we only need archive, but all involved files have to be present, or we won't be able to reproduce your exact error).

    hashtag
    Configuring File Validation

    There is no fancy UI for the configuration right now (sorry for that), but you can fine-tune file validation via .

    You need to change the settings inhook_settings.wscript. This is how you open it:

    That will open the script editor panel, which looks like this:

    circle-info

    In an ideal world, this wiki is always up-to-date with the existing source code. However, that doesn't happen automatically (and can't easily be made that way), and the Wolvenkit team focuses on fixing bugs and developing new features.

    The most up-to-date documentation will always be in the source code. Read the comment blocks (green in the screenshot above) for a description of what a flag does.

    Here, you will see a list of settings, which are documented in the next section.

    hashtag
    Global and shared settings

    hashtag
    Depot paths

    File Validation will check if any given depot path exists, and warn you if the file could not be found.

    circle-info

    This will give false positives if you're on the mod browser!

    hashtag
    Enabled

    The flag Enabled in line 4 will enable/disable file validation globally.

    Each entry in the list has an individual Enabled flag that lets you turn off validation for this particular type of file.

    hashtag
    DisableAutofix

    File validation can automatically correct certain errors for you. There are certain advanced use cases where you'd want to turn this off — if you don't know about them, then you'll probably want this.

    Right now, this is set to false by default and affects the following toggles:

    hashtag
    validateRecursively

    This is the reason behind the micro freeze each time you save a file. If it is enabled, then Wolvenkit will also look at included files — for example, if you save an .app file, it will collect all included meshes (via components or via root entity) and warn you about missing appearances.

    You can disable this to save performance, but that will reduce file validation to a glorified typo checker for your file paths. Its developer strongly advises against it, as the feature has saved her hours of frustration already, and at the point of writing it hasn't even been released.

    hashtag
    Anims: animation files (.anim)

    Checks if all animation names are unique. Since animations are targeted by name, this is the #1 reason why your mod will show the wrong animation.

    hashtag
    checkForDuplicates

    Will warn you about duplicate animation names (e.g. animations 2 and 31 are both named "facepalm")

    hashtag
    App: app files (.app)

    Checks all appearances and their associated partsOverrides and partsValues.

    hashtag
    checkComponentNameDuplication

    Will warn you about duplicate component names. Components are targeted by name, so they should be unique for each appearance or mesh entity.

    hashtag
    checkForCrashyDependencies

    inplaceResources can crash your game (it's complicated and has something to do with timing and async loading). This flag will toggle the check.

    hashtag
    checkPotentialOverrideCollisions

    Will warn you if components with the same name are pointing to different meshes.

    hashtag
    checkCookPaths

    Will print a warning if you have cookedOverrides set in the root or in individual appearances. These things are the reason why mods such as cookedAppsNulled exist.

    hashtag
    csv (ArchiveXL factory files)

    File validation assumes that this is a factory for ArchiveXL or similar. If it isn't, you can ignore any warnings, or so that we can add your use case.

    hashtag
    checkProjectResourcePaths

    Assumes that entries are file paths. Will print a warning if the files can't be found.

    hashtag
    warnAboutInvalidDepotPaths

    Prints warnings for everything that doesn't look like it's a file path (by regular expression checking, there should be at least one slash)

    hashtag
    ent: Root or mesh entity

    Similar to the .app file, this will validate nested files, basically checking the entire ArchiveXL chain of dependencies.

    hashtag
    validateRecursively

    This is really performant and will only look into each file once. That being said, the more files you pull in, the longer it takes, and you might want to disable this feature. On the other hand, saving the root entity is a great way to find out what exactly is broken about your ArchiveXL project.

    hashtag
    checkComponentNameDuplication

    Same as in the app file: will warn you about duplicate component names. Components are targeted by name, so they should be unique for each appearance or mesh entity.

    hashtag
    checkDynamicAppearanceTag

    Will print a warning that you might have forgotten to add a DynamicAppearances tag to your root entity if either of the following conditions is true:

    • There are empty appearance names in your root entity

    • Your .app partsOverrides appearance names or your mesh entity use dynamic string substitution

    … since ArchiveXL won't work its magic if you haven't set the tag.

    hashtag
    Json: Localization files

    Will try to warn you about issues that will cause empty or incorrect strings to be displayed

    hashtag
    checkDuplicateKeys

    This will warn you if any entries will overwrite each other due to shared key data.

    hashtag
    checkEmptyFemaleVariant

    By default, the game uses femaleVariant - maleVariant will only be considered if you use either the or .

    hashtag
    Mesh: 3d object

    Will check your mesh's internal material assignment. Will warn you about missing files, unresolved dependencies or errors with definitions and file types (some of which might potentially crash your game).

    hashtag
    validateMaterialsRecursively

    Will also check .mi files and their material setup. As the .mi chains can be quite long, this can cause performance issues.

    hashtag
    checkDuplicateMaterialDefinitions

    Will warn you if two of your materials appear to be identical

    hashtag
    Mi: Material Template

    Will check the material setup.

    hashtag
    validateMaterialsRecursively

    Will check nested .mi files and their material setup, if you are using any.

    hashtag
    Workspot: loading .anim files

    Mostly for use with . Will check if the workspot pulls in existing .anim files, warning you about duplicate definitions.

    hashtag
    fixIndexOrder

    Convenience: Will automatically set indices of defined animations for you. There are advanced use cases where you might not want this. If you don't know what they are, you might want to turn on in addition to this.

    hashtag
    autoReopenFile

    More convenience: Automatically close and re-open the file after using fixIndexOrder (instead of bothering you about it). Default is false.

    hashtag
    showUnusedAnimsInFiles

    Will warn you about animations in the included .anim files that aren't used by the workspot, in case you want to delete them.

    hashtag
    showUndefinedWorkspotAnims

    Shows animations that you include in your workspot, but which aren't defined in any of the included .anims files.

    hashtag
    checkIdleAnimNames

    Will warn you if the idle anim name deviates from the appearance anim name. This isn't strictly necessary, but since the idle anim name is displayed in the list, you will never find the right appearance otherwise.

    hashtag
    checkIdDuplication

    Only triggers if you aren't using fixIndexOrder: this will warn you about duplicate numeric ID assignments. These will cause the game to mix up your animations.

    hashtag
    checkFilepaths

    Checks the files included via finalAnimSets, warning you about any loading errors (invalid file paths, invalid extensions, you forgot to add the entry to loadingHandles)

    Configuring File Validation
    Traderain - OverviewGitHubchevron-right
    Traderain is the founding member of the WolvenKit project and co-leader of WolvenKit development in the REDengine 4 era.
    jackhumbert - OverviewGitHubchevron-right
    seberoth - OverviewGitHubchevron-right
    https://github.com/HitmanHimselfgithub.comchevron-right
    HitmanHimself reverse engineered countless file formats and designed solutions to export, modify, and rebuild Cyberpunk assets.
    rfuzzo - OverviewGitHubchevron-right
    rfuzzo is pillar within the RED Modding community and co-leader of WolvenKit development in the REDengine 4 era.
    Offline-R503B - OverviewGitHubchevron-right
    Offline helped bring the WolvenKit 8 series into this decade by migrating the UI to WPF framework.
    Contributors to WolvenKit/WolvenKitGitHubchevron-right

    ELI5: Full Prep for Mod Development

    Perquisites: All the stuff you could possibly need, with download links

    hashtag
    Summary

    Created by @JJTurtle Published October 22 2022

    Updated Jul 30 2023 by

    circle-info

    Exporting Rigs & Anims

    So we got Jackie out, can we make him move?

    hashtag
    Summary

    Created by @Simarilius Published October 15 2022 Last documented update: December 29 2023

    This guide will show you how to add animations to a previously exported character. It assumes that you successfully completed .

    jackie > .ent
    jackie
    Convert the common format file back to game format
  • Build a mod package including the newly modified files

  • Navigate to the Asset Browser window

    window responds automatically to selections within the Asset Browser. Feel free to experiment by selecting a few textures.
  • Select t2_084_pma_jacket__short_sleeves_decal_d01.xbmby left-clicking the file within the Asset Browser list. Feel free to choose another if you're feeling adventurous. Beware depending on the texture you choose, you may experience some difficulty when it comes time to verify that the final modded archive works successfully.

  • Add the texture to your project by double-clicking directly on the file

  • PNG
  • Press the Confirm button to proceed. For batch exports, using the checkbox for Apply to all files of the same extension will ensure that any XBM currently within the Import/Export grid will inherit the same advanced options.

  • Press Process Selected to complete the export operation. A new PNG image will now be available within the Project Explorer Raw directory.

  • texture file as a
    PNG
    , overwriting the original PNG file
  • Press Process Selected to complete the Import operation

  • Verify the updated texture by selecting the XBM within the Project Explorer. The new texture should be viewable with the Properties window.

  • Discord server.
    ELI5: Validate Functionality
    Cyberpunk 2077 Modding Wikiarrow-up-right
    Overview
    FAQ!
    Setup
    docking
    View
    Properties
    WolvenKit Projects
    Project Explorer
    packed mod
    Project Explorer
    Context Menu
    Import/Export tools
    Kritaarrow-up-right
    Paint.netarrow-up-right
    Gimparrow-up-right
    file-image
    88KB
    t2_084_pma_jacket__short_sleeves_decal_d01.png
    image
    arrow-up-right-from-squareOpen
    Log
    Cyber Engine Tweaksarrow-up-right
    Discord server!arrow-up-right
    Export Tool
    Cyberpunk 2077 Modding
    Import Tool
    Install

    This section is optional, as most guides will tell you what programs you need anyway. If you are not computer-savy or feel very insecure about all this, then you want to read this. Otherwise, you can probably skip straight to the configuration section.

    Prepare your computer with Windows configuration, basic software requirements, and creates a centralized modding location that will match what you will see in the ELI5 guide screenshots.

    hashtag
    Logistics: Creating the folder structure

    circle-info

    This is a suggestion. We're not your real mom, so you can put stuff where you want. However, the paths below will be used through the rest of the ELI5 guide, so you might as well stick to them.

    The folder structure below will be the centralized location for modding tools, assets, project folders, guides, shortcuts, and the depot.

    hashtag
    Recommended: Pin it to Quick Access

    I recommend pinning CyberPunk2077Mod folder to File Explorer’s Quick Links. I keep going back to this parent folder to access my guides, shortcuts, to get into the asset depot, etc...

    File Explorer view showing recommended quick link

    hashtag
    Install Wolvenkit

    If you haven't done that, go and install Wolvenkit now.

    hashtag
    Optional: Create a shortcut

    To quickly open the game folder, you can create a shortcut under C:\Cyberpunk2077Mod\. This will save time when programs keep asking you for the install location.

    By default, Cyberpunk installs to the following locations (disregard this if you've changed them):

    Steam

    C:\Program Files (x86)\Steam\steamapps\common\Cyberpunk 2077

    Epic

    C:\Program Files (x86)\Epic Games\Epic Games\Cyberpunk 2077

    GOG

    C:\Program Files (x86)\GOG Galaxy\Games\Cyberpunk 2077

    hashtag
    Optional: enable long path names

    This will prevent you from running into problems because your path names are too long. Use this if you really like subfolders and/or have OCD. If you plan to put your mods in, for example, C:\mods, this is not necessary, but it won't hurt under any circumstances.

    • Enable Windows long path names and then reboot your computer.

      1. Here is a quick link if you want to do your own research Google searcharrow-up-right

      2. Otherwise, expand the collapsed section below.

    chevron-rightEnable long path names: detailed guidehashtag
    • Step 1: Run PowerShell as an administrator

    • Step 2: Copy and paste the below command into PowerShell and press the enter key

      New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force

    • Step 3: Install Microsoft Group Policy Editor, it is not deployed with Windows Home edition. If you have Windows Enterprise edition or know that policy editor is already installed then skip ahead to step 5.

      1. Run CMD.EXE as an administrator,

      2. Copy and paste the below command into the command prompt window and press the enter key

    hashtag
    Install Microsoft .NET

    You should have done that as part of Wolvenkit's install instructions. If you haven't, please do it now, because you need it.

    hashtag
    Enable REDMod

    Redmod is CDPR's entry point for mods. For full instructions on how to enable it, see .

    hashtag
    Utilities

    Other programs you might need, and what you might need them for

    hashtag
    Text editing: Notepad++arrow-up-right

    Using Notepad++arrow-up-right rather than whatever Windows wants you to use will save you a lot of pain later-on. Especially its JSON viewer plugin is extremely useful (expand the box below for how to enable it).

    chevron-rightEnabling the Notepad++ JSON viewer pluginhashtag

    Notepad++ JSON Viewer is used to correctly format JSON syntax, such as when a file has been collapsed onto a single line.... for job security reasons 🎉 Alternatively, you can install Visual Studio for its VCode JSON Viewer extension, but Visual Studio is a full featured coding solution and only needed by application developers.

    hashtag
    Blender and the Wolvenkit Blender IO Suite

    If you want to edit 3d models, you're going to need this. Don't worry, we have plenty of tutorials for beginners!

    Blender version

    Plugin version

    Wolvenkit version

    >= 8.17.1 | ()

    hashtag
    Image editing program

    If you want to edit images, you're gonna need one of those. As long as you're comfortable, pick whatever works; here are a few recommendations:

    Paint.netarrow-up-right: Free image editing software, perfect for beginners

    photopea.comarrow-up-right: Photoshop, but it's free and it runs in your browser

    GIMParrow-up-right: Free open-source image editing software

    hashtag
    Optional: Pin them to the start menu

    I recommend that you pin Blender, GIMP, and Notepad++ to your Start Menu — you’ll need them as you’re creating mods.

    Windows Start Menu showing recommended pins

    circle-check

    Now that wer're geared up and ready, let's proceed to the configuration.

    mana vortex
    hashtag
    It uses the following versions:
    • Cyberpunk 2077 game version 2.1

    • Blender >= 3.6 (stable)arrow-up-right or 4.0arrow-up-right

    • Wolvenkit >= 8.11.1 (stablearrow-up-right | Nightlyarrow-up-right)

    circle-info

    Optional: If you want to get your hands dirty, check this github repositoryarrow-up-right for a selection of Python scripts for Blender. Most users won't need this.

    hashtag
    Exporting to Blender

    So exported characters are cool, but how do we get them out of that annoying A-pose?

    We need the rig, and maybe some animations:

    • the main body rig

    • the head/face rig

    We're going to export them, bind everything, and attach the head to the body. (recapitate?!?)

    hashtag
    Finding the body rig

    You can look it up in the body's entity file. Find it by file name, or right-click on Jackie's body mesh and select "find files using this", then doing the same again on the .app file.

    Open up the .ent file and check the components array for an entAnimatedComponent (usually nameddeformations), which lists the rig:

    look for the property "rig"
    circle-check

    You will need this for the body mesh export. Additionally, you need to find the head rig — read the next section for how.

    Copy the path under rig and put it somewhere where you can find it later.

    hashtag
    Finding the head rig

    The head rig is in the same folder as the head mesh.

    Naming conventions:

    circle-check

    You will need this for the head mesh export.

    Right-click on the .rig file and select Copy relative path. Put this with the body rig path.

    hashtag
    Re-exporting the meshes

    We now need to re-export the meshes we want to use.

    circle-info

    In the first step of the guide, you should have exported them the default setting withMaterials. That should have created material.json files and images, as the export we will use now won't do that.

    hashtag
    The body mesh

    In the Export Tool, select the body mesh and adjust its export options. (In Wolvenkit < 8.8, double-click it).

    Wolvenkit > 8.8
    1. Filter by name: paste the file names (or paths) that you saved in the previous step into the empty row at the top of Available on the left

    2. Select the rig by name (the same one as in the .ent file)

    3. Move it into the Available list

    4. Click on Finish to apply your changes

    As of WKit 8.8.1, the filter will only search from the start

    hashtag
    The head mesh

    1. Repeat the process above, but use the name of the head mesh rather than the body.

    hashtag
    Importing into Blender

    Delete the head and body component that you've imported the first time around: we're going to do a reimport. With the Cyberpunk GLTF pluginarrow-up-right (File > Import > Cyberpunk GLTF), import both of your files into Blender — the process works exactly like it did the first time, just that there's extra data now.

    If the WithRig has worked, you should notice that rather than the mass of unorganised huge bones, you now have a skeleton structure that kinda makes sense.

    I normally change the bone display settings of that armature from Octahedral to Stick, as that prevents bones from completely hiding the mesh:

    circle-info

    Most characters bring in full bodies; however, Jackie is not one of them. CDPR modelled only his chest and hands, since the rest of his body was never planned to be visible.

    hashtag
    Merging the skeletons

    Now, we hook up everything by merging all rigs into one.

    circle-info

    You can do this either by script or by hand. This guide assumes you will select Option B, using the most recent script from this github repositoryarrow-up-right.

    1. Rename the head's armature to HeadArmature

    2. Rename the body's armature to BodyArmature

    3. Switch to the "Scripting" perspective and create a new empty script

    4. Copy the script from and paste it into the document

      1. Optional, if you skipped step 1 and 2 because you like making things complicated: At the top of the script, find ~line 5 head = bpy.data.objects['HeadArmature'], and put the names of your armatures from the SceneCollection tab

    5. Click on theBodyArmature in the 3d viewport

    6. Run the script

    The rigs should merge; the head meshes should be without an armature parent now.

    Hopefully it looks something like below, with all the bones selected and just the one green dude in the outliner:

    hashtag
    Parenting the other meshes to the armature

    circle-info

    If you have a lot of meshes, you might want to skip this step.

    For each submesh item, repeat the following steps:

    1. Select it in object mode

    2. Set the Armature Modifier in the Modifiers tab to BodyArmature

    This should snap the item to the body and it will follow with correct weights when animated.

    hashtag
    Animations

    To find animations compatible with the character you just exported, open up their .ent file and expand the resolvedDependencies:

    Alternatively, search for .anim in the asset browser.

    circle-info

    As of December 2023, facial animations and lipsync (folders lipsync and animations\facial) are not supported yet. (We're working on it, though!)

    Add the animation you've chosen to your WKit project and export it . If you want to use this animation for editing, you need to check Include Root Motion in the export settings.

    You will end up with a new .glb file, which you can import into Blender.

    Now let's apply it:

    1. Select the BodyArmature

    2. Switch to the Animation perspective

    3. In the panel at the bottom, change the dropdown on the left from Dope Sheet to Action Editor

    4. In the dropdown in the middle, select one of the animations you just imported.

    5. Click the "play" button

    You can keep importing more anim files and the list just grows.

    Anyway, cheers Chooms, hope this has been helpful, have fun!

    hashtag
    Troubleshooting/reporting:

    circle-exclamation

    As of December 2023, facial animations and lipsync (folders lipsync and animations\facial) are not supported yet. We're working on it, but if one of these exploded on you, you'll just have to wait.

    Most of the animations seem to work flawlessly. Occasionally the process gos screwy somewhere and the model freaks out when you attach the anims. In that case, please open an issuearrow-up-right on github or tell us about it on Discordarrow-up-right in #blender-add-on.

    Please include your .blend file and the full relative path to the animation that was giving you trouble in your report.

    Exporting Characters to Blender
    Wolvenkit IO suite for Blender >= 1.5.1arrow-up-right
    Home
    Wolvenkit File Validation
    Properties
    Log
    Settings
    Editor
    Read more
    Read more
    Settings
    https://github.com/WolvenKit/Cyberpunk-Blender-add-onarrow-up-right
    Setup
    Creating a Mod
    Discordarrow-up-right
    About
    Toolbar
    Settings
    Pack Project
    Pack as REDmod
    Settings
    Install
    Install as REDmod
    Settings
    Project Explorer
    Asset Browser
    Script Manager
    Import Tool
    Export Tool
    editor
    Script Manager
    Configuring File Validation
    githubarrow-up-right
    Discord serverarrow-up-right
    Script Manager
    Workspot.fixIndexOrder
    Workspot.autoReopenFile
    create an issuearrow-up-right
    The log will yell at you if your files have issues now
    You can toggle features on and off by switching values between true and false. Be careful that you don't delete any commas!
    The automatic hook
    The automatic hook
    autoReopenFile

    Download, Install and Setup

    Downloading the WolvenKit application

    hashtag
    Summary

    Published: October 22 2020 Created by @JJTurtle Last documented update: @reihera, April 20 2025

    This section will walk you through the process of downloading and installing Wolvenkit.

    circle-info

    There is a , which you can follow if you are not very computer-savy or feel insecure about modding. If you've been sent here by the same guide, ignore this box and start with the . :)

    hashtag
    TL;DR

    1. Install REDMod and .NET from the section below

    2. Download Wolvenkit-X.X.X.zip from github ( | )

    3. Extract it to a folder of your choice

    hashtag
    Prerequisites

    For detailed instructions on installing other software that you might need for mod development, see the section

    • Windows 10/11 (64-bit) or a Linux build of your choice

    • (Cyberpunk's modding framework)

    • For older WKit versions: (versions <= 8.7.1)

    circle-check

    Wolvenkit is mostly developed and used on Windows — if you're on Linux, you should know what we're doing, and this guide isn't for you.

    Unrelated: The Wolvenkit developer team is looking for a Linux nerd who'd like to keep things compatible!

    chevron-rightDownloading .NEThashtag

    Open either of these pages:

    hashtag
    Downloading Wolvenkit

    circle-info

    If you don't care about the differences, go to the next section:

    You can download Wolvenkit from any of the following links (click on the cards). If you are uncertain, go to .

    circle-info

    GitHub (the links with the Wolvenkit icon) is the best way to stay up-to-date with WolvenKit, as this is where development happens. You can download the latest or Nightly fresh from the pipeline.

    One of the Wolvenkit developers will download the stable version from github to put it on , so you can get it from there as well.

    hashtag
    What's a "Nightly" and do I want it?

    The Nightly is a build of the latest development stand, created automatically every night via pipeline (hence the name). It contains new features that are being worked on, but introduces the risk of bugs.

    You will usually want to use the stable version, unless you want to try out new features, help with development and testing, or generally like to live dangerously.

    Here are links to the most recent build for each repository:

    Package
    Latest Release
    Checks

    hashtag
    Which version do I want?

    If you're on Nexus, then you can only download the portable (default) version. In this case, head to the next section.

    Github offers you more options:

    circle-info

    If you don't know which one to use, use the default (portable) one, it's usually the first entry in the list.

    You don't need to download Wolvenkti Console, unless a (not-outdated) guide tells you so.

    Download option
    What is it?
    chevron-rightDetailed download instructions (with screenshots!)hashtag

    Download either Stable or Nightly release.

    hashtag
    Installing

    WolvenKit is not technically installed, you extract the downloaded file into a folder and it runs as a . When you update the application, you'll overwrite the existing files with those that you've newly downloaded — you don't need to delete the old files, unless you run into weird problems.

    Your settings are saved in C:\Users\yourUserName\AppData\Roaming\REDModding\WolvenKit.

    circle-info

    This guide assumes that you install Wolvenkit and Wolvenkit Console to the following folders:

    • Wolvenkit: C:\Cyberpunk2077Mod\Wolvenkit

    • Wolvenkit Console (optional):

    chevron-rightMaking your Cyberpunk2077Mod folder & Extracting your WolvenKit.zip filehashtag

    You can manually make your Cyberpunk2077Mod folder in the root of your C: drive by:

    1. Right-clicking your C: drive, Click 'New Folder' - On Windows 11 you'll have to click 'Show More Options' at the bottom of the list 🙄\

    hashtag
    For Linux Users

    circle-exclamation

    Linux compatability works off of a combination of throwing things at the wall and dark magic. As such, we cannot guarantee stability when using Linux.

    hashtag
    Installation

    1. Download the WolvenKit-x.x.x.zip or WolvenKit-x.x.x-nightly.yyyy.mm.dd.zip files (NOT THE LINUX VERSION) from or releases, depending on how much you want to gamble.

    2. Extract them literally wherever you want it doesn't really matter, just remember where you put it.

    3. Find the WolvenKit.exe

    hashtag
    Known Linux Issues (see for reporting):

    • Mesh Preview does not work.

    • Font is not loaded correctly.

    • The launch splash is not transparent on Stable.

    hashtag
    TLDR;

    1. Download the new release, extract the files (over your old install if you have one) and run it.

    2. Optional: Proceed to the .

    3. Troubleshooting: Delete everything in the install folder, then re-extract the downloaded files again.

    hashtag
    Optional: Removing old versions

    If you don't have any old versions installed, you can proceed to the next section.

    1. Delete all the files in C:\Cyberpunk2077Mod\WolvenKit from the previous release so that any cached and orphaned files do not corrupt the updated release.

    2. Delete all the files in C:\Cyberpunk2077Mod\WolvenKit.CLI from the previous release so that any cached and orphaned files do not corrupt the updated release.

    hashtag
    Extracting the downloaded files

    hashtag
    Regular Wolvenkit

    Extract the zip file to C:\Cyberpunk2077Mod\WolvenKit.

    hashtag
    Optional: Wolvenkit Console

    Unpack the zip file toC:\Cyberpunk2077Mod\WolvenKit.CLI.

    hashtag
    Optional: Creating a shortcut

    If you want to launch Wolvenkit without browsing to the folder every time, you can create a custom shortcut and pin it to the start menu.

    1. Go to C:\Cyberpunk2077Mod\WolvenKit

    2. Right-click the executable WolvenKit.exe

    3. Select "Create Shortcut"

    hashtag
    First Launch - TL;DR

    circle-info

    For full instructions on how to configure Wolvenkit, please see the .

    For a more detailed explanation of the options below, please see the . You can change them at any time by going to and opening the .

    When launching WolvenKit for the first time you will be greeted with a welcome form asking to set your preferences.

    We recommend setting the path to your game files immediately.

    The Game Executable Path (.exe) is the file path or location of the Cyberpunk2077.exe file. This can be set by manually entering a file path, or using the folder icon to open Windows Explorer.

    The Depot Path is where WolvenKit will keep extracted Cyberpunk assets and files that are required for regular operation.

    Wolvenkit.CLI: Command List

    Display help for a specific command: e.g. unbundle -h

    circle-info

    For a way to configure Wolvenkit CLI, see the Settings page.

    hashtag
    Unbundle

    hashtag
    Separating archives into distinct compressed REDengine files

    unbundle -p "PATH TO ARCHIVE" -o "OUTPUT PATH" -w *.mesh

    • Extracts all files from archive

    • -w Use optional search pattern (e.g. *.ink), if both regex and pattern is defined, pattern will be prioritized.

    • -r Use optional regex pattern

    The unbundle command also takes folder paths as input (will recursively extract all .archives in a folder), or a list of paths (e.g. unbundle -p "C:\MODDING\archives\basegame_4_gamedata.archive" "C:\MODDING\archives\basegame_1_engine.archive"

    You can filter the files to extract from an archive with the -w (Wildcard) or the -r (Regex) filters: unbundle -p "PATH TO ARCHIVE" -w *.mesh e.g. will only extract files with the extension .mesh.

    hashtag
    Uncook

    hashtag
    Separating archives into distinct uncompressed REDengine files with external buffers

    uncook --uext png -p "PATH TO ARCHIVE" -o "OUTPUT PATH" -or "RAW FOLDER OUTPUT PATH"

    • Extract all textures from archive, common formats (tga, bmp, jpg, png, dds) supported

    • -w Use optional search pattern (e.g. *.ink), if both regex and pattern is defined, pattern will be prioritized.

    • -r Use optional regex pattern

    circle-info

    The REDengine extension for textures is XBM

    There are a number of files that support Uncook, including mesh, csv, xbm, and mlmask.

    Cyberpunk textures use DDS format, but WolvenKit Console supports conversions to the most common image formats such as TGA, PNG, etc.

    For example, textures can be converted to PNG using:

    uncook -p "PATH TO ARCHIVE" --uext png

    The same options apply here as well: When using

    uncook -p "PATH TO ARCHIVE" -w *.xbm

    Only files with the XBM extension will be uncooked.

    hashtag
    Import

    hashtag
    Converting raw files to REDengine files

    import -p "INPUT PATH" -o "OUTPUT PATH" --keep

    • Convert raw files to REDengine files

    • -p can be a folder or file

    • -o (optional) is the output path where the REDengine files are created

    circle-info

    When using -k you need both .dds/.buffer and .xbm/.mesh files

    e.g. judy_body_wet.xbm AND judy_body_wet.dds

    When using -o, then the REDengine files need to be located in that folder, while the raw files have to be in the folder specified with -p.

    hashtag
    Export

    hashtag
    Converting REDengine files to raw files

    export --uext png -p "PATH TO FILE"

    • Convert REDengine file (mesh, xbm) to the corresponding raw files (gltf/glb, dds)

    You can specify a folder to export, or multiple files pack -p "FILE 1" "FILE 2"

    There are a number of files that support exporting: .mesh, .csv, .xbm, .mlmask and many more.

    The in-game textures have .dds fileformat, but WolvenKit Console supports conversions to the most common image formats (png, jpg, tga). E.g. to convert the game textures to png use: export -p "PATH TO FILE" --uext png

    hashtag
    Pack

    hashtag
    Usage

    pack -p <path> [-o output] (backward compatibility)

    pack [-o output] <path1> <pathN>

    • -p is an alias for --path

    • -o is an alias for --outpath

    hashtag
    Description

    This command pack a folder of REDengine files. It will create a new .archive file. You can provide multiple paths to create multiple archives at once.

    It will output archive(s) in the current working directory by default. Use the option -o output to change the directory path where to output archive(s).

    circle-info

    This command is not behaving exactly like the button Build Project of the WolvenKit application. It will only generate .archive file(s) and ignore any extra files (such as .xl).

    triangle-exclamation

    Do not replace existing vanilla archives

    hashtag
    Example

    • you have a WolvenKit project in C:\Documents\Modding\Cyberpunk2077\Awesome

    • you are currently in C:\Documents\Modding\Cyberpunk2077\ with your terminal

    • run the command pack -p "Awesome"

    circle-exclamation

    You can provide multiple paths (WKit projects), but only one output path. This is a limitation due to the .NET framework.

    hashtag
    ~~CR2W/W2RC~~ (Deprecated)

    • Convert a REDengine file into human readable form: cr2w -s "<PATH TO FILE>"

    • Convert a json file into a REDengine file: cr2w -d "<PATH TO JSON>"

    hashtag
    Convert

    • Convert a REDengine file into human readable form: convert -s "<PATH TO FILE>"

    • Convert a json file into a REDengine file: convert -d "<PATH TO JSON>"

    hashtag
    Tweak

    • Convert .tweak files (in YAML format) to a TweakDB .bin file that can be loaded with

    • tweak -p "<input directory>" -o "<output directory>"

    • Defaults to current directory if -p or -o

    The .tweak file must be in the following format, with either flats or groups declared:

    hashtag
    Groups

    Flats for the groups (also called records) are automatically created by appending the member's name to the end of the record's name. Using the example above, the following flats would be created:

    A group's type (Vehicle in the example above) should exist in CP2077 for it to be useful. The compiler will not warn you if the type doesn't exist, but TweakDBext will let you know upon loading it (watch for messages in red4ext\logs\tweakdb.log). Generally a TweakDB type is the RTTI type without gamedata or _Record (, where the gamedata is already omitted from the filenames) - as an example, the a Vehicle's RTTI type is gamedataVehicle_Record.

    hashtag
    Types

    Flats and group members must have one of the following as a base type :

    Types can be prepended with array: to create an array, like array:String in the example. Arrays can be formatted with hyphens & newlines as in the example, or specified with square brackets and commas. The same array could look like this:

    Strings can left unenclosed, and optionally enclosed in double quotes, but if you're using paths with raRef:CResource, you'll need to double-up the \, like this:

    raRef:CResource also accepts integers (ones that you might pull from a tweakdb output) in place of the path, like this:

    TweakDBID types can be the full path of the flat/group:

    Or the shorthand that uses the hash & length, both in hexadecimal:

    Vector3 are declared like this, using a capital XYZ:

    Logo

    Import/Export: Mesh (3d Model)

    circle-info

    For the UI documentation, check

    For general information such as the file structure and output directory, check

    For a step-by-step workflow and troubleshooting, see -> ->

    generic:             <name_of_head_mesh>_skeleton.rig
    Jackie:              h0_001_mb_c__jackie_welles_skeleton.rig
    Wolvenkit IO suite for Blender >= 1.5.1arrow-up-right
    githubarrow-up-right

    --hash: Extract single file with a given hash. If a path is supplied, all hashes will be extracted

    -hash: Extract single file with a given hash. If a path is supplied, all hashes will be extracted

  • --flipUse boolean option (e.g. 'true' or 'false') : Flip textures vertically (can help with legibility if there's text)

  • --forcebuffers: Force uncooking to buffers for given extension. e.g. mesh

  • -k (optional) use this parameter if you have already existing REDengine files in your output folder

    output of the archive will be C:\Documents\Modding\Cyberpunk2077\Awesome.archive.

    are not specified.
    TweakDBextarrow-up-right
    a full list can be see herearrow-up-right
    flats:
      Mycustom.flat:
        type: Float
        value: 1.0
    groups:
      MyOtherCustomRecordOrGroup.mine:
        type: Vehicle
        members:
          affiliation:
            type: TweakDBID
            value: Factions.Unaffiliated 
          animals:
            type: array:String
            value:
              - cow
              - pig
              - horse
              - cat
    Mycustom.flat
    MyOtherCustomRecordOrGroup.mine.affiliation
    MyOtherCustomRecordOrGroup.mine.animals
    CName
    String
    TweakDBID
    raRef:CResource
    Float
    Bool
    Uint8
    Uint16
    Uint32
    Uint64
    Int8
    Int16
    Int32
    Int64
    Color
    EulerAngles
    Quaternion
    Vector2
    Vector3
    LocKey
          animals:
            type: array:String
            value: [ cow, pig, horse, cat ]
          curvesPath:
              type: raRef:CResource
              value: "base\\gameplay\\vehicles\\curves\\muscle_car.vehcurveset"
          curvesPath:
              type: raRef:CResource
              value: 5774411407796421038
    flats:
      myFlat.reference:
        type: TweakDBID
        value: myOtherFlat.cow
    flats:
      myFlat.reference:
        type: TweakDBID
        value: TDBID:12345678:12
    flats:
      whereIam.position:
        type: Vector3
        value: 
          X: 0
          Y: 0
          Z: 0 

    FOR %F IN ("%SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~*.mum") DO ( DISM /Online /NoRestart /Add-Package:"%F" )

  • Copy and paste the below command into the command prompt window to install Microsoft Group Policy Client Extensions

    FOR %F IN ("%SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~*.mum") DO ( DISM /Online /NoRestart /Add-Package:"%F" )

  • Press Windows + R to open the Run window and open gpedit.msc

  • Navigate into the policy folders: Computer Configuration > Administrative Templates > System > Filesystem

  • Double click into Filesystem, then select Enable Win32 long paths and then click on Edit policy setting

  • Select Enabled and then click on OK

  • Close Windows Group Policy Editor

  • Reboot your computer

    Meme
  • 5.0arrow-up-right
    1.8.0arrow-up-right
    stablearrow-up-right
    nightlyarrow-up-right
    install guide
    Notepad++ Plugin Admin

    Run it and do the initial configuration

  • Optional: Proceed to the guide how to set up the modding tools

  • For current WKit: The most recent Microsoft .NETarrow-up-right (confirmed working with .NET 8arrow-up-right and Wolvenkit 8.13)

    Download and install the runtime. (The SDK is for .NET developers…. unless you are a NET developer, and in which case do whatever you want 😄)

    Nightly Releasearrow-up-right
    C:\Cyberpunk2077Mod\Wolvenkit.CLI

    You can use other paths, the guide just assumes that you don't.

    Type or Paste in Cyberpunk2077Mod & press Enter - You may see the Folder populate within another Directory Folder, this should self-resolve after pressing Enter

  • From, presumably, your Downloads Folder, drag & drop your wolvenkit.zip file into C:\Cyberpunk2077Mod\

  • With WolvenKit.zip selected, either right click to Extract All or Click the Extract All Button in File Explorer to begin Extracting\

    All Done!
  • file in the extracted zip file, copy the path.
  • Now here's where it gets weird, open Steam and go to your libary. Find the "Games" tab on the menu bar, and click on "Add a Non-Steam Game to My Library"

  • In the window that just opened, press "browse", and paste the link, then select WolvenKit.exe if it's not selected already, and press "Add Selected Program".

  • Find WolvenKit in your library, right click on it in the sidebar, press properties. Go into the compatability tab, select "Force the use of a specific Steam Play compatability tool" and then select "Proton Hotfix".

  • When you first launch, it will ask for path to Cyberpunk2077.exe. It will be located in ~/.steam/steam/steamapps/common/Cyberpunk 2077/bin/x64/Cyberpunk2077.exe

  • All done!

  • More troubleshooting: Find us on Discordarrow-up-right in the #wolvenkit-help-mearrow-up-right channel.

    You should now see something like this:

  • Click "OK"

  • Right-click on your shortcut again and select "Pin to Start Menu"

  • That's it! You can launch now!

  • WolvenKitarrow-up-right

    arrow-up-right

    WolvenKit Nightlyarrow-up-right

    arrow-up-right

    Wolvenkit-X.X.X.zip You want this

    Default — the portable version: download and extract this, then start it via Wolvenkit.exe

    Wolvenkit.Console-X.X.X.zip

    Command Line Interface (CLI): Not the same as regular Wolvenkit. Formerly known as CP2077tools, and becoming increasingly obsolete.

    Used by other applications to "talk" to Wolvenkit, for example MLSetupBuilderarrow-up-right.

    Wolvenkit.ConsoleLinux-X.X.X.zip

    As above, but on Linux. You usually don't need this.

    WolvenkitSetup-X.X.X.zip

    The Wolvenkit installer. This will run a setup and let you pick a folder. Currently (December 2024), the installer has issues.

    Source code (zip) Source code (tar.gz)

    A snapshot of the source code that was compiled into this specific release. If you're not a programmer, then you don't want this.

    Full Install Walkthrough (ELI5)
    prerequisites
    Prerequisites
    stablearrow-up-right
    nightlyarrow-up-right
    Microsoft .NET 6arrow-up-right
    6.0arrow-up-right
    7.0arrow-up-right
    Which version do I want?
    Nexusarrow-up-right
    stable releasearrow-up-right
    tester and developer buildsarrow-up-right
    Nexusarrow-up-right
    Stable Releasearrow-up-right
    portable applicationarrow-up-right
    Stablearrow-up-right
    Nightlyarrow-up-right
    bug reportsarrow-up-right
    full configuration instructions
    Wolvenkit-X.X.X.zip
    Wolvenkit.Console-X.X.X.zip
    detailed guide
    corresponding wiki page
    Wolvenkit Home
    settings page
    Cover

    Cover

    Cover

    WolvenKit is capable of exporting Cyberpunk mesh files (with their armatures and materials) natively to glTF format, preserving Cyberpunk's separation into distinct submeshes with different materials.

    We can import those .glb files into the following game files:

    • .mesh

    • .morphtarget

    • anims

    hashtag
    Exporting mesh file

    circle-info

    After exporting, your files can be found in your project's raw section.

    Morph targets are automatically included inside the glTF file. You can find the morphs as shapekeys within Blender or blendshapes with Maya.

    mesh export settings as of 8.1.11

    hashtag
    Default Export Settings

    hashtag
    LOD Filter (default)

    If selected, models for LOD > 0 will not be included with the export.

    hashtag
    Is Binary (default, recommended)

    Select to export in binary from as GLB rather than glTF format. (Recommended)

    hashtag
    Export Materials (default)

    create a meshName.Material.json file for the

    circle-info

    Turn this off if the file export fails.

    hashtag
    Export Garment Support (default)

    Exports garment support to shapekeys for Blender.

    circle-info

    Turn this off if the file export fails.

    hashtag
    Export types

    hashtag
    MeshOnly

    The default export is versatile enough for most use cases. Any mesh, static or skinned can be exported and imported with this setting. For skinned meshes the bone parenting hierarchy will not be included, however this does not matter for importing meshes. Meshes will be divided into submeshes by material.

    hashtag
    WithRig

    circle-info

    Bone parents are not required for successful mesh imports

    Using the WithRig export option allows us to export skinned meshes with parented bones. By default exported meshes are correctly skinned, but the skeleton contains no parenting information. Bone-parented rigs are especially useful for posing/animating using a 3d software.

    Mesh files themselves do not contain the bone parents, so it's required to select a rig file to accompany each mesh export. To select a rig, in the WithRig Settings section of the right panel press the ... (Collections) button. This opens the collections menu where you will select your rig file.

    hashtag
    WithRig usage

    Choose a rig file from the panel on the left side, then use the opposing left/right arrows to add or remove a rig. The selected rig will be added to the right panel. Only one rig can be used, so adding more than one rig will result in the 1st rig in the list being selected.

    hashtag
    Choosing rigs correctly

    Generally for NPC heads, weapons, or vehicle meshes you can find the associated rig file similarly named to the mesh in the same or nearest directory. For other meshes such an NPC body, a more generic rig is used. e.g. Johnny Silverhand is a man with average body proportion so his body uses the following rig: base\characters\base_entities\man_base\deformations_rigs\man_base_deformations.rig If the wrong/incompatible rig is used, an error will be displayed within the Log.

    hashtag
    MultiMesh

    The MultiMesh export option is similar in functionality to WithRig, with the addition of support for multiple rigs and meshes. This option was implemented because some meshes use more than one rig. e.g. Judy's mesh l1_001_wa_pants__judy uses the following rigs:base\characters\base_entities\woman_base\deformations_rigs\woman_base_deformations.rig base\characters\main_npc\judy\l1_001_wa_pants__judy_dangle_skeleton.rig Where the dangle rig is used in addition to the base rig to animate Judy's belt.

    hashtag
    MultiMesh usage

    Navigate to the MultiMesh Settings and configure the export options for additional meshes and rigs. The functionality is identical to WithRig, so the same instructions should be followed.

    hashtag
    Importing mesh files

    WolvenKit is able to import custom mesh files. The Import/Export tool expects meshes to be in the glTF format, stored as a .glb file (binary format). The tool supports skinned (animated) or rigid (static) models.

    triangle-exclamation

    You have to import your .glb into an existing .mesh file!

    hashtag
    Guidelines for successful imports

    circle-check

    We strongly recommend the , which will automate the following checks for you:

    • Be sure your mesh is triangulated and does not contain loose geometry

    • Submeshes are ordered by name and are called submesh01, submesh_02, submesh_03, etc.

    • Individual meshes have < 65535 triangles

    hashtag
    Import Settings

    Import settings as of ~2.12

    hashtag
    Import with Material.Json

    Will re-import the Material.json file that has been generated on export, overwriting any changes you have made in the meantime. If you've exported from Blender via plugin, material changes may have been written back.

    hashtag
    Import Material.Json Only

    Will only import the Material.json, ignoring the .glb file. Handy for resetting material edits that you did by accident.

    hashtag
    GLTF Validation Checks

    • Skip: Will not validate

    • TryFix: Will attempt to fix issues with your file

    • Strict: Will not attempt to fix anything, but yell at you for anything that might cause issues.

    hashtag
    Target File Format

    • Mesh: Imports over a mesh

    • Morphtarget: Imports over a morphtarget (the file that deforms a mesh). Necessary for e.g. custom body morphs.

    • Anims: Imports over an animation file. Necessary for custom animationsarrow-up-right.

    • Rig: Attempts to import the associated armature to a .rig

    • MeshWithRig: Combines the Mesh and the Rig option.

    hashtag
    Preserve Submesh Order

    (experimental as of 8.9.1) Will ignore submesh names, instead using the order inside the armature to generate numbered submeshes.

    hashtag
    Select base mesh

    (experimental as of 8.9.1) See Use selected base mesh

    hashtag
    Use selected base mesh

    (experimental as of 8.9.1) Instead of importing directly over the target file, this option will pull the .mesh file that you have picked in Select base mesh (e.g. if you run into bone problemsarrow-up-right).

    hashtag
    Contains LOD8 named LOD0

    Will treat the submesh LOD0 as having the lowest level of detail rather than the highest

    hashtag
    Import Garment Support

    (experimental as of 8.9.1) Will try importing Blender shapekeys as garment supportarrow-up-right.

    hashtag
    Select Rig

    (experimental as of 8.9.1) See Use selected rig

    hashtag
    Use selected rig

    (experimental as of 8.9.1) Instead of importing over the target file's associated rig, this option will pull the .rig file that you have picked in Select base rig (e.g. if you run into bone problemsarrow-up-right).

    hashtag
    Import Material.json Only

    Useful for updating material information only, without disturbing the original geometry data.

    hashtag
    GLTF Validation Checks

    Use the GLTF library to run some basic checks to detect bad geometry.

    hashtag
    Import As REDengine File Format

    Select the desired destination format. (mesh/morphtarget)

    hashtag
    Use existing file

    Rebuild the existing mesh file. (Required)

    circle-info

    Having trouble modifying a mesh file? Keep in mind WolvenKit always uses an existing mesh file for each import. Once a mesh file is corrupted, all subsequent imports will be corrupted as well. Try replacing the source mesh with the original!

    hashtag
    Blender glTF Settings

    hashtag
    Import

    Meshes can be imported with the pre-installed Blender glTF add-on with the default glTF import options. To learn about importing models with the Cyberpunk Blender add-on for shader previews, visit the Blender Integration page.

    hashtag
    Export

    The following settings are recommended for using Blender with WolvenKit. Unlisted export options can use the Operator Default preset (no change). These options may not cover all cases, however it's a good baseline for getting started.

    • Geometry

      Materials: No Export

    • Shape Keys

    circle-exclamation

    New to Blender and/or modding? Remember to remove all extra assets before exporting! Do not include lights, cameras, or other meshes such as the default cube.

    hashtag
    Submeshes

    Meshes are sorted and given materials based on the submesh index. LOD variants are numbered as 1, 2, 4, and 8 which corresponds to the REDengine value. These are not the distances at which the LOD is applied.

    circle-info

    It's important to remember the submesh name is determined by the Data Block not the Object Name. The orange colored icon represents the Blender object name, while the green polygon represents the actual name of the mesh.

    It's possible to reference the material structure of the original mesh file using WolvenKit to see how each submesh is mapped to a distinct material.

    Example of material list inside a mesh file

    In the example above, you can see the material list which repeats after reaching glass1 meaning this is the final submesh. We now know this mesh has 12 distinct submeshes (0-11). It also contains four LOD's because each material list is repeated for a total of four lists.

    circle-info

    For a detailed breakdown of each material, use the WithMaterials option for mesh exports.

    hashtag
    Material JSON I/O

    WolvenKit supports importing and exporting REDengine material information in the form of a bespoke material json file. Learn more above

    The material json file is necessary for previewing meshes with the Cyberpunk Blender add-on. The REDengine data written to json is interpreted by Python script to setup somewhat accurate representations of REDengine shaders.

    circle-info

    Just looking to edit materials? WolvenKit can directly edit materials within .mesh or .mi files using the File Editor.

    hashtag
    Technical Details

    A bespoke json file will be generated from the material dependency stack and exported alongside the raw mesh file. The entire daisy chain of materials is analyzed and written to file top-down, meaning all properties are written as they appear in game. The material json file can be edited with any text-based editor. Any changes saved to the json file will be written to the mesh file upon each import.

    • We rely on the Depot (a local file cache) which contains all material dependencies for any given mesh.

    • For each WithMaterials mesh export, the material dependencies are analyzed and missing resources are dumped to the Depot.

    • The material json is generated by looking at the complete daisy chain of materials. Meaning every single dependency is reviewed and the top-most properties that REDengine sees are written to the material json file.

    • The REDengine values written into the material json file can be interpreted by the Blender Cyberpunk glTF importer to automatically set up shaders within Blender Cycles. .

    hashtag
    MorphTargets

    circle-exclamation

    Morphtarget I/O is highly experimental, some assets are not handled correctly

    WolvenKit can export morphtarget files from the game to glTF format, these morphtargets files are used to morph a base mesh that exists in the game. For example, the character that you create in the game with different types of nose, eyes, and mouth is formed using the shape keys that exists in the morphtarget files. You can use Import/Export Tool to export them to glb/glTF, any morph texture(s) existing in file will also export along in dds format.

    Tools: Import/Export UI
    Import/Export
    Cyberpunk 2077 Modding
    Logo
    Logo
    Logo
    Logo

    ELI5: Validate Functionality

    To make sure the modding tools were setup correctly, you will use the below steps to create a very basic color swap mod.

    hashtag
    Section Brief

    This section is about validating the modding tools and potentially building your first mod.

    Learning objectives:

    • Understand how file types relate to each other,

    • Identify assets with clothes in the game,

    • Create and add assets to projects,

    • Searching the Asset Browser,

    • Understand the Project Explorer,

    • Review log for activity,

    • Understand the purpose of the Archive folders versus Raw folders,

    • Look at assets in File Editor,

    • Convert to-and-from JSON files,

    • Opening files from the Asset Browser to plugins,

    • Use the Import/Export tool,

    • Install a REDmod type of mod,

    • Look at installed mods in WolvenKit Mod Manager.

    hashtag
    Overview steps

    1. Use the name of the game item to find the asset files in WolvenKit,

    2. Find all the asset files for the item,,

    3. Create the GLB and DDS file for MlSetupBuilder models,

    circle-info

    Some of the steps below are unnecessary, but it's important to see how:

    • An in-game item is used to find the ENT file,

    • The ENT file is used to find the APP file,

    triangle-exclamation

    These steps get confusing. Just remember that we’re using the entity file tshirt_08_old_02_w.ent to find the material layer file t1_080__leather_croc.mlsetup

    hashtag
    Steps

    1. To make sure you do not have any mod conflicts, please uninstall all Cyberpunk mods except for Material and Texture Override. This can normally be done by disabling the mods in Vortex or whatever mod managing application you use for your normal gameplay.

    2. Launch Cyberpunk 2077 and either load an existing woman character, or start a new one if you have to. If you start a new game, then you'll have to play up to the scav hunt with Jackie before you can swap your clothes.

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

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

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

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

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

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

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

    1. This can take a minute or two. Click on the console icon to keep an eye on the log - it should tell you when you're good to go.

    2. Back in MlSetupBuilder, click the refresh button at the bottom of the screen. The model should load without errors and the multilayers display on the right.

      Attention: As of MLSetupBuilder 1.6.8, the model will only highlight the affected region. A full material preview is planned for 1.6.9.

    File Editor

    REDengine file editor

    What is the File Editor?

    The File Editor is a document viewer and manipulator for modifying any REDengine file. WolvenKit is the only RTTI-based editor for RED4.

    circle-info

    Starting with 1.14, Wolvenkit offers multiple editor modes. See Switching Editor Modes for details.

    To learn more about the , please see the corresponding page.

    hashtag
    Switching Editor Modes

    Starting with 1.14, Wolvenkit lets you switch editor modes by double-clicking the first button in the toolbar:

    hashtag
    Simple Mode

    Properties that you don't normally have to edit will be hidden.

    Recommended for beginners and people who don't like to scroll.

    hashtag
    Regular Mode

    The file editor you know and love.

    hashtag
    Expert Mode

    Coming soon™️

    hashtag
    Adding files via File Editor

    To edit a REDEngine file, you have to add it to your first. There are two ways to do this from the :

    • double-click on a file in the Asset Browser's navigation window

    • select several at once, then use the option from the context menu

    You can also open files without adding them to your project:

    • Right-click a file in the Asset Browser and use

    circle-info

    This version of the file is read-only; you can edit it, but you can't save it.

    circle-info

    Files in your Wolvenkit Project are accessible via Windows Explorer. It also works the other way around; however, not everything has to be compatible.

    hashtag
    Saving Edited Files

    See the next section about

    triangle-exclamation

    TL;DR: Wolvenkit does not auto-save for you. Do it yourself, you lazy gonk!

    Unless you have opened a file as read-only, you can save your changes in the following ways:

    • Hotkey: Ctrl+S

    • Save/Save All button

    circle-info

    Unsaved files will have an asterisk next to their name in the editor tab.

    hashtag
    Opening files

    hashtag
    Editing files

    Once a project is part of your Wolvenkit Project and shows up in the Project Explorer, you can open and edit it. Again you have two ways of doing that:

    • Double-click the file

    • Click on the blue icon that appears next to the file when you mouse over it

    circle-info

    You can clear up some extra space for the File Editor by un-pinning other parts of the view with pin icon at the top right, reducing them to easily-accessible tabs.

    The file editor features two resizable panels, the and the .

    hashtag
    Navigating files: The tree view

    The tree view on the left lets you browse the file's structure. All entries are indented per level and can be collapsed by category to preserve the user's sanity as much as possible.

    Many entries will have descriptor entries in white or grey that give you a preview on their contents.

    hashtag
    The File Editor Context Menu

    The File Editor Context Menu appears when you right-click on something in the File Editor. It offers different options depending on what you currently have selected. Maybe they will one day be comprehensively documented, but it will not be this day. Also, bear in mind that this is specifically about the File Editor context menu, which is not the same as the context menus in Asset Browser and Project Explorer.

    hashtag
    Array items (Handles)

    hashtag
    TweakXL: Override Value

    Does not make sense under all circumstances, but will valiantly attempt to create a TweakXL override for the current selection (as if you had selected it in the ). This override will be saved as a .yaml file and, depending on the handle you tried to use it on, its contents may be useless. You must have TweakXL installed via the Plugins menu to get this option to appear in the context menu.

    hashtag
    TweakXL: Copy to clipboard

    Attempts to copy the identifier to clipboard. If something without a tweak identifier is selected, you'll get the RedType instead. This option, like the previous one, will not appear without the installation of TweakXL via the Plugins menu.

    hashtag
    Duplicate item in Array/Buffer

    Creates an exact copy of the currently selected item/handle, which will be inserted directly after it (this is important for e.g. in mesh files). This copy can be edited without affecting the original, unlike the next option in the context menu:

    hashtag
    Copy Handle

    Creates a reference to the handle. Unlike the previous entry, this does not create an independent copy; it's a reference to the same instance of the handle, not unlike a desktop shortcut. Whatever changes you make to the reference will also transfer to the original, and this will not be immediately apparent because WolvenKit does not update this in real-time. You must save the file and reopen it to see the original and the reference showing identical values after only one of them was edited.

    hashtag
    Paste Handle

    Exactly as it seems: it's the paste function of Copy Handle. As explained above, it pastes a reference, not a copy. Do not use this if you want a copy that you can edit independently of the original. "Why the hell wouldn't I always want that?", you might be asking. Because in some files, it can be helpful to have the same instance of a handle referenced in various places and only having to edit one of them. Do not question us, for we know the Old Ways (and if you do, the ideal avenue is to open a ticket in ).

    hashtag
    Copy From Array/Buffer

    Copies the currently selected item/handle for pasting inside of Wolvenkit. You can only paste items to a compatible array. If you have selected multiple items, the most recent selection will be used.

    circle-info

    The clipboard will be cleared once you paste an item to prevent reference cloning.

    hashtag
    Copy Selection From Array/Buffer

    Copies the currently selected items/handles for pasting inside of Wolvenkit. You can only paste items to a compatible array.

    circle-exclamation

    The clipboard will not be cleared once you paste. However, if you paste multiple times, all those pasted items will be identical - so if you change the file path in one of them, it will change all across your file.

    You can to fix this, or you can abuse it to save copy-pasting. Word of warning: if you choose the latter, you will ruin somebody's day, and it's probably going to be future you.

    hashtag
    Export to JSON

    See Particularly useful for searching large files with CTRL+F in your word editor of choice. However, JSON conversion can get confused by some complex graph files. For instance, humanoid.animgraph is converted into a 300-megabyte JSON (300 times the original file's size) with over half a million lines. But hey, you can still CTRL+F it, so there's that.

    hashtag
    Delete Item in Array/Buffer

    Deletes the currently selected item/handle. If you have selected multiple items, the most recent selection will be used. This can also be done via the right-side window of the file editor by clicking on the red trashcan icons, as shown earlier in this article.

    hashtag
    Delete Selection From Array/Buffer

    Deletes the currently selected items/handles.

    hashtag
    Delete All Items in Array/Buffer

    Empties the entire list of items/handles. This is tipically accompanied by a distant, echoing voice that seems to say "That's a bold strategy, Cotton, let's see if it pays off for 'em."

    hashtag
    Reset Object

    Will reset the selected handle and all its values to their default greyed-out state, as if you had just created it by using Create Item in Array or Create Handle. It undoes all edits, including those by Cyberpunk's developers.

    hashtag
    Editing files: The editor panel

    The Editor View on the right side lets you edit the selected properties ().

    Each editable property has a small icon next to it that displays at a glance what awaits you when you select it.

    You will observe different kinds of values (dropdowns, numbers, booleans, texts, enums...). Many of those appear in grey:

    Those properties have not been changed by the person who touched this file, still holding their default value.

    circle-info

    You can deduce quite a few things about a property's functionality by examining which parameters are untouched and which have been tweaked by Cyberpunk's developers.

    hashtag
    Editing properties

    Starting with 8.15, the editor has become smarter. By enabling "use validating editor" in the settings, you can turn on contextual hints:

    The editor panel will show you the following kinds of controls:

    hashtag
    Text fields

    The icon that says "abc" on it is the one you shall learn to fear, for it heralds the coming of a string variable. Whenever you see it next to a property you need to edit and you don't know what strings you can type in it, get ready to spend the next several hours of your life getting very well-acquainted with WolvenKit's .

    hashtag
    Curve fields

    Some file formats offer more specific editing tools. For instance, curve properties often give you a Curve Editor, especially useful in .curveset files:

    hashtag
    Node view

    And some node-based files, such as .questphase files, offer a Graph View for viewing nodes and their connections:

    Some node-based file formats, such as .animgraph and .behavior files, are not yet blessed with the Graph View, which as of February 13th 2024 is still under development. These files can be extremely complex and their properties un-collapse into so many sub-properties that it literally breaks WolvenKit's indentation:

    Until the Graph View is made available for these file formats, they are to be feared.

    hashtag
    Adding, Removing or Replacing Properties

    Other than browsing and editing properties, you can also delete them, replace them, or add completely new ones.

    circle-info

    The possibilities are endless, but most of them make the game crash. Wolvenkit will already prevent you from doing a lot of dumb things, but you can still get creative.

    To edit the property structure, you'll mostly use the project tree and its , whereas you edit the property's contents in the .

    This section will give you an overview about the existing types of properties and what they are commonly used for.

    hashtag
    Arrays

    Arrays are lists of items. They look like this:

    You can duplicate, add and remove array items and change their order via drag&drop.

    Arrays can contain any of the other types of data. They do not contain other arrays directly; but often include other arrays.

    circle-info

    The "Paste" operations will be disabled if the items you copied aren't compatible with your currently-selected array.

    hashtag
    Variables

    The "data" in "data structure", the lowest level of nesting. You can edit them in the editor panel to the right, and they will never hold other variables.

    hashtag
    Data Structures

    As the name implies, a data structure is anything that structures data. These elements can hold any collections of other data structures, variables, or handles.

    hashtag
    Handles

    Handles are a special kind of data structure, which hold pieces of executable code.

    circle-info

    Since you can't customize editable handles, you might as well delete them.

    chevron-rightHandles: An examplehashtag

    Handles do specific things within the scope of the array they belong to. For instance, the weapon_shoot_effect.es file is the foundation for how gunshots behave the way they do in Cyberpunk. It has several entries dealing with different aspects of gunshots, and each entry has an array called effectExecutors. It can hold dozens of other entries, such as PhysicalImpulseFromInstigator or HitReaction. Now let's say you open weapon_shoot_effect.es, uncollapse the player_ray entry, then uncollapse the effectExecutors array, and remove the HitReaction element from it. Congratulations, you have just eliminated gun violence in Night City. Bullets no longer cause damage or even reaction animations. You absolute hero, you.

    In case you don't know, player_ray refers to the concept of a gun's raycast, which detects objects along the path of a bullet and applies appropriate behaviors. So if a lack of familiarity with that term was causing you to wonder who the hell Ray is, well, I hope it's now clear.

    You can also replace existing handles or add new ones from a list of handles compatible with the array:

    When you select an array on the left-side window of the File Editor, you will find two types of yellow buttons on the right-side window: Create Item in Array, which sits alone at the top, and Create Handle, which appears next to every handle in the array. Clicking either of them will bring up the Type Selector: a search menu that lets you pick from a list of handles compatible with the array. The difference is that Create Item in Array adds the selected handle to the array whereas Create Handle replaces the handle it was next to, deleting it in favor of the one you picked.

    In either case, the Type Selector will give you the full list of handles you can choose for the array in question, and you can narrow down the list by typing search terms such as, say, "Grenade", or "Effector", or "ofwifagbaygfaergergqhqjqtjfy" if you fall asleep on your keyboard:

    circle-info

    As of February 13th 2024, the main branch of WolvenKit is still using the old Type Selector, which is slow and limited in its search capabilities. It works like autocomplete, so you can't just type "Effector" and get every item that has "Effector" in the name. The new Type Selector can do that and is much faster. If you don't want to wait for it to be released on the main branch (probably in 8.13.0), you can already use it in WolvenKit's .

    If you select a handle instead of an array on the left-side window, you will still get the Create Handle button on the right-side window, allowing you to replace the handle you have selected.

    The red trashcan icons can also delete handles, as you've surely guessed, but there's a way to do it directly on the left-side window using the File Editor context menu. So for our next section, we proudly present... *insert drumroll here*

    Switching Editor Modes
    Simarilius
    dragonzkiller
    Logo
    Logo
    Logo
    Open an asset in MlSetupBuilder and change its color from green to orange,
  • Import the edited asset back into your project,

  • Install the mod,

  • Party like it’s 2077 in your new orange tank.

  • The APP file is used to find the MESH file,

  • The MESH file is used to find the MLMASK and MLSETUP files,

  • The MLSETUP file is used to find the MLTEMPLATE file,

  • MLMASK file is used to find the DDS files,

  • DDS file is used to find the XBM file.

  • Understanding this topology will help with your future mod development.

    Once you reach a point in the game when you can change your clothes, run the Cyber Engine Tweaks (CET) command “Game.AddToInventory("Items.TShirt_08_old_02",1)”. This will load Judy’s Tank in your torso inventory.
  • Wear the shirt, take a screenshot, save the game, and then exit the game. This screenshot will be your reference to compare against when you have made the edit.

  • The name of the shirt is Secondhand Knotted Tank and it’s an Inner Torso item

  • Navigate to Fandom’s Cyberpunk clothing page and find the asset name for Judy’s tank. Since we know the item is an inner torso shirt, please add #Inner_Torso to the end of the URL. This convention works for all other items as well. If we want to find V’s Pants then you would add #Legs to the end of the URL. If you’re looking for blades, use Fandom’s menu to navigate to the weapons section Gameplay > Items > Weapons and then add #Bladearrow-up-right to the end of the URL. But in this case, we’re looking for Judy’s shirt.

    https://cyberpunk.fandom.com/wiki/Cyberpunk_2077_Clothing#Inner_Torsoarrow-up-right

  • Launch WolvenKit and Create a new WolvenKit mod project: Project Name: judys_orange_tank Creation Location as C:\Cyberpunk2077Mod\Projects

  • In the menu bar click on View and click on Reset Layout to make sure your screen matches the screenshots in this guide.

  • Click on the Asset Browser and search for the asset name we found on Fandom. Start by searching for the entire name tshirt_08_old_02, then start deleting characters from the end of the name until the entity (ENT) file shows up.

  • Right click the t1_tshirt_08.ent file and open the file without adding it to your project. Notice that the file opens in the File Editor and is not listed in the Project Explorer.

  • In the File Editor, expand appearance and locate the full asset name we found on the Fandom website. Notice that in the appearances array, the name ends in “w” which stands for woman (aka “wa” which stands for woman average). Cyberpunk uses postfixes m, ma, mb, mf, w, wa, wb, and wf to describe the gender of the asset and the body type it goes to. A is average, and b and f are synonymous for big/fat. There are other postfixes, but that’s the general concept.

  • In the File Editor, expand appearance 7 for tshirt_08_old_02_w. Click on the blue button for apperanceResource to open the APP file without adding it to the project.

  • Now that the file editor has switched to the .app file, expand the appearances array. The asset name we got from the Fandom website is tshirt_08_old_02, which is a mashup of its entity name tshirt_08 and one of its appearance names old_02. We want the woman version of that appearance, so we're looking for old_02_w. Expand the old_02_w appearance and expand its components. The component name will say tank__judy. The meshAppearance has a value of leather_croc, and the mesh file is listed right next to it. That mesh file is used to create the GLB file that MlSetupBuilder uses to generate the tank's 3D model. Click on the yellow button for the mesh file to add it to your project, only files added to your project will show up in the Import/Export Tool.

  • In Project Explorer, double-click on the file, or hover your mouse cursor over the mesh file and click on the blue button to open the file in File Editor. Expand the arrays localMaterialBuffer > Materials > leather_croc > values > 0 and 1. [0] contains the .mlsetup file, which you'll import into MlSetupBuilder to change Judy's Tank from green to orange. Click on the yellow button for the MLSETUP file to add it to your project.

  • Right click the mlsetup file.

  • Let's change material first: select the leather_croc layer and then click the Material dropdown. Type spandex into the search box and select spandex_clean_02_30 material.

    Attention: A MultilayerMask file supports 20 layers; computers start counting at 0 rather than 1. The number in the name describes the corresponding mask layer.

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

    The hex values in the dropdown represent lookup keys - the important value is in the brackets behind it
    • Normals: Intensity of the

    • Metal Out: Defines the outside of the material as diffuse with a white dielectric coating (0.0) or metallic (1.0)

    • Rough Inside/Rough Outside: Sets the roughness of the surface, where 0.0 is completely smooth, and 1.0 is completely rough (wholly diffuse).

  • Set the Normals to 1.66, Metal and Rough Inside to null, and Rough Outside to 0.3333,0.6666.

  • Scroll down the color grid, select orange, and then click the Apply Edits button. Notice that the wording in the layer changes to match your selections.

    Attention: Set Opacity to 1.0 (100% visible) — the first layer does not allow transparency.

  • With the layer updated, click on Export (Hotkey: Ctrl+E). The dialogue should already show you the exported file; overwrite it.

    When you click on Save, click on Yes to replace the existing file. There is no need to save a copy of the original, because you can repeat step 16 to re-create it.

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

  • Our MLSetup is now imported (you can check the log view to sere a success message).

  • We will now install our mod. For that purpose, we'll use the Install and Launch button:

    You can also pack your mod as REDmodarrow-up-right. By default, that button is hidden from the toolbar — you can re-enable it in settings. As pretty much everyone defaults to the vanilla format, we're going to do the same.

  • This will do the following things:

    1. pack your mod to the packed folder in your project directory

    2. install the created .archive to \archive\pc\mod

    3. launch the game for you.

  • Load your saved game from step 4. How you launch the game doesn’t matter because the mod is deployed directly to the game’s install directory. Enter your inventory and you’ll notice that the tank you created in step 3 changed from green leather to orange spandex.

  • Congratulations! You have now validated that WolvenKit is deployed and setup correctly on your computer. Happy modding!

  • If all of your layers say "(null null) unused", then you haven't imported the mlsetup correctly
    Read more about Blender integration here
    Editor Toolbar
    your project's archive folder
    Asset Browser
    Add Selected Items to Project
    Open Without Adding to Project
    tree view
    editor panel
    Tweak Browser
    the Issues tab of GitHubarrow-up-right
    arrays, handles and variables
    search feature
    context menu
    editor panel
    nightly brancharrow-up-right
    1.14 interface
    1.15 interface
    An annotated screenshot demonstrating how to add a file from the Asset Browser to Project Explorer
    Bear in mind that files added with the Open Without Adding to Project option behave identically even though they can't be saved; this is so you know that a file you may be using for reference has been edited by you - possibly seven or eight hours ago, when you foolishly thought "I can figure out how to make this mod in five minutes" - and is no longer the same as the original file.
    An annotated screenshot explaining the File Editor's interface
    The context menu options available for items/handles
    Source file: base\physics\physicsmaterials.physmatlib
    The "abc" icon, rendered in lowercase presumably in an attempt to minimize the dread it inspires deep in one's soul
    The curve editor in all its chaotic artistic glory
    The Graph View. Obviously. We have to write something under these images otherwise the spacing between the image and the next paragraph becomes weirdly unnerving.
    This is the humanoid.animgraph file, which has over 4000 nodes currently browsable only in list form. You can think of it as what would happen if M. C. Escher took some ketamine and decided to design a maze. Converting this file to .json format results in a 300-megabyte file with over half a million lines. It holds naught but pain and suffering.
    The "boneNames" array in a mesh
    A demonstration of handle creation/replacement functionality in the weapon_shoot_effect.es file
    The new and extremely improved Type Selector, which as of February 13th 2024 is available only on the nightly branch of WolvenKit
    Editing files
    Duplicate item in Array/Buffer
    Export as JSON
    Handles
    GitHub Workflow Status
    GitHub branch checks state
    Navigating the rig menu

    Exporting Vehicles

    Step-by-step guide for exporting vehicles to Blender

    hashtag
    Summary

    Created by Simarilius Published May 2023

    This guide aims to walk you through finding and exporting a vehicle to blender.

    If you'd rather watch a video Boe6 goes through a basic example in the second of his vehicle modding videos herearrow-up-right. You still have to read below if you want an non default appearance.

    hashtag
    Requirements

    • or newer

    • or newer (hasnt been tested on older)

    • or newer

    Vehicles have different challenges from the characters, but the is fully up to the task, as long as you give it the right info.

    Importing vehicles to blender needs the .ent, .app & .rig files in .json format, along with all the meshes and the main .anim file for the vehicle as .glb. Fortunately, there is a script to do the heavy lifting – and this guide will tell you how to use it.

    circle-info

    .ent files for pretty much all the vehicles are listed on the Cyberpunk modding wiki .

    You need to find the one for your vehicle, and add it to your project.

    Once you've added the .ent to your project, you now have two options, of which you can use either:

    1. "Find Used Files" from the context menu, then manually add them all to your project

    2. Use the script from Tools -> Script Manager -> Export_Vehicle_Ent (the has documentation)

    Being lazy people, we naturally recommend the second option.

    chevron-rightScript documentationhashtag

    The most recent version of this script is shipped with Wolvenkit (find it in Tools -> Script Manager -> Export_Vehicle_Ent). The code below is here for the purpose of documentation and will not be kept up-to-date, so do not run it. If you want to get the script's most recent version, find it in the .

    By default, it will ignore shadows, proxy and FX meshes. To include them anyway, set the corresponding flags to true – find include_proxys, include_shadows,

    Check your project tree to make sure that you have the vehicle's .anims file. If there is one, you can go directly to the .

    chevron-rightIf the script hasn't found an .anims filehashtag

    If no .anims file is exported (as for example with thee Arch), you need to find it yourself.

    You can either

    • browse through the folder \base\animations\vehicle

    hashtag
    Get a specific appearance

    If you're fine with the default appearance, you can go to the and import your project into Blender.

    Otherwise, you need to enter the exact appearanceName into the Blender open dialog. You can find the appearance name in your .ent file inside the appearances list:

    hashtag
    Your entity in Blender

    In Blender, select File -> Import -> Cyberpunk Entity. You need to point it at your exported vehicle entity – find it in your project's raw folder, it should be the only file with the extension of ent.json.

    circle-info

    If parts of the vehicle are missing, undo the import (ctrl+Z) and use Export All in Wolvenkit's Export Tool, then do it again.

    At this point, you should have a full vehicle. The meshes should be

    • aligned to the armature bones

    • bound to special bones such as doors etc. via ChildOf constraints

    You can find animations in the dope sheet > action editor. If you select the rig, you can select them from the dropdown to play them.

    chevron-rightIf you have misaligned partshashtag

    Have noticed some bits are still coming in slightly misaligned, but haven't worked out why yet. Steering wheels seem to be a common one, applying a copy rotation constraint to them aimed at the armature seems to fix them. The following code will apply one to everything selected, you may need to change the target object name.

    I've built shaders for most of the materials that I've encountered in my testing. Exception is the dashboards, which are controlled by rather than normal materials. If you want the texture, open the corresponding inkwidget in Wolvenkit, switch to the Preview tab and use the Export to Images button. You can now use this texture for the dashboard material's BaseColor attribute.

    Importing multiple entities at once might be screwy. If you want several vehicles in a scene, import each into a separate blend file, then use File -> Append to merge them.

    include_fx
    . (If you don't know why you'd want them, you won't!)

    or put \base\animations\vehicle > .anims into Wolvenkit's search bar.

    Once you have found the .anims file, add it to your project and export it to .glb with the export tool. (The script should now pick it up, but – better safe than sorry!

    Wolvenkit 8.9.1arrow-up-right
    Blender 3.6arrow-up-right
    Cyberpunk add-on for Blender 1.4.0arrow-up-right
    Blender Addonarrow-up-right
    herearrow-up-right
    box below
    Wolvenkit-Resources Repositoryarrow-up-right
    next section
    next section
    The same file that you picked in Step 1
    import bpy
    objs=bpy.context.selected_objects
    for obj in objs:
        co=obj.constraints.new(type='COPY_ROTATION')
        co.target=bpy.data.objects['Armature']
    // Entity export script FOR VEHICLES dont use if you dont need all the anims and rig.
    // @author Simarilius, DZK & Seberoth
    // @version 1.1
    // Exports ent files and all referenced files (recursively)
    import * as Logger from 'Logger.wscript';
    import * as TypeHelper from 'TypeHelper.wscript';
    
    const fileTemplate = '{"Header":{"WKitJsonVersion":"0.0.7","DataType":"CR2W"},"Data":{"Version":195,"BuildVersion":0,"RootChunk":{},"EmbeddedFiles":[]}}';
    const jsonExtensions = [".app", ".ent", ".mesh", ".rig"];
    const exportExtensions = [".anims", ".mesh"];
    const exportEmbeddedExtensions = [".mesh", ".xbm", ".mlmask"];
    
    // Rather than a manual list does it for all ents in the project.
    var ents = [];
    
    // if you dont want to process any entities already in the project set this to false
    var add_from_project = true;
    
    // sets of files that are parsed for processing
    const parsedFiles = new Set();
    const projectSet = new Set();
    const exportSet = new Set();
    const jsonSet = new Set();
    const rigs = new Map();
    
    if (add_from_project) {
        for (var filename of wkit.GetProjectFiles('archive')) {
            //Logger.Info(filename)
            var ext = filename.split('.').pop();
            if (ext === "ent") {
                ents.push(filename);
            }
            if (ext === "anims") {
                exportSet.add(filename);
            }
        }
    }
    
    // Set these to true if you want proxys/shadow meshes
    var include_proxys = false;
    var include_shadows = false;
    var include_fx = false;
    
    // loop over every entity in `ents` and find rigs
    for (var ent in ents) {
        Logger.Info('Finding rigs in ' + ents[ent]);
        FindEntRigs(ents[ent]);
        FindEntAnims(ents[ent]);
        Logger.Info('');
        for (const [key, value] of rigs) {
            Logger.Info(`${key} = ${value}`);
            if (!value.includes("base_rig")) {
                projectSet.add(value);
                jsonSet.add(value);
            }
        }
        Logger.Info('');
    }
    
    // now find the mesh files
    for (var ent in ents) {
        Logger.Info(ents[ent]);
        ParseFile(ents[ent], null);
    }
    
    // save all our files to the project and export JSONs
    for (const fileName of projectSet) {
        // skip shadows if the variable is set
        if ((include_shadows == false) && (fileName.includes("shadow"))) {
            continue;
        }
        // skip proxies if the variable is set
        if ((include_proxys == false) && (fileName.includes("proxy"))) {
            continue;
        }
        // skip fx bodies if the variable is set
        if ((include_fx == false) && (fileName.includes("fx"))) {
            continue;
        }
        // Load project vesion if it exists, otherwise add to the project
        if (wkit.FileExistsInProject(fileName)) {
            var file = wkit.GetFileFromProject(fileName, OpenAs.GameFile);
        }
        else {
            var file = wkit.GetFileFromBase(fileName);
            wkit.SaveToProject(fileName, file);
        }
    
        if (jsonSet.has(fileName)) {
            var path = "";
            if (file.Extension === ".ent") {
                path = wkit.ChangeExtension(file.Name, ".ent.json");
            }
            if (file.Extension === ".app") {
                path = wkit.ChangeExtension(file.Name, ".app.json");
            }
            if (file.Extension === ".rig") {
                path = wkit.ChangeExtension(file.Name, ".rig.json");
            }
            if (file.Extension === ".mesh") {
                path = wkit.ChangeExtension(file.Name, ".mesh.json");
            }
            if (path.length > 0) {
                var json = wkit.GameFileToJson(file);
                wkit.SaveToRaw(path, json);
            }
        }
    }
    
    // export all of our files with the default export settings
    wkit.ExportFiles([...exportSet]);
    
    // begin helper functions
    function* GetPaths(jsonData) {
        for (let [key, value] of Object.entries(jsonData || {})) {
            if (value instanceof TypeHelper.ResourcePath && !value.isEmpty()) {
                yield value.value;
            }
    
            if (typeof value === "object") {
                yield* GetPaths(value);
            }
        }
    }
    
    function convertEmbedded(embeddedFile) {
        let data = TypeHelper.JsonParse(fileTemplate);
        data["Data"]["RootChunk"] = embeddedFile["Content"];
        let jsonString = TypeHelper.JsonStringify(data);
    
        let cr2w = wkit.JsonToCR2W(jsonString);
        wkit.SaveToProject(embeddedFile["FileName"], cr2w);
    }
    
    // Parse a CR2W file
    function ParseFile(fileName, parentFile) {
        // check if we've already worked with this file and that it's actually a string
        if (parsedFiles.has(fileName)) {
            return;
        }
        parsedFiles.add(fileName);
    
        let extension = 'unkown';
        if (typeof (fileName) === 'string') {
            extension = "." + fileName.split('.').pop();
        }
    
        if (extension !== 'unkown') {
            if (!(jsonExtensions.includes(extension) || exportExtensions.includes(extension))) {
                return;
            }
    
            if (parentFile != null && parentFile["Data"]["EmbeddedFiles"].length > 0) {
                for (let embeddedFile of parentFile["Data"]["EmbeddedFiles"]) {
                    if (embeddedFile["FileName"] === fileName) {
                        convertEmbedded(embeddedFile);
    
                        if (jsonExtensions.includes(extension)) {
                            jsonSet.add(fileName);
                        }
    
                        if (exportEmbeddedExtensions.includes(extension)) {
                            exportSet.add(fileName);
                        }
    
                        return;
                    }
                }
            }
        }
    
        if (typeof (fileName) === 'bigint') {
            fileName = fileName.toString();
        }
    
        if (typeof (fileName) !== 'string') {
            Logger.Error('Unknown path type');
            return;
        }
    
        // Load project vesion if it exists, otherwise get the basegamefile
        if (wkit.FileExistsInProject(fileName)) {
            var file = wkit.GetFileFromProject(fileName, OpenAs.GameFile);
        }
        else {
            var file = wkit.GetFileFromBase(fileName);
        }
    
        if (file === null) {
            Logger.Error(fileName + " could not be found");
            return;
        }
    
        extension = file.Extension;
    
        if (!(jsonExtensions.includes(extension) || exportExtensions.includes(extension))) {
            return;
        }
    
        projectSet.add(fileName);
    
        if (jsonExtensions.includes(extension)) {
            jsonSet.add(fileName);
        }
    
        if (exportExtensions.includes(extension)) {
            exportSet.add(fileName);
        }
    
        if (extension === ".app" || extension === ".ent" || extension === ".mesh" || extension === ".anims") {
            var json = TypeHelper.JsonParse(wkit.GameFileToJson(file));
            for (let path of GetPaths(json["Data"]["RootChunk"])) {
                ParseFile(path, json);
            }
        }
    }
    
    // Parse a ent file for rigs
    function FindEntRigs(fileName) {
        if (wkit.FileExistsInProject(fileName)) {
            var file = wkit.GetFileFromProject(fileName, OpenAs.GameFile);
        }
        else {
            var file = wkit.GetFileFromBase(fileName);
        }
        var json = TypeHelper.JsonParse(wkit.GameFileToJson(file));
        //find the rigs in the base ent components (normally root and deformations)
        for (let comp of json["Data"]["RootChunk"]["components"]) {
            if (!("rig" in comp) == 0) {
                //Logger.Info(comp["name"]);
                //Logger.Info(comp["rig"]["DepotPath"]);
                rigs.set(comp["name"].toString(), comp["rig"]["DepotPath"].toString());
            }
        }
        // find any rigs referenced in the appearances (head and dangle)
        for (let app of json["Data"]["RootChunk"]["appearances"]) {
            var appfileName = app["appearanceResource"]["DepotPath"];
            //Logger.Info(appfileName);
            var appfile = wkit.GetFileFromBase(appfileName.toString());
            var appjson = TypeHelper.JsonParse(wkit.GameFileToJson(appfile));
            for (let appApp of appjson["Data"]["RootChunk"]["appearances"]) {
                for (let appcomp of appApp["Data"]["components"]) {
                    if (!("rig" in appcomp) == 0) {
                        //Logger.Info(appcomp["name"]);
                        //Logger.Info(appcomp["rig"]["DepotPath"]);
                        rigs.set(appcomp["name"].toString(), appcomp["rig"]["DepotPath"].toString());
                    }
                }
            }
        }
    }
    
    // Parse a ent file for rigs
    function FindEntAnims(fileName) {
        if (wkit.FileExistsInProject(fileName)) {
            var file = wkit.GetFileFromProject(fileName, OpenAs.GameFile);
        }
        else {
            var file = wkit.GetFileFromBase(fileName);
        }
        var json = TypeHelper.JsonParse(wkit.GameFileToJson(file));
        //find the anims in the ent resolved dependencies
        for (let dep of json["Data"]["RootChunk"]["resolvedDependencies"]) {
            Logger.Info(dep["DepotPath"].toString());
            projectSet.add(dep["DepotPath"].toString());
            exportSet.add(dep["DepotPath"].toString());
        }
    }
    
    function get_filename(str) {
        return str.split('\\').pop().split('/').pop();
    }
    

    WScript API Documentation

    hashtag
    WScript API Documentation

    circle-info

    The following method list is auto-generated from WolvenKit Source.

    hashtag
    Overview

    hashtag
    AppScriptFunctions

    TODO.

    Method
    Description

    hashtag
    ScriptDocumentWrapper

    TODO.

    Method
    Description

    hashtag
    ScriptFunctions

    TODO.

    Method
    Description

    hashtag
    UiScriptFunctions

    Method
    Description

    hashtag
    Detailed Documentation

    hashtag
    AppScriptFunctions

    TODO.

    hashtag
    SuspendFileWatcher

    Turn on/off updates to the project tree, useful for when making lots of changes to the project structure.

    Parameter
    Description

    hashtag
    SaveToProject

    Add the specified CR2WFile or IGameFile file to the project.

    Parameter
    Description

    hashtag
    SaveToRaw

    Save the specified text to the specified path in the raw folder.

    Parameter
    Description

    hashtag
    SaveToResources

    Save the specified text to the specified path in the resources folder.

    Parameter
    Description

    hashtag
    LoadFromResources

    Loads the content of a text file from resources.

    Parameter
    Description

    Returns: The content or null


    hashtag
    LoadGameFileFromProject

    Loads the specified game file from the project files rather than game archives.

    Parameter
    Description

    hashtag
    LoadRawJsonFromProject

    Loads the specified json file from the project raw files rather than game archives.

    Parameter
    Description

    hashtag
    GetProjectFiles

    Retrieves a list of files from the project.

    Parameter
    Description

    hashtag
    ClearExportFileLookup

    Clears the lookup for exported depot files.


    hashtag
    ExportFiles

    Exports a list of files as you would with the export tool.

    Parameter
    Description

    hashtag
    GetFileFromProject

    Loads a file from the project using either a file path or hash.

    Parameter
    Description

    hashtag
    GetFileFromProject

    Loads a file from the project using either a file path or hash.

    Parameter
    Description

    hashtag
    GetFile

    Loads a file from the project or archive (in this order) using either a file path or hash.

    Parameter
    Description

    hashtag
    GetFile

    Loads a file from the project or archive (in this order) using either a file path or hash.

    Parameter
    Description

    hashtag
    FileExistsInProject

    Check if file exists in the project.

    Parameter
    Description

    hashtag
    FileExistsInProject

    Check if file exists in the project.

    Parameter
    Description

    hashtag
    FileExists

    Check if file exists in either the game archives or the project.

    Parameter
    Description

    hashtag
    FileExists

    Check if file exists in either the game archives or the project.

    Parameter
    Description

    hashtag
    FileExistsInRaw

    Check if file exists in the project Raw folder.

    Parameter
    Description

    hashtag
    DeleteFile

    Deletes a file from the project, if it exists.

    Parameter
    Description

    Returns: true if the file was deleted


    hashtag
    GetRecords

    Loads all records as TweakDBID paths.


    hashtag
    GetFlats

    Loads all flats as TweakDBID paths.


    hashtag
    GetQueries

    Loads all queries as TweakDBID paths.


    hashtag
    GetGroupTags

    Loads all group tags as TweakDBID paths.


    hashtag
    GetRecord

    Loads a record by its TweakDBID path.

    Parameter
    Description

    Returns: record as a JSON string, null when not found


    hashtag
    GetFlat

    Loads a flat by its TweakDBID path.

    Returns: flat as a JSON string, null when not found


    hashtag
    GetQuery

    Loads flats of a query by its TweakDBID path.

    Returns: a list of flats as TweakDBID paths, empty when not found


    hashtag
    GetGroupTag

    Loads a group tag by its TweakDBID path.

    Returns: flat as a JSON string, null when not found


    hashtag
    HasTDBID

    Whether TweakDBID path exists as a flat or a record?

    Parameter
    Description

    hashtag
    GetTDBIDPath

    Tries to get TweakDBID path from its hash.

    Parameter
    Description

    Returns: path of the hash, null when undefined


    hashtag
    ShowMessageBox

    Displays a message box.

    Parameter
    Description

    Returns: A WMessageBoxResult value that specifies the result the message box button that was clicked by the user returned.


    hashtag
    Extract

    Extracts a file from the base archive and adds it to the project.

    Parameter
    Description

    hashtag
    GetActiveDocument

    Gets the current active document from the docking manager.


    hashtag
    GetDocuments

    Gets all documents from the docking manager.


    hashtag
    OpenDocument

    Opens a file in WolvenKit .

    Parameter
    Description

    Returns: Returns true if the file was opened, otherwise it returns false


    hashtag
    OpenDocument

    Opens an archive game file.

    Parameter
    Description

    hashtag
    ExportGeometryCacheEntry

    Exports an geometry_cache entry.

    Parameter
    Description

    hashtag
    CreateInstanceAsJSON

    Creates a new instance of the given class, and returns it converted to a JSON string.

    Parameter
    Description

    hashtag
    HashString

    Returns the hashcode for a given string.

    Parameter
    Description

    hashtag
    Sleep

    Pauses the execution of the script for the specified amount of milliseconds.

    Parameter
    Description

    hashtag
    ProgramVersion

    Returns the current wolvenkit version.


    hashtag
    ShowSettings

    Shows the settings dialog for the supplied data.

    Parameter
    Description

    Returns: Returns true when the user changed the settings, otherwise it returns false


    hashtag
    SaveAs


    hashtag
    GetBaseFolder


    hashtag
    ParseExportSettings


    hashtag
    GetGlobalExportArgs


    hashtag
    ConvertTDBToPath


    hashtag
    ConvertTDBToJson


    hashtag
    ScriptDocumentWrapper

    TODO.

    hashtag
    GetGameFile

    Gets the game file.

    Parameter
    Description

    hashtag
    Save

    Saves the document.


    hashtag
    Reload

    Reloads the document.

    Parameter
    Description

    hashtag
    Close

    Closes the document without saving.


    hashtag
    ScriptFunctions

    TODO.

    hashtag
    GetArchiveFiles

    Gets a list of the files available in the game archives Note to myself: Don't use IEnumerable


    hashtag
    GetFileFromBase

    DEPRECATED: Please use GetFileFromArchive(path, OpenAs.GameFile) Loads a file from the base archives using either a file path or hash.

    Parameter
    Description

    hashtag
    GetFileFromBase

    DEPRECATED: Please use GetFileFromArchive(hash, OpenAs.GameFile) Loads a file from the base archives using either a file path or hash.

    Parameter
    Description

    hashtag
    GameFileToJson

    Creates a json representation of the specifed game file.

    Parameter
    Description

    hashtag
    JsonToCR2W

    Creates a CR2W game file from a json.

    Parameter
    Description

    hashtag
    ChangeExtension

    Changes the extension of the provided string path.

    Parameter
    Description

    hashtag
    GetFileFromArchive

    Loads a file from the base archives using either a file path or hash.

    Parameter
    Description

    hashtag
    GetFileFromArchive

    Loads a file from the base archives using either a file path or hash.

    Parameter
    Description

    hashtag
    FileExistsInArchive

    Check if file exists in the game archives.

    Parameter
    Description

    hashtag
    FileExistsInArchive

    Check if file exists in the game archives.

    Parameter
    Description

    hashtag
    YamlToJson

    Converts a YAML string to a JSON string.

    Parameter
    Description

    Returns: The converted JSON string


    hashtag
    JsonToYaml

    Converts a JSON string to a YAML string.

    Parameter
    Description

    Returns: The converted YAML string


    hashtag
    ConvertGameFile


    hashtag
    UiScriptFunctions

    hashtag
    AddMenuItem

    Parameter
    Description

    hashtag
    AddMenuItem

    Parameter
    Description

    hashtag
    AddMenuItem

    Parameter
    Description

    hashtag
    AddMenuItem

    Parameter
    Description

    Loads the specified json file from the project raw files rather than game archives.

    Retrieves a list of files from the project.

    Clears the lookup for exported depot files.

    Exports a list of files as you would with the export tool.

    Loads a file from the project using either a file path or hash.

    Loads a file from the project or archive (in this order) using either a file path or hash.

    Check if file exists in the project.

    Check if file exists in either the game archives or the project.

    Check if file exists in the project Raw folder.

    Deletes a file from the project, if it exists.

    Loads all records as TweakDBID paths.

    Loads all flats as TweakDBID paths.

    Loads all queries as TweakDBID paths.

    Loads all group tags as TweakDBID paths.

    Loads a record by its TweakDBID path.

    Loads a flat by its TweakDBID path.

    Loads flats of a query by its TweakDBID path.

    Loads a group tag by its TweakDBID path.

    Whether TweakDBID path exists as a flat or a record?

    Tries to get TweakDBID path from its hash.

    Displays a message box.

    Extracts a file from the base archive and adds it to the project.

    Gets the current active document from the docking manager.

    Gets all documents from the docking manager.

    Opens a file in WolvenKit .

    Exports an geometry_cache entry.

    Creates a new instance of the given class, and returns it converted to a JSON string.

    Returns the hashcode for a given string.

    Pauses the execution of the script for the specified amount of milliseconds.

    Returns the current wolvenkit version.

    Shows the settings dialog for the supplied data.

    No description available.

    No description available.

    No description available.

    No description available.

    No description available.

    No description available.

    Check if file exists in the game archives.

    Converts a YAML string to a JSON string.

    Converts a JSON string to a YAML string.

    No description available.

    SuspendFileWatcher

    Turn on/off updates to the project tree, useful for when making lots of changes to the project structure.

    SaveToProject

    Add the specified CR2WFile or IGameFile file to the project.

    SaveToRaw

    Save the specified text to the specified path in the raw folder.

    SaveToResources

    Save the specified text to the specified path in the resources folder.

    LoadFromResources

    Loads the content of a text file from resources.

    LoadGameFileFromProject

    Loads the specified game file from the project files rather than game archives.

    GetGameFile

    Gets the game file.

    Save

    Saves the document.

    Reload

    Reloads the document.

    Close

    Closes the document without saving.

    GetArchiveFiles

    Gets a list of the files available in the game archives Note to myself: Don't use IEnumerable

    GetFileFromBase

    DEPRECATED: Please use GetFileFromArchive(path, OpenAs.GameFile) Loads a file from the base archives using either a file path or hash.

    GameFileToJson

    Creates a json representation of the specifed game file.

    JsonToCR2W

    Creates a CR2W game file from a json.

    ChangeExtension

    Changes the extension of the provided string path.

    GetFileFromArchive

    Loads a file from the base archives using either a file path or hash.

    AddMenuItem

    No description available.

    suspend

    bool for if updates are suspended

    path

    The file to write to

    file

    CR2WFile or IGameFile to be saved

    path

    The file to write to

    content

    The string to write to the file

    path

    The file to write to

    content

    The string to write to the file

    path

    The relative path of the text file

    path

    The file to open for reading

    type

    The type of the object which is returned. Can be "cr2w" or "json"

    path

    The file to open for reading

    type

    The type of the object which is returned. Can be "cr2w" or "json"

    folderType

    string parameter folderType = "archive" or "raw"

    fileList

    —

    defaultSettings

    —

    blocking

    —

    path

    The path of the file to retrieve

    openAs

    The output format (OpenAs.GameFile, OpenAs.CR2W or OpenAs.Json)

    hash

    The hash of the file to retrieve

    openAs

    The output format (OpenAs.GameFile, OpenAs.CR2W or OpenAs.Json)

    path

    The path of the file to retrieve

    openAs

    The output format (OpenAs.GameFile, OpenAs.CR2W or OpenAs.Json)

    hash

    The hash of the file to retrieve

    openAs

    The output format (OpenAs.GameFile, OpenAs.CR2W or OpenAs.Json)

    path

    file path to check

    hash

    hash value to be checked

    path

    file path to check

    hash

    hash value to be checked

    filepath

    relative filepath to be checked

    filepath

    relative filepath to be deleted

    folderType

    project subfolder type (archive|raw|resources)

    path

    —

    path

    —

    key

    —

    text

    A string that specifies the text to display.

    caption

    A string that specifies the title bar caption to display.

    image

    A WMessageBoxImage value that specifies the icon to display.

    buttons

    A WMessageBoxButtons value that specifies which buttons to display.

    path

    Path of the game file

    path

    Path to the file

    gameFile

    The game file to open

    sectorHashStr

    Sector hash as string

    entryHashStr

    Entry hash as string

    className

    Name of the class

    data

    String to be hashed

    method

    Hash method to use. Can be "fnv1a64" or "default" (Uses the String objects built in hash function)

    milliseconds

    The number of milliseconds to sleep.

    data

    A JavaScript object containing data

    type

    The output type of the game file ("cr2w" or "json")

    force

    If force is true, any unsaved changes will be discarded

    path

    The path of the file to retrieve

    hash

    The hash of the file to retrieve

    gameFile

    The gameFile which should be converted

    json

    —

    path

    The path of the file to change

    extension

    —

    path

    The path of the file to retrieve

    openAs

    The output format (OpenAs.GameFile, OpenAs.CR2W or OpenAs.Json)

    hash

    The hash of the file to retrieve

    openAs

    The output format (OpenAs.GameFile, OpenAs.CR2W or OpenAs.Json)

    path

    file path to check

    hash

    hash value to be checked

    yamlText

    The YAML string to convert

    jsonText

    The JSON string to convert

    target

    —

    name

    —

    target

    —

    name

    —

    onClick

    —

    target

    —

    name

    —

    onClick

    —

    args

    —

    target

    —

    name

    —

    onClick

    —

    args

    —

    SuspendFileWatcher(suspend: bool) → void
    SaveToProject(path: string, file: object) → void
    SaveToRaw(path: string, content: string) → void
    SaveToResources(path: string, content: string) → void
    LoadFromResources(path: string) → ? string
    LoadGameFileFromProject(path: string, type: string) → ? object
    LoadRawJsonFromProject(path: string, type: string) → ? object
    GetProjectFiles(folderType: string) → List< string >
    ClearExportFileLookup() → void
    ExportFiles(fileList: IList, defaultSettings: ScriptObject? = null) → void
    GetFileFromProject(path: string, openAs: OpenAs) → ? object
    GetFileFromProject(hash: ulong, openAs: OpenAs) → ? object
    GetFile(path: string, openAs: OpenAs) → ? object
    GetFile(hash: ulong, openAs: OpenAs) → ? object
    FileExistsInProject(path: string) → bool
    FileExistsInProject(hash: ulong) → bool
    FileExists(path: string) → bool
    FileExists(hash: ulong) → bool
    FileExistsInRaw(filepath: string) → bool
    DeleteFile(filepath: string, folderType: string) → bool
    GetRecords() → IEnumerable
    GetFlats() → IEnumerable
    GetQueries() → IEnumerable
    GetGroupTags() → IEnumerable
    GetRecord(path: string) → ? string
    GetFlat(path: string) → ? string
    GetQuery(path: string) → IEnumerable
    GetGroupTag(path: string) → ? byte
    HasTDBID(path: string) → bool
    GetTDBIDPath(key: ulong) → ? string
    ShowMessageBox(text: string, caption: string, image: WMessageBoxImage, buttons: WMessageBoxButtons) → WMessageBoxResult
    Extract(path: string) → void
    GetActiveDocument() → ?  ScriptDocumentWrapper
    GetDocuments() → ? IList<  ScriptDocumentWrapper  >
    OpenDocument(path: string) → bool
    OpenDocument(gameFile: IGameFile) → void
    ExportGeometryCacheEntry(sectorHashStr: string, entryHashStr: string) → ? string
    CreateInstanceAsJSON(className: string) → ? object
    HashString(data: string, method: string) → ? ulong
    Sleep(milliseconds: int) → void
    ProgramVersion() → string
    ShowSettings(data: ScriptObject) → bool
    SaveAs(path: string, action: Action< string >) → void
    GetBaseFolder(folderType: string) → string?
    ParseExportSettings< T >(scriptSettingsObject: ScriptObject) → T
    GetGlobalExportArgs(settings: ScriptObject) → GlobalExportArgs
    ConvertTDBToPath(ids: List< TweakDBID >?) → List< string >
    ConvertTDBToJson(tdb: object?) → string?
    GetGameFile(type: string) → object?
    Save() → void
    Reload(force: bool) → bool
    Close() → void
    GetArchiveFiles() → IEnumerable
    GetFileFromBase(path: string) → ? IGameFile
    GetFileFromBase(hash: ulong) → ? IGameFile
    GameFileToJson(gameFile: IGameFile) → ? string
    JsonToCR2W(json: string) → ? CR2WFile
    ChangeExtension(path: string, extension: string) → string
    GetFileFromArchive(path: string, openAs: OpenAs) → ? object
    GetFileFromArchive(hash: ulong, openAs: OpenAs) → ? object
    FileExistsInArchive(path: string) → bool
    FileExistsInArchive(hash: ulong) → bool
    YamlToJson(yamlText: string) → string
    JsonToYaml(jsonText: string) → string
    ConvertGameFile(gameFile: IGameFile, openAs: OpenAs) → ? object
    AddMenuItem(target: string, name: string) → ScriptFunctionWrapper
    AddMenuItem(target: string, name: string, onClick: ScriptObject) → ScriptFunctionWrapper
    AddMenuItem(target: string, name: string, onClick: ScriptObject?, args: params object??[]) → ScriptFunctionWrapper
    AddMenuItem(target: ScriptFunctionWrapper, name: string, onClick: ScriptObject? = null, args: params object??[]) → ScriptFunctionWrapper
    LoadRawJsonFromProject
    GetProjectFiles
    ClearExportFileLookup
    ExportFiles
    GetFileFromProject
    GetFile
    FileExistsInProject
    FileExists
    FileExistsInRaw
    DeleteFile
    GetRecords
    GetFlats
    GetQueries
    GetGroupTags
    GetRecord
    GetFlat
    GetQuery
    GetGroupTag
    HasTDBID
    GetTDBIDPath
    ShowMessageBox
    Extract
    GetActiveDocument
    GetDocuments
    OpenDocument
    ExportGeometryCacheEntry
    CreateInstanceAsJSON
    HashString
    Sleep
    ProgramVersion
    ShowSettings
    SaveAs
    GetBaseFolder
    ParseExportSettings
    GetGlobalExportArgs
    ConvertTDBToPath
    ConvertTDBToJson
    FileExistsInArchive
    YamlToJson
    JsonToYaml
    ConvertGameFile
    GitHub release (latest by date)
    GitHub release (latest by date)
    here
    World Editing
    quickly change paths in projects
    Troubleshooting
    RHT: Hot Reload
    Launch parameters
    yellow wiki
    yellow wiki
    here
    here
    here
    here
    MLSetupBuilder
    MLSETUP Builder
    REDmod
    TweakXL
    RedHotTools
    the REDmod method
    Legacy: Analysing other mods with Wolvenkit Console
    Altering Appearances within Wolvenkit - Full Workflow
    Recolours and Refits
    NPV - V as custom NPC
    Adding new items
    Cheat Sheet: Hair
    Textures, Materials and Shaders
    Spawn Codes (BaseIDs/Hashes)
    Wolvenkit Blender IO Suite
    MLSETUP Builder
    Resource Patching: Mesh Appearances
    Wolvenkit Blender IO Suite
    RedHotTools
    The Cyberpunk 2077 Game Directory
    The Cyberpunk 2077 Game Directory
    Launch parameters
    Archive files Load Order
    _ArchiveXL_Netrunner_Variants.archive
    RedScript
    TweakXL
    Importing and exporting textures
    here
    Archive files Load Order
    here
    here
    RedHotTools
    gender suffix
    dynamic ArchiveXL appearances
    this tutorial
    REDMod
    normal map
    Cyberpunk 2077
    inkwidgets
    here
    MLSETUP Builder
    MLSETUP Builder
    ArchiveXL: dynamic materials
    Custompathing
    ArchiveXL: dynamic materials
    ItemAdditions: Dynamic Appearances
    Textures: Importing, editing, exporting
    the yellow wiki
    Wolvenkit Blender IO Suite
    Entity Import
    Wolvenkit Blender IO Suite
    WKit Blender Plugin: Import/Export
    WKit Blender Plugin: Import/Export
    Wolvenkit Blender IO Suite
    Wolvenkit Blender IO Suite
    Tweak
    material instances
    Mesh Appearance: Auto Expansion
    Diffuse/Albedo
    Roughness
    Normal
    Entities
    Meshes
    Configuration