# Scripting Cyberpunk

## Scripting Cyberpunk

- [Scripting Cyberpunk](https://wiki.redmodding.org/scripting-cyberpunk/introduction/scripting-cyberpunk.md): Welcome to script modding!
- [Resources](https://wiki.redmodding.org/scripting-cyberpunk/introduction/resources.md): A collection of helpful links and resources for scripting in general
- [Tools & Frameworks](https://wiki.redmodding.org/scripting-cyberpunk/introduction/tools-and-frameworks.md): Pages documenting information about various tools and frameworks
- [Codeware](https://wiki.redmodding.org/scripting-cyberpunk/introduction/tools-and-frameworks/codeware.md): why codeware is goated
- [Community](https://wiki.redmodding.org/scripting-cyberpunk/introduction/community.md): Chat with modders and developers
- [What is REDscript?](https://wiki.redmodding.org/scripting-cyberpunk/redscript/what-is-redscript.md): REDscript is a very cool language :^)
- [Resources](https://wiki.redmodding.org/scripting-cyberpunk/redscript/resources.md): A collection of helpful links and resources for Redscript
- [Getting Started](https://wiki.redmodding.org/scripting-cyberpunk/redscript/getting-started.md)
- [Setup](https://wiki.redmodding.org/scripting-cyberpunk/redscript/getting-started/setup.md): Preparations for REDscripting.
- [Setup for VSCode](https://wiki.redmodding.org/scripting-cyberpunk/redscript/getting-started/setup/setup-for-vscode.md): How to configure your setup
- [Setup for JetBrains IDEs](https://wiki.redmodding.org/scripting-cyberpunk/redscript/getting-started/setup/setup-for-jetbrains-ides.md): This guide shows how to setup a JetBrains IDE to work with redscript files to enable features like syntax highlighting, auto-completion, etc.
- [How to start REDscripting](https://wiki.redmodding.org/scripting-cyberpunk/redscript/getting-started/how-to-start-redscripting.md): Downloaded and prepared my IDE to do some scripting, what now?
- [REDscript in 2 minutes](https://wiki.redmodding.org/scripting-cyberpunk/redscript/getting-started/how-to-start-redscripting/redscript-in-2-minutes.md): Learn REDscript directly from REDscript code! Get inspired, feel the vibe
- [How to create a hook](https://wiki.redmodding.org/scripting-cyberpunk/redscript/getting-started/how-to-create-a-hook.md): Examples of creating hooks
- [Language Reference](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference.md)
- [Hook Annotations](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/hook-annotations.md): Special keywords that you can use to change or extend the behavior of existing methods and classes in the base game.
- [Data Types](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/native-types.md): Built-in types available in the game runtime.
- [Strings](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/strings.md): How to get shit done with strings
- [Intrinsics](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/intrinsics.md): Intrinsics are low-level operations that are natively supported in REDscript.
- [Loops](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/loops.md)
- [Modules](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/modules.md): Introduction to modules.
- [Conditional compilation](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/modules/conditional-compilation.md)
- [Structure Names](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/structure-names.md)
- [Scriptables](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/scriptables.md): How to run your code along with the game.
- [ScriptableSystem](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/scriptables/scriptablesystem.md)
- [ScriptableService](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/scriptables/scriptableservice.md)
- [Persistence](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/persistence.md)
- [Configurable user hints](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/configurable-user-hints.md)
- [Modifiers](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/modifiers.md)
- [Utility functions](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/utility-functions.md): Built-in functions available in the game runtime.
- [Math](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/utility-functions/math.md)
- [String Functions](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/utility-functions/string-functions.md)
- [Random](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/utility-functions/random.md)
- [Utilities](https://wiki.redmodding.org/scripting-cyberpunk/redscript/language-reference/utility-functions/utilities.md)
- [Common Patterns](https://wiki.redmodding.org/scripting-cyberpunk/redscript/common-patterns.md)
- [Logging](https://wiki.redmodding.org/scripting-cyberpunk/redscript/common-patterns/logging.md): This guide describes how you can write logs while debugging your scripts. It can be helpful too to get feedback from players when they find bugs.
- [Handling Player Life-Cycle Events](https://wiki.redmodding.org/scripting-cyberpunk/redscript/common-patterns/handling-player-life-cycle-events.md): How to register callbacks for when the player object is attached and detached
- [Safe downcasting](https://wiki.redmodding.org/scripting-cyberpunk/redscript/common-patterns/safe-downcasting.md)
- [Class constructors](https://wiki.redmodding.org/scripting-cyberpunk/redscript/common-patterns/class-constructors.md)
- [Hash maps](https://wiki.redmodding.org/scripting-cyberpunk/redscript/common-patterns/hash-maps.md)
- [Heterogeneous array literals](https://wiki.redmodding.org/scripting-cyberpunk/redscript/common-patterns/heterogeneous-array-literals.md)
- [DelaySystem and DelayCallback](https://wiki.redmodding.org/scripting-cyberpunk/redscript/common-patterns/delaysystem-and-delaycallback.md)
- [Generic callbacks](https://wiki.redmodding.org/scripting-cyberpunk/redscript/common-patterns/generic-callbacks.md): This guide will show you how you can declare a generic callback thanks to Codeware's reflection.
- [Help](https://wiki.redmodding.org/scripting-cyberpunk/redscript/help.md)
- [Troubleshooting](https://wiki.redmodding.org/scripting-cyberpunk/redscript/help/troubleshooting.md)
- [What is CET?](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/what-is-cet.md): CET is a another very cool language/tool :^)
- [Resources](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/resources.md): A collection of helpful links and resources for CET
- [Getting Started](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/first-steps.md): Explaining how to create and run a custom mod
- [Mod Structure](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/first-steps/mod-structure.md): Explaining how to create and run a custom mod
- [VS Code](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/first-steps/vs-code.md)
- [Logs & Debug](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/first-steps/logs-debug.md): Explaining where to find logs file and write them
- [Good Practices](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/first-steps/good-practices.md): Codes good practices, pitfalls and tips
- [Language Reference](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions.md): An overview of CET-Exclusive functions
- [Events](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events.md)
- [onInit](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/oninit.md)
- [onUpdate](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/onupdate.md)
- [onDraw](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/ondraw.md)
- [onOverlayOpen](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/onoverlayopen.md)
- [onOverlayClose](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/onoverlayclose.md)
- [onShutdown](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/onshutdown.md)
- [onTweak](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/ontweak.md)
- [Hotkeys](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/hotkeys.md)
- [RegisterHotkey](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/hotkeys/registerhotkey.md)
- [RegisterInput](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/hotkeys/registerinput.md)
- [Miscellaneous](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/misc.md): Miscellaneous functions useful for debugging and getting special objects and info.
- [Debug functions](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/misc/debug-functions.md)
- [Getters functions](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/misc/getters-functions.md)
- [Observe, Override, NewProxy](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/observers.md)
- [Observe](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/observers/observe.md)
- [Override](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/observers/override.md)
- [NewProxy](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/observers/newproxy.md)
- [ImGui](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/ui-examples.md): This page contains examples for creating UI for your mod using the built-in ImGui library.
- [Helpful GUI Mods](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/ui-examples/helpful-gui-mods.md): A list of mods that you may find helpful for making an ImGui window
- [Utilities](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/utilities.md): A collection of LUA scripting utilities to make your life easier
- [Debug](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/utilities/debug.md): A debug helper class
- [Files](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/utilities/files.md)
- [Hooks](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/utilities/hooks.md): A custom hooks system for your LUA script
- [Tables](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/utilities/tables.md)
- [Async / waiting](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/utilities/async-waiting.md): Do stuff later without blocking
- [Common Patterns](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/common-patterns.md)
- [Special Types](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/common-patterns/special-types.md): Helper functions which let you construct internal data types.
- [Scripting API](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/common-patterns/scripting-api.md): Explaining how to create and run a custom mod
- [CET and Codeware](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/common-patterns/cet-and-codeware.md): How to make the most of psiberx's script expansion framework
- [Help](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/help.md)
- [Troubleshooting](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/help/troubleshooting.md)
- [REDScript To CET](https://wiki.redmodding.org/scripting-cyberpunk/scripting/redscript-to-cet.md): How to access custom defined structures from Redscript in CET
- [Dictionary](https://wiki.redmodding.org/scripting-cyberpunk/scripting/dictionary.md)
- [Things to hook](https://wiki.redmodding.org/scripting-cyberpunk/scripting/dictionary/things-to-hook.md)
- [Base Status Effects](https://wiki.redmodding.org/scripting-cyberpunk/scripting/dictionary/base-status-effects.md): Descriptions of effects that can be passed into certain functions such as Game.ApplyEffectOnNPC(), any function that takes effect as a parameter.
- [stringType](https://wiki.redmodding.org/scripting-cyberpunk/scripting/dictionary/stringtype.md): Description of string type to use in functions
- [TweakDB Records](https://wiki.redmodding.org/scripting-cyberpunk/scripting/dictionary/tweakdb-records.md)
- [Interesting Locations & Coordinates](https://wiki.redmodding.org/scripting-cyberpunk/scripting/dictionary/interesting-locations-and-coordinates.md)
- [Game Systems](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems.md): Documentation regarding the various available in-game systems
- [Events & Callbacks](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/events-and-callbacks.md)
- [Custom redEvents](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/events-and-callbacks/custom-redevents.md)
- [Custom System Events](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/events-and-callbacks/custom-system-events.md): How to have global callbacks
- [Journal](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/journal.md)
- [Listening to Journal Updates](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/journal/listening-to-journal-updates.md): How to do something when a journal entry has met a specific state
- [UI Scripting](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/ui-scripting.md): Interacting with UI with scripting
- [.inkWidget Files](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/ui-scripting/.inkwidget-files.md): A brief overview of .inkWidget files
- [Ink Widgets](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/ui-scripting/ink-widgets.md): A list of common ink widgets you'll come across when scripting UI
- [Ink Controllers](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/ui-scripting/ink-controllers.md)
- [Logging Widget Trees](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/ui-scripting/logging-widget-trees.md)
- [InkWidgets Basics](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/ui-scripting/inkwidgets-basics.md): Changing and creating the User Interface
- [Guide to UI Basics](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/ui-scripting/guide-to-ui-basics.md): A simple guide on how to get started with ink widgets
- [UI Basics: Part 1 - Accessing Ink Widgets](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/ui-scripting/guide-to-ui-basics/ui-basics-part-1-accessing-ink-widgets.md): How to get a reference to an ink widget
- [UI Basics: Part 2 - Modifying Ink Widgets](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/ui-scripting/guide-to-ui-basics/ui-basics-part-2-modifying-ink-widgets.md): How to modify ink widgets with scripting
- [UI Basics: Part 3 - Adding Ink Widgets](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/ui-scripting/guide-to-ui-basics/ui-basics-part-3-adding-ink-widgets.md): How to create ink widgets through scripting
- [UI Basics: Part 4 - Advanced Example](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/ui-scripting/guide-to-ui-basics/ui-basics-part-4-advanced-example.md): How to create a dynamically updating widget
- [TweakDB](https://wiki.redmodding.org/scripting-cyberpunk/scripting/game-systems/tweakdb.md): Methods for interacting with TweakDB, the game's internal data store.
- [Settings](https://wiki.redmodding.org/scripting-cyberpunk/scripting/settings.md)
- [Mod Settings](https://wiki.redmodding.org/scripting-cyberpunk/scripting/settings/mod-settings.md): How to create settings for your Redscript mods
- [Native Settings UI](https://wiki.redmodding.org/scripting-cyberpunk/scripting/settings/native-settings-ui.md): How to create settings for your CET mods
- [Snippets & Examples](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples.md): Various snippets and examples on how to do stuff in Redscript and/or CET
- [Camera](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/camera.md)
- [AdjustTransformWithDurations](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/camera/adjusttransformwithdurations.md)
- [Entities](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/entities.md)
- [Entity manipulation](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/entities/entity-manipulation.md)
- [Observing weapon hits](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/entities/observing-weapon-hits.md): Example code for observing a weapon hit
- [Vehicle system](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/entities/vehicle-system.md): Cool stuff you can do with vehicles
- [Weapons](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/entities/weapons.md): How to do stuff with weapons, the Redscript way
- [Effects](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/effects.md): Effect modding via script
- [Registering new effects](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/effects/registering-new-effects.md): This required Codeware and Redscript.
- [Game Systems](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/game-systems.md)
- [Sleeping and Skipping Time](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/game-systems/sleeping-and-skipping-time.md)
- [Menus](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/menus.md)
- [Menu and Credits](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/menus/menu-and-credits.md)
- [inkISystemRequestsHandler](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/menus/inkisystemrequestshandler.md): Handling game system functions
- [Player](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/player.md)
- [Giving An Item](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/player/giving-an-item.md): How to give an item to the player
- [How To Teleport](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/player/teleportation-locations.md): How to teleport V
- [Inventory Listener](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/player/inventory-listener.md): How to setup a listener that's called whenever an item is added to the player's inventory
- [User Interface](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/user-interface.md)
- [Simple Screen Message](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/user-interface/simple-screen-message.md): Show a simple message popup to the player.
- [Notification Prompts](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/user-interface/notification-prompts.md): How to use simple notification prompts with different types of responses to ask for.
- [Custom Popups](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/user-interface/custom-popups.md): How to make custom and in-depth popups with Codeware
- [Adding Character Creator Options](https://wiki.redmodding.org/scripting-cyberpunk/scripting/snippets-and-examples/user-interface/adding-character-creator-options.md): How to add a custom option to the character creator.
- [PLEASE READ ME](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/please-read-me.md)
- [Codeware](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/codeware.md)
- [What is Codeware?](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/codeware/what-is-codeware.md)
- [Entity Manipulation](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/codeware/entity-manipulation.md)
- [Mod Settings](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/mod-settings.md)
- [Introduction](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/mod-settings/introduction.md)
- [Usage](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/mod-settings/usage.md): This guide will describe you the core principles to make your mod compatible with Mod Settings.
- [What's Where?](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/whats-where.md)
- [inkISystemRequestsHandler](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/whats-where/inkisystemrequestshandler.md): Handling game system functions
- [Menu and Credits](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/whats-where/menu-and-credits.md)
- [Using Scripts For...](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/using-scripts-for....md)
- [Effects](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/using-scripts-for.../effects.md): Effect modding via script
- [Registering new effects](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/using-scripts-for.../effects/registering-new-effects.md): This required Codeware and Redscript.
- [InkWidgets](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/using-scripts-for.../inkwidgets.md): Changing and creating the User Interface
- [Adding character creator options](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/using-scripts-for.../inkwidgets/adding-character-creator-options.md): How to add a custom option to the character creator.
- [Observables](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/observables.md)
- [Quests](https://wiki.redmodding.org/scripting-cyberpunk/scripting-cyberpunk/observables/quests.md): Reacting to quest states by script
