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