P1. So i am trying to make a leaderboard leveling system but when i add like 100 exp for it the level up the 100 exp stays, i want to the exp to reset or if they let say gain 10 more than the exp required to level up their exp would be 10 and their level would be the next level
player = game.Players.LocalPlayer game.Players.PlayerAdded:connect(function(plr) local ldrstats = Instance.new('Folder',plr) ldrstats.Name = 'leaderstats' local lvl = Instance.new('IntValue',ldrstats) lvl.Name = 'Level' lvl.Value = 0 local xp = Instance.new('IntValue',ldrstats) xp.Name = 'Exp' xp.Value = 0 local function update() lvl.Value = math.floor(xp.Value/100) end xp.Changed:connect(update) if player.leaderstats.Level.Value + 1 then player.leaderstats. Exp.Value = 0 end end)
P2. , How do i make it so that you require certain amounts of exp so level up so like at level 1 you need 100 to get to level 2 and u need 200 to get to level 3 (you wont have to answer p2)
I think this is what you were kind of looking for...
Just copy and paste in after the third one and change the 1, 200, and 300 to fit your needs
if lvl.Value == 1 then if xp.Value > 200 then lvl.Value = lvl.Value + 1 xp.Value = xp.Value - 300 end end
In A Script
game.Players.PlayerAdded:connect(function(Plr)-- Player Joined Plr.CharacterAdded:connect(function(Char) -- Players' Character Added -- Setting Variables local ldrstats = Instance.new("Configuration",Plr) ldrstats.Name = "Leaderstats" local lvl = Instance.new("IntValue", ldrstats) lvl.Name = "Level" lvl.Value = 0 local xp = Instance.new("IntValue", ldrstats) xp.Name = "Exp" xp.Changed:connect(function() -- Exp Value Changed -- Player is Level 0 if lvl.Value == 0 then if xp.Value > 100 then lvl.Value = lvl.Value + 1 xp.Value = xp.Value - 100 end end -- Player is Level 1 if lvl.Value == 1 then if xp.Value > 200 then lvl.Value = lvl.Value + 1 xp.Value = xp.Value - 300 end end -- Player is Level 2 if lvl.Value == 2 then if xp.Value > 300 then lvl.Value = lvl.Value + 1 xp.Value = xp.Value - 300 end end end) end) end)
And this is just a random Exp Giver
In A Script
script.Parent.Touched:connect(function(Hit) local PlrN = Hit.Parent.Name local Plr = game.Players:FindFirstChild(PlrN) if Plr then local ldrs = Plr:FindFirstChild("Leaderstats") if ldrs then local exp = ldrs:FindFirstChild("Exp") if exp then exp.Value = exp.Value + 100 end end end end)