For the complete documentation index, see llms.txt. This page is also available as Markdown.

Daily Board

The daily board is each player's personal quest selection for the day. Every player gets their own randomized set of quests, picked from your quest pool based on their level. The board is saved to the database, so it survives restarts and relogs — a player keeps the same board until the daily reset (or until they reroll it).

Players open the board with /quests.

How quests are picked

When a player's board is generated, the plugin:

  1. Collects every quest with daily: true whose level is within level-range of the player's level.

  2. Randomly picks quests from that pool, one by one, until the board is full. The pick is weighted — quests closer to the player's level are more likely to be chosen, but anything in range can appear.

  3. Saves the board with an expiry timestamp set to the next daily reset.

A quest can only appear once per board. If the pool is smaller than the board size, the player simply gets fewer quests.

{% hint style="info" %} Quests with daily: false in quests.yml never appear on the board. Use that for quests you only hand out with /quests force give. {% endhint %}

Configuration

Everything lives under quests.daily-board in config.yml:

quests:
  daily-board:
    base: 5
    per-level: 5
    level-range: 15
    reset-time: "04:00"
    timezone: "Europe/Budapest"
Key
Description

base

How many quests every player gets on their board.

per-level

Grants one extra board slot every X levels. With per-level: 5, a level 12 player gets 2 extra slots (12 / 5 = 2). Set to 0 to disable.

level-range

How far a quest's level may be from the player's level to be eligible. With range: 15, a level 20 player can get quests from level 5 to 35.

reset-time

When boards expire and regenerate, in 24-hour HH:mm format.

timezone

IANA timezone for the reset time (e.g. Europe/Budapest, America/New_York). Leave empty to use the server's timezone.

How the reset works

There's no server-wide reset task. Each board stores its own expiry time; when a player opens the board after the reset time has passed, a fresh one is generated on the spot. The time remaining is shown in the GUI title via the {reset} placeholder.

These aren't board settings, but they shape how players interact with it (config.yml):

max-accepted caps how many quests a player can hold at once, and max-active caps how many can progress at the same time. Both grow with level the same way board slots do (base + level / per-level).

Rerolling

The board GUI has a refresh button that regenerates the player's board immediately with a new random selection. By default it's free. To charge for it, enable refresh-cost under quest-board in guis.yml:

Key
Description

placeholder

A PlaceholderAPI placeholder that returns the player's balance.

cost

The minimum balance required to reroll.

take-command

Console command that actually withdraws the money.

Rerolling replaces the whole board, including quests the player hasn't finished yet. Already accepted quests keep running.

Premium bonuses

Players with the mcquests.premium permission get the bonuses defined in config.yml:

daily-board: 2 means premium players see 2 more quests on their board. Premium players also get a different GUI title (title-premium in guis.yml) and the multipliers apply to their quest XP and rewards.

Customizing the GUI

The whole board menu is configured under quest-board in guis.yml:

The important parts:

  • quest-slots — the inventory slots where daily quests appear. This also caps how many quests are visible: if a player's board size is larger than the number of slots, the extra quests aren't shown, so add slots if you raise the board size.

  • quest-template — the item used for every quest that has no display section of its own. Quests with a display in quests.yml use their own icon, but always take the template's lore.

  • formats — the text snippets used to fill the template: status lines, objective/reward/condition lines, time limit lines and the click hints.

Template lore placeholders: {name}, {status}, {objectives}, {conditions}, {rewards}, {time} and {action}. The list placeholders ({objectives}, {rewards}, {conditions}) expand to one line per entry using the matching formats entry, with live progress numbers for objectives.

Sounds for opening, accepting, errors and rerolling are under quest-board.sounds.

Accepting quests from the board

Clicking a quest on the board accepts it. The plugin checks, in order:

  1. The quest isn't already completed today or already accepted.

  2. The player is below their max-accepted limit.

  3. The quest's conditions (permission, world) pass.

Completed board quests stay visible with the completed status until the reset, so players can see what they've already done today.

Last updated