Data.wak

Modding Pages

AKA the "data files", the base game assets. The directory structure that you get when you extract `data.wak`, which Noita uses internally. When a mod wants to directly replace base assets, they will have to follow these paths exactly.

Whenever someone is talking about "the data files" or starts a filepath with `data/`, this is what they mean.

For extracting the data, see Extracting data files

## Contents

Below you can find all the **base** folders listed, with some notes on the most important bits.

```
data/
 ├── biome/
 │   └── All biome definition XMLs, defining the biome metadata (name, scripts, paths, ...)
 │       and generation parameters (topology, vegetation, ...)
 ├── biome_impl/
 │   └── Biome image files that are not Wang tiles; pixel scenes, backgrounds
 ├── buildings_gfx/
 ├── collapse_masks/
 ├── debug/
 ├── enemies_gfx/
 │   └── Enemies, friendlies, the player; all "unit" graphics go here.
 ├── entities/
 │   └── The main beef, most (if not all) of the entity definitions can be found here.
 ├── generated/
 ├── global/
 ├── items_gfx/
 ├── materials_gfx/
 │   └── Image files for materials that have textures in addition to their base color.
 ├── particles/
 ├── procedural_gfx/
 ├── projectiles_gfx/
 ├── props_breakable_gfx/
 ├── props_gfx/
 ├── ragdolls/
 │   └── Ragdoll directories for each enemy/friendly that requires it.
 ├── schemas/
 │   └── XML Schema definitions, when the documentations are lacking, this should be exhaustive. Although probably not so useful.
 ├── scripts/
 │   └── Most of the Lua code, sorted by different types in subdirectories
 │   └── E.g. data/scripts/gun/gun_actions.lua contains some Spell info
 ├── shaders/
 │   └── OpenGL shader files, totally editable. But prefer the new Lua API instead
 ├── temp/
 ├── translations/
 ├── ui_gfx/
 ├── vegetation/
 ├── wang_tiles/
 │   └── Contains all biome Wang tiles
 └── weather_gfx/

```

## Finding information to update this wiki

* All:
	+ UI strings: in `common/Noita/data/translations/` - the `common.csv` and `common_dev.csv` files
	+ Images: Check Special:NewFiles (or Category:Images) for what the other lovely people have added!
	+ Note: HP and damage values in the data files are all 1/25th the in-game numbers. For example, `hp="3.5"` \* 25 = 87.5hp
	+ Any time-based values in the data files (recharge time, cast delay, spell lifetime, etc.) are in *frames*. Noita typically runs at 60fps, so the conversion rate it 1/60. A spell with a lifetime of 200 frames will last for: `200 / 60 = 3.33s`
	+ XML entity files can inherit from other entity files, which is indicated with `<Base>..</Base>` XML tags with a reference to the base file. In these cases, the file takes all of the components and properties from the other file, and then is able to overwrite portions as needed by specifying the changed parts normally in components and properties contained *inside* the `<Base>...</Base>` section.

* Spells:
	+ `data/scripts/gun/gun_actions.lua`
	+ `data/entities/projectiles/deck/` (various files)
	+ Cast delay: `c.fire_rate_wait` in `gun_actions.lua` controls the cast delay. Both projectiles and modifiers set or add to the cast delay in the spell-cast functions attached to each spell entry in this list.

* Enemies:
	+ `data/entities/animals/` (various files)
	+ See Enemy Immunities for how to determine what protections or immunities a given enemy has.
		- Search for: "protection", "air", "physics", "ignition", and the tags at top
	+ Most important enemy information is contained in the Entity tags and the DamageModelComponent.

* Perks:
	+ `data/scripts/perks/perk_list.lua`
	+ `data/scripts/perks/` (various files)
	+ `data/scripts/essences/`
	+ `data/entities/items/pickup/`
	+ `data/entities/misc/essences/`

* Wands:
	+ `data/entities/items/wands/` (various files)
	+ `data/scripts/gun/procedural/` (various files)