Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
SnoozeLoot rewards idle players with SnoozePoints while they AFK โ and lets them spend those points in a fully configurable shop.
No Vault or economy plugin needed. You define what rewards cost and what commands run on purchase (ranks, items, kits, permissions).
- ๐ In-game reward shop (configurable GUI)
- ๐๏ธ AFK SnoozePoints โ action bar, titles, particles
- ๐ World & WorldGuard region restrictions
- ๐ Leaderboard with your rank
- ๐ธ Player payments, daily/weekly & streak bonuses
- ๐ PlaceholderAPI placeholders
- ๐ก๏ธ Anti-exploit (pool detection, purchase limits)
- ๐พ YAML or SQLite storage ยท EN/DE messages
๐ Quick start
- Drop the jar in
plugins/and start the server (Paper 1.20.5+, Java 21+). - Edit
plugins/SnoozeLoot/config.ymlโ set AFK timers, shop items, rewards. /snooze reload(or restart). Players use/snoozeand/snooze shop.
Optional: install PlaceholderAPI and/or WorldGuard โ SnoozeLoot detects them automatically.
๐๏ธ How AFK works
- Player stands still long enough โ AFK mode starts (title, sound, Z particles).
- While AFK: action bar shows balance and earn rate, points pay out on a timer.
- Player moves again โ AFK ends, welcome-back message shows session earnings.
Tune in config.yml under afk::
| Setting | What it does |
|---|---|
afk-time-threshold-seconds |
Idle time before AFK starts |
payout-interval-seconds |
How often points are awarded |
points-per-interval |
Points per payout |
min-active-seconds-before-afk |
Must play actively this long before first AFK (anti-AFK-farm on join) |
max-afk-seconds-per-day |
Daily cap (-1 = off) |
max-afk-seconds-per-session |
Per-login cap (-1 = off) |
blocked-gamemodes |
e.g. CREATIVE, SPECTATOR |
Notifications (title, subtitle, sounds on AFK start/end) โ edit under afk.start-notification and afk.end-notification. Particles: afk.particles.enabled.
๐ Shop setup
Add items under shop.items. Each item needs a unique key (vip, diamonds, โฆ), a slot, material, price, and commands to run on buy.
shop:
size: 27
confirm-above-price: 50 # second click required at this price or above
transaction-log-max-entries: 500
items:
vip:
slot: 11
material: DIAMOND
name: "<aqua>VIP Rank</aqua>"
lore:
- "<gray>Cost: <gold><price></gold> points</gray>"
price: 100
purchase-limit: -1 # -1 = unlimited, 3 = max 3 buys ever
commands:
- "lp user %player% parent add vip"
Command placeholders: %player% %uuid% %world% %points%
Names and lore use MiniMessage (<gold>, <gray>, โฆ). Put <price> in lore โ SnoozeLoot fills it in.
๐ Worlds & WorldGuard
Limit AFK to specific worlds โ list world names. Empty list = all worlds.
afk:
allowed-worlds:
- world
- afk_world
Limit AFK to WorldGuard regions โ install WorldGuard, then list region IDs (the name you gave the region in WorldGuard). Empty list = AFK allowed everywhere.
afk:
allowed-regions:
- afk_zone
- spawn_afk
Example: you create a region /rg define afk_zone in WorldGuard. Players only earn points while standing inside afk_zone. Outside = no AFK rewards.
Both filters can be combined. If WorldGuard is not installed, allowed-regions is ignored.
โก Permission multipliers
Give VIP players faster AFK earnings. Map a permission to a multiplier โ highest permission wins.
multipliers:
snoozeloot.multiplier.vip: 1.5
snoozeloot.multiplier.mvp: 2.0
Grant with LuckPerms: /lp user Steve permission set snoozeloot.multiplier.vip true
๐ธ Pay between players
pay:
enabled: true
min-amount: 1
cooldown-seconds: 30
Players with snoozeloot.pay use /snooze pay <player> <amount>. Set enabled: false to disable.
๐ Bonuses & streaks
Daily and weekly bonuses are claimed automatically when a player enters AFK. Streaks boost AFK earnings if the player had enough active play time that day.
bonuses:
daily:
enabled: true
points: 25
weekly:
enabled: true
points: 100
streak:
enabled: true
min-minutes-per-day: 30
multiplier-per-day: 0.05
max-multiplier: 1.5
๐ก๏ธ Anti-exploit
anti-exploit:
ignore-movement-when-in-water: true
ignore-movement-when-in-vehicle: true
ignore-movement-when-on-rails: true
untrusted-movement-input-grace-seconds: 4
afk:
pool-detection:
enabled: true
samples: 12
- Water / vehicle / rails โ environmental movement does not count as player activity
- Pool-farm detection โ ignores players stuck in circular AFK pool machines
- Shop โ purchase limits, confirm click for expensive items, transaction log
/snooze history for players ยท all server purchases with snoozeloot.history.admin
๐ PlaceholderAPI
Install PlaceholderAPI. SnoozeLoot registers automatically โ no extra setup.
| Placeholder | Output |
|---|---|
%snoozeloot_points% |
Point balance |
%snoozeloot_rank% |
Leaderboard rank (- if unranked) |
%snoozeloot_afk% |
true / false |
%snoozeloot_streak% |
Streak days |
Works in TAB, scoreboards, chat plugins, etc.
๐ Leaderboard
/snooze stats shows the top players and your own rank, even if you are not in the top list.
stats:
top-size: 10 # how many players appear in the top list
๐พ Storage & language
storage:
type: yaml # or sqlite
language: en # messages_en.yml or messages_de.yml
- yaml โ
players.yml,meta.yml,transactions.yml - sqlite โ single
snoozeloot.db(better for larger servers)
Edit messages in messages_en.yml / messages_de.yml (MiniMessage tags). /snooze reload applies config + message changes. New config keys are merged automatically on upgrade (config-version).
Switching storage (yaml โ sqlite): change storage.type on a fresh server or migrate data manually โ there is no built-in converter.
โจ๏ธ Commands
| Command | Permission | What it does |
|---|---|---|
/snooze |
snoozeloot.use |
Your balance |
/snooze shop |
snoozeloot.use |
Open shop |
/snooze stats |
snoozeloot.use |
Leaderboard + your rank |
/snooze show <player> |
snoozeloot.use |
Someone else's balance |
/snooze pay <player> <amount> |
snoozeloot.pay |
Send points |
/snooze history [limit] |
snoozeloot.use |
Your purchases |
/snooze history [limit] |
snoozeloot.history.admin |
All server purchases |
/snooze help |
snoozeloot.use |
Commands you can run |
/snooze admin |
snoozeloot.admin |
Show AFK/payout settings |
/snooze give <player> <amount> |
snoozeloot.admin |
Add points |
/snooze remove <player> <amount> |
snoozeloot.admin |
Remove points |
/snooze set <player> <amount> |
snoozeloot.admin |
Set exact balance |
/snooze reset <player> |
snoozeloot.admin |
Set balance to 0 |
/snooze reload |
snoozeloot.admin |
Reload config |
/snooze debug [player] |
snoozeloot.admin |
AFK debug info |
๐ Requirements
- Paper 1.20.5+ (Java 21+)
- PlaceholderAPI โ optional
- WorldGuard โ optional
Uses bStats (ID 32608) for anonymous server stats. No player names or IPs. Opt out: bstats.enabled: false in config.yml, or disable bStats server-wide in plugins/bStats/config.yml.


