Skip to content

Offline rewards

RageOfFire edited this page Sep 6, 2026 · 1 revision

Offline rewards

Offline rewards are earned by being away from the server for a certain amount of real time, and are claimed by hand from the Reward GUI - the GUI opens automatically when a returning player has one or more ready to claim.

Example

rewards:
  default:
    permission: "group.default"
    time: "5d 6h 30m 20s"
    message: "&aYou earn reward by default"
    execute: 'PLAYER'
    commands:
      - "me Hi ! I'm back"

Every reward must be under rewards and have a unique id. Here's what each key does:

  • default is the id of that reward - it can be anything you want, but it must be unique and valid as a YAML key.
  • permission is the permission a player needs to earn the reward. Leave it as "" (empty) to make it available to everyone.
  • time is how long the player needs to have been offline to earn the reward - see the Time formatter.
  • message is an optional message sent to the player when they claim it. You can use %player% for their name, or any PlaceholderAPI placeholder.
  • execute is whether the commands run as PLAYER or CONSOLE.
  • commands is a list of commands to run as the reward. %player% and PlaceholderAPI placeholders work here too.

How claiming works

  1. A player logs back in after being away.
  2. The plugin checks every entry under rewards and works out which ones they're currently eligible for and haven't already claimed.
  3. If there's at least one, the Reward GUI opens automatically a moment after they join, showing each claimable reward as a clickable item.
  4. Clicking an item grants it immediately and marks it claimed - it won't be offered again until its time requirement has elapsed a second time.

Don't want a GUI at all? Set gui.auto-open-on-join: false in config.yml and every eligible offline reward is granted automatically on join instead, with no click required.

Not just for rewards

Nothing requires time to reward something positive - a punish entry that applies a slowness effect for being away too long works exactly the same way:

  punish:
    permission: "permission.to.punish"
    time: "7d"
    message: "&cYou have been off the server for 1 week"
    execute: 'CONSOLE'
    commands:
      - "me off the server for 1 week"
      - "effect give %player% slowness 30 2 true"

Clone this wiki locally