# 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](https://ultimaterewards.athelion.eu/configuration/rewards/reward-types/time-reward), note that each reward type has its own properties in addition to the [shared properties](https://ultimaterewards.athelion.eu/configuration/reward-types#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](https://ultimaterewards.athelion.eu/configuration/rewards/reward-types). 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](https://ultimaterewards.athelion.eu/configuration/rewards/reward-types).
{% 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**](https://ultimaterewards.athelion.eu/configuration/rewards/reward-actions)

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](https://ultimaterewards.athelion.eu/configuration/rewards/reward-features/randomization)
     * **80:** Set of actions with 80% execution chance.
     * **20:** Actions with a 20% execution chance.

### [**Variants (Optional)**](https://ultimaterewards.athelion.eu/configuration/rewards/reward-features/reward-variants)

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](https://ultimaterewards.athelion.eu/configuration/menus/example-of-guis) 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.
