> For the complete documentation index, see [llms.txt](https://wiki.redmodding.org/scripting-cyberpunk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk.md).

# Scripting Cyberpunk

This wiki hosts common information on scripting with Cyberpunk independent of implementation.

You have four options to write scripts for Cyberpunk:

* [REDmod](https://wiki.redmodding.org/cyberpunk-2077-modding/for-mod-creators-theory/modding-tools/redmod)
* [Redscript](https://wiki.redmodding.org/redscript/) (Swift-like)
* [Cyber Engine Tweaks](https://wiki.redmodding.org/cyber-engine-tweaks/) (Lua)
* [RED4ext](https://docs.red4ext.com/) (C++)

You can also develop C# extensions for [RED4ext](https://docs.red4ext.com/).

## How does stuff work in Cyberpunk?

### The executable

Most of the game is implemented in C++ and only accessible through the game's executable (.exe file). Fortunately, [RED4ext](https://docs.red4ext.com/) and [Cyber Engine Tweaks](https://wiki.redmodding.org/cyber-engine-tweaks/) hook into that, and [Codeware](https://www.nexusmods.com/cyberpunk2077/mods/7780) provides and extends a common interface for both.

The hooks are dependent on **binary addresses**, which is why the [core mods](https://wiki.redmodding.org/cyberpunk-2077-modding/for-mod-creators-theory/core-mods-explained) are version dependent (and why cracked games don't mod well).

### Scripts

Scripts are precompiled into `r6/cache/final.redscripts` . As the file extension suggests, they can be modded with redscript.

### The tweak database

Any **properties** of game items and characters are defined in the tweak database. You can learn more about it under [Cyberpunk 2077 Modding](https://wiki.redmodding.org/cyberpunk-2077-modding/) -> [Tweaks](https://wiki.redmodding.org/cyberpunk-2077-modding/for-mod-creators-theory/tweaks)
