Sprig is a top-down tile RPG maker that lives entirely in your browser — the editor, the engine, and your finished game are one self-contained page. You paint maps, wire up events, fill a database of heroes and monsters, then export the whole game as a single .html file or publish it to a link anyone can play.
Pick a ground tile and draw with the pencil (P). The rect tool (R) fills rectangles, fill (F) floods an area. Paths, water, and walls are autotiles — they join up with themselves as you paint. Maps have three layers (Ground, Overlay, Upper); the Upper layer draws above the player, which is how treetops and archways work. Ctrl+Z undoes nearly everything, including Database edits.
The trigger decides how a page runs: action waits for the player to press the button, touch fires on contact, autorun takes over the moment the page becomes active (cutscenes), and parallel runs quietly in the background.
Show Choices branches the conversation — each option carries its own command list. Inside any text: \C[n] colors a span, \N[0] inserts the hero's name, \. and \| pause for a beat. Give the speaker a name and a face portrait on the command itself.
The classic two-page event, and the key to understanding pages:
chestOpen, text "Empty."chest, commands Give Item → Change Gold → Set Self-Switch A.Pages are checked top to bottom and the first match wins, so the "already opened" page sits above the fallback. Once the self-switch flips, the event permanently shows its opened face. The same shape hides quest items until a switch turns on, swaps a boss for empty air after victory, and so on.
Switches are named on/off flags shared by the whole game; variables hold numbers. A quest is just a chain of pages gated on switches. The town template's mayor works like this:
questStart.questStart: reminds you where to look.questStart is on; finding it sets satchelFound.satchelFound: pays the reward, then flips its self-switch so it only pays once.Enemies live in the Database with stats, action patterns, and drops; troops group them into formations with their own battle events. Start a fight from an event with the Battle command (set a win switch to react to victory), or add random encounters in Map properties — pick enemies, a rate, and optionally restrict them to painted regions. The battle system, side/front view, and turn/ATB flow are all under Database ▸ System.
▶ starts from the game's start point; Shift+click ▶ (or ▶⚑) starts right where your cursor is. While playtesting, the 🐞 drawer lets you flip switches, edit variables, grant gold and items, change level, teleport, and toggle encounters — nothing it does touches your saved project.
Start your next project from a template — Project ▸ New project offers a town with a fetch quest and a dungeon crawler with a key, a door, and a boss. Read them in the editor: every event is small and commented by its own behavior. The Fernbrook sample (Project ▸ Reset to sample) goes further — every command in the engine appears somewhere in it. When you outgrow the built-ins, the Plugins tab accepts plain-JavaScript plugins that can add commands, overlays, and even whole battle systems.