InkQuest

Quick rating

InkQuest

No reviews yet

A narrative-first quest engine for mapmakers and modpack developers — define branching quests with success and failure outcomes entirely through datapacks and commands.

Adventure/Exploration
QoL & Tweaks
Mod Loaders
Fabric
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Required
Server Required

About

Project Details

Type
Mod
License
Creative Commons Attribution Non Commercial 4.0 International
Latest Version
inkquest-fabric-1.20.1-1.0.0.jar
Authors
CurseForge
Modrinth

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

InkQuest — Narrative Quest Engine

Quest Book & HUD

Build story-driven quests for Minecraft — using tools you already know.

InkQuest is a lightweight quest engine for Minecraft 1.20.1 (Fabric), built for map makers, pack developers, and narrative designers. It works with scoreboards, Minecraft predicates, and datapack functions — systems you already have. No proprietary task types to learn.

Quests have real failure states, stage-by-stage progression, and branching based on outcomes. Choices that mean something. Endings that differ.


What players experience

  • Quest Book — press J or right-click the book to browse all quests: active, completed, and failed. Each shows title, current task, description, and progress.
  • HUD tracker — pin a quest to keep its task and progress bar always on screen, with smooth stage-transition and completion animations.
  • Quest Scrolls — a physical item that starts a quest on right-click. Distribute via loot tables, trades, or /give — the player just right-clicks, no commands on their end.
  • New quest notification — a HUD toast when a quest arrives, with one key to open it immediately.

How InkQuest works

Stages, not checkboxes. A quest advances through stages in sequence. Each stage has one required task and any number of optional ones. Move forward when the required task is done; optional tasks add side content, bonus rewards, or narrative branches.

Real failure. Any task can fail — and failure ends the quest immediately. The world can react differently to each outcome.

Branching and memory. Quests unlock each other through dependencies. Different completions open different chains. Full narrative trees, no code required.

Conditions you already know:

Condition What it checks
score Scoreboard objective threshold — with progress bar
global_score A shared global counter, safe across multiple players
predicate Any Minecraft predicate: location, inventory, NBT, advancement…
all / any / none Boolean composition, nested arbitrarily deep
optionals Enough optional tasks in the current stage are done

Lifecycle hooks. Run mcfunction files and assign scoreboard tags at different points in a task's life: when the stage loads, every tick while active, every tick while active and pinned, when it deactivates, on success, and on failure.

From these primitives — timed challenges, escort missions, server-wide kill goals with shared counters, faction races — all build from systems you already understand.


For map makers and pack developers

Two ways to define quests:

  • Datapack (data/<namespace>/quests/<id>.json) — versioned, portable, source-controlled. Ships with your project.
  • Commands (/quest new) — create quests without leaving the game. Good for rapid iteration: build a quest in-game, wire it to command blocks, test immediately.

Full command API:

  • /quest give, complete, fail, skip, pin, unpin, drop, modify, new
  • /execute if quest — check quest and task status in command blocks and functions
  • /quest query — inspect task progress, quest state, and stage completion — regardless of which condition type the task uses

Manual buttons. Add Success / Failure / Skip buttons to any task for player-driven decisions right from the quest book.

Repeatable quests. One flag to allow replaying a completed quest from scratch — daily tasks, faction missions, anything cyclical.

Gamerules:

  • doQuestBookItemCheck — require holding the book to open it (make players find or craft it)
  • allowManualQuestPin — lock player-side pinning so only commands control the HUD

Localization. Full Minecraft JSON Text in all titles and descriptions — colors, formatting, translate keys. Add a lang file to a resource pack and quest text adapts to each player's language.

Resource pack override. All mod textures replaceable. Craft recipe overridable via a single datapack file.


Getting started

/quest new tutorial:intro "First Quest"
/quest give @s tutorial:intro pin
/quest modify tutorial:intro tasks add required step1 "Find the ruins"

Three commands, one working pinned quest. Add a scoreboard condition, a lifecycle hook, or a chain to the next quest — it scales from there.

[Full documentation] · [GitHub] · [Issue tracker]


Why InkQuest

Most quest systems give you a menu of pre-built task types. InkQuest hands you the tools Minecraft already provides — scoreboards, predicates, functions, tags — and composes them into a quest engine with no hardcoded limits.

Quests live in JSON, version alongside your project, and ship as a standard datapack.

Install the mod, drop in a datapack — and your world has a story.


Requires Fabric 1.20.1. No additional dependencies.

InkQuest — Narrative Quest Engine

Quest Book & HUD

Build story-driven quests for Minecraft — using tools you already know.

InkQuest is a lightweight quest engine for Minecraft 1.20.1 (Fabric), built for map makers, pack developers, and narrative designers. It works with scoreboards, Minecraft predicates, and datapack functions — systems you already have. No proprietary task types to learn.

Quests have real failure states, stage-by-stage progression, and branching based on outcomes. Choices that mean something. Endings that differ.


What players experience

  • Quest Book — press J or right-click the book to browse all quests: active, completed, and failed. Each shows title, current task, description, and progress.
  • HUD tracker — pin a quest to keep its task and progress bar always on screen, with smooth stage-transition and completion animations.
  • Quest Scrolls — a physical item that starts a quest on right-click. Distribute via loot tables, trades, or /give — the player just right-clicks, no commands on their end.
  • New quest notification — a HUD toast when a quest arrives, with one key to open it immediately.

How InkQuest works

Stages, not checkboxes. A quest advances through stages in sequence. Each stage has one required task and any number of optional ones. Move forward when the required task is done; optional tasks add side content, bonus rewards, or narrative branches.

Real failure. Any task can fail — and failure ends the quest immediately. The world can react differently to each outcome.

Branching and memory. Quests unlock each other through dependencies. Different completions open different chains. Full narrative trees, no code required.

Conditions you already know:

Condition What it checks
score Scoreboard objective threshold — with progress bar
global_score A shared global counter, safe across multiple players
predicate Any Minecraft predicate: location, inventory, NBT, advancement…
all / any / none Boolean composition, nested arbitrarily deep
optionals Enough optional tasks in the current stage are done

Lifecycle hooks. Run mcfunction files and assign scoreboard tags at different points in a task's life: when the stage loads, every tick while active, every tick while active and pinned, when it deactivates, on success, and on failure.

From these primitives — timed challenges, escort missions, server-wide kill goals with shared counters, faction races — all build from systems you already understand.


For map makers and pack developers

Two ways to define quests:

  • Datapack (data/<namespace>/quests/<id>.json) — versioned, portable, source-controlled. Ships with your project.
  • Commands (/quest new) — create quests without leaving the game. Good for rapid iteration: build a quest in-game, wire it to command blocks, test immediately.

Full command API:

  • /quest give, complete, fail, skip, pin, unpin, drop, modify, new
  • /execute if quest — check quest and task status in command blocks and functions
  • /quest query — inspect task progress, quest state, and stage completion — regardless of which condition type the task uses

Manual buttons. Add Success / Failure / Skip buttons to any task for player-driven decisions right from the quest book.

Repeatable quests. One flag to allow replaying a completed quest from scratch — daily tasks, faction missions, anything cyclical.

Gamerules:

  • doQuestBookItemCheck — require holding the book to open it (make players find or craft it)
  • allowManualQuestPin — lock player-side pinning so only commands control the HUD

Localization. Full Minecraft JSON Text in all titles and descriptions — colors, formatting, translate keys. Add a lang file to a resource pack and quest text adapts to each player's language.

Resource pack override. All mod textures replaceable. Craft recipe overridable via a single datapack file.


Getting started

/quest new tutorial:intro "First Quest"
/quest give @s tutorial:intro pin
/quest modify tutorial:intro tasks add required step1 "Find the ruins"

Three commands, one working pinned quest. Add a scoreboard condition, a lifecycle hook, or a chain to the next quest — it scales from there.

[Full documentation] · [GitHub] · [Issue tracker]


Why InkQuest

Most quest systems give you a menu of pre-built task types. InkQuest hands you the tools Minecraft already provides — scoreboards, predicates, functions, tags — and composes them into a quest engine with no hardcoded limits.

Quests live in JSON, version alongside your project, and ship as a standard datapack.

Install the mod, drop in a datapack — and your world has a story.


Requires Fabric 1.20.1. No additional dependencies.

Screenshots

Gallery

  • Quest command
    Quest command Quest command provides many ways to create, manage and query quests
  • Quest Book & HUD
    Quest Book & HUD
  • Quest book & HUD
    Quest book & HUD
  • Quest cmmands
    Quest cmmands

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Total Downloads
CurseForge
<1,000
Modrinth
<1,000
Last Updated
CurseForge
Modrinth
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works