---
title: Reward Types
hide_meta: true
---

Quest rewards are defined in the `rewards` property of a quest. They are a list of reward objects, each of which can be one of the following types:

### `questlog:item`
Gives the player an item.

#### Properties
- `item`: Either the item ID string (e.g. `"minecraft:diamond"`) or a full item object containing custom components/enchantments (e.g. `{"id": "minecraft:enchanted_book", "components": {"minecraft:stored_enchantments": {"levels": {"minecraft:fortune": 3}}}}`).
- `count` (optional, default: 1): The amount of the item to give the player. (Can also be defined inside the item object).

### `questlog:command`
Runs a command as the player, at the player's position. If `permission_level` is specified, the command is run with that permission level.

#### Properties
- `command`: The command to run, must be prefixed with `/`.
- `permission_level` (optional, default: 2): The command's permission level, when ran as the player (player needn't have this permission level). See: [Java Edition Commands - minecraft.wiki](https://minecraft.wiki/w/Commands#Available_in_Java_Edition)

### `questlog:experience`
Gives the player experience

#### Properties
- `experience`: The amount of experience to give the player
- `level` (optional, default: false): Whether to give the player levels instead of points

### `questlog:loot_table`
Gives the player loot from a loot table. The loot context is set as such:
 - This entity: player
 - Origin: player's position
 - Killer entity: player
 - Level: the world the player is in

#### Properties
- `loot_table`: The loot table to give the player. If the table does not exist, it will log an error in the log.

### `questlog:choice`
Allows the player to choose a subset of rewards from a list of options.

#### Properties
- `choices`: A list of reward objects to choose from.
- `pick_count` (optional, default: 1): The number of choices the player is required to select.

### `questlog:random`
Rolls one of its entries at random, weighted. Unlike `questlog:choice` the player does not pick
— the roll happens when the reward is claimed, and the outcome is saved, so it stays the same
across restarts.

#### Properties
- `entries`: A list of `{ "weight": number, "reward": Reward }` objects. `weight` defaults to 1.
- `empty_weight` (optional, default: 0): The weight of rolling nothing at all.
- `roll_count` (optional, default: 1): How many times to roll. Each roll is independent, so the
  same entry can come up more than once.

```json
{
  "type": "questlog:random",
  "empty_weight": 1.0,
  "entries": [
    { "weight": 2.0, "reward": { "type": "questlog:item", "item": "minecraft:diamond", "count": 2 } },
    { "weight": 5.0, "reward": { "type": "questlog:item", "item": "minecraft:emerald" } },
    { "weight": 1.0, "reward": { "type": "questlog:experience", "experience": 100 } }
  ]
}
```

### Base Reward Properties
All reward types support the following optional properties:

- `auto_claim` (optional, default: false): If set to `true`, the reward will be given to the player automatically once the quest is completed, without them needing to manually click to collect it.
- `claim_sound` (optional): The sound to play when the reward is claimed.
- `name` (optional): The name of the reward. If omitted, a name will be automatically generated based on the reward type.
- `icon` (optional): The icon to display for the reward.
- `translatable` (optional, default: false): Whether the name is a translatable string.