Repeatable quests¶
A normal quest is done once: after it is completed, it can't be granted to the same player again. A repeatable quest lifts that limit — a completed quest can be granted again, as many times as needed. This is the basis of daily tasks, farming quests, and recurring events.
A quest becomes repeatable through the repeatable flag:
By default repeatable: false — the quest is one-time.
How re-granting works¶
When a repeatable quest is granted to a player who has already completed it — via quest give or a quest scroll — the system resets the progress of the previous run before granting it anew. The quest starts over from scratch: tasks are incomplete again, and the active stage is the first one again.
The key boundary: only a completed quest can be re-granted.
| Quest state for the player | repeatable: false |
repeatable: true |
|---|---|---|
| Not granted | Granted | Granted |
| Active (unfinished) | Re-granting blocked | Re-granting blocked |
| Completed (success/failure/skip) | Re-granting blocked | Granted anew, progress reset |
An active quest can't be re-granted under any value of repeatable — it must first be completed or dropped via quest drop.
Re-granting starts a new "life" for the quest's tasks: the
on.loadhook fires again, just as on the first grant. Any side effects attached to it — handing out items, lines of dialogue, tags — will repeat. See Task lifecycle hooks.
Enabling via a command¶
For a dynamic quest, the flag can be toggled on the fly:
The command works only with dynamic quests (created via quest new); for a quest from a datapack the flag is set in JSON. See Command reference.
Resetting on a schedule¶
On its own, repeatable does not "refresh" a quest on a timer — it only allows re-granting. To get a real daily, a datapack function triggers the re-grant on its own schedule — for example, by the in-game time of day. The full recipe with ready-made JSON and mcfunction is in the Repeatable quest pattern.
See also¶
- Repeatable quest — the pattern: a complete daily, with a schedule and reward.
- Quest file format — the
repeatablefield in the full list of fields. - Quest and task statuses — what "completed" means and why only a completed quest is re-granted.