scrDbg is a script debugger for RAGE engine games.
It allows you to inspect, manipulate, and debug game scripts in real-time.

Source code is available here: https://github.com/ShinyWasabi/scrDbg

Supported Games:
- Grand Theft Auto IV: The Complete Edition
- Grand Theft Auto V (Legacy & Enhanced)

Planned Support:
- Max Payne 3
- Red Dead Redemption
- Red Dead Redemption 2

Features:
- View running scripts
- Pause scripts
- Kill scripts
- Export disassembly, strings, statics, globals, and natives
- Exception handling
- View functions
- View stack
  - View callstack
  - Edit stack frame (function args, locals, temps)
- View disassembly:
  - Jump to a raw address
  - Binary search  (pattern, hex, decimal, float, string)
  - NOP instructions
  - Apply custom patches
  - Generate patterns
  - View xrefs
  - Set breakpoints
- Logging
  - Log script frame times
  - Log function calls
  - Log native calls with type information
  - Log static and global writes
- Statics editor
- Globals editor

Usage:
1. Disable BattlEye from Rockstar Games Launcher for GTA V.
2. Launch the game.
3. Run scrDbg.exe.

Changelog:
3.0.0
- Added full support for Grand Theft Auto IV: The Complete Edition
- Added argument and return value type information for native call logs
- Added show elapsed time since thread creation for GTA V
- Changed function naming scheme from index-based to PC-based
- Various bug fixes and improvements
2.1.0
- Updated for game build 1013.20/3725
- Added editing support for stack frame temp variables
- Added logging support for script function calls
- Added new natives from game build 1013.17/3717
- Various bug fixes and improvements
2.0.0
- Added support for searching hexadecimal, decimal, float, and string values in the binary search
- Moved ScriptVM into scrDbg; it is now scrDbg.dll and injected into the game by scrDbg.exe
- Added a new Logs tab:
  - Log the duration of a single script frame (in ms)
  - Log native calls with their names, arguments, and return values
  - Log static and global writes
  - Logs can be filtered by a single script or all scripts
- Various bug fixes and improvements
1.3.0
- Added current function display and selected instruction description in the disassembly view
- Added view callstack and stackframe with editing support
- Added an option to make breakpoints pause the entire game or only the script
- Added tooltips for labels and buttons
- Various bug fixes and improvements
1.2.0
- Added an option to view xrefs for the selected address in the disassembly view
- Added export options for statics, globals, and natives
- Added a searchable function list showing name, range, length, and argument/local/return counts
1.1.0
- Added an option to export a script's disassembly to a file
- Added translation support for text labels in the disassembly view
- Added an option to export only text labels when exporting a script's string table
- Added support for displaying native names, hashes, and handlers in the disassembly view
1.0.0
- Initial release

Credits:
- maybegreat48 for External (https://github.com/maybegreat48/External).
- OldAgario for logo design (https://github.com/OldAgario).