The properties of wands, materials, and physics objects are defined in XML files . This allows players to see exactly how a "Fire Trail" modifier or a "Black Hole" spell is constructed.
The most infamous is the SimulateParallelDimension() function. It appears to duplicate the entire game world in a separate thread, run it for 30 frames, and then collapse it. This is how the "Chaos Dice" works. But the code suggests it was meant for something larger—a hidden 11th Orb, perhaps. The function ends with:
The water solver uses a modified "shallow water" equation on a pixel grid. Because pixels can only hold one element, the code must handle "pressure" by attempting to swap particles with their neighbors. This is where performance dies—every frame, for every water pixel, the CPU screams. The solution? A and a chaotic update order . Instead of left-to-right, the source uses a pseudo-random permutation of pixel indices to prevent directional bias. It's inefficient, but it's fair —water doesn't flow faster to the right.
When the game detects an impossible state—a pixel that is both fire and ice, a recursive spell depth of 63—it doesn't crash. It invokes PunishPlayer() . noita source code
While the full C++ source code for is not publicly available (as it is a proprietary commercial game), you can explore its technical architecture through official presentations, developer interviews, and community research.
These mods are proof that you do not need the raw C++ source to create transformative experiences. The Lua surface is deep enough to build an ocean.
The actual Nolla source code—the one that handles the pixel physics, the GPU particle simulation, and the memory management—has never been officially leaked. Given that the studio consists of only three main developers (Petri Purho, Olli Harjola, and Arvi Teikari), the codebase is likely highly personal and idiosyncratic, filled with inside jokes and Finnish curse words. The properties of wands, materials, and physics objects
: While the performance-heavy engine is C++, much of the high-level gameplay logic—like spells, enemies, and items—is implemented using Lua and XML via an Entity Component System (ECS). Recommended Articles & Deep Dives
While you cannot download the full C++ project file, the developers provide a way to "unpack" the game's data, which exposes a massive amount of readable code.
This article takes a deep dive into the architecture of Noita, exploring what the source code looks like under the hood, the interplay between C++ and Lua, and how the community has dissected the game to create some of the most ambitious mods in gaming history. It appears to duplicate the entire game world
Nearly all gameplay logic—how spells interact, how enemies behave, and how the world generates—is written in Lua 5.1 . By using the data_wak_unpack.bat tool found in the game's tools_modding folder, you can extract these scripts and read them directly.
For programmers, modders, and game design enthusiasts, Noita is less a game and more a beautiful car wreck written in C++. Naturally, this leads to a burning question that appears in Reddit threads, Discord servers, and GitHub issue trackers daily: