⚔ Dungeon Builder

Concept
— · —
WASD / Arrows move · Q E turn · Space opens or searches

History

Notes
Ctrl+Z undo · Ctrl+Y or Ctrl+Shift+Z redo. A whole drag counts as one step.

Dungeon

Notes
Shown in the header and saved with the map. A game that opens this window can name the dungeon itself — with ?name=… on the URL, or by posting {type:'dungeon-builder:name', name} to it — and that name wins over the one stored here. A dungeon leaves the world through stairs up on level 1: place one, select it with the Select tool, and give it the id of the room the party climbs out into.

Levels

Level 1 of 1
Notes
Levels stack downward — level 1 is the top. The Game tab follows whichever level is shown here.

Size

Notes
The grid every level shares, in squares. Growing adds bedrock to the right and along the bottom. Shrinking is refused unless every column and row it would discard is untouched rock — nothing you have drawn is ever thrown away to make the map smaller. Clear that corner and the same button will take it. Either way it can be undone with Ctrl+Z.

Pieces

Notes
Stamps a cell and auto-carves the neighbours its openings point into. Right-click the map to rotate without stamping — the same turn also steers the wall & door brush. Floor is the exception: it turns rock into floor and leaves every face exactly as it found it, so it never closes a doorway you have already cut.

Wall & Door brush

Notes
Click near a cell edge to paint that wall face. Right-click (or R) turns the brush 90° off the edge you point at — a tick marks the target face. Open carves through into the rock behind, so it cuts new passages. Secret does the same but leaves the wall standing: it reads as plain stone until the party searches it, then gives way. Switch is a solid wall carrying a small stone button, cut from the same tile so it hides in the masonry — click it in the Game view to press it. Doors are passable once opened in-game. Select is not a brush: it picks a door, secret wall or switch to edit in the panel over the map, and changes nothing. Where a square has no editable face it picks the square itself — a chest, to set its lock, its trap and what is inside, or an exit stair. The pointer outlines the whole tile when that is what it would take. Lock selects too, and locks or unlocks the door it lands on — a locked door will not open, and shows an iron plate in the game. Visible is the same for switches: click one to hide it, and it will not render until the party stands in front of that wall and searches it out.

Party

Stairs

Notes
Both are three-walled tiles — rotate (right-click or R) to choose which side is open; the steps run away from that opening. Placing one writes its partner on the same square of the joined level, opening the opposite way, so you walk through in a straight line. Click the same square at the same facing to take the pair out, or lay any other tile over it — that removes both ends too.

Items

Notes
Click a floor tile to stand an item on it; click the same tile with the same item to take it away. Items do not block the way — you walk onto the tile and the sprite is there with you. In the game they stand upright and turn to face the party, so they read from down a hallway. Click a chest in the Game view to raise or lower its lid; which chests are open is play, not map, so it resets when the dungeon is reloaded.

Monsters

Notes
Cosmetic for now. A monster stands on a square and animates; it does not move, block, notice you or fight, and the GM is not told it is there. Placed and removed exactly like an item — click a floor tile to stand one on it, click again with the same monster to take it away.

Create monster… adds one of your own: a horizontal strip of equal-width frames on a transparent background, a name, and how tall it stands. Its WIDTH is not asked for — it is taken from the frame's own proportions, so a squat spider comes out squat and a tall skeleton tall, and no sheet is ever stretched to fit a shape someone typed. Sheets are rescaled to power-of-two on upload, so an odd-sized export drops straight in. Created monsters belong to THIS dungeon and travel with its export.

The built-in skeleton is drawn by the app rather than shipped as art, so it is deliberately plain. You can replace its art in Tile graphics below — but only with a sheet of the same 1:2 proportions, since the built-in's shape is fixed. For any other shape, create a monster instead.

Tile graphics

Notes
Upload flat 2D tiles — the game projects them onto walls, floor and ceiling in 3D. Square images work best.

The torch flame is different: it hangs flat against its wall and is drawn additively, so paint it on black (or transparency) and it will glow rather than look pasted on. One frame still flickers and sways.

Sprites (chests, bones) stand on the floor and turn to face you. They are cut out at 50% alpha rather than blended, so give them real transparency and hard edges — a soft glow, a feathered outline or a drop shadow will snap to on or off rather than fading. Paint them evenly lit: torchlight is applied on top, so baked-in shading darkens twice.

Anything with a frames box can be a horizontal strip: equal-width frames laid left to right in one image, no gaps, with the count set beside it. Playback is 14fps, and two of the same sprite on different squares start on different frames so they do not move in lockstep. Leave a margin inside each frame — at a distance the mip-mapping blends neighbours, and a subject touching its frame edge will ghost into the next one.

Map

Notes
Random map fills the level you are on; the others are left alone. Map and tiles persist in this browser automatically.

These two carry the layout alone — a few kilobytes of readable JSON, no images — which is what you want to hand someone who only needs the shape of the place. For a real backup, or to move a dungeon between browsers, use Export at the top right: that one carries the art as well, and Import up there reads either kind of file.