- What do you want to achieve? Keep it simple and clear!
To make DataStore working
- What is the issue? Include screenshots / videos if possible!
I made DataStore, but weapon value and buttonValues doesn’t save
- What solutions have you tried so far? Did you look for solutions on the Developer Hub?
I’ve tried many solutions, none of them worked
After that, you should include more details if you have any. Try to make your topic as descriptive as possible, so that it’s easier for people to help you!
local dataStoreService = game:GetService("DataStoreService")
local getDataStore = dataStoreService:GetDataStore("data")
local serverStorage = game:GetService("ServerStorage")
local weaponsFolder = serverStorage:WaitForChild("Weapons")
local rankSpawners = workspace.RankSpawners
game.Players.PlayerAdded:Connect(function(player)
local userId = player.UserId
repeat task.wait(1) until player.PlayerGui.Display
local folder = Instance.new("Folder",player)
folder.Name = "leaderstats"
local cash = Instance.new("NumberValue",folder)
cash.Name = "Cash"
local rank = Instance.new("NumberValue",folder)
rank.Name = "Rank"
local weapon = Instance.new("NumberValue",folder)
weapon.Name = "Weapon"
local data
local success,fail = pcall(function()
data = getDataStore:GetAsync(userId)
end)
if data then
for key,value in pairs(data) do
print(key)
print(value)
cash.Value = data["Cash"] or 0
rank.Value = data["Rank"] or 1
weapon.Value = data["Weapon"] or 1
player.PlayerGui.Display.RankUpButton.RequiredCash.Value = data["RankUp_RequiredCash"] or 500
player.PlayerGui.Display.RankUpButton.RequiredRank.Value = data["RankUp_RequiredRank"] or 1
player.PlayerGui.Display.NextWeaponButton.RequiredCash.Value = data["NextWeapon_RequiredCash"] or 150
player.PlayerGui.Display.NextWeaponButton.RequiredRank.Value = data["NextWeapon_RequiredRank"] or 1
end
else
cash.Value = 0
rank.Value = 1
weapon.Value = 1
player.PlayerGui.Display.RankUpButton.RequiredCash.Value = 500
player.PlayerGui.Display.RankUpButton.RequiredRank.Value = 1
player.PlayerGui.Display.NextWeaponButton.RequiredCash.Value = 150
player.PlayerGui.Display.NextWeaponButton.RequiredRank.Value = 1
end
task.wait(0.25)
player:LoadCharacter()
task.wait(0.25)
player.CharacterAppearanceLoaded:Connect(function(character)
character:MoveTo(rankSpawners["R"..rank.Value].Position)
task.wait(0.25)
for _,checkWeapon in pairs(weaponsFolder:GetChildren()) do
if checkWeapon:IsA("Tool") then
for _,findWeapon in pairs(checkWeapon.Config:GetChildren()) do
if findWeapon:IsA("NumberValue") and findWeapon.Name == "Weapon" and findWeapon.Value == weapon.Value then
local clone = checkWeapon:Clone()
clone.Parent = player.Backpack
end
end
end
end
local rankUpButton = player.PlayerGui.Display.RankUpButton
local nextWeaponButton = player.PlayerGui.Display.NextWeaponButton
end)
local rankUpButton = player.PlayerGui.Display.RankUpButton
local nextWeaponButton = player.PlayerGui.Display.NextWeaponButton
rankUpButton.Activated:Connect(function()
if rank.Value == rankUpButton.RequiredRank.Value and cash.Value == rankUpButton.RequiredCash.Value then
rank.Value += 1
rankUpButton.RequiredRank.Value += 1
rankUpButton.RequiredCash.Value += 500
end
end)
nextWeaponButton.Activated:Connect(function()
if rank.Value == nextWeaponButton.RequiredRank.Value and cash.Value == nextWeaponButton.RequiredCash.Value then
weapon.Value += 1
rankUpButton.RequiredRank.Value += 1
rankUpButton.RequiredCash.Value += 150
end
end)
end)
game.Players.PlayerRemoving:Connect(function(player)
local userId = player.UserId
local data = {
["Cash"] = player.leaderstats.Cash.Value,
["Rank"] = player.leaderstats.Rank.Value,
["Weapon"] = player.leaderstats.Weapon.Value,
["RankUp_RequiredCash"] = player.PlayerGui.Display.RankUpButton.RequiredCash.Value,
["RankUp_RequiredRank"] = player.PlayerGui.Display.RankUpButton.RequiredRank.Value,
["NextWeapon_RequiredCash"] = player.PlayerGui.Display.NextWeaponButton.RequiredCash.Value,
["NextWeapon_RequiredRank"] = player.PlayerGui.Display.NextWeaponButton.RequiredRank.Value,
}
local success,fail = pcall(function()
getDataStore:SetAsync(userId,data)
end)
end)