Level System: A Flexible Multi-Progression System for Roblox
What is it?
Level System is a centralized, config-driven system that lets you create unlimited independent progression systems (levels, ranks, stages, pet levels, weapon mastery, etc.) without writing repetitive code. You can either use this as a guide to learn how to save using data store (ProfileService), or actually use this level system to seamlessly add levels to your characters, items, or pets.
WITH TESTING SCRIPTS SO YOU CAN MESS AROUND WITH LEVELS, REBIRTHS, ETC.
Key Features
- Multiple Level Types - Define unlimited progression systems in one config
- Flexible Scaling - Linear or exponential growth formulas
- Rebirth Support - Multiple rebirth families with custom names
- Auto-Profile Generation - Profile data structure generates automatically
- Dynamic Types - Add pet/weapon leveling systems at runtime
- Zero Boilerplate - Add new types without touching core code
- Industry Standard - Built on ProfileService/ProfileStore for reliable data persistence
- Beginner Friendly - Easy to configure, add, or remove level types without coding experience
- Plug & Play - Quick installation with automatic or manual setup options
Installation
Choose the installation method that works best for you:
Method 1: SuperbulletAI (Recommended - Automatic)
- Download and install SuperbulletAI: https://ai.superbulletstudios.com/
- Prompt
add level system, wait for 60 seconds for it to process it! - Everything is configured and ready to use!
- (PS: Don’t forget to enable
Enable Studio Access to API Services
Method 2: Manual Setup with Rojo
- Clone or download from GitHub: GitHub - Froredion/Level_System: template level system for your roblox game by SuperbulletAI
- Use Rojo to sync the files to your Roblox game
- Follow the setup instructions in the repository
Method 3: Roblox Place File
-
Download:
levelsystem.rbxl (178.7 KB) -
Open the file, publish and
Enable Studio Access to API Services
Easy Configuration
Adding or removing level types is as simple as editing a config file - no coding required! Just add or remove entries in the Types table:
Types = {
levels = { ... }, -- Remove this whole array to remove levels
ranks = { ... }, -- Remove this whole array to remove ranks
prestige = { ... }, -- Remove this whole array to remove prestige
}
Perfect for beginners learning to create their first leveling system!
Quick Example
Basic Setup
-- In LevelingConfig.lua
local LevelingConfig = {
Types = {
levels = {
Name = "Level",
ExpName = "EXP",
MaxLevel = 100,
MaxRebirth = 10,
RebirthType = "rebirth",
Scaling = { Formula = "Linear" }, -- Uses global formula
},
ranks = {
Name = "Rank",
ExpName = "Honor",
MaxLevel = 50,
RebirthType = "ascension",
Scaling = {
Formula = "Exponential",
Base = 50,
Factor = 1.25,
},
},
},
Rebirths = {
enabled = true,
Types = {
rebirth = {
Name = "Rebirths",
ShortName = "R",
ActionName = "Rebirth"
},
ascension = {
Name = "Ascensions",
ShortName = "A",
ActionName = "Ascend"
},
},
},
Scaling = {
Formulas = {
Linear = { Base = 100, Increment = 25 },
Exponential = { Base = 50, Factor = 1.25 },
},
},
}
return LevelingConfig
Usage in Code
-- Server
LevelService:AddExp(player, 100, "levels")
LevelService:PerformRebirth(player, "ranks")
-- Client
local levelData = LevelController:GetLevelData("levels")
local canRebirth = LevelController:GetRebirthEligibility("ranks")
Dynamic Level Types (Pet/Weapon Systems)
Create per-entity progression systems:
-- PetConfig.lua
local PetConfig = {
dragon = {
LevelName = "Dragon Level",
ExpName = "Dragon EXP",
Scaling = { Formula = "Exponential", Base = 100, Factor = 1.3 },
},
cat = {
LevelName = "Cat Level",
ExpName = "Cat EXP",
Scaling = { Formula = "Linear" },
},
}
return PetConfig
-- In LevelingConfig.lua (bottom)
local AddExternalTypes = require(script.Parent.Parent.Utilities.Levels.AddExternalTypes)
local PetConfig = require(script.Parent.PetConfig)
AddExternalTypes.Add(LevelingConfig, PetConfig, "_level")
-- Creates: dragon_level, cat_level, etc.
return LevelingConfig
Data Persistence with ProfileService
This system uses ProfileService/ProfileStore for industry-standard data management:
- Reliable - Automatic session locking prevents data loss
- Scalable - Handles thousands of concurrent players
- Battle-Tested - Used by top Roblox games
- Auto-Generated - Profile templates are built automatically from your config
Your level data is automatically saved and loaded without any additional code. The system handles:
- Profile creation and loading
- Data replication to clients
- Safe session management
- Automatic structure updates when you add new level types
No need to worry about DataStore management - it’s all handled for you! (credits to loleris for the ProfileService)