githubEdit

⚒️Core Mods explained

A list of modding frameworks and links to their documentation

circle-info

You're probably used to the term Core Mod from other games. However, the technical term for these kinds of mod is aframework, which is what they're usually referred to by Cyberpunk modders.

circle-check

TL;DR: What do I download?

For an explanation of what the individual frameworks do, see below. Entries in italics are optional.

Redscriptarrow-up-right

Red4extarrow-up-right – ArchiveXLarrow-up-rightTweakXLarrow-up-rightEquipmentExarrow-up-right – Codewarearrow-up-right

Cyber Engine Tweaksarrow-up-right

What is a framework?

While the game natively supports mods, this would have had us limited to replacing already existing items, but we wanted flying cars. So a bunch of brilliant people drilled deep into the code of Cyberpunk 2077 and created a bunch of tools that let us do more.

The most prominent example of a framework mod is the Skyrim Script Extender — fortunately, Cyberpunk 2077 is rather more stable.

triangle-exclamation

The first-level frameworks (CET, Redscript and Red4ext) allow access to the game's functions and types, which are known through reverse engineering. The second-level frameworks (e.g. ArchiveXL, TweakXL, Codeware, SystemEx) make use of these to offer further methods of interaction. For details, see below.

Redscript

Redscriptchevron-right

Redscript (Nexusarrow-up-right | GitHubarrow-up-right) is an open-source programming language and toolkit, natively working with Cyberpunk 2077's scripting runtime. Essentially, it is extending the already-existing Redmod scripting system by including data from the decompiled game script blob final.redscripts.

It allows additions and edits of the game's high-level logic and functions, including additions through Red4ext. The scripts are compiled into r6/cache/modded and are preloaded together with the rest of the game's cache.

Some examples for existing mod include, but are not limited to

  • changing combat balance

  • editing NPC behaviour

  • altering the interface

  • adding or removing UI widgets

Cyber Engine Tweaks (CET)

Cyber Engine Tweakschevron-right

Cyber Engine Tweaks (Nexus arrow-up-right| GitHubarrow-up-right) is a first-level framework with a LUA wrapper, which will let you access anything exposed via RTTI by RedScript and Red4ext. On top of that, it lets you bind hotkeys for custom functions and interact with the game's Tweak database at runtime.

circle-info

Additions made to the tweak database via CET are not persistent; you will need TweakXL for that.

Lots of mods and scripts run on top of CET, tweaking the game in various ways from changing the weather to adding a wardrobe system before CDPR added a wardrobe system.

The perhaps most prominent example is Appearance Menu Mod (wiki | Nexusarrow-up-right), which turns Cyberpunk 2077 into The Sims: Capitalist Dystopia.

RED4ext

RED4ext Plugin Devchevron-right

RED4ext (Nexus arrow-up-right| GitHubarrow-up-right) is Cyberpunk 2077's equivalent to Skyrim Script Extender. Aside from being required for many mods, it is a perquisite for other core dependencies such as ArchiveXL, TweakXL, and Equipment-EX.

circle-exclamation

Rather than being added to the game's cache for preloading, Red4ext reads and modifies the game's memory at runtime. This happens via RTTI, which is the game engine's original system for scripting and serialization.

chevron-rightTechnical deteshashtag

Red4ext and its plugins are written in C++. The framework itself has two components:

The shared library exposes types, functions and classes via RTTI to make them available in-game. This contains reverse-engineered information from redscript.finals as well as code defined by its plugins.

The plugin loader will activate .dll files from red4ext/plugins (such as ArchiveXL, TweakXL...). They can be considered standalone programs that are activated through Red4ext and unlock other areas of Cyberpunk's code. This contains essentials like

  • game version checking

  • logging

  • hooking

As a modder, you can only use types and functions that are already registered via RTTI.

ArchiveXL

ArchiveXL (Nexusarrow-up-right | GitHubarrow-up-right) allows us to load custom resources into Cyberpunk 2077. Working under the hood, it is the essential tool to add rather than replace.

For ArchiveXL-specific documentation, check the corresponding sub-page.

TweakXL

TweakXL (Nexusarrow-up-right | GitHubarrow-up-right) is an extension of RED4ext to modify the TweakDB by writing script extensions in both YAML and RED format. By loading files from r6/tweaks, it can alter predefined records in Cyberpunk's database, changing properties such as weapon damage or the number of hitpoints.

By interacting with REDEngine 4's database, it lets you view and alter information about game entities and behaviour in real time (accessible via Cyber Engine Tweak's Tweak Browser tab).

Equipment-EX

Equipment-EX (Nexusarrow-up-right | GitHubarrow-up-right) makes use of every single one of the frameworks mentioned above to overhaul CDPR's wardrobe system. Extending it from 6 slots to more than 30, it lets you save an unlimited number of outfits and supports modded items.

Codeware

Codeware (Nexusarrow-up-right | GitHubarrow-up-right) is not strictly speaking a framework but a library, exposing Red4ext's extra functionality to redscript (keyword @native). By defining utility functions and -classes, the mod enforces best practices, reducing the likelihood of crashes.

For example, while you could always see an NPC's appearances in Wolvenkit, it was not possible to access that information at runtime.

Log files for the frameworks

Logs: Cyber Engine Tweaks

This will tell you what mods and scripts CET is loading, and if there have been any errors in the process.

If all goes well, it will look like this:

Logs: Redscript

It will tell you which .reds files it has been loading, and if any of them failed.

circle-info

Please note the warning in the log:

  • If the mod is working, ignore it

  • If the mod isn't working, this tells you what to check. You can't have mods installed twice!

If all goes well, it will look like this:

Logs: RED4ext

It will tell you which of the framework DLLs it has been loading.

If all goes well, it will look like this (version numbers are fake):

Logs: ArchiveXL

Tells you which .xl files have been found and processed and what it has been adding into the game files upon startup.

If it loads correctly, you will see something like this:

circle-info

Note that the example contains a bunch of warnings. That indicates problems with the modded files (which I ignore, since they are working),

Logs: TweakXL

Tells you which tweaks have been read and processed, pointing out errors and warnings in the process. If your custom item additions don't work, you might find a hint here.

If it loads correctly, you will see something like this:

Last updated