Level data file

The Level data file contains all the information needed to generate a level. 

For examples, please create a level in Manic Miners yourself and locate the saved file. You should be able to read the exact syntax. This is more of a support document if you want to write converters or support programs. 

Data fields

The file has several data fields that tell the game what to expect from parsing that part of the file. Please note that ALL fields use lower case letters, they are capitalized below to be more readable.


This contains the metadata for the level, such as name, biome, and many other small aspects that change the game flow. The parameters "rowcount" and "colcount" are incredibly important, as they tell the game what map size to prepare for in the "tiles" section. A mismatch will likely generate a fatal error and cause problems.


Tiles simply tells the data how the map looks. To make the game handle easier, all level files have to be a multiple of the size of one Chunk, which is 8. The map also has to be square. Both of these limitations are subject to change, but if this is not followed, the program will generate a fatal error, as this can cause very unwanted level behaviour.

This section is a CSV file of numbers. Each tile is thus represented by a number, or a "Tile ID", in this "matrix". The number directly reflects the texture that will be used for that tile. Please note that some Tile IDs are not to be used manually. For instance, the Tile ID for Dirt is 26, with 27 being the "corner" version of Dirt, 28 being the "edge" version of Dirt, and 29 being the "intersection" version of dirt. If these values are put in manually, they will not work. The game automatically calculates the texture only using the base Tile ID, in this case 26.

What tile IDs correspond to what textures can be found below.


The heightmap determines how the map is to be sloped and how each individual vertex is to be manipulated. Only the height, not the X/Y position, can be altered. This is determined by an integer, showing the height change in Unreal Units. For reference, each tile is 300 Unreal Units wide. The data is, just like tiles, stored as a CSV

The heightmap has to be exactly 1 row and 1 column larger than the Tiles matrix. If this is not followed, the program will generate a fatal error, as this can cause very unwanted level behaviour.


This part is split into ore and crystal sections. They are each defined by a CSV matrix that defines how many resources to spawn where.


This section decides where and what miners to spawn. each miner takes exactly 3 lines: Any more than that breaks the loading. The first line takes in the miner's ID, the second one determines their transform, and the third one gives their tools and trainings. A miner is hidden if it is spawned on a hidden tile. Health=MAX is a macro to always spawn them with max health.


Similar to miners, using 3 lines of info, but they have more info. Instead of an ID they have the Vehicle Class, and instead of Tools they have more arguments. The driver of the vehicle will get teleported to the vehicle when the map starts. If the vehicle is hidden and then discovered, the vehicle still teleports miners based on their ID. Therefore, if you are editing the level file manually, make sure that it does not have a Driver ID that a regular miner in your level can get, as that might even teleport that miner out of vehicles. HP=MAX is a macro to always spawn them with max health.


Buildings use 6 lines of info: Building class, transform, level, if the building should teleport or not, starting health, and Power Path placements.


Defines landslide frequencies. The first number resembles the cooldown between landslides and the following list determines where the events are placed. Landslides can only originate from walls that have 3 neighbours and will stop when a wall does not have 3 neighbours anymore.


Defines where erosion can spread. The first number resembles the cooldown between each erosion stage, and the following list determines where the events are placed in a (Row,Column) coordinate grid (or the reverse, I can't remember). Only certain ground tiles can erode. The initial wait before erosion starts is defined in the "info" section.


The script executes events according to what happens while playing the level. For more information, please visit the scripting page.


Here you can put your creator comments on the level. You can also input comments by putting a # at the start of a line or putting # after a line HOWEVER this does not save to the final file yet. It is very useful if you are editing scripts via a text editor though (when scripting is implemented).

Deprecated fields

The following fields are obsolete. They will not generate errors, but do not change the level file in any way.

  • monsters
  • monsterfrequency

Tile ID list:

Tile IDs are mapped to their respective texture. That is why Dirt walls have ID 26, but the next wall has ID 30 and anything in between is not placable. There are four types of wall textures:

  • Regular, where it has 3 neighbour tiles and 2 diagonal neighbours adjacent to each other
  • Corner, where it has 4 neighbours and 3 diagonal neighbours
  • Edge, where it has 2 neighbour tiles and 1 diagonal neighbours,
  • Intersect, where it has 4 neighbours and 2 diagonal neighbours opposite to each other

Here is a list of all tile IDs. Bold names signify that tile is recognized by the game and not just a cosmetic texture. This means that if you set a wall to have ID 27, it will not be a Dirt wall, it will be undefined.

  1. Ground
  2. Rubble Level 1
  3. Rubble Level 2
  4. Rubble Level 3
  5. Rubble Level 4
  6. Lava
  7. Erosion level 4
  8. Erosion level 3
  9. Erosion level 2
  10. Erosion level 1
  11. Water
  12. Slimy slug hole
  13. Power path in progress
  14. Power path building
  15. Power path building powered
  16. Power path 1
  17. Power path 1 powered
  18. Power path 2 adjacent
  19. Power path 2 adjacent powered
  20. Power path 2 opposite
  21. Power path 2 opposite powered
  22. Power path 3
  23. Power path 3 powered
  24. Power path 4
  25. Power path 4 powered
  26. Dirt regular
  27. Dirt corner
  28. Dirt edge
  29. Dirt intersect
  30. Loose rock regular
  31. Loose rock corner
  32. Loose rock edge
  33. Loose rock intersect
  34. Hard rock regular
  35. Hard rock corner
  36. Hard rock edge
  37. Hard rock intersect
  38. Solid rock regular
  39. Solid rock corner
  40. Solid rock edge
  41. Solid rock intersect
  42. Crystal Seam regular
  43. Crystal Seam corner
  44. Crystal Seam edge
  45. Crystal Seam intersect
  46. Ore seam regular
  47. Ore seam corner
  48. Ore seam edge
  49. Ore seam intersect
  50. Recharge seam regular
  51. Recharge seam corner
  52. Recharge seam edge
  53. Recharge seam intersect
  54. UNUSED
  55. UNUSED
  56. UNUSED
  57. UNUSED
  58. Roof
  59. UNUSED
  60. Fake rubble 1
  61. Fake rubble 2
  62. Fake rubble 3
  63. Fake rubble 4
  64. Cliff type 1 (experimental)
  65. Cliff type 2 (experimental)

Reinforced walls currently just have 50 added to the base value.

Hidden walls currently just have 100 added to the base value.

Community content is available under CC-BY-SA unless otherwise noted.