Noita is a brilliant action roguelite (I hate this term) where every pixel is simulated. Compared to your standard roguelite, there’s a greater focus on using the environment to your advantage. What really excited me the most about it was the degree to which the game can be modded.
Under the hood
Noita uses Lua for handling all scripting-related tasks. Serialized entity data is stored as XML files and there is a heavy reliance on an entity/component relationships for organization.
Virtually all aspects of the game logic are modifiable via the existing Lua scripts. A modder can override certain scripts or XML files or append new data with relative ease.
What needs changing?
When I start modding a game, it’s usually for one of two reasons: I have ideas for new features that I think should be in the game, or I find certain aspects of the game to be lacking or incorrectly implemented. With Noita, it was a mixture of both.
I skipped over some of the stuff i made since i don’t have a gif for everything, the entire list of mods i’ve made can be found here.
High risk, high reward
In Noita, the player progresses by collecting magic spells to append to their magic wand. There are certain spells which are considered to be must-haves, and once you find them you have a better chance of reaching the end of the game… If you can mitigate their inherent risk. One glaring problem I saw with the game progression is that the variety of these must-have spells is too limited. Creating new spells that fit this category was not too hard, the biggest thing to consider was the risk/reward factor involved. In order to balance out the stronger spells, they have to be made difficult to use.
Both of these spells are incredibly powerful, but they also have some inherent risk in their use. The freezing spell creates a small shower of damaging ice particles that can harm the player, and if the player manages to get caught in the blast they will be frozen for a short period of time. The magma explosion is very short range and also creates a small shower of magma which can harm the player and ignite them. Shooting it straight upward isn’t possible unless you’re willing to take some damage from the magma that falls on your face.
I made a handful of other fun little magic spells that I thought fit the game well, such as a projectile modifier that makes your projectile suck in nearby objects.
Perks are a major component of Noita. The player descends through several biomes and at the end of each biome they reach a “safe room” where they can regroup, heal, and adjust their magic spells. At the end of each safe room the player is given 3 random perks to choose from. A perk changes an aspect of the player to make them more powerful in some way. There are perks that make the player more resilient to damage, perks that increase the player’s mobility, and so-on. I thought the selection of default perks was a bit lacking so I created a handful of my own.
This perk makes the player summon sprites that attack their enemies automatically. These sprites are technically an NPC, but i used the entity/component system to give them a projectile component. In a technical sense, they are a living projectile.
Both of these perks give the player an inherent trail of either fire or ice. The trail applies a burning or freezing effect to enemies that enter it, and it also interacts with the environment as you’d expect. The fire trail causes oil to ignite and turns water to steam, and the ice trail freezes any liquid it touches.
Giving the player random places that allow them to trade objects for rewards was something i wanted to do, so I implemented new altars which have a small chance to appear in any given run.
This altar makes use of the game’s pixel engine to convert corpses into gold dust pixel by pixel. It looks neat and gives the player a way to generate income using nearby corpses.
The world is littered with enemies and treasure, but it also contains objects the player can pick up and store in their inventory, such as flasks of water. There is one unique object, a stone that emits electrical charges, which caught my interest. I decided to make different versions of it.
The holy stone converts impure substances such as blood to water. The fire stone melts through ice and converts water to steam.
Quality of life
There were several small aspects of Noita that annoyed me, so I modded them. I don’t have much footage of these mods in action because they aren’t especially exciting.
Putting it all together
I kept all these mods separate from eachother so that i could allow the end user to pick and choose which features they want and customize their experience to their liking. I created a modworkshop entry containing the github link to my mod collection. It quickly became one of the most popular Noita mods. This, to me, is affirmation that my assumptions about what aspects of the game needed changing were correct!