This file contains instructions for debugging Noita's Lua scripts.
We assume that you have basic experience using a graphical debugger (e.g.
understand the concept of a breakpoint).
Please note that running the game with the -debug_lua parameter enables some lua
sandbox escape exploits, so you shouldn't do that when any untrusted mods are
enabled.
1) Download and install the Decoda IDE: https://unknownworlds.com/decoda/download/
2) Start Decoda
3) Select Project -> Settings
4) In the dialog set "Command" to point to your noita_dev.exe
5) Set "Command arguments" to -debug_lua
6) Set "Working directory" to point to the directory where noita_dev.exe is located
7) Select Debug -> Start debugging (or press F5)
8) Press F9 or click the bar on the left side of the source view to add/remove a
breakpoint on the current source line
Tips:
- In case you'd like to debug a lua file before it's been loaded by the game (and
auto-added to Project Explorer), drag and drop the file to Project explorer, open
the file and set breakpoints where needed, then press F5 to start debugging.
- Adding _G to the Watch window allows you to watch the entire state of a lua
context.
- Please note that Noita runs lua scripts inside multiple lua contexts.
Using luacheck to statically check lua scripts
---
1) Get a copy of luacheck.exe (https://github.com/luarocks/luacheck) and place it
into Noita/tools_modding. A precompiled 64-bit binary can be found here:
https://github.com/mpeterv/luacheck/releases/download/0.23.0/luacheck.exe
2) Open a command line and set your working directory to Noita/tools_modding
3) Run luacheck_all