PlaytimeEconomy

Reward your players with money just for playing.

32

PlaytimeEconomy

PlaytimeEconomy

Reward your players with money just for playing with smart boosts, AFK detection, and a gorgeous in-game GUI.

PlaytimeEconomy integrates seamlessly with EssentialsX and EssentialsX to give every player a steady income based on their rank, how long they've been online, and any boosts they've earned. Idle players are automatically skipped via EssentialsX AFK detection — rewarding genuine engagement.

---

Features

- Per-player data storage - Each LuckPerms group gets its own configurable base reward amount. - Per-player data storage - Higher ranks receive an additional reward multiplier on top of their base. - Per-player data storage - Set weekend or weekday multipliers to spike activity on specific days. - Per-player data storage - Grant players custom multipliers through simple permission nodes (great for donor perks or vote rewards). - Per-player data storage - The longer a player stays online without going AFK, the higher their multiplier climbs - rewarding loyalty and real engagement. - Per-player data storage - Integrates with EssentialsX to pause rewards while a player is AFK. Configurable bypass permission available. - Per-player data storage - A clean, premium-quality GUI lets players view their stats, active boosts, streak progress, and next reward - no commands needed. - Per-player data storage - Admins can reload the config, force a reward cycle, give money, and reset player data all from within the game. - Per-player data storage - Every message supports Per-player data storage formatting - gradients, hover events, and more. - Per-player data storage - Player statistics are saved locally and persist across restarts.

---

Requirements

| Dependency | Type | Notes | |--------------|----------|------------------------------------| | Paper | Required | 1.21 or later | | Vault | Required | Any Vault-compatible economy plugin (e.g. EssentialsX Economy, CMI) | | LuckPerms | Required | Group detection | | EssentialsX | Optional | AFK detection — disable in config if not installed |

---

Installation

1. Drop `PlaytimeEconomy.jar` into your `/plugins` folder. 2. Make sure EssentialsX, EssentialsX, and a Vault economy plugin are installed. 3. *(Optional)* Install EssentialsX if you want AFK detection. 4. Start the server - the default config is generated automatically. 5. Edit `plugins/PlaytimeEconomy/config.yml` and `messages.yml` to your liking. 6. Run `/pteadmin reload` to apply changes without a restart.

---

Commands

| Command | Permission | Description | |---|---|---| | `/pte gui` | `playtimeeconomy.use` | Open the main GUI | | `/pte stats` | `playtimeeconomy.use` | View your stats in chat | | `/pte boosts` | `playtimeeconomy.use` | View your active boosts | | `/pte help` | `playtimeeconomy.use` | Show the help menu | | `/pteadmin reload` | `playtimeeconomy.admin` | Reload config & messages | | `/pteadmin give <player> <amount>` | `playtimeeconomy.admin` | Give money to a player | | `/pteadmin reset <player>` | `playtimeeconomy.admin` | Reset a player's earnings data | | `/pteadmin forcereward` | `playtimeeconomy.admin` | Immediately trigger a reward cycle | | `/pteadmin gui` | `playtimeeconomy.admin` | Open the admin panel GUI |

---

Permissions

| Permission | Default | Description | |---|---|---| | `playtimeeconomy.use` | Everyone | Use the `/pte` command | | `playtimeeconomy.admin` | OP | Use the `/pteadmin` command | | `playtimeeconomy.bypass.afk` | Nobody | Receive rewards while AFK | | `playtimeeconomy.boost.small` | Nobody | Grant a ×1.25 permission boost | | `playtimeeconomy.boost.medium` | Nobody | Grant a ×1.50 permission boost | | `playtimeeconomy.boost.large` | Nobody | Grant a ×2.00 permission boost |

> You can add any custom permission to the `permission-boosts` section in `config.yml`.

---

Configuration Overview

```yaml settings: reward-interval: 300 # Seconds between each reward payout afk-check: true # Skip AFK players (requires EssentialsX) min-online-seconds: 60 # Seconds online before first reward this session currency-symbol: "$" # Display symbol in messages and GUI broadcast-reward: false # Announce rewards in global chat

groups: default: display-name: "Default" base-reward: 10.0 vip: display-name: "VIP" base-reward: 25.0

Add as many groups as you need...

rank-boosts: enabled: true groups: vip: 1.10 # VIP players earn an extra 10% on top of their base

day-boosts: enabled: true days: SATURDAY: 2.00 # Double rewards on Saturday SUNDAY: 1.75

permission-boosts: enabled: true boosts: playtimeeconomy.boost.small: 1.25 playtimeeconomy.boost.large: 2.00 my.custom.permission: 1.60 # Any permission works here

streak-boosts: enabled: true milestones: 30: 1.10 # 30 minutes online → +10% 60: 1.25 120: 1.50 240: 2.00 # 4 hours online → double multiplier ```

How Multipliers Stack

All active boosts are combined using an additive bonus system:

``` Total = 1.0 + (rank_bonus) + (day_bonus) + (perm_bonus) + (streak_bonus) ```

Total: ×2.35 A VIP player on Saturday with a streak of 90 minutes: - Rank boost: ×1.10 -> +0.10 - Day boost: ×2.00 -> +1.00 - Streak boost (60m tier): ×1.25 -> +0.25 - Total: ×2.35

---

ADS