Back to mods
Quest API project artwork

CurseForge · Minecraft mod

Quest API

A questing framework for Minecraft. Define quests in Java or JSON, track objectives against real game state, and hand out rewards without writing your own persistence or networking layer.

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which Quest API release should I use?

Updated today
Latest stable file questapi-fabric-26.3-26.3.1.0.jar
Game version 26.3
Loader Fabric, NeoForge

Quest API questapi-fabric-26.3-26.3.1.0.jar targets 26.3 with Fabric, NeoForge. The project page does not say whether this file belongs on the client, dedicated server, or both. No extra mods listed for this file.

Where it goes

Is Quest API required on the client, server, or both?

The project page does not say whether this file belongs on the client, dedicated server, or both.

Client Source doesn’t say
Dedicated server Source doesn’t say
Loader for this release Fabric, NeoForge
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

The source does not explicitly classify this release as client-only or server-only.

What else does Quest API questapi-fabric-26.3-26.3.1.0.jar need?

questapi-fabric-26.3-26.3.1.0.jar. Change the file and its required mods may change too.

No extra mods listed for this file

This file does not list any required mods. Do not add a library just because a different file uses it.

This file does not list any required or optional mods.

Before you install it

Add Quest API without breaking your instance.

Built for Quest API questapi-fabric-26.3-26.3.1.0.jar. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use questapi-fabric-26.3-26.3.1.0.jar. It targets 26.3 with Fabric, NeoForge; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    This file does not list any required mods. Do not add a library just because a different file uses it.

  3. 03

    Put it on the correct side

    The project page does not say whether this file belongs on the client, dedicated server, or both.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside questapi-fabric-26.3-26.3.1.0.jar. It opens that exact file at the source.

About this project

What does Quest API add?

QuestAPI

A questing framework for Minecraft, built for Fabric and NeoForge. Quests can be written in Java or dropped in as datapack JSON, objectives track real game state instead of a bolted-on tracker, and the persistence and networking layers are already done for you.

What's included

  • Ten objective types: collect, consume, deliver, mine a block, place a block, craft, kill, tame, visit a dimension, visit a location. Most read straight from vanilla stats or inventory counts; block placement and taming have no vanilla event on either loader, so those two hook the one place in the game code where that's possible identically on both.
  • Item, experience, and command rewards. Claim state lives server-side and gets checked before anything is granted, so a lost network packet or a server crash mid-claim can't hand out a second copy of the loot.
  • Prerequisites: another quest's completion, an advancement, holding an item, or a minimum XP level.
  • A quest book GUI with a category sidebar, a scrollable quest list, and a detail panel showing objective progress and reward previews. Built on vanilla widgets, no custom render pipeline.
  • Progress persists through deaths, logouts, and restarts in a proper world-level save file. The client never decides a quest is complete on its own.

Datapack quests

Drop a file in data/<namespace>/questapi/quests/ and it loads at server start, in the same shape the Java API produces:

{
  "id": "mypack:first_diamond",
  "title": { "text": "First Diamond" },
  "description": { "text": "Every miner's proudest moment." },
  "icon": { "id": "minecraft:diamond" },
  "category": "mypack:main",
  "objectives": [
    { "type": "questapi:collect_item", "item": "minecraft:diamond", "amount": 1 }
  ],
  "rewards": [
    { "type": "questapi:experience", "points": 50 }
  ],
  "auto_activate": true
}

Java-defined and JSON-defined quests sit in the same registry, so a modpack can add its own quests without writing a mod.

For mod developers

The registry, the manager, and the GUI are three separate layers. Build your own screen against the same synced data if the default one doesn't fit, or register a new objective, reward, or condition type without touching this module's code.

QuestApi.registry().registerQuest(Quest.builder(id)
    .title(Component.literal("First Diamond"))
    .objective(new CollectItemObjective(Items.DIAMOND, 1))
    .reward(new ExperienceReward(50))
    .autoActivate(true)
    .build());

The GitHub README has the full API reference and a Java/JSON walkthrough: github.com/ryankshah/questapi

Development mode

Setting dev=true in config/questapi.properties loads an example quest tree (Java and JSON both) and the /quests reset|unlock|progress debug commands. Leave it false for a normal install; none of that content or those commands touch production quests.

Loaders and requirements

Fabric and NeoForge, both targeting Minecraft 26.3 on Java 25. The multiloader split only touches networking registration and platform hooks; quest logic runs the same on both.

License

CC0-1.0. Do whatever you want with it.

Source and issues

github.com/ryankshah/questapi

Javadocs

Project description from CurseForge.

Pick your setup

Quest API by Minecraft version and loader

Choose the version and loader you play, then open the matching release.

2 available setups

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

Quest API versions and loaders

4 of 4 releases match

Looking for an older file? The official CurseForge project page is in Resources.