> 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/redscript/common-patterns.md).

# Common Patterns

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