🔥 Smotrya-Streak
What is Smotrya-Streak?
Smotrya-Streak is a lightweight daily activity streak plugin for Paper. Players who log in and play the required amount of time each day build up a streak — miss a single day, and it resets. Simple mechanic, built to keep your community coming back.
Everything happens instantly: the moment a player hits today's playtime requirement, their streak grows and they get a push notification right in chat — no waiting for a scheduled daily reset.
Reach milestones to unlock rewards, track each player's all-time max streak, and display live streak data anywhere with PlaceholderAPI.
✨ Features
| Instant notifications | Streak progress, ignition, and growth are pushed to chat the moment they happen |
| Reward system | Configurable commands and messages at streak milestones, with optional once-only claims |
| Max streak tracking | Highest streak ever achieved is stored permanently and never resets with the current streak |
| Chat-based confirmation | /s streak reset opens a clickable confirm/cancel prompt in chat — no inventory GUI clutter |
| Fully customizable | Every message in messages.yml is editable — multi-line support, legacy &, hex &#RRGGBB, and MiniMessage tags |
| Permission-aware | /s streak help and tab-complete only show commands a player actually has access to |
| PlaceholderAPI support | %smotrya_streak%, %smotrya_max_streak%, %smotrya_streak_active%, %smotrya_days_to_ignite%, %smotrya_playtime_today%, %smotrya_time_until_reset%, %smotrya_status% |
| Join feedback | Players are notified on join if today's streak requirement is already completed |
| Developer event | Cancellable StreakIncreaseEvent when a streak ignites or increases |
| Lightweight storage | SQLite, zero external setup required |
| Folia-compatible | Uses region-safe async scheduling — no main-thread blocking |
| Anonymous metrics | Powered by bStats, fully opt-out via config.yml |
📜 Commands
/s streak info [player] - show current streak
/s streak reset <player|all> - reset a streak (with chat confirmation)
/s streak reload - reload the configuration
/s streak help - list available commands
Alias: /smotrya ↔ /s
🔑 Permissions
| Permission | Default | Description |
|---|---|---|
smotrya.streak.use |
true |
Access to info and help |
smotrya.streak.admin |
op |
Full access to admin subcommands |
smotrya.streak.admin.reset |
op |
Access to /s streak reset |
smotrya.streak.bypass |
false |
Keep the streak even after missing a day |
🎁 Rewards
Configure streak milestones in config.yml:
rewards:
enabled: true
only-once: true
levels:
7:
commands:
- "give %player% diamond 5"
messages:
- "&a✔ You reached a &e7-day &astreak!"
30:
commands:
- "give %player% netherite_ingot 1"
messages:
- "&6&l30-DAY STREAK!"
%player%is replaced with the player name in commandsonly-once: true— each level is claimed at most once per playeronly-once: false— reward is given every time that streak value is reached again
🔌 Integrations
PlaceholderAPI
| Placeholder | Description |
|---|---|
%smotrya_streak% |
Current streak |
%smotrya_max_streak% |
Highest streak ever |
%smotrya_streak_active% |
true / false |
%smotrya_days_to_ignite% |
Days left until the streak ignites |
%smotrya_playtime_today% |
Playtime today (e.g. 1h 23m) |
%smotrya_time_until_reset% |
Time left until the daily reset |
%smotrya_status% |
Active / In progress / Broken / Not started |
TAB (playerlist plugin)
If you use TAB, you can display a
player's streak in two places using the %smotrya_streak% placeholder:
In the tab list (right-aligned score column):
# plugins/tab/config.yml
playerlist-objective:
enabled: true
value: "%smotrya_streak%"
fancy-value: "&#FF4500%smotrya_streak% 🔥"
title: "Streak"
render-type: INTEGER
disable-condition: '%world%=disabledworld'
Above the player's head (appended to their nametag):
# plugins/tab/groups.yml
_DEFAULT_:
tabprefix: "%luckperms-prefix%"
tagprefix: "%luckperms-prefix%"
customtabname: "%player%"
tabsuffix: "%luckperms-suffix%"
tagsuffix: "%luckperms-suffix%&r &f| &#FF4500%smotrya_streak% 🔥"
Requires PlaceholderAPI to be installed alongside both plugins.
📊 Statistics
Smotrya-Streak collects anonymous usage statistics via bStats to help
guide development. No personal data is ever collected, and it can be
disabled anytime in config.yml [metrics.enabled: false].
View live server statistics on bStats →
Made with 🔥 by Squad Smotrya

