I have some issues with my leaderboard…
I want a leaderboard with Coin or money, kills and death.
I want all stats to save.
and i want the player to get 10 coins/money per 10 seconds.
i have tried to add some saving script but it always mess up my leaderboard. idk what im doing wrong.
Im not a scripter so i dont really understand it. i just watch yt…
thanks for your time and help <3
game.Players.PlayerAdded:Connect(function(plr)
local stats = Instance.new(“Folder”)
stats.Name = “leaderstats”
stats.Parent = plr
local Coins = Instance.new(“IntValue”)
Coins.Name = “Coins”
Coins.Parent = stats
local kills = Instance.new("IntValue")
kills.Name = “Kills”
kills.Parent = stats
local deaths = Instance.new(“IntValue”)
deaths.Name = “Deaths”
deaths.Parent = stats
plr.CharacterAdded:connect(function(char)
local humanoid
repeat
humanoid = char:FindFirstChild(“Humanoid”)
wait()
until humanoid
humanoid.Died:connect(function()
deaths.Value = deaths.Value + 1
local tag = humanoid:FindFirstChild(“creator”)
if tag then
local killer = tag.Value
if killer then
killer.leaderstats.Kills.Value = killer.leaderstats.Kills.Value + 1
end
end
end)
end)
end)
local amount = 10–amount of coins we will be giving
local timeamount = 10–cooldown time in seconds, change if you want
local currencyname = “Coins”–name of our currency, change to your currency name
while true do-- while this is true do
wait(timeamount)-- wait for the amount of time we put in the timeamount variable
for i,v in pairs(game.Players:GetPlayers()) do–for loop
if v:FindFirstChild(“leaderstats”) then-- if the player finds the leaderstats then
v.leaderstats[currencyname].Value = v.leaderstats[currencyname].Value + amount–adds currency
end
end
end
– in this very specific example it’s saving cash
local Players, DataStoreService = game:GetService(“Players”), game:GetService(“DataStoreService”)
local cash_data_store = DataStoreService:GetDataStore(“CashDataStore”)
local function load(player: Player)
– …
end
local function save(player: Player)
– …
end
Players.PlayerAdded:Connect(function(player: Player)
load(player)
end)
Players.PlayerRemoving:Connect(function(player: Player)
save(player)
end)
game:BindToClose(function()
for _, player in ipairs(Players:GetPlayers()) do
save(player)
end
end)
Create this leaderstats script
game.Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local coins = Instance.new("IntValue")
coins.Name = "Coins"
coins.Parent = leaderstats
local kills = Instance.new("IntValue")
kills.Name = "Kills"
kills.Parent = leaderstats
local deaths = Instance.new("IntValue")
deaths.Name = "Deaths"
deaths.Parent = leaderstats
while wait(1) do
player:WaitForChild("leaderstats"):WaitForChild("Coins").Value += 10
end
end)
And inside the leaderstats script, add a script and paste the code:
local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")
local Saver = DataStoreService:GetDataStore("SaveLeaderstats")
Players.PlayerAdded:Connect(function(player)
local Data = nil
local success, errormessage = pcall(function()
Data = Saver:GetAsync(tostring(player.UserId))
print("Successfully loaded "..tostring(player.Name)..tostring("'s data."))
end)
if success then
if Data then
for i, v in pairs(Data) do
player:WaitForChild("leaderstats"):WaitForChild(i).Value = v
end
end
else
error(errormessage)
end
end)
local function Save(player)
local SavedData = {}
for _, v in pairs(player.leaderstats:GetChildren()) do
SavedData[v.Name] = v.Value
end
local success, errormessage = pcall(function()
Saver:SetAsync(tostring(player.UserId), SavedData)
print("Successfully got "..tostring(player.Name)..tostring("'s data."))
end)
if not success then
error(errormessage)
end
end
Players.PlayerRemoving:Connect(Save)
game:BindToClose(function()
for _, v in pairs(Players:GetPlayers()) do
Save(v)
end
end)
The script above saves ALL of the values in the leaderstats.
Where do i create a leaderstat script? under workspace or serverscriptservice?
serverscriptservice
workspace is mainly putting parts so its obvious
sorry. i have it under workspace now… not sure why hahaha il try it out. thank you <3
Always remember that you put leaderstats script in ServerScriptService.
You might need to watch a YT tutorial if you want to get the kills and deaths working.
thank you! the leaderboard works… it used to give the death and kills… so… i will read about it again… sorry. im just a mom thats making a game with my kids
Please remember to copy the save script and put it somewhere safe(the one inside leaderstats)… you will create more games, and you might need to save data on those too!
i added this and now it all works thank you so much for your help
Players.PlayerAdded:connect(function(Player)
wait(1)
local Stats = Template:Clone()
Stats.Parent = Player
local Deaths = Stats.Deaths
Player.CharacterAdded:connect(function(Character)
Deaths.Value = Deaths.Value + 1
local Humanoid = Character:FindFirstChild(“Humanoid”)
if Humanoid then
Humanoid.Died:connect(function()
for i, Child in pairs(Humanoid:GetChildren()) do
if Child:IsA(‘ObjectValue’) and Child.Value and Child.Value:IsA(‘Player’) then
local Killer = Child.Value
if Killer:FindFirstChild(‘leaderstats’) and Killer.leaderstats:FindFirstChild(“Kills”) then
local Kills = Killer.leaderstats.Kills
Kills.Value = Kills.Value + 1
end
return
end
end
end)
end
end)
end)
hahaha “you will create more games”… u are funny this one gives me grey hair but my kids really want to do it hahahaha
but i will ofc save it in case of
haha the death and kills only work sometimes…
I guess its this part that is the kills and death… but i have no idea how to re-wright it to fit the script…
When i look at yt i just find it in leaderstat text… so i dont really know how to use it…
plr.CharacterAdded:connect(function(char)
local humanoid
repeat
humanoid = char:FindFirstChild(“Humanoid”)
wait()
until humanoid
humanoid.Died:connect(function()
deaths.Value = deaths.Value + 1
local tag = humanoid:FindFirstChild(“creator”)
if tag then
local killer = tag.Value
if killer then
killer.leaderstats.Kills.Value = killer.leaderstats.Kills.Value + 1
end
end
end)
end)
end)
does anyone know how to add the kill and death into the script?
add this in a different topic. thats the rules i think
i wouldnt really say that its a different topic since it was a code that was in the original script… but i already did a new topic about it and ty for your help
im about to make a tutorial with it… so you know what’s going to happen…
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.