# Reward Requirements

Before a player can claim a reward, they must pass through a series of toggleable checkers.\
Here is a list of these checkers:

## Checkers for Rewards

* **Limit Accounts per IP**
  * Blocks claiming rewards if the number of accounts on one IP address exceeds a certain amount.
  * This is a global setting in config.yml using <mark style="color:blue;">`max-accounts-per-ip: <amount>`</mark>
  * A logging system is in place for better management - when a player logs in, all his registered accounts are displayed in the console, you can toggle this by <mark style="color:blue;">`log-accounts: true/false`</mark> in config.yml
  * Bypass permission: `ultimaterewards.iplimit.bypass` or for certain amount use `ultimaterewards.iplimit.bypass.<amount>`
* **Permission Checker**
  * Checks if the claimer has stated permission.
  * Multiple permission can be used, see [Reward Variants](/configuration/rewards/reward-features/reward-variants.md)
  * Permission can be set per reward in reward's .yml using <mark style="color:blue;">`permission: "<text>"`</mark> *(set to "" for no required permission)*
* **Enough Inventory Slots Checker**
  * Cancels the claiming if the player doesn't have enough free inventory slots.
  * Can be specified per reward in it's .yml file by <mark style="color:blue;">`required-slots: <number>`</mark> property.
* **Discord Account Synchronization Checker**
  * Verifies if the player has [synchronized](/configuration/rewards/reward-features/discord-support.md) their Discord account.
  * To specify that a reward requires synchronization, add <mark style="color:blue;">`require-discord-sync: true`</mark> to the reward’s .yml file.
  * Bypass permission: `ultimaterewards.discordSync.bypass`
* **Discord Account Is Boosting Checker**
  * This checker is used to check if the discord user boosts the discord server, if not, the player cannot claim the reward.
  * To specify that a reward requires user to boosting discord server, add \ <mark style="color:blue;">`require-boosting-discord: true`</mark> to the reward’s .yml file.
* **Claiming in Disabled World(s) Checker**
  * Prevents claiming of rewards if the player is located within a designated disabled world.
  * Worlds can be specified per-reward by listing them in the <mark style="color:blue;">`disabled-worlds`</mark> section of the reward's .yml file.
  * Bypass permission: `ultimaterewards.disabledWorld.bypass`
* **Enough Play-Time Checker**
  * Determines if the reward can be claimed based on the total time the player has spent on the server.
  * This can be configured in the config.yml file: \ <mark style="color:blue;">`first-time-join-required-play-time: <number>`</mark> *(set to 0 to disable this checker)*
  * Bypass permission: `ultimaterewards.firstTime.bypass`
* **Session Play-Time Checker**
  * Checks if the player has accrued the required amount of session time to claim a reward.
  * This can be configured in the config.yml file: \ <mark style="color:blue;">`session-required-play-time: <number>`</mark> *(set to 0 to disable this checker)*
  * Bypass permission: `ultimaterewards.session.bypass`

## **Checkers for Affiliates**

1. **Referral Creation Required Time Checker**
   * Enables players to create their own referral after they have accumulated sufficient play-time.
   * Configuration can be set in referrals.yml using\
     &#x20;<mark style="color:blue;">`referral-create-required-play-time: <number>`</mark> (set to 0 to disable this checker)
   * Bypass permission: `ultimaterewards.requiredPlayTime.bypass`
2. **Maximum Play-Time to Apply Referral Checker**
   * Disallows the activation of player referrals if the player has reached the maximum play-time.
   * This limit can be configured in referrals.yml using \ <mark style="color:blue;">`maximum-playtime-for-referred-player: <number>`</mark> (set to 0 to disable this checker)
   * Bypass permission: `ultimaterewards.maximumPlayTime.bypass`
3. **IP Checker**
   * Prevent referral activation if the applier and referrer have the same IP address.
   * This limit can be configured in referrals.yml using\
     &#x20;<mark style="color:blue;">`disable-activation-within-same-ip: <true/false>`</mark>


---

# 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/reward-features/reward-requirements.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.
