Authoring dungeons
Build pieces in a creative world. Structure Block SAVE with a name that is not minecraft:.... mypack:hall_1 will mirror into the pack folder.
config/epicquest_dungeoning/
dungeons.json
images/ optional key / GUI preview PNGs
dungeons/<dungeon_id>/
structures/<namespace>/.../*.nbt
worldgen/template_pool/<namespace>/*.json
dungeons.json needs a jigsaw block: start pool, start jigsaw name, size, max distance, fallback pool, optional unique templates. Put a Dungeon Player Spawn in the start piece. Put a Dungeon End Pad only if completion is reach_end.
Keep a tiny dead-end in fallback_pool. Leftover connectors get stuffed with it. If you skip this, you get holes.
Uniques (boss room, treasure vault) belong in unique_templates with a depth band. Generates that never reach that band are thrown away and tried again. That is why you do not ship a “boss only” stub as the whole run.
Dungeon Event Markers go in the pieces. Creative, right-click, set event_id and block_replace (air is fine). Then ship:
data/<namespace>/dungeon_event/<path>.json data/<namespace>/event_poll/<path>.json
The poll is a weighted command set. Commands run as the player. ~ is the marker. Each placed marker fires once until wipe or /dungeon event reset. Shared ids can chain with chain_proximity.
Completion: kill_entity, collect_items, reach_end, or omit it and extract with the button / API / /dungeon complete.
A first dungeon: three halls, one dead-end, one boss unique, start spawn, one event marker that opens a fence. size 8. If the boss never shows, raise size or loosen the depth ratios before you add more art.
Adventure Engine
BassSanctum
Cataclysm DeDust
EpicQuest Dungeoning
EpicQuest Hub
EventMaker
Leylines
Spell Codex
Spell Codex Ars Compat
SpellActionbar
Structure Encyclopedia
TikFiniTok
SC Final Adventure
SC Final Adventure - Arcana
SC Final Adventure - Machines
SC Final Adventure - Mechanical Genesis