> For the complete documentation index, see [llms.txt](https://reflexlabs.gitbook.io/reflexlabs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://reflexlabs.gitbook.io/reflexlabs/resources/ultimaterewards/features.md).

# Features

## Rewards based permission and cooldown time

The plugin allows you to create an unlimited amount of rewards based permission, cooldown and type.

#### Reward Storage data example:

```
rewards:
  daily: # reward id - section
    enabled: true
    name: '&7&lDaily' // display name 
    permission: daily // %ultimaterewards_reward_daily%
    cooldown: 1440 // X minutes
    type: SINGLE // reward type
    commands:
    - eco give %player% 200
```

#### Cooldown Storage data example:

```
cooldowns:
  daily:
    LvEUyJPqgYuSbAIa:
      uuid: 69d883bf-5a0d-4609-9b4f-13afaef4456b
      rewardID: daily
      time: 1618166707796
```

## Reward Types

### `type: SINGLE` : execute the first command on the list.

```
rewards:
  daily:
    type: SINGLE
    commands:
    - eco give %player% 200
```

### `type: MULTIPLE` : execute all commands on the list.

```
rewards:
  gift:
    type: MULTIPLE
    commands:
    - give %player% diamond 1
    - give %player% emerald 1
    - give %player% gold_ingot 1
    - give %player% iron_ingot 1
```

### `type: RANDOM` : execute by random one command from the list.

```
rewards:
  random:
    type: RANDOM
    commands:
    - give %player% diamond 1
    - give %player% emerald 1
    - give %player% gold_ingot 1
    - give %player% iron_ingot 1
```

## Purge System

To save memory and disk space, the purge system will purge every ended cooldown or unexists rewards in cooldown data file or ingame, you can customize the system as you want from `config.yml`:

```
autoPurge:
  enabled: true // enable the auto purge
  debug: false // debug the removed data
  time: 5 // every x minutes to force purge
```
