{"version":1,"pages":[{"id":"HOg8zTlWx3oADkvZZg0h","title":"Scripting Cyberpunk","pathname":"/scripting-cyberpunk","siteSpaceId":"sitesp_JwKqo","description":"Welcome to script modding!","breadcrumbs":[{"label":"Introduction"}]},{"id":"9lGJwRNBK4zYhoVLu8Ls","title":"Resources","pathname":"/scripting-cyberpunk/introduction/resources","siteSpaceId":"sitesp_JwKqo","description":"A collection of helpful links and resources for scripting in general","breadcrumbs":[{"label":"Introduction"}]},{"id":"UfDdmIg0taGmJlHKBvJG","title":"Tools & Frameworks","pathname":"/scripting-cyberpunk/introduction/tools-and-frameworks","siteSpaceId":"sitesp_JwKqo","description":"Pages documenting information about various tools and frameworks","breadcrumbs":[{"label":"Introduction"}]},{"id":"I6VEQwhgM1bIy2ZKcTdM","title":"Codeware","pathname":"/scripting-cyberpunk/introduction/tools-and-frameworks/codeware","siteSpaceId":"sitesp_JwKqo","description":"why codeware is goated","breadcrumbs":[{"label":"Introduction"},{"label":"Tools & Frameworks"}]},{"id":"KCSEbTqf2t8s2kAmJ6RZ","title":"Community","pathname":"/scripting-cyberpunk/introduction/community","siteSpaceId":"sitesp_JwKqo","description":"Chat with modders and developers","breadcrumbs":[{"label":"Introduction"}]},{"id":"YuDbrOe2keZdJhoIYoii","title":"What is REDscript?","pathname":"/scripting-cyberpunk/redscript/what-is-redscript","siteSpaceId":"sitesp_JwKqo","description":"REDscript is a very cool language :^)","breadcrumbs":[{"label":"Redscript"}]},{"id":"qWV6Ev2MRhXj1mxbLpxc","title":"Resources","pathname":"/scripting-cyberpunk/redscript/resources","siteSpaceId":"sitesp_JwKqo","description":"A collection of helpful links and resources for Redscript","breadcrumbs":[{"label":"Redscript"}]},{"id":"WoULBldsKOmO5UfsrPgT","title":"Getting Started","pathname":"/scripting-cyberpunk/redscript/getting-started","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Redscript"}]},{"id":"N3epCGakhPDErTSvXwXV","title":"Setup","pathname":"/scripting-cyberpunk/redscript/getting-started/setup","siteSpaceId":"sitesp_JwKqo","description":"Preparations for REDscripting.","breadcrumbs":[{"label":"Redscript"},{"label":"Getting Started"}]},{"id":"BrY0NoOBnLA045V6glj0","title":"Setup for VSCode","pathname":"/scripting-cyberpunk/redscript/getting-started/setup/setup-for-vscode","siteSpaceId":"sitesp_JwKqo","description":"How to configure your setup","breadcrumbs":[{"label":"Redscript"},{"label":"Getting Started"},{"label":"Setup"}]},{"id":"E3Q2l2M4leL4EQbspWle","title":"Setup for JetBrains IDEs","pathname":"/scripting-cyberpunk/redscript/getting-started/setup/setup-for-jetbrains-ides","siteSpaceId":"sitesp_JwKqo","description":"This guide shows how to setup a JetBrains IDE to work with redscript files to enable features like syntax highlighting, auto-completion, etc.","breadcrumbs":[{"label":"Redscript"},{"label":"Getting Started"},{"label":"Setup"}]},{"id":"tJpJQqoA1eG9UaprbNQe","title":"How to start REDscripting","pathname":"/scripting-cyberpunk/redscript/getting-started/how-to-start-redscripting","siteSpaceId":"sitesp_JwKqo","description":"Downloaded and prepared my IDE to do some scripting, what now?","breadcrumbs":[{"label":"Redscript"},{"label":"Getting Started"}]},{"id":"SjmCkhkNk1Mrv5IiXukX","title":"REDscript in 2 minutes","pathname":"/scripting-cyberpunk/redscript/getting-started/how-to-start-redscripting/redscript-in-2-minutes","siteSpaceId":"sitesp_JwKqo","description":"Learn REDscript directly from REDscript code! Get inspired, feel the vibe","breadcrumbs":[{"label":"Redscript"},{"label":"Getting Started"},{"label":"How to start REDscripting"}]},{"id":"bJXOo8FOLcQ4AQ73V7TF","title":"How to create a hook","pathname":"/scripting-cyberpunk/redscript/getting-started/how-to-create-a-hook","siteSpaceId":"sitesp_JwKqo","description":"Examples of creating hooks","breadcrumbs":[{"label":"Redscript"},{"label":"Getting Started"}]},{"id":"MFrWML6gF24bkiTos7K2","title":"Language Reference","pathname":"/scripting-cyberpunk/redscript/language-reference","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Redscript"}]},{"id":"gDbmMn6wnhudcS8Adfdn","title":"Hook Annotations","pathname":"/scripting-cyberpunk/redscript/language-reference/hook-annotations","siteSpaceId":"sitesp_JwKqo","description":"Special keywords that you can use to change or extend the behavior of existing methods and classes in the base game.","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"}]},{"id":"T081mHiyz1XU0R52aSiW","title":"Data Types","pathname":"/scripting-cyberpunk/redscript/language-reference/native-types","siteSpaceId":"sitesp_JwKqo","description":"Built-in types available in the game runtime.","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"}]},{"id":"m3NxtgkNvxlP8jjmoj7z","title":"Strings","pathname":"/scripting-cyberpunk/redscript/language-reference/strings","siteSpaceId":"sitesp_JwKqo","description":"How to get shit done with strings","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"}]},{"id":"gaTtWSM329LJEbGl4m3P","title":"Intrinsics","pathname":"/scripting-cyberpunk/redscript/language-reference/intrinsics","siteSpaceId":"sitesp_JwKqo","description":"Intrinsics are low-level operations that are natively supported in REDscript.","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"}]},{"id":"dnvsh1p24g4Igf7ZF4QM","title":"Loops","pathname":"/scripting-cyberpunk/redscript/language-reference/loops","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"}]},{"id":"0upfcp9CR3YcvaxnEPvI","title":"Modules","pathname":"/scripting-cyberpunk/redscript/language-reference/modules","siteSpaceId":"sitesp_JwKqo","description":"Introduction to modules.","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"}]},{"id":"f4NB0b1sEjB5zadWPIGc","title":"Conditional compilation","pathname":"/scripting-cyberpunk/redscript/language-reference/modules/conditional-compilation","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"},{"label":"Modules"}]},{"id":"rOGQ3cyqKd3YnBdoC8DK","title":"Structure Names","pathname":"/scripting-cyberpunk/redscript/language-reference/structure-names","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"}]},{"id":"xux3hQ9GShE2pmsnTRYl","title":"Scriptables","pathname":"/scripting-cyberpunk/redscript/language-reference/scriptables","siteSpaceId":"sitesp_JwKqo","description":"How to run your code along with the game.","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"}]},{"id":"TRmcSa8PVpJj16gw77X8","title":"ScriptableSystem","pathname":"/scripting-cyberpunk/redscript/language-reference/scriptables/scriptablesystem","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"},{"label":"Scriptables"}]},{"id":"DnHRvJGkaRcaVqxmfDUw","title":"ScriptableService","pathname":"/scripting-cyberpunk/redscript/language-reference/scriptables/scriptableservice","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"},{"label":"Scriptables"}]},{"id":"rr8z39HZZTS7XijpZIno","title":"Persistence","pathname":"/scripting-cyberpunk/redscript/language-reference/persistence","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"}]},{"id":"zFkClAaDU4Iu29WUvFsS","title":"Configurable user hints","pathname":"/scripting-cyberpunk/redscript/language-reference/configurable-user-hints","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"}]},{"id":"vIqt2p9QBLSfVFpt6vwl","title":"Modifiers","pathname":"/scripting-cyberpunk/redscript/language-reference/modifiers","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"}]},{"id":"GSYU9jYjyg6zztH36Xes","title":"Utility functions","pathname":"/scripting-cyberpunk/redscript/language-reference/utility-functions","siteSpaceId":"sitesp_JwKqo","description":"Built-in functions available in the game runtime.","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"}]},{"id":"y2Wfn2qdDT4x4eGyu54L","title":"Math","pathname":"/scripting-cyberpunk/redscript/language-reference/utility-functions/math","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"},{"label":"Utility functions"}]},{"id":"wuRGDjx6Jgt3KeEEOCdi","title":"String Functions","pathname":"/scripting-cyberpunk/redscript/language-reference/utility-functions/string-functions","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"},{"label":"Utility functions"}]},{"id":"Rtton6frvsAqKgXfvo0K","title":"Random","pathname":"/scripting-cyberpunk/redscript/language-reference/utility-functions/random","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"},{"label":"Utility functions"}]},{"id":"ZHma3cqhkav49PLv71lA","title":"Utilities","pathname":"/scripting-cyberpunk/redscript/language-reference/utility-functions/utilities","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Redscript"},{"label":"Language Reference"},{"label":"Utility functions"}]},{"id":"vwBLVrDnnpjoVboEDwbW","title":"Common Patterns","pathname":"/scripting-cyberpunk/redscript/common-patterns","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Redscript"}]},{"id":"aFxU3OLy0Yd5cPaIzj7m","title":"Logging","pathname":"/scripting-cyberpunk/redscript/common-patterns/logging","siteSpaceId":"sitesp_JwKqo","description":"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.","breadcrumbs":[{"label":"Redscript"},{"label":"Common Patterns"}]},{"id":"Yxfbu0SZlPezeXV4HkAg","title":"Handling Player Life-Cycle Events","pathname":"/scripting-cyberpunk/redscript/common-patterns/handling-player-life-cycle-events","siteSpaceId":"sitesp_JwKqo","description":"How to register callbacks for when the player object is attached and detached","breadcrumbs":[{"label":"Redscript"},{"label":"Common Patterns"}]},{"id":"hZTT8QvQpgTOOe3po2tJ","title":"Safe downcasting","pathname":"/scripting-cyberpunk/redscript/common-patterns/safe-downcasting","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Redscript"},{"label":"Common Patterns"}]},{"id":"zEFtQt4HSF1YHbqoPqKB","title":"Class constructors","pathname":"/scripting-cyberpunk/redscript/common-patterns/class-constructors","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Redscript"},{"label":"Common Patterns"}]},{"id":"D3R1VLkT1dI0pD2PLshz","title":"Hash maps","pathname":"/scripting-cyberpunk/redscript/common-patterns/hash-maps","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Redscript"},{"label":"Common Patterns"}]},{"id":"eyF1nwY0cNgFOp6jXsmN","title":"Heterogeneous array literals","pathname":"/scripting-cyberpunk/redscript/common-patterns/heterogeneous-array-literals","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Redscript"},{"label":"Common Patterns"}]},{"id":"OVqlgpPKqEVx6KaYgU78","title":"DelaySystem and DelayCallback","pathname":"/scripting-cyberpunk/redscript/common-patterns/delaysystem-and-delaycallback","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Redscript"},{"label":"Common Patterns"}]},{"id":"j9HApcn0czabhWs6D7IV","title":"Generic callbacks","pathname":"/scripting-cyberpunk/redscript/common-patterns/generic-callbacks","siteSpaceId":"sitesp_JwKqo","description":"This guide will show you how you can declare a generic callback thanks to Codeware's reflection.","breadcrumbs":[{"label":"Redscript"},{"label":"Common Patterns"}]},{"id":"BsSXgKWOMguGzjNiyR2n","title":"Help","pathname":"/scripting-cyberpunk/redscript/help","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Redscript"}]},{"id":"mnnCSNkeNzafFcntSQed","title":"Troubleshooting","pathname":"/scripting-cyberpunk/redscript/help/troubleshooting","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Redscript"},{"label":"Help"}]},{"id":"kzkW3zj0fZWnq4AscU4b","title":"What is CET?","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/what-is-cet","siteSpaceId":"sitesp_JwKqo","description":"CET is a another very cool language/tool :^)","breadcrumbs":[{"label":"Cyber Engine Tweaks"}]},{"id":"93xSB2MUtkaK6DABqaVu","title":"Resources","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/resources","siteSpaceId":"sitesp_JwKqo","description":"A collection of helpful links and resources for CET","breadcrumbs":[{"label":"Cyber Engine Tweaks"}]},{"id":"vm4jjJcxGJqXnhCx66Yr","title":"Getting Started","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/first-steps","siteSpaceId":"sitesp_JwKqo","description":"Explaining how to create and run a custom mod","breadcrumbs":[{"label":"Cyber Engine Tweaks"}]},{"id":"wRfQuztx6TPCLOTKhfgx","title":"Mod Structure","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/first-steps/mod-structure","siteSpaceId":"sitesp_JwKqo","description":"Explaining how to create and run a custom mod","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Getting Started"}]},{"id":"5r6LyFI94cEJw2TKVMlP","title":"VS Code","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/first-steps/vs-code","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Getting Started"}]},{"id":"8g6GS4iYe7IBnzTAgVGd","title":"Logs & Debug","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/first-steps/logs-debug","siteSpaceId":"sitesp_JwKqo","description":"Explaining where to find logs file and write them","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Getting Started"}]},{"id":"k23TVCap2mJ2beyJwa9E","title":"Good Practices","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/first-steps/good-practices","siteSpaceId":"sitesp_JwKqo","description":"Codes good practices, pitfalls and tips","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Getting Started"}]},{"id":"4vjlPrdKS6auG2euS2D4","title":"Language Reference","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions","siteSpaceId":"sitesp_JwKqo","description":"An overview of CET-Exclusive functions","breadcrumbs":[{"label":"Cyber Engine Tweaks"}]},{"id":"rAzipUZ3vthOGmTu9OFL","title":"Events","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"}]},{"id":"qKj6R8kxrP73pem4dIAq","title":"onInit","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/oninit","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Events"}]},{"id":"uJy07zfpBmRvNEbSnrnL","title":"onUpdate","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/onupdate","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Events"}]},{"id":"qUsEBC4gHYiHUO4xdddc","title":"onDraw","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/ondraw","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Events"}]},{"id":"VZQDap4trY5NTkm8bS56","title":"onOverlayOpen","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/onoverlayopen","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Events"}]},{"id":"DfSR2ewfu4yMJ7aPUI18","title":"onOverlayClose","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/onoverlayclose","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Events"}]},{"id":"zGbRQAVhVTp6yPlf7W12","title":"onShutdown","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/onshutdown","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Events"}]},{"id":"G9q7OKPNTW9zBhYx8WB3","title":"onTweak","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/ontweak","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Events"}]},{"id":"9rCb9j1gkUx31zttk0no","title":"Hotkeys","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/hotkeys","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"}]},{"id":"L4Z8AKjfsiw6A30ODyHE","title":"RegisterHotkey","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/hotkeys/registerhotkey","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Hotkeys"}]},{"id":"Z8kQYJ8u54Yrgyyax7tc","title":"RegisterInput","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/hotkeys/registerinput","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Hotkeys"}]},{"id":"r1gNhzj1cLpmhErAGO0J","title":"Miscellaneous","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/misc","siteSpaceId":"sitesp_JwKqo","description":"Miscellaneous functions useful for debugging and getting special objects and info.","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"}]},{"id":"2t6CiKlfsUxsioQha5Vp","title":"Debug functions","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/misc/debug-functions","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Miscellaneous"}]},{"id":"XmvhYd1ebnTr6Ekj69Ld","title":"Getters functions","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/misc/getters-functions","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Miscellaneous"}]},{"id":"2dlDqPwgsIbe9QosfU5q","title":"Observe, Override, NewProxy","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/observers","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"}]},{"id":"kScvlwCzE9ze60QrRyZb","title":"Observe","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/observers/observe","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Observe, Override, NewProxy"}]},{"id":"Ufca7W41evR6tZHOF9qV","title":"Override","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/observers/override","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Observe, Override, NewProxy"}]},{"id":"AMbsDyMRpi06qhtK6MUR","title":"NewProxy","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/observers/newproxy","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Observe, Override, NewProxy"}]},{"id":"b0La2q3voPcgJzHbZqTe","title":"ImGui","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/ui-examples","siteSpaceId":"sitesp_JwKqo","description":"This page contains examples for creating UI for your mod using the built-in ImGui library.","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"}]},{"id":"A2DVfUPm07vKuYMN3O7g","title":"Helpful GUI Mods","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/ui-examples/helpful-gui-mods","siteSpaceId":"sitesp_JwKqo","description":"A list of mods that you may find helpful for making an ImGui window","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"ImGui"}]},{"id":"1iger0rzfm47Vt5k50Zk","title":"Utilities","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/utilities","siteSpaceId":"sitesp_JwKqo","description":"A collection of LUA scripting utilities to make your life easier","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"}]},{"id":"6SFwMSH0lJ51vUtZsB9B","title":"Debug","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/utilities/debug","siteSpaceId":"sitesp_JwKqo","description":"A debug helper class","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Utilities"}]},{"id":"LlEr4ac0qWfvClLqxZEQ","title":"Files","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/utilities/files","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Utilities"}]},{"id":"JYcCQ0P7yGewGZ2rDWGg","title":"Hooks","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/utilities/hooks","siteSpaceId":"sitesp_JwKqo","description":"A custom hooks system for your LUA script","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Utilities"}]},{"id":"Tcxa6njTVQBduSTSvXxs","title":"Tables","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/utilities/tables","siteSpaceId":"sitesp_JwKqo","description":"","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Utilities"}]},{"id":"VJ2KlBN60NvJ6VpS7UMK","title":"Async / waiting","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/utilities/async-waiting","siteSpaceId":"sitesp_JwKqo","description":"Do stuff later without blocking","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Language Reference"},{"label":"Utilities"}]},{"id":"e7nzLT7Tduuin8I04Irl","title":"Common Patterns","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/common-patterns","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Cyber Engine Tweaks"}]},{"id":"xDGgg8JDqtJMIio2PHUX","title":"Special Types","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/common-patterns/special-types","siteSpaceId":"sitesp_JwKqo","description":"Helper functions which let you construct internal data types.","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Common Patterns"}]},{"id":"AL15OK8gXmDUfj7CP6ID","title":"Scripting API","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/common-patterns/scripting-api","siteSpaceId":"sitesp_JwKqo","description":"Explaining how to create and run a custom mod","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Common Patterns"}]},{"id":"VUTbxFaqNh0wc54ma9af","title":"CET and Codeware","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/common-patterns/cet-and-codeware","siteSpaceId":"sitesp_JwKqo","description":"How to make the most of psiberx's script expansion framework","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Common Patterns"}]},{"id":"anJ72lcxRkdWfYyisxN3","title":"Help","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/help","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Cyber Engine Tweaks"}]},{"id":"XY2lfx8Ta3dmcfXcMwq9","title":"Troubleshooting","pathname":"/scripting-cyberpunk/cyber-engine-tweaks/help/troubleshooting","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Cyber Engine Tweaks"},{"label":"Help"}]},{"id":"hlaw1KhJ21SnBFrwCEkF","title":"REDScript To CET","pathname":"/scripting-cyberpunk/scripting/redscript-to-cet","siteSpaceId":"sitesp_JwKqo","description":"How to access custom defined structures from Redscript in CET","breadcrumbs":[{"label":"Scripting"}]},{"id":"z8Tq2FQ7feRgBIqQQl8e","title":"Dictionary","pathname":"/scripting-cyberpunk/scripting/dictionary","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"}]},{"id":"B0qAR9zDeneDtS85bkA6","title":"Things to hook","pathname":"/scripting-cyberpunk/scripting/dictionary/things-to-hook","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Dictionary"}]},{"id":"yOPW1BzNN9RngmmFEJKp","title":"Base Status Effects","pathname":"/scripting-cyberpunk/scripting/dictionary/base-status-effects","siteSpaceId":"sitesp_JwKqo","description":"Descriptions of effects that can be passed into certain functions such as Game.ApplyEffectOnNPC(), any function that takes effect as a parameter.","breadcrumbs":[{"label":"Scripting"},{"label":"Dictionary"}]},{"id":"ORsNMJ8FKZosocnkyTXX","title":"stringType","pathname":"/scripting-cyberpunk/scripting/dictionary/stringtype","siteSpaceId":"sitesp_JwKqo","description":"Description of string type to use in functions","breadcrumbs":[{"label":"Scripting"},{"label":"Dictionary"}]},{"id":"1sg2wGQiclrzjXZPWbVh","title":"TweakDB Records","pathname":"/scripting-cyberpunk/scripting/dictionary/tweakdb-records","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Dictionary"}]},{"id":"lfYwR8fbVORVO2RVXfiI","title":"Interesting Locations & Coordinates","pathname":"/scripting-cyberpunk/scripting/dictionary/interesting-locations-and-coordinates","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Dictionary"}]},{"id":"P9kHT3jepryGOZNEMAwn","title":"Game Systems","pathname":"/scripting-cyberpunk/scripting/game-systems","siteSpaceId":"sitesp_JwKqo","description":"Documentation regarding the various available in-game systems","breadcrumbs":[{"label":"Scripting"}]},{"id":"1cBU9a6xqMyBiVlrUrV2","title":"Events & Callbacks","pathname":"/scripting-cyberpunk/scripting/game-systems/events-and-callbacks","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"}]},{"id":"IBQVIkCrA0Kiu6SwfCur","title":"Custom redEvents","pathname":"/scripting-cyberpunk/scripting/game-systems/events-and-callbacks/custom-redevents","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"},{"label":"Events & Callbacks"}]},{"id":"qjrrhNH0SkKZgkBH7RRz","title":"Custom System Events","pathname":"/scripting-cyberpunk/scripting/game-systems/events-and-callbacks/custom-system-events","siteSpaceId":"sitesp_JwKqo","description":"How to have global callbacks","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"},{"label":"Events & Callbacks"}]},{"id":"dlSP2fGz9VWVyZjBI8Cy","title":"Journal","pathname":"/scripting-cyberpunk/scripting/game-systems/journal","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"}]},{"id":"2D2ZK3hfdxbUQRlzbxeh","title":"Listening to Journal Updates","pathname":"/scripting-cyberpunk/scripting/game-systems/journal/listening-to-journal-updates","siteSpaceId":"sitesp_JwKqo","description":"How to do something when a journal entry has met a specific state","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"},{"label":"Journal"}]},{"id":"k81UnWc76dSM5ndnBewU","title":"UI Scripting","pathname":"/scripting-cyberpunk/scripting/game-systems/ui-scripting","siteSpaceId":"sitesp_JwKqo","description":"Interacting with UI with scripting","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"}]},{"id":"zip39N2azOyeCDEYWKwd","title":".inkWidget Files","pathname":"/scripting-cyberpunk/scripting/game-systems/ui-scripting/.inkwidget-files","siteSpaceId":"sitesp_JwKqo","description":"A brief overview of .inkWidget files","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"},{"label":"UI Scripting"}]},{"id":"USf8NtCuSGPBcnhjWTgZ","title":"Ink Widgets","pathname":"/scripting-cyberpunk/scripting/game-systems/ui-scripting/ink-widgets","siteSpaceId":"sitesp_JwKqo","description":"A list of common ink widgets you'll come across when scripting UI","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"},{"label":"UI Scripting"}]},{"id":"d3ZOTam5MpBigGim7Pzw","title":"Ink Controllers","pathname":"/scripting-cyberpunk/scripting/game-systems/ui-scripting/ink-controllers","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"},{"label":"UI Scripting"}]},{"id":"2Z71ISvhO7lZuQHDkQtB","title":"Logging Widget Trees","pathname":"/scripting-cyberpunk/scripting/game-systems/ui-scripting/logging-widget-trees","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"},{"label":"UI Scripting"}]},{"id":"8HZpa670YYJddbrS6BEe","title":"InkWidgets Basics","pathname":"/scripting-cyberpunk/scripting/game-systems/ui-scripting/inkwidgets-basics","siteSpaceId":"sitesp_JwKqo","description":"Changing and creating the User Interface","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"},{"label":"UI Scripting"}]},{"id":"XThP8A2cvCI8pqqua4h6","title":"Guide to UI Basics","pathname":"/scripting-cyberpunk/scripting/game-systems/ui-scripting/guide-to-ui-basics","siteSpaceId":"sitesp_JwKqo","description":"A simple guide on how to get started with ink widgets","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"},{"label":"UI Scripting"}]},{"id":"tqqO4CwQKEvuU4bu7zOe","title":"UI Basics: Part 1 - Accessing Ink Widgets","pathname":"/scripting-cyberpunk/scripting/game-systems/ui-scripting/guide-to-ui-basics/ui-basics-part-1-accessing-ink-widgets","siteSpaceId":"sitesp_JwKqo","description":"How to get a reference to an ink widget","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"},{"label":"UI Scripting"},{"label":"Guide to UI Basics"}]},{"id":"8jicEM2AffmOiTneSnzs","title":"UI Basics: Part 2 - Modifying Ink Widgets","pathname":"/scripting-cyberpunk/scripting/game-systems/ui-scripting/guide-to-ui-basics/ui-basics-part-2-modifying-ink-widgets","siteSpaceId":"sitesp_JwKqo","description":"How to modify ink widgets with scripting","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"},{"label":"UI Scripting"},{"label":"Guide to UI Basics"}]},{"id":"NBQnWgpR4nNOrjuxjIfA","title":"UI Basics: Part 3 - Adding Ink Widgets","pathname":"/scripting-cyberpunk/scripting/game-systems/ui-scripting/guide-to-ui-basics/ui-basics-part-3-adding-ink-widgets","siteSpaceId":"sitesp_JwKqo","description":"How to create ink widgets through scripting","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"},{"label":"UI Scripting"},{"label":"Guide to UI Basics"}]},{"id":"iaPvxOqNza2TsCkSeDva","title":"UI Basics: Part 4 - Advanced Example","pathname":"/scripting-cyberpunk/scripting/game-systems/ui-scripting/guide-to-ui-basics/ui-basics-part-4-advanced-example","siteSpaceId":"sitesp_JwKqo","description":"How to create a dynamically updating widget","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"},{"label":"UI Scripting"},{"label":"Guide to UI Basics"}]},{"id":"NJ1XeYASAeLWSm6TLlr4","title":"TweakDB","pathname":"/scripting-cyberpunk/scripting/game-systems/tweakdb","siteSpaceId":"sitesp_JwKqo","description":"Methods for interacting with TweakDB, the game's internal data store.","breadcrumbs":[{"label":"Scripting"},{"label":"Game Systems"}]},{"id":"nI25xsrcGgI6SRSeqwHL","title":"Settings","pathname":"/scripting-cyberpunk/scripting/settings","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"}]},{"id":"kCgQRp36oFhip5f8wIix","title":"Mod Settings","pathname":"/scripting-cyberpunk/scripting/settings/mod-settings","siteSpaceId":"sitesp_JwKqo","description":"How to create settings for your Redscript mods","breadcrumbs":[{"label":"Scripting"},{"label":"Settings"}]},{"id":"i4o4OiHiuO00gC9CrrUG","title":"Native Settings UI","pathname":"/scripting-cyberpunk/scripting/settings/native-settings-ui","siteSpaceId":"sitesp_JwKqo","description":"How to create settings for your CET mods","breadcrumbs":[{"label":"Scripting"},{"label":"Settings"}]},{"id":"CpZlZNKdKMhyNY7dvqGF","title":"Snippets & Examples","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples","siteSpaceId":"sitesp_JwKqo","description":"Various snippets and examples on how to do stuff in Redscript and/or CET","breadcrumbs":[{"label":"Scripting"}]},{"id":"uFo8RlfHQjfUhhXmyyqS","title":"Camera","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/camera","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"}]},{"id":"QdjaZZgOBjin9ZIxYm9E","title":"AdjustTransformWithDurations","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/camera/adjusttransformwithdurations","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"Camera"}]},{"id":"KXxRspxVtkFRo3e50lea","title":"Entities","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/entities","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"}]},{"id":"PgMcQ8aMPVk1aBUlFh3l","title":"Entity manipulation","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/entities/entity-manipulation","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"Entities"}]},{"id":"cLduKvyy3UMfDlWKD66x","title":"Observing weapon hits","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/entities/observing-weapon-hits","siteSpaceId":"sitesp_JwKqo","description":"Example code for observing a weapon hit","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"Entities"}]},{"id":"wAqANVzs4d4lDnzyLpDr","title":"Vehicle system","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/entities/vehicle-system","siteSpaceId":"sitesp_JwKqo","description":"Cool stuff you can do with vehicles","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"Entities"}]},{"id":"AXewzdwAlR9HSPSiHgyc","title":"Weapons","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/entities/weapons","siteSpaceId":"sitesp_JwKqo","description":"How to do stuff with weapons, the Redscript way","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"Entities"}]},{"id":"x7koM45qchBLkx9glNNC","title":"Effects","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/effects","siteSpaceId":"sitesp_JwKqo","description":"Effect modding via script","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"}]},{"id":"ntxJbvX8VKEgAxyIYWMq","title":"Registering new effects","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/effects/registering-new-effects","siteSpaceId":"sitesp_JwKqo","description":"This required Codeware and Redscript.","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"Effects"}]},{"id":"BV5dI7rTJBN2M2wBUsJy","title":"Game Systems","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/game-systems","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"}]},{"id":"LDnjwf269l7BtckTwhgH","title":"Sleeping and Skipping Time","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/game-systems/sleeping-and-skipping-time","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"Game Systems"}]},{"id":"frgrNoQJ5eZmCC3Rk1sC","title":"Menus","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/menus","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"}]},{"id":"FrdnMJaE4NDEXbbde8kD","title":"Menu and Credits","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/menus/menu-and-credits","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"Menus"}]},{"id":"N7rkJlyfeILCXTz066ZS","title":"inkISystemRequestsHandler","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/menus/inkisystemrequestshandler","siteSpaceId":"sitesp_JwKqo","description":"Handling game system functions","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"Menus"}]},{"id":"CJ3UlyS5devvcBo2BOeu","title":"Player","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/player","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"}]},{"id":"BrPzm5j5hsqoQJqccoVv","title":"Giving An Item","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/player/giving-an-item","siteSpaceId":"sitesp_JwKqo","description":"How to give an item to the player","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"Player"}]},{"id":"fcssOtRmmJpTJ1ZXkqvW","title":"How To Teleport","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/player/teleportation-locations","siteSpaceId":"sitesp_JwKqo","description":"How to teleport V","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"Player"}]},{"id":"GMIyIJhpOfsV8NRwcVqE","title":"Inventory Listener","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/player/inventory-listener","siteSpaceId":"sitesp_JwKqo","description":"How to setup a listener that's called whenever an item is added to the player's inventory","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"Player"}]},{"id":"jiubywOIA5CuLwNiITjO","title":"User Interface","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/user-interface","siteSpaceId":"sitesp_JwKqo","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"}]},{"id":"LKizVccIt3hXPxxep8YH","title":"Simple Screen Message","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/user-interface/simple-screen-message","siteSpaceId":"sitesp_JwKqo","description":"Show a simple message popup to the player.","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"User Interface"}]},{"id":"0wCFCPy7otfmGpgag9Vw","title":"Notification Prompts","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/user-interface/notification-prompts","siteSpaceId":"sitesp_JwKqo","description":"How to use simple notification prompts with different types of responses to ask for.","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"User Interface"}]},{"id":"Dj4UYvT3NPsceH0hzOB6","title":"Custom Popups","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/user-interface/custom-popups","siteSpaceId":"sitesp_JwKqo","description":"How to make custom and in-depth popups with Codeware","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"User Interface"}]},{"id":"kf3FjCGFgNg4JG4p8imH","title":"Adding Character Creator Options","pathname":"/scripting-cyberpunk/scripting/snippets-and-examples/user-interface/adding-character-creator-options","siteSpaceId":"sitesp_JwKqo","description":"How to add a custom option to the character creator.","breadcrumbs":[{"label":"Scripting"},{"label":"Snippets & Examples"},{"label":"User Interface"}]}]}