Grimoire

Table of Contents

[NOTE: You must have Javascript enabled]
—✵—

Grimoire 0.1
©2025 by Mark Damon Hughes
cyberhole.online/grimoire/
Text licensed as CC BY-NC-SA Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license
Code licensed as BSD, see LICENSE.txt

Introduction

Grimoire is a graphical tile map editor, useful for tabletop RPGs, or computer games. In particular I use it to make levels for Mystic Dungeon, and it outputs files in that format.

FLOOR FORMAT

Blank lines and lines starting `#` after removing whitespace are skipped.

first line: FLOOR WIDTH HEIGHT LEVEL
    FLOOR must match the 2-digit filename number: floor-01 is floor 1.
    WIDTH and HEIGHT may be up to 999.
    LEVEL may be 1-20.

typically a comment is used to identify columns:

#---000000000011111111112222222222333333333344444444445555555555666666666677
#---012345678901234567890123456789012345678901234567890123456789012345678901

HEIGHT lines: YCOORD MAPCHARS
    YCOORD must be 3 digits, followed by a space, and must equal the y-coord, starting at 0.
    MAPCHARS must be WIDTH chars across, terrain chars.

following lines: XCOORD YCOORD COMMAND [KEY VALUE]...
    XCOORD YCOORD identify location
    Words /\w[\w\d]*/ are stored as strings.
    Integers /-?\d+/ are parsed and stored as ints.
    ""-quoted strings may contain spaces.

    chest {level LVL} {lock L} {trap T} {gold G} {item NAME AMOUNT}...
        One chest per grid.
        L: none, simple, complex, magic.

    gravestone
        Gravestone.

    item {name NAME} {amount N}
        One item per grid, including gold or gems.

    mon {name NAME} {species SPEC} {sprite FILENAME X Y W H}
        One mob per grid.

    npc {name NAME} {job JOBNAME} {sprite FILENAME X Y W H}
        One NPC per grid.

    script {COMMAND ARGS}
        script events are added to an array in that grid.

    skull
        Skull marker.

    trap T {hidden H}
        One trap per grid.
        T: none, pit, blade, fire, teleport

EOF