So… … … I have a game called
Which is obviously a tycoon. I am making an update with Achievements, a custom Player List, and a Premium feature. I have 3 issues though:
- the leaderstats is not showing and when you type in a command that has to do with the leaderstats the output shows this:
09:48:17 -- leaderstats is not a valid member of Player
so basically the leaderstats script is not working. - The tycoon datastore isn’t working anymore but it used to.
- Basically any script that has to do with datastores ^^ is not working. The achievements script has this error:
09:48:17 -- Achievements is not a valid member of Player
and the tycoon datastore just doesn’t work.
All of these issues (leaderstats, achievements, tycoon saving) used to work before. But now they just don’t.
Here are my scripts:
leaderstats (just a little snippet)
local stats = Instance.new("IntValue")
stats.Name = "leaderstats"
local kills = false
if Settings.LeaderboardSettings.KOs then
kills = Instance.new("IntValue")
kills.Name = Settings.LeaderboardSettings.KillsName
kills.Value = 0
end
local deaths = false
if Settings.LeaderboardSettings.WOs then
deaths = Instance.new("IntValue")
deaths.Name = Settings.LeaderboardSettings.DeathsName
deaths.Value = 0
end
local cash = false
if Settings.LeaderboardSettings.ShowCurrency then
cash = Instance.new("StringValue")
cash.Name = Settings.CurrencyName
cash.Value = 0
end
local cash2 = false
if Settings.Currency2.CurrencyShowed then
cash2 = Instance.new("NumberValue")
cash2.Name = Settings.Currency2.Name
cash2.Value = 0
end
local cash3 = false
if Settings.Currency3.CurrencyShowed then
cash3 = Instance.new("IntValue")
cash3.Name = Settings.Currency3.Name
cash3.Value = 0
end
Achievements (long, whole script)
local players = game:GetService("Players")
local Datastoreservice = game:GetService("DataStoreService")
local dataStore = Datastoreservice:GetDataStore("AchievementProgressTestII")
local function SaveData(plr)
local key = "plr-"..plr.UserId
local save = {
["Achievement1"] = plr["Achievements"]["Cocoa Collecting 1"],
["Achievement2"] = plr["Achievements"]["Grass Parkour"],
["Achievement3"] = plr["Achievements"]["Sand Parkour"],
["Achievement4"] = plr["Achievements"]["Snow Parkour"],
["Achievement5"] = plr["Achievements"]["Lava Parkour"]
}
local success, err = pcall(function()
dataStore:SetAsync(key, save)
end)
if not success then
warn("Failed to overwrite data: "..tostring(err))
end
end
function LoadData(plr)
local AchievementSettings = require(script.Parent.Settings2)
local achievementsFolder = Instance.new("Folder", plr)
achievementsFolder.Name = AchievementSettings.AchievementSettings.Name
local achievement1 = Instance.new("NumberValue", achievementsFolder)
achievement1.Name = AchievementSettings.AchievementSettings.Achievements["1"]
achievement1.Value = 0
local achievement2 = Instance.new("NumberValue", achievementsFolder)
achievement1.Name = AchievementSettings.AchievementSettings.Achievements["2"]
achievement1.Value = 0
local achievement3 = Instance.new("NumberValue", achievementsFolder)
achievement1.Name = AchievementSettings.AchievementSettings.Achievements["3"]
achievement1.Value = 0
local achievement4 = Instance.new("NumberValue", achievementsFolder)
achievement1.Name = AchievementSettings.AchievementSettings.Achievements["4"]
achievement1.Value = 0
local achievement5 = Instance.new("NumberValue", achievementsFolder)
achievement1.Name = AchievementSettings.AchievementSettings.Achievements["5"]
achievement1.Value = 0
--[[local achievement2 = Instance.new("NumberValue", achievementsFolder)
achievement2.Name = AchievementSettings.AchievementSettings.Achievements["2"]
achievement2.Value = 0--]]
local key = "plr-"..plr.UserId
local savedData
local success, err = pcall(function()
savedData = dataStore:GetAsync(key)
end)
if not success then
warn("Failed to save data: "..tostring(err))
return
end
if savedData then
achievement1.Value = savedData.Cash
else
SaveData(plr)
end
end
game.Players.PlayerAdded:Connect(LoadData)
game.Players.PlayerRemoving:Connect(SaveData)
I’d rather not put the tycoon saving script in because it is very long.
Pictures:
Thank you!