Skip to content

JSON5 quest packs ​

Quest Studio generates the files for you. Direct JSON5 editing is also supported.

Example quest ​

Save this category as categories/basics.json5 first.

json5
{
	id: "example:basics",
	icon: "minecraft:stone",
	title: { en_us: "Basics" },
	description: { en_us: "Your first steps." },
}

Then save the quest as quests/basics/stone.json5.

json5
{
	schemaVersion: 2,
	id: "example:stone",
	category: "example:basics",
	icon: "minecraft:stone",
	title: { en_us: "Collect stone" },
	objectives: [{ id: "stone", event: "item_obtained", target: "minecraft:stone", count: 32 }],
	rewards: [{ type: "experience", amount: 50 }],
	progression: "once",
}

The category must exist, and quest and objective IDs must stay stable once progress is saved.

Folder layout ​

text
questplus/
  config.json
  categories/
    basics.json5
  quests/
    basics/
      stone.json5

Install the pack under <world>/questplus/. Player save data is stored separately.

Configuration and companion files ​

A minimal config.json uses the configuration schema, which is separate from the quest schema version.

json
{
	"schemaVersion": 1,
	"autosaveSeconds": 5
}

Studio can also export queststudio-compatibility.json for supported metadata and named reward tables. Keep companion files with the pack. A named table reference must resolve before the server activates the registry.

Core quest fields ​

FieldMeaning
schemaVersionQuest schema version, currently 1 or 2
idStable namespaced quest identity
categoryExisting category ID
iconResource ID or a supported embedded icon
titleTranslation map with en_us
objectivesStable objective IDs, events, targets and counts
rewardsValidated grants or supported pools
requiresPrerequisite expression
progressiononce, repeatable, infinite or tiered
layoutDiagram coordinates, separate from progression

Version 1 supports once quests. Version 2 enables advanced progression and related options. Unknown properties, invalid registry IDs, missing dependencies and cyclic prerequisites are rejected.

Add a prerequisite ​

This fragment requires a completed quest. Place it in another quest definition whose ID is different.

json5
requires: { quest: 'example:stone' }

Use and, or and not to combine requirements. The loader checks referenced quests and rejects cycles. Information quests with read only acknowledgment cannot act as completion prerequisites.

Validate at both boundaries ​

Editor validation catches authoring errors. The Minecraft server also validates the complete pack against installed mods before it can replace active definitions. A valid JSON file alone does not establish that an event has a gameplay integration.

Preserve quest, objective and tier IDs after release. Text changes do not rename progress. Mechanical changes can invalidate partial counters. Back up and test upgrades on a copy.

JSON Schema · Custom objective events