❄ FrostyRetain – Daily Rewards, Streaks & Weekly Challenges
Give your players a reason to come back every day.
FrostyRetain is an all-in-one player retention plugin for Paper servers: daily login rewards with a calendar GUI, streaks that forgive a missed day, rotating weekly challenges, AFK-proof playtime rewards, comeback bonuses and leaderboards. Everything is configured in clean, commented YAML. No coding required.
Made for SMP • Skyblock • Factions • Lifesteal • Prison – available in English and German.
🧭 One menu for everything
Type /retain and see everything at a glance:
- 🎁 Daily Rewards – is today's reward ready? Current streak, cycle day, time until the next day
- 📖 Weekly Challenges – how many are done, when the next rotation starts
- 👤 Your Stats – streak, best streak, freezes, active playtime, next milestone, reward multiplier
- 🏆 Leaderboards – top 10 with player heads for streak, best streak and playtime
All menus are linked to each other. Need help? /frostyretain shows plugin info and a clickable list of all commands.
🎁 Daily Rewards & Streaks
- Calendar GUI (
/daily) showing claimed, today's and upcoming days, with previews of upcoming rewards
- Reward cycle from 1 to 45 days with a reward per day and a default fallback
- Streak milestones (e.g. 14, 30 or 100 days in a row)
- ❄ Streak freezes: earned automatically and used automatically when a day is missed
- Soft reset (optional): a missed day only costs part of the streak, not everything
- Minimum playtime per day (optional): no more "log in, claim, log out"
- Auto-claim, join notification and clickable reminders
- Configurable timezone for the day change
📖 Weekly Challenges
- A new selection every week, drawn from your own challenge pool
- Variety built in: if possible, each category (mining, combat, farming …) appears only once per week
- Network-ready: every server in your network shows the same challenges, without any syncing
- 13 challenge types: break & place blocks, kill mobs & players, breed, fish, craft, smelt, eat, enchant, walk, active playtime, daily claims
- Use tags as targets:
#logs, #crops, #fishes …
- Weekly bonus for completing every challenge
- GUI with progress bars, a reset countdown and action bar progress
- 🛡 Exploit protection: placed blocks, unripe crops, spawner mobs and repeat kills of the same player don't count. Creative mode and blocked worlds earn no progress either
⏱ Playtime Rewards
- Counts active playtime only, so AFK players earn nothing
- AFK pools don't work: only head movement, chat, commands and interactions count as activity
- One-time milestones (1h, 10h, 100h …) and repeating rewards (e.g. every hour)
💎 Retention Extras
- 👋 Comeback rewards for players who were away for X days
- 🌟 First-join rewards with a welcome broadcast
- 🔒 Alt protection: at most X daily rewards per IP per day (IPs are stored hashed, never in plain text)
- 🏆 Leaderboards in a GUI and in chat, cached and lag-free
- 💬 Discord webhook for milestones, comebacks and completed weeks
🎉 Powerful Reward System
Every reward is a list of actions:
[item] DIAMOND 2
[money] 500
[xp] 100
[console] lp user %player% parent add vip
[title] <aqua>Weekly Bonus!;<gray>%streak% days in a row
[sound] ui.toast.challenge_complete
[chance:25] [item] EMERALD 16
[firework]
- Chance per action with
[chance:25]
- Weighted random pools for mystery boxes and jackpots
- Rank bonuses and rank multipliers (×1.25 money for VIPs …) using plain permissions
- Full inventory? Items drop at the player's feet, nothing is lost
⚙ Built for server owners
- SQLite out of the box, MySQL for networks
- Async database thread with batched saves, so the main thread is never blocked
- MiniMessage (gradients, hover, click) and classic
& color codes
- PlaceholderAPI support both ways, with 30+ placeholders
- Vault support for money rewards with any economy plugin
/frostyretain reload without a restart. A broken config keeps the old one active
- Config errors are logged with their exact location instead of breaking the plugin
- Language files: English and German included. Add your own language with a single file
📦 Requirements
- Paper 26.3 or newer
- Java 25
- Optional: Vault + an economy plugin (EssentialsX, CMI …) for money rewards
- Optional: PlaceholderAPI
🚀 Installation
- Drop
FrostyRetain-1.0.0.jar into your plugins folder
- Start the server. All files are created in
plugins/FrostyRetain/
- Optional: set
language: de in config.yml for German
- Customize
rewards.yml and challenges.yml, then run /frostyretain reload
💬 Commands
| Command |
Description |
/retain |
Main menu with an overview |
/frostyretain |
Plugin info and clickable command list |
/daily |
Reward calendar (/daily claim to claim directly) |
/challenges |
Weekly challenges (/challenges list for chat) |
/streak [player] |
Login streak, best streak, freezes |
/playtime [player] |
Active playtime and next milestone |
/retaintop [streak/beststreak/playtime] |
Leaderboard GUI, or chat output when a type is given |
Admin (frostyretain.admin): reload, info, give, setstreak, addfreeze, addplaytime, resetdaily, reset, challenge list/complete/reset. Most of them also work for offline players.
🔑 Permissions
| Permission |
Default |
Description |
frostyretain.use |
everyone |
All player commands |
frostyretain.admin |
op |
Admin commands |
frostyretain.playtime.others |
everyone |
View other players' stats |
frostyretain.multiplier.<name> |
– |
Reward multiplier from config.yml |
frostyretain.bypass.antialt |
op |
Ignore the IP limit |
frostyretain.bypass.afk |
– |
Never counted as AFK |
📊 Placeholders (examples)
%frostyretain_streak% · %frostyretain_streak_best% · %frostyretain_playtime% · %frostyretain_daily_available% · %frostyretain_daily_reset% · %frostyretain_challenges_completed% · %frostyretain_challenge_1_percent% · %frostyretain_top_streak_1_name% · %frostyretain_top_playtime_1_value%
FrostyRetain is a proprietary plugin. Please don't redistribute or re-upload it.