Persistent Leaderboard System for Roblox
A downloadable tool for Windows, macOS, and Linux
===========================================================
๐ ROBLOX PERSISTENT LEADERBOARD SYSTEM
Demo: https://www.roblox.com/share?code=5d6ffc2a6bf04d498787af1f85f8c96a&type=Experien...
===========================================================
Version: 1.0
Author: Jadon Fischer (Fischer Software e.K. / Jadon | Roblox Tutorials)
License: COMMERCIAL USE ONLY (see bottom)
===========================================================
A lightweight, plug-and-play leaderboard framework designed for **persistent,
auto-updating, multi-period leaderboards** — including support for:
โข All-time stats
โข Monthly (auto-resetting) stats
โข Ordered DataStores
โข Auto avatar display for top players
โข Automatic UI population from templates
โข Fully server-driven logic (no client risk)
This system avoids controllers, modules, and unnecessary wrappers — everything is clean, direct, and readable.
-----------------------------------------------------------
โจ FEATURES
-----------------------------------------------------------
๐ Supports multiple leaderboard types (All-Time, Monthly, etc.)
๐ Automatic periodic updates to OrderedDataStores
๐งน Automatic clearing & UI repopulation
๐ Automatic avatar spawning for #1 ranked players
๐ Monthly auto-reset countdown display
๐งฉ Blueprint-driven UI (easy to reskin)
๐ฆ Works with your existing save system through Bindables
๐ซ No client write access โ exploit-resistant
-----------------------------------------------------------
โ๏ธ FILE OVERVIEW
-----------------------------------------------------------
ServerScriptService/
โโ LeaderboardServer.lua -- Handles Datastores, UI population, resets
ReplicatedStorage/
โโ Bindables/
โ โโ GetPlayerSave (BindableFunction) -- Used to retrieve player stats
โโ Blueprints/
โ โโ Dummy -- Avatar template
โ โโ LeaderboardEntry -- Standard entry
โ โโ LeaderboardEntryFirst -- Rank #1 special frame
โ โโ LeaderboardEntrySecond -- Rank #2 special frame
โ โโ LeaderboardEntryThird -- Rank #3 special frame
Workspace/
โโ Leaderboards/ -- One model per leaderboard
โโ Main.LeaderboardGUI.Holder
โโ LeaderSpawn -- Where 1st place avatar appears
-----------------------------------------------------------
๐ SYSTEM ARCHITECTURE
-----------------------------------------------------------
SERVER — LeaderboardServer.lua
------------------------------
Handles all responsibilities:
1. **Pulls live stats** using:
bindables.GetPlayerSave:Invoke(player)
2. **Chooses which value to read** using `_getValue(player, index)`
(You customize this for your game data.)
3. **Stores data** into OrderedDataStores:
store:SetAsync(player.UserId, value)
4. **Rebuilds UI** every update cycle
โข Clears old UI elements
โข Clones UI templates
โข Populates names, values, ranks, profile icons
5. **Spawns avatar** of #1 player via:
spawnUserAvatar(userId, cframe)
6. **Calculates monthly reset timer** and updates the leaderboard label
Everything is automated — you only edit your own stat retrieval logic.
-----------------------------------------------------------
๐ง HOW MONTHLY RESET WORKS
-----------------------------------------------------------
Your save system is responsible for clearing monthly stats (example provided).
The leaderboard system simply:
โข Inserts the current `{YEAR}` and `{MONTH}` into the DataStore key
โข Displays a real-time countdown to the next month
โข Uses a different OrderedDataStore each month automatically
Example key:
"MonthlyLoyal_2025_2"
As the month changes, a *new* DataStore becomes active.
-----------------------------------------------------------
๐ง CUSTOMIZING YOUR LEADERBOARDS
-----------------------------------------------------------
Inside LeaderboardServer:
1. `DISPLAY_AMOUNT`
Number of players shown per leaderboard.
2. `DISPLAY_ASCENDING`
Whether low โ high (true) or high โ low (false).
3. `RESET_POLICY`
Supports:
nil — never resets
"Monthly" — shows countdown and swaps DataStore key
4. `DATASTORE_KEYS`
Use `{YEAR}` and `{MONTH}` tokens for auto-period keys.
-----------------------------------------------------------
๐ฆ SAVE SYSTEM INTEGRATION (EXAMPLE INCLUDED)
-----------------------------------------------------------
Your save script must expose two Bindables:
1. `GetPlayerSave` โ returns a table like:
{
Playtime = number,
MonthlyPlaytime = number,
LastMonth = number
}
2. (Optional) `SetPlayerSave` — only needed if you want to modify data.
The provided sample demonstrates:
โข Monthly stat rollover
โข Incrementing playtime per minute
โข DataStore2 usage
โข Saving on CharacterRemoving
-----------------------------------------------------------
๐ฅ SERVER USAGE EXAMPLE
-----------------------------------------------------------
Nothing else required — it all runs automatically.
All you must do is:
โ Put your leaderboards in workspace
โ Ensure blueprints exist
โ Return correct values in `_getValue()`
โ Ensure save system exposes GetPlayerSave
Done! The system handles the rest.
-----------------------------------------------------------
๐ก TIPS
-----------------------------------------------------------
โข Never setAsync test players (UserId < 0)
โข Use separate DataStore keys for each leaderboard
โข Your LeaderboardEntry templates control your look — not the script
โข Monthly DataStore swap โ monthly data wipe
โ Your save file *must* reset monthly values too (example provided)
-----------------------------------------------------------
โ๏ธ LICENSE — COMMERCIAL USE ONLY
-----------------------------------------------------------
Copyright (c) 2025
Jadon Fischer (Fischer Software e.K. / Jadon | Roblox Tutorials)
Permission is granted to the purchaser to modify and use in commercial Roblox
experiences. Redistribution in any form is prohibited.
-----------------------------------------------------------
โ CREDITS
-----------------------------------------------------------
Developed by Jadon Fischer (Fischer Software e.K. / Jadon | Roblox Tutorials)
Version 1.0 — automated, persistent, multi-board leaderboards.
===========================================================
| Updated | 1 day ago |
| Published | 5 days ago |
| Status | Released |
| Category | Tool |
| Platforms | Windows, macOS, Linux |
| Author | Jadon | Roblox Tutorials |
| Tags | leaderboards, roblox, roblox-studio, Tycoon |
Purchase
In order to download this tool you must purchase it at or above the minimum price of $9.99 USD. You will get access to the following files:


