# Creating Reward

## Setuping the reward

Rewards are located in the rewards folder, where each reward corresponds to one file. The file name then denotes the identifier of the reward.

### **General Settings**

{% hint style="info" %}
The tutorial is explained for the [Time Reward](/configuration/rewards/reward-types/time-reward.md), note that each reward type has its own properties in addition to the [shared properties](/configuration/rewards/reward-types.md#shared-properties) - you can set these properties for each of the [reward types](https://revivalo.gitbook.io/ultimaterewards/configuration/rewards/reward-types).
{% endhint %}

1. **Enable Reward Claiming**

   ```yaml
   enabled: true
   ```

   * **enabled:** Set to `true` to allow rewards to be claimable.
2. **Reward Type**

   ```yaml
   type: time_reward
   ```

   * **type:** Specifies the type of reward. All reward type are listed [here](/configuration/rewards/reward-types.md). Use `time_reward` for time-based rewards.
3. **Reward Tag**

   ```yaml
   tag: Time Reward
   ```

   * **tag:** A label for the reward, used for identification.
4. (Optional) **Reward Command**

   ```yaml
   command: timereward
   ```

   * **command:** The command by which the reward can be claimed, /timereward in this case.

### **Cooldown Settings**

1. **Cooldown Duration**

   ```yaml
   cooldown: 24
   ```

   * **cooldown:** Number of units before the reward can be claimed again.
2. **Cooldown Unit**

   ```yaml
   unit: hours
   ```

   * **unit:** Unit of time for the cooldown (e.g., `hours`, `minutes`).
3. **General Cooldown Display Format**

   ```yaml
   cooldown-general-format: "%hours% hours"
   ```

   * **cooldown-general-format:** Format for displaying the general cooldown time.
4. **Specific Cooldown Display Format**

   ```yaml
   cooldown-format: '%hours%:%minutes%:%seconds%'
   ```

   * **cooldown-format:** Format for displaying the cooldown in reward GUIs.

### **Availability Settings**

1. (Optional) **Available After First Join**

   ```yaml
   available-after-first-join: false
   ```

   * **available-after-first-join:** Set to `true` to make the reward available immediately after a player's first join.
2. (Optional) **Live Reminder**

   ```yaml
   live-reminder-enabled: true
   ```

   * **live-reminder-enabled:** Notifies players when the reward is available.
3. (Optional) **Required Inventory Slots**

   ```yaml
   required-slots: 3
   ```

   * **required-slots:** Number of free inventory slots required to claim the reward.
4. (Optional) **Permission Requirement**

   ```yaml
   permission: ultimaterewards.exampleTimeReward
   ```

   * **permission:** Permission node required for the player to claim the reward.

### **Item and Display Settings**

{% hint style="info" %}
Each reward type has its own states, these can be found by viewing the [individual reward types](/configuration/rewards/reward-types.md).
{% endhint %}

* **Available Item Display**

  ```yaml
  available-item: CHEST_MINECART
  available-display-name: '&a&lTIME REWARD'
  available-lore:
    - '&7Can be obtained every &f%cooldown%'
    - ' '
    - '&7Contains:'
    - '&e ➪ 1x Diamond'
    - '&e ➪ 3x Gold Ingot'
    - '&e ➪ 6x Iron Ingot'
    - ' '
    - '&b► Click to claim'
  ```

  * **available-item:** Item displayed when the reward is claimable.
  * **available-display-name:** Display name for the available reward item.
  * **available-lore:** Lore description for the available reward item.
* **Unavailable Item Display**

  ```yaml
  unavailable-item: MINECART
  unavailable-display-name: "&7&lTIME REWARD"
  unavailable-lore:
    - '&7Available in:'
    - '&7%cooldown%'
  ```

  * **unavailable-item:** Item displayed when the reward is under cooldown.
  * **unavailable-display-name:** Display name for the unavailable reward item.
  * **unavailable-lore:** Lore description for the unavailable reward item.
* **No Permission Item Display**

  ```yaml
  no-permission-item: BARRIER
  no-permission-display-name: "&c&l&mTIME REWARD"
  no-permission-lore:
    - "&c ✕ Locked, requires"
    - "&c   %permission% permission"
  ```

  * **no-permission-item:** Item displayed when the player lacks permission.
  * **no-permission-display-name:** Display name for the no-permission reward item.
  * **no-permission-lore:** Lore description for the no-permission reward item.

### [**Reward Actions**](/configuration/rewards/reward-actions.md)

1. **Commands Executed on Reward Claim**

   ```yaml
   actions:
     80:
       - '[console] give %player% diamond 1'
       - '[console] give %player% gold_ingot 3'
       - '[console] give %player% iron_ingot 6'
       - '[console] say %player% claimed their %type% reward!'
       - '[title] &aClaimed'
       - '[subtitle] &aReward %type%'
       - '[message] &7Enjoy your claimed reward | New line!'
     20:
       - '[console] give %player% diamond 1'
       - '[console] give %player% gold_ingot 3'
       - '[console] give %player% iron_ingot 6'
       - '[console] say %player% claimed their %type% reward!'
       - '[title] &aClaimed'
       - '[subtitle] &aReward %type%'
       - '[message] &7Enjoy your claimed reward | New line!'
       - '[message] &a&lYou have been extra lucky today! Received 5 more diamonds!'
       - '[console] give %player% diamond 5'
   ```

   * **actions:** List of actions and commands executed when a reward is claimed. Find out more about the chances at [randomization](/configuration/rewards/reward-features/randomization.md)
     * **80:** Set of actions with 80% execution chance.
     * **20:** Actions with a 20% execution chance.

### [**Variants (Optional)**](/configuration/rewards/reward-features/reward-variants.md)

1. **Reward Variants**

   ```yaml
   variants:
     premium:
       permission: ultimaterewards.timeRewardExample.premium
       available-display-name: "&6&lPREMIUM TIME REWARD"
       available-lore:
         - '&7Can be obtained every &f%cooldown%'
         - ' '
         - '&7Contains:'
         - '&e ➪ 3x Diamonds'
         - '&e ➪ 12x Gold Ingots'
         - '&e ➪ 24x Iron Ingots'
         - ' '
         - '&6► Click to claim premium reward'
       actions:
         80:
           - '[console] give %player% diamond 3'
           - '[console] give %player% iron_ingot 12'
           - '[console] give %player% gold_ingot 24'
           - '[console] say %player% claimed their %type% reward!'
           - '[title] &aClaimed'
           - '[subtitle] &aReward %type%'
           - '[firework] colors:{FF0000;00FF00;0000FF},type:BALL_LARGE,power:3'
           - '[sound] BLOCK_CHEST_OPEN,volume:0.2,pitch:1'
         20:
           - '[console] give %player% diamond 3'
           - '[console] give %player% iron_ingot 12'
           - '[console] give %player% gold_ingot 24'
           - '[console] say %player% claimed their %type% reward!'
           - '[title] &aClaimed'
           - '[subtitle] &aReward %type%'
           - '[firework] colors:{FF0000;00FF00;0000FF},type:BALL_LARGE,power:3'
           - '[sound] BLOCK_CHEST_OPEN,volume:0.2,pitch:1'
           - '[message] &6&lYou have been extra lucky today! | Received 10 more diamonds!'
           - '[console] give %player% diamond 10'
   ```

   * **variants:** Optional reward variants based on player permissions.
     * **premium:** Example variant with specific permissions and actions.

## Linking (displaying) a reward in the menu

The created and set reward can be displayed in the menu. The [guis.yml](/configuration/menus/example-of-guis.md) file is used for this purpose.

Each reward can be assigned a position in the spcific menu. In the case of rewards that have more than one position (Advent Calendar, Streak Rewards, Pickable Reward, etc...) you can specify individual sub-rewards.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ultimaterewards.athelion.eu/configuration/rewards/creating-reward.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
