Noita Wiki
Ryysst (talk | contribs)
No edit summary
Tag: Visual edit
Ryysst (talk | contribs)
(Add a WIP "diving deeper" section, base to build upon)
Tag: Visual edit
Line 38: Line 38:
 
**https://modworkshop.net/game/noita
 
**https://modworkshop.net/game/noita
   
  +
<br />
==Resources==
 
   
  +
=== Diving deeper [WIP] ===
* [[ID|List of spell and perk IDs]]
 
  +
* [[:Category:Lua global functions|List of Lua global functions]]
 
  +
* [[Modding basics|Modding basics, paths & best practices]]
* [[Enemy Information Table|Enemy Information Table with ID listing]]
 
  +
* [[Modding: Making a custom wand]]
  +
** For now you can start with [https://github.com/TheHorscht/EZWand this awesome helper (by Horscht)]
  +
* [[Modding: Making a custom enemy]]
  +
* [[Modding: Sounds]]
  +
* [[Modding: Making a custom environment]]
  +
** [https://gist.github.com/TheHorscht/1befe590a5777d82cbcfab01dd397a4a Great guide to biomes (by Horscht)]
  +
** [https://thehorscht.github.io/NoitaWangTiler/ Test how your wang tiles will look like (by Horscht)]
   
 
== Help with modding ==
 
== Help with modding ==
Line 51: Line 58:
 
* [[How to install mods]]
 
* [[How to install mods]]
   
==Other==
+
==Other resources==
  +
If there's anything to note that cannot be made into a proper page or you'd like noted, dump it on this page: [[Modding Miscellaneous]]
 
 
*[[ID|List of spell and perk IDs]]
 
*[[:Category:Lua global functions|List of Lua global functions]]
 
*[[Enemy Information Table|Enemy Information Table with ID listing]]
   
 
[[Category:Modding]]
 
[[Category:Modding]]

Revision as of 21:01, 4 June 2020

Modding Noita is quite straightforward and fun, but can still hide many implementation details in itself. These pages hope to lower the barrier of entry and address any common pitfalls.

All the tools you need to get started are:

  1. a proper text editor (eg. VSCode, Notepad++, Sublime, Vim)
  2. a proper image editor (eg. Aseprite, Gimp, Paint.net, Photoshop)

Noita gameplay logic is mostly implemented in Lua and XML, as an Entity Component system (ECS). Every separate "thing" in the game (enemies, bullets, wands, items, even the player) are just entities, composed of different components. A good understanding of Lua is recommended, but a lot can be done without any programming knowledge at all, simply by editing the entity XMLs or associated spritesheets.

Getting Started

First step before moving on, is to find the Noita base folder (most likely in C:\Program Files (x86)\Steam\steamapps\common\Noita) then go and read the tools_modding\READ_ME_FIRST.txt.


Extracting data files

All of Noita's base assets (spritesheets, scripts, entity definitions) are packed inside Noita\data\data.wak. It is not technically required to have these extracted, but seeing the file structure and any example code is immensely helpful.

To access Noita's data files, do the following:

  1. Copy all of the files inside of the tools_modding folder into Noita's root folder.
  2. Run data_wak_unpack.bat. A terminal window should open.
  3. A File Explorer window opened to Noita's resources should appear: (%UserProfile%\AppData\LocalLow\Nolla_Games_Noita).
  4. Bookmark or copy this folder somewhere for easy later access.
  5. Many of the resources might be hidden. Click the "View" button and check "Hidden items" to see all them.

Now you have plain access to all of Noita's Lua code, entity XML definitions and spritesheets. You can now literally go and check out any gameplay secrets, so a keep a spoiler alert in mind aswell.


Next steps

Good starting points and further reading:

  • Make a copy of the mod mods\example and make some changes to it, familiarize yourself with the file structure.
  • Familiarize yourself with the documentation under tools_modding:
    • component_documentation.txt
    • lua_api_documentation.txt
    • These are always the most up-to-date documentation you can find. They are your best friends now.
  • Download and see what other modders have done, edit their mods, get a feeling for what is going on.


Diving deeper [WIP]

Help with modding

Noita Discord server has an active and friendly modding community on #modding-general and #modding-support. Don't be afraid to ask questions!

Related

Other resources