A downloadable tool for Windows, macOS, and Linux

Get this tool and 2 more for $19.99 USD
View bundle
Buy Now$9.99 USD or more

===========================================================

๐Ÿ“Š 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
StatusReleased
CategoryTool
PlatformsWindows, macOS, Linux
AuthorJadon | Roblox Tutorials
Tagsleaderboards, roblox, roblox-studio, Tycoon

Purchase

Get this tool and 2 more for $19.99 USD
View bundle
Buy Now$9.99 USD or more

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:

PersistentLeaderboardSystem_v1_0.rbxl 273 kB