Appearance
Customizing Bounties
Customizing bounty objectives is done in 1.14 via data packs. You can create your own data pack using instructions on the Minecraft wiki, or (if you are a modpack maker) you can use a data pack loader mod such as Open Loader to more easily create data packs for modpacks.
Decrees
Decrees are items that determine which items show up in bounty boards. A "Fisherman" Decree will only create bounties with objectives and rewards related to fishing! These decrees pull objectives and rewards from different pools. All default Decree data can be found here.
A Typical Decree Entry
Here's a typical Decree entry (toolsmith.json):
json
{
"spawnsInBoard": true,
"objectivePools": [
"common_crafts",
"all_villager_objs",
"toolsmith_objs"
],
"rewardPools": [
"all_villager_rews",
"toolsmith_rews"
]
}NOTE: As of v3.1.0, spawnsInBoard does not do anything. It will be implemented in a future release.
As you can see, the Toolsmithing Decree pulls objectives from three different pools and pulls rewards from two different pools. Overriding this file with your own toolsmith.json via a data pack will let you add to or replace this data.
Pools
Pools are lists of objectives/rewards that Decrees can pull from. All default Pool data can be found here.
A Typical Pool Entry
Here is an example of a typical entry:
json
{
"type": "item",
"content": "minecraft:cobblestone",
"amountRange": {
"min": 8,
"max": 64
},
"unitWorth": 25,
"weight": 1000
}Here is a description of each key:
type- What type of entry this is- Valid objective types are:
item,item-tag, andentity - Valid reward types are:
item,item-tagandcommand
- Valid objective types are:
content- A string describing the objective.- For items, use
modid:itemid.- Examples:
minecraft:iron_axe,minecraft:stick
- Examples:
- For entities, use
modid:entityid.- Examples:
minecraft:sheep,minecraft:skeleton - Use
/bo entitiesto dump a list of all entities tologs/bountiful.log.
- Examples:
- For items, use
amountRange- The minimum and maximum amount of this item that will be requested in the bountyunitWorth- The amount of "worth" that a single one of this objective will be worth. This value will be used to find suitable objectives that match the combined worth of the rewards.weight- This is an arbitrary number that determines how often, relatively, this bounty reward will be picked compared to another. Rewards with higher weights will be picked more often.- NOTE: Weight is not considered when picking objectives, just rewards!
Item Objectives/Rewards
For item objectives/rewards, use "type": "item".
contentshould be the item's registry name (e.g.minecraft:iron_axe,minecraft:stick).- If you want the item to have NBT, use an
"nbt": {}key. See this file for some examples of item objectives/rewards with NBT data. - To easily generate JSON data for entries, type
/bo handwith an item in your hand and it will copy the correct JSON data to your clipboard. Make sure to check thenbtfield, because it can occasionally convert NBT->JSON data incorrectly (Long number being converted from say5to"5L", shorts and bytes as"5s"and"5b") depending on how it was stored.
Tag Objectives/Rewards
For item objectives/rewards that you want to use a tag for, use "type": "item-tag".
contentshould be the name of the tag (see: tag list). (e.g.forge:dyes,minecraft:logs,minecraft:trapdoors)
Entity Objectives (Mobs)
For entity objectives, use "type": "entity"
contentshould be the registry name of the entity (e.g.minecraft:spider,minecraft:zombie,minecraft:magma_cube)
Command Rewards
For command rewards, use "type": "command"
contentshould be the commmand you want to run. (e.g./time set day,/give %player% torch 1)- There are several replacements that you can add:
%player%will be replaced with the name of the player that completed the reward%amount%will be replaced by the random amount that the bounty picked for that reward. Useful
Misc
- If you want your objective / reward to have a custom name, use
"name": "Your Name Here". Note that this is not localized, so it will always show up this way regardless of language. There will be a translation key option in a later update.
Kambrik