Repository navigation
Rewards
Task payouts and level gifts are separate. A task saves its payout when generated; intermediate guild gifts are fixed items claimed once at the board.
New emerald-denominated task payouts use this order:
- A valid enabled custom currency item.
- Create: Numismatics spurs, when installed, available, and enabled.
- Emeralds.
Automatic Numismatics conversion defaults to 1 emerald = 1 spur. Other reward items and fixed level gifts keep their configured items. Numismatics is optional.
To choose diamonds, change these values in the active server taskbound-server.toml:
[rewards]
use_custom_currency_rewards = true
custom_currency_item = "minecraft:diamond"Edit the existing section rather than duplicating it. Stop the world/server before changing TOML, then reopen it. A modded item must be registered on the server, with the corresponding mod available to clients too.
Custom conversion is always one item per emerald. It takes priority over Numismatics. numismatics_spurs_per_emerald changes only automatic Spur conversion, not custom conversion. Choosing a more valuable item does not reduce payout quantities; rebalance your reward files or multipliers if needed.
Invalid, missing, or air items fall back to the automatic Spur/emerald choice and produce a log warning. With custom currency disabled, set use_numismatics_rewards = false to keep emeralds even when Numismatics is installed.
Existing offers keep their payout until replaced. Accepted tasks always retain their saved reward. The board's currency heading can therefore show the current setting while an older accepted task still displays its original item.
The task is selected first. Its final difficulty score and the giver's reward_multiplier determine the reward budget: round(difficulty_score * reward_multiplier). Eligible, affordable entries are then selected from the giver's pools, with up to three selections and at most one rare selection.
Difficulty also supplies base guild reputation: scores 0-14 / 15-29 / 30-49 / 50-74 / 75+ give 1 / 2 / 4 / 7 / 12 points respectively. Unlock tier and effort score are separate.
The default pool uses larger currency bundles at higher difficulty, plus occasional diamond or netherite-scrap rewards in eligible bands. At default multiplier 1.0, scores 110-149 have a guaranteed 128-currency payout and scores 150+ have 192. Custom pools, multipliers, or conversion rates change the result. The selected task shows the actual saved payout.
Create config/taskbound/data/mytasks/rewards/watch/emeralds.json:
{
"id": "mytasks:watch/emeralds",
"type": "ITEM",
"pool_id": "mytasks:watch",
"weight": 1.0,
"cost": 6,
"minimum_difficulty": 0,
"maximum_difficulty": null,
"minimum_reputation_level": null,
"maximum_count": 1,
"giver_restrictions": [
"mytasks:watch"
],
"rarity_group": "common",
"tangible": true,
"payload": {
"item": "minecraft:emerald",
"count": 2
}
}The Village Watch giver lists mytasks:watch in its reward_pool_ids. Entries sharing a pool_id form a pool; there is no separate pool file.
The example Zombie Patrol task has difficulty 6 and multiplier 1.0. Its budget of 6 selects this sole entry once for two emeralds, plus normal guild reputation. Enabled currency conversion may replace those emeralds.
| Field | Meaning |
|---|---|
weight |
Positive relative selection chance among affordable entries |
cost |
Positive budget cost per selection; does not set the item quantity |
minimum_difficulty, maximum_difficulty
|
Inclusive score range; null maximum has no upper limit |
minimum_reputation_level |
Optional guild level gate, or null |
maximum_count |
Maximum selections of this entry for one task |
giver_restrictions |
Allowed giver IDs; an empty list allows any giver using the pool |
rarity_group |
rare gets the shared one-rare-selection limit; use common otherwise |
tangible |
Use true for item entries |
payload.item, payload.count
|
Item ID and positive quantity granted per selection |
Keep an affordable tangible entry for each intended difficulty range. Expensive or ineligible pools may award no items. An empty giver reward_pool_ids list allows all pools.
To edit a reward, change its file and reload. To remove one, remove it from every config/datapack source that supplies it and reload; no pool list needs unlinking. Accepted payouts remain saved.
Experience entries use type EXPERIENCE and a payload such as {"experience_points": 20}. Extra reputation uses REPUTATION and {"points": 2}; optional giver selects another giver. Use tangible: false for these, alongside affordable item rewards. Do not use LOOT_TABLE or CALLBACK: they have no built-in payout handler in 1.0.0.
Optionally create config/taskbound/data/mytasks/level_rewards/watch.json:
{
"id": "mytasks:watch",
"rewards": [
{
"level": 2,
"items": [
{
"item": "minecraft:arrow",
"count": 4
}
]
},
{
"level": 3,
"items": [
{
"item": "minecraft:bread",
"count": 2
}
]
}
]
}Its ID is the giver's ID. Allowed gift levels are 2-4, 6-9, 11-14, and 16-19. Each level appears once, contains at least one item, and each item count is 1-64. Main milestone levels 1, 5, 10, 15, and 20 cannot have these gift entries.
Add, edit, or remove entries to change unclaimed gifts, then reload. Gifts do not use reward pools, random selection, currency conversion, or the giver's multiplier. Changing a gift does not let a player claim that level a second time. Removing a gift does not remove the level's automatic extra offer.
Taskbound 1.0.0 by voidanomaly. Wiki home · GitHub repository.