Noita Wiki
Advertisement

Now that you have extracted the base game assets & data, you can get to work.

Mod locations

 * Noita/mods/
 * Under steamapps, for workshop stuff

Mod file structure

myAwesomeMod/
├── data/
│   └── enemies_gfx/
│       └── player.png
├── files/
│   └── my_custom_script.lua
├── init.lua
└── mod.xml

This is an example mod, that shows the typical file structure you should follow. Lets break it down a bit:

  • myAwesomeMod/: This is the root folder, the base path of your mod. Choose this carefully, as you will have to reference it all over the code later on. Note that this is not the visible "name" of the mod.
  • data/: This folder follows exactly the same structure as the Noita's data files that we extracted earlier. Use this ONLY when you want to override base assets.
  • enemies_gfx/: A folder that gathers together all enemy & friendly spritesheets
  • player.png: The player animation spritesheet (minä, the purple witch). Inside the data/ folder this is directly replacing the base game spritesheet when this mod is activated.
  • files/: This folder is for any and all custom assets/scripts/data you want to include in your mod, should be used when you don't want to directly replace assets (which is most of the time)
  • my_custom_script.lua: A custom script file, which could be doing literally anything or be called from anywhere. Try to name yours a bit better than this example.
  • init.lua: The starting point of your mod, includes hooks for post-/pre- world init, player spawn, etc. This is where you should probably start with a "Hello world"
  • mod.xml: The mod metadata definition file, includes the name, description and bunch of other settings.

Important and interesting files


Debugging

  • noita_dev.exe
  • most changes appear by starting a new game, some things might require a full restart
  • lua instructions in the noita modding folder
Advertisement