Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local dataStores = game:GetService("DataStoreService"):GetDataStore("BucksDataStore")
- local dataStoresB = game:GetService("DataStoreService"):GetDataStore("WinsDataStore")
- local DefaultCash = 1000
- local DefaultWins = 0
- local playersLeft = 0
- game.Players.PlayerAdded:Connect(function(player)
- playersLeft = playersLeft + 1
- local leaderstats = Instance.new("Folder")
- leaderstats.Name = "leaderstats"
- leaderstats.Parent = player
- local bucks = Instance.new("IntValue")
- bucks.Name = "Bucks"
- bucks.Value = 0
- bucks.Parent = leaderstats
- local wins = Instance.new("IntValue")
- wins.Name = "Wins"
- wins.Value = 0
- wins.Parent = leaderstats
- local playerData = Instance.new("Folder")
- playerData.Name = player.Name
- playerData.Parent = game.ServerStorage.PlayerData
- local equipped = Instance.new("StringValue")
- equipped.Name = "Equipped"
- equipped.Parent = playerData
- local inventory = Instance.new("Folder")
- inventory.Name = "Inventory"
- inventory.Parent = playerData
- player.CharacterAdded:Connect(function(character)
- character.Humanoid.Died:Connect(function()
- --Whenever somebody gets pwned, this event will run
- if character:FindFirstChild("GameTag") then
- character.GameTag:Destroy()
- end
- player:LoadCharacter()
- end)
- end)
- --Date Stores
- local player_data
- local weaponsData
- local equippedData
- local player_dataB
- pcall(function()
- player_data = dataStores:GetAsync(player.UserId.."-Bucks") --1736284-Bucks
- end)
- pcall(function()
- weaponsData = dataStores:GetAsync(player.UserId.."-Weps") --1736284-Bucks
- end)
- pcall(function()
- equippedData = dataStores:GetAsync(player.UserId.."-EquippedValue") --1736284-Bucks
- end)
- pcall(function()
- player_dataB = dataStores:GetAsync(player.UserId.."-Wins")
- end)
- if player_data ~= nil then
- --Player has saved data, load this in
- bucks.Value = player_data
- else
- -- New Player
- bucks.Value = DefaultCash
- end
- if player_dataB ~= nil then
- --Player has saved data, load this in
- wins.Value = player_dataB
- else
- -- New Player
- wins.Value = DefaultWins
- end
- if weaponsData then
- for _, weapon in pairs(weaponsData) do
- if game.ServerStorage.Items:FindFirstChild(weapon) then
- local weaponClone = game.ServerStorage.Items[weapon]:Clone()
- weaponClone.Parent = inventory
- print(weapon.." loaded in!")
- end
- end
- if equippedData then
- equipped.Value = equippedData
- player:WaitForChild("PlayerGui")
- game.ReplicatedStorage.SendEquipped:FireClient(player,equippedData)
- end
- else
- print("No weapons data")
- end
- end)
- local bindableEvent = Instance.new("BindableEvent")
- game.Players.PlayerRemoving:Connect(function(player)
- pcall(function()
- dataStores:SetAsync(player.UserId.."-Bucks",player.leaderstats.Bucks.Value)
- dataStores:SetAsync(player.UserId.."-Wins",player.leaderstats.Wins.Value)
- playersLeft = playersLeft - 1
- bindableEvent:Fire()
- end)
- pcall(function()
- local weapons = game.ServerStorage.PlayerData[player.Name].Inventory:GetChildren()
- local weaponsTable = {}
- for _, v in pairs(weapons) do
- table.insert(weaponsTable,v.Name)
- end
- dataStores:SetAsync(player.UserId.."-Weps",weaponsTable)
- if game.ServerStorage.PlayerData[player.Name].Equipped.Value ~= nil then
- local equippedVal = game.ServerStorage.PlayerData[player.Name].Equipped
- dataStores:SetAsync(player.UserId.."-EquippedValue",equippedVal.Value)
- end
- end)
- print("Saved weapons, wins, and points.")
- end)
- game:BindToClose(function()
- -- This will be triggered upon shutdown
- while playersLeft > 0 do
- bindableEvent.Event:Wait()
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement