ModsJava
SimpleSession – Advanced Session Tracking & Rewards
Java mod listed for Minecraft 1.21. Downloads from the MC Java Mods app on Android.
⬇ Download on SpigotSession tracking, persistent play time statistics, leaderboards & rewards for Minecraft 1.21+
There's an issue/bug, where can I report it?
You can get instant support on my Discord server or open an issue on GitHub.
What makes SimpleSession different from other playtime plugins?
SimpleSession puts current sessions, all-time play time statistics, leaderboards and rewards into one lightweight plugin. No database setup is needed (SQLite is built into Spigot/Paper), and every message and time format is configurable.
Latest Update - 2.0.0
- Persistent statistics (SQLite) - total play time, longest session, number of sessions, today / this week / this month, average session, first join and last seen.
- Leaderboards for every statistic - /ss top <type> [page] with pages, plus new hologram placeholders.
- Relog protection - a player who rejoins within the grace period keeps the session. Sessions also survive /reload.
- Smart time formats - "1 hour and 5 minutes" instead of "0 days, 1 hours, 5 minutes, 0 seconds", with correct plural forms.
- New admin commands - /ss check, /ss reset, /ss set | add | take, which also work for offline players.
- More powerful milestones - broadcast, permission, titles, action bar, sounds and player/console commands.
- Automatic config update - when you update from 1.0.0, your files are backed up and the new options are added with comments.
- Bug fixes: {prefix} in messages, milestone placeholders, /broadcast missing on plain Paper, join priority, async placeholders, /ss debug rewriting the config.
Dependencies
Required:
- None - the plugin runs fine on its own (the SQLite driver is built into Spigot/Paper)
- PlaceholderAPI (placeholders for scoreboards, tab, holograms, GUIs)
Core Features
- Real-time Session Tracking - from join to disconnect
- The session starts before other plugins handle the join, so welcome messages already show the correct time
- Thread-safe placeholders - safe to use in async scoreboards and tab plugins
- ✨ NEW: Persistent Statistics (SQLite)
- Total play time, longest session (record), number of sessions, average session
- Play time today, this week and this month (configurable time zone and first day of the week)
- First join and last seen dates (configurable date format)
- Database work runs on its own thread, online players are saved periodically, and nothing is lost on shutdown
- ✨ NEW: Relog Protection
- A player who returns within the grace period (default 60s) continues the old session
- Choose whether time spent offline counts into the session
- Optionally keeps sessions even after a quick server restart
- A restored session is not counted as a new one and doesn't grant milestones twice
- Configurable "welcome back" message
- Leaderboards
- Types: session, total, record, today, week, month, sessions
- ✨ NEW: pages with navigation, and offline players are included in statistics leaderboards
- Fully customizable header, lines, footer, medals and colors
- ✨ NEW: hologram placeholders for every type, cached and not limited to TOP 10
- ✨ NEW: Smart Time Formats
- Shows only meaningful units: "2 days, 3 hours", "5h 21m", "45 seconds"
- Correct plural forms (Polish and English rules, your own unit names)
- Separators, max units and zero hiding are configurable, or switch smart formatting off and use classic patterns
- Ready formats: full, short, compact, long, clock (125:04:09), custom, or create your own
- display section - choose which format is used in each place (leaderboard, placeholders, /ss check, milestones...)
- Session Milestones - reward active players
- Message to the player + broadcast to everyone
- ✨ NEW: actions [console], [player], [broadcast], [message], [actionbar], [title], [sound]
- ✨ NEW: optional permission per milestone, durations like "30m" or "1h30m"
- Placeholders {player}, {uuid}, {time}, {session} + PlaceholderAPI
- Fully Configurable Messages
- Every message lives in messages.yml (Polish by default, easy to translate)
- ✨ NEW: hex colors &#RRGGBB, {prefix} in every message, empty message = disabled
- ✨ NEW: Safe Updates - old config files are backed up and new options are added automatically with comments
Spoiler: Placeholders
Current session:
Statistics:
Leaderboards (holograms):
Code (Text):
%simplesession_formatted% - session in the default format
%simplesession_formatted_<format>% - session in any format (_short, _compact, _clock...)
%simplesession_hours% / _minutes% / _seconds% / _days%
%simplesession_total_seconds% / _total_minutes% / _total_hours% / _total_days%
%simplesession_rank% - position by current session
%simplesession_formatted_<format>% - session in any format (_short, _compact, _clock...)
%simplesession_hours% / _minutes% / _seconds% / _days%
%simplesession_total_seconds% / _total_minutes% / _total_hours% / _total_days%
%simplesession_rank% - position by current session
Code (Text):
%simplesession_stats_total% - all-time play time
%simplesession_stats_record% - longest session
%simplesession_stats_today% / _week% / _month% / _average%
%simplesession_stats_sessions% - number of sessions
%simplesession_stats_first_join% / %simplesession_stats_last_seen%
%simplesession_stats_<x>_seconds% - raw seconds
%simplesession_stats_<x>_formatted_<format>% - any format
%simplesession_rank_<type>% - position in a leaderboard
%simplesession_stats_record% - longest session
%simplesession_stats_today% / _week% / _month% / _average%
%simplesession_stats_sessions% - number of sessions
%simplesession_stats_first_join% / %simplesession_stats_last_seen%
%simplesession_stats_<x>_seconds% - raw seconds
%simplesession_stats_<x>_formatted_<format>% - any format
%simplesession_rank_<type>% - position in a leaderboard
Code (Text):
%simplesession_top_<n>_name% / %simplesession_top_<n>_time% - current sessions
%simplesession_top_<type>_<n>_name%
%simplesession_top_<type>_<n>_time%
%simplesession_top_<type>_<n>_value%
<type>: session, total, record, today, week, month, sessions
Examples: %simplesession_top_total_1_name% %simplesession_top_week_3_time%
%simplesession_top_<type>_<n>_name%
%simplesession_top_<type>_<n>_time%
%simplesession_top_<type>_<n>_value%
<type>: session, total, record, today, week, month, sessions
Examples: %simplesession_top_total_1_name% %simplesession_top_week_3_time%
Commands
- /ss help - Help (shows only commands you can use)
- /ss info - Plugin information
- /ss top [type] [page] - Leaderboards
- ✨ NEW: /ss check [player] - Session and statistics of a player (online or offline)
- ✨ NEW: /ss reset <player> <session|total|record|sessions|periods|all> - Reset session / statistics
- ✨ NEW: /ss set | add | take <player> <total|record|sessions> <value> - Edit statistics (e.g. 1h30m, 2d, 3600)
- /ss reload - Reload configuration
- /ss debug - Toggle debug mode
- Aliases: /simplesession, /ss, /session
Spoiler: Permissions
Code (Text):
simplesession.use - help, info (default: everyone)
simplesession.top - /ss top (default: everyone)
simplesession.check - /ss check (default: everyone)
simplesession.check.others - /ss check <player> (default: everyone)
simplesession.reset - /ss reset (default: op)
simplesession.modify - /ss set|add|take (default: op)
simplesession.reload - /ss reload (default: op)
simplesession.debug - /ss debug (default: op)
simplesession.admin - all of the above (default: op)
simplesession.top - /ss top (default: everyone)
simplesession.check - /ss check (default: everyone)
simplesession.check.others - /ss check <player> (default: everyone)
simplesession.reset - /ss reset (default: op)
simplesession.modify - /ss set|add|take (default: op)
simplesession.reload - /ss reload (default: op)
simplesession.debug - /ss debug (default: op)
simplesession.admin - all of the above (default: op)
Spoiler: ⚙️ Configuration examples
Relog protection:
Which format is used where:
Milestone:
Code (Text):
relog-protection:
enabled: true
grace-period: 60 # seconds a player may be offline
count-offline-time: false
keep-after-restart: false
enabled: true
grace-period: 60 # seconds a player may be offline
count-offline-time: false
keep-after-restart: false
Code (Text):
display:
leaderboard-command: compact # /ss top -> "5h 21m"
leaderboard-placeholder: compact
stats-placeholder: long # "5 hours and 21 minutes"
check-command: full
milestone: long
leaderboard-command: compact # /ss top -> "5h 21m"
leaderboard-placeholder: compact
stats-placeholder: long # "5 hours and 21 minutes"
check-command: full
milestone: long
Code (Text):
milestones:
list:
one_hour:
time: "1h"
message: "&6WOW! &eOne hour on the server!"
broadcast: "&e{player} &7has been playing for &e1 hour&7!"
commands:
- "give {player} diamond 1"
- "[title] &6WOW!;&e{time} on the server"
- "[sound] entity.player.levelup;1;1"
list:
one_hour:
time: "1h"
message: "&6WOW! &eOne hour on the server!"
broadcast: "&e{player} &7has been playing for &e1 hour&7!"
commands:
- "give {player} diamond 1"
- "[title] &6WOW!;&e{time} on the server"
- "[sound] entity.player.levelup;1;1"
Requirements
- Spigot / Paper / Purpur 1.21+
- Java 21
- PlaceholderAPI (optional)
Links
- GitHub Repository - full documentation in README
- Report Issues
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft version listed: 1.21
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
SimpleSession – Advanced Session Tracking & Rewards is a free Minecraft Java mod. Compatible with Minecraft 1.21. Downloaded 22 times (via Spigot). Download it and open it directly in the game.