Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Leaderstats Script by 1MinuteRobloxTutorials--
- local Players = game.Players
- 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.Value = 0
- Coins.Parent = leaderstats
- local Deaths = Instance.new("IntValue")
- Deaths.Name = "Deaths"
- Deaths.Value = 0
- Deaths.Parent = leaderstats
- wait(1)
- local Stats = leaderstats:Clone()
- Stats.Parent = player
- player.CharacterAdded:connect(function(Character)
- local Humanoid = Character:FindFirstChild "Humanoid"
- Deaths.Value = Deaths.Value + 1
- 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)
- -------------------------------------------------------------------------------------------------------------------------
- --Data Store Script by 1MinuteRobloxTutorials
- local DataStoreService = game:GetService("DataStoreService")
- local dataStore = DataStoreService:GetDataStore("DataStore")
- game.Players.PlayerAdded:Connect(function(player)
- local leaderstats = player:WaitForChild("leaderstats")
- local CoinsKey = player.UserId.."-Coins"
- local deathsKey = player.UserId.."-Deaths"
- local Coins, deaths = 0, 0
- local success, errorMessage = pcall(function()
- Coins = dataStore:GetAsync(CoinsKey) or 0
- deaths = dataStore:GetAsync(deathsKey) or 0
- end)
- if success then
- leaderstats.Coins.Value = Coins
- leaderstats.Deaths.Value = deaths
- else
- warn("Failed to retrieve data: " .. errorMessage)
- end
- player.Changed:Connect(function(property)
- if property == "Parent" and player.Parent == nil then
- local success, errorMessage = pcall(function()
- dataStore:SetAsync(CoinsKey, leaderstats.Coins.Value)
- dataStore:SetAsync(deathsKey, leaderstats.Deaths.Value)
- end)
- if not success then
- warn("Failed to save data: " .. errorMessage)
- end
- end
- end)
- end)
- -- Add this line to ensure data is saved when the game shuts down
- game:BindToClose(function()
- for _, player in ipairs(game.Players:GetPlayers()) do
- local leaderstats = player:FindFirstChild("leaderstats")
- if leaderstats then
- local CoinsKey = player.UserId.."-Coins"
- local deathsKey = player.UserId.."-Deaths"
- local success, errorMessage = pcall(function()
- dataStore:SetAsync(CoinsKey, leaderstats.Coins.Value)
- dataStore:SetAsync(deathsKey, leaderstats.Deaths.Value)
- end)
- if not success then
- warn("Failed to save data: " .. errorMessage)
- end
- end
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment