SemethWikiSearch
Adventure Engine logoAdventure EngineBassSanctum logoBassSanctumCataclysm DeDust logoCataclysm DeDustEpicQuest Dungeoning logoEpicQuest DungeoningEpicQuest Hub logoEpicQuest HubEventMaker logoEventMakerLeylines logoLeylinesSpell Codex logoSpell CodexSpell Codex Ars Compat logoSpell Codex Ars CompatSpellActionbar logoSpellActionbarStructure Encyclopedia logoStructure EncyclopediaTikFiniTok logoTikFiniTokSC Final Adventure logoSC Final AdventureSC Final Adventure - Arcana logoSC Final Adventure - ArcanaSC Final Adventure - Machines logoSC Final Adventure - MachinesSC Final Adventure - Mechanical Genesis logoSC Final Adventure - Mechanical GenesisUpdatesAbout

Adventure Engine

Datapack authoring

You do not write Java. You write JSON.

A target file says “this structure can offer work” and points at four polls: rank, quest, reward, revenge. Polls are weighted lists. Quest templates are the actual jobs.

data/<your_namespace>/adventure_engine/
  targets/          polls/rank/
  ranks/            polls/quest/
  quest_templates/  polls/reward/
  polls/revenge/

That folder can live in a normal datapack, in kubejs/data/..., or under config/adventure_engine/. The config copy wins if the same file exists in the jar. /adventure reload rereads the overlay.

Easiest start: copy a target from the jar, change the structure list, keep adventure_engine:standard_rewards until you care about loot. Hook any structure id or tag, including other mods.

On quest poll entries, role is primary, side, or any. rank_min / rank_max use Scout=1 through Legend=5. Rank polls can also require distance from the box center, so a Champion job does not roll on a hut you are standing in the doorway of.

item_bands on find and sacrifice use those same 1–5 keys. The game rolls one item from the list. Find plants a marked stack in a chest (or drops it glowing). Sacrifice does not plant anything. The player has to bring the item.

Vanilla XP is minecraft_xp on the rank file. Leave the reward poll on standard_rewards until you have a reason not to.

Example of a pack hook: you have a custom dungeon mypack:quartz_keep. Copy the outpost target, point structures at that id, write one kill-leader template, and ship it. Players walk in, get a plaque, and the keep is now a job instead of an empty build.