local datastore = game:GetService("DataStoreService")
local data = datastore:GetDataStore("JOJO")
local players = game:GetService("Players")
local changeevent = game:GetService("ReplicatedStorage").events.changevent
function change(plr, entity, value)
end
players.PlayerAdded:Connect(function(plr)
local statfolder = Instance.new("Folder")
statfolder.Name = "StatsFolder"
statfolder.Parent = plr
local endurance = Instance.new("IntValue")
endurance.Name = "Endurance"
endurance.Parent = statfolder
local power = Instance.new("IntValue")
power.Name = "Power"
power.Parent = statfolder
local special = Instance.new("IntValue")
special.Name = "Special"
special.Parent = statfolder
local points = Instance.new("IntValue")
points.Name = "Points"
points.Parent = statfolder
local stand = Instance.new("StringValue")
stand.Name = "Stand"
stand.Parent = statfolder
stand.Value = "Standless"
local exp = Instance.new("IntValue")
exp.Name = "Experience"
exp.Parent = statfolder
exp.Value = "0/100"
local lvl = Instance.new("NumberValue")
lvl.Name = "Level"
lvl.Parent = statfolder
lvl.Value = 1
local cash = Instance.new("IntValue")
cash.Name = "Money"
cash.Parent = statfolder
cash.Value = 0
local maxhealth = Instance.new("NumberValue")
maxhealth.Name = "HumanoidHealth"
maxhealth.Parent = statfolder
maxhealth.Value = 100
local saves
local success, errorMessage = pcall(function()
saves = data:GetAsync(plr.UserId)
end)
if not success then
warn(errorMessage)
end
if saves then
print("Saves Detected")
stand.Value = saves.Stand
power.Value = saves.Power
special.Value = saves.Special
points.Value = saves.Points
exp.Value = saves.Experience
lvl.Value = saves.Level
cash.Value = saves.Money
maxhealth.Value = saves.HumanoidHealth
endurance.Value = saves.Endurance
else
warn("No Data Found")
end
end)
function savegame(plr, StatsFolder)
local stand = StatsFolder:WaitForChild("Stand")
local power = StatsFolder:WaitForChild("Power")
local endurance = StatsFolder:WaitForChild("Endurance")
local special = StatsFolder:WaitForChild("Special")
local points = StatsFolder:WaitForChild("Points")
local maxhealth = StatsFolder:WaitForChild("HumanoidHealth")
local money = StatsFolder:WaitForChild("Money")
local lvl = StatsFolder:WaitForChild("Level")
data:SetAsync(plr.UserId, stand.Value)
data:SetAsync(plr.UserId, power.Value)
data:SetAsync(plr.UserId, endurance.Value)
data:SetAsync(plr.UserId, special.Value)
data:SetAsync(plr.UserId, points.Value)
data:SetAsync(plr.UserId, maxhealth.Value)
end
players.PlayerRemoving:Connect(function(plr)
local PlrStats = plr:WaitForChild("StatsFolder")
savegame(plr, PlrStats)
print("Data Saved")
end)
✓ ANSWER ACCEPTED
i'm having trouble making my own data store it says attempt to index "Stand" how can i fix it?
1 answer
✓ Accepted answer
this isn't how DataStores isn't work; it's returning an error instantly for two reasons:
one: you're repeatedly setting one value. for every SetAsync, you're wiping what was originally being stored with the new value you're setting.
two: "Stand" is not an instance of the DataStore. regardless of what the value is set to, you're not going to get an instance out of it. if you want a slightly easier way to do this, I'd suggest putting all of the values into a table and converting it to JSON.
this is a fixed version of the function.
function savegame(plr, StatsFolder)
local stand = StatsFolder:WaitForChild("Stand")
local power = StatsFolder:WaitForChild("Power")
local endurance = StatsFolder:WaitForChild("Endurance")
local special = StatsFolder:WaitForChild("Special")
local points = StatsFolder:WaitForChild("Points")
local maxhealth = StatsFolder:WaitForChild("HumanoidHealth")
local money = StatsFolder:WaitForChild("Money")
local lvl = StatsFolder:WaitForChild("Level")
local st = {
["stand"] = stand.Value,
["power"] = power.Value,
["endurance"] = endurance.Value,
["special"] = special.Value,
["points"] = points.Value,
["maxhealth"] = maxhealth.Value
}
data:SetAsync(plr.UserId, game:GetService("HttpService"):JSONEncode(st))
end
and to load the data, you'd do the opposite.
if saves then
local st = game:GetService("HttpService"):JSONDecode(saves)
print("Saves Detected")
stand.Value = st["stand"]
power.Value = st["power"]
endurance.Value = st["endurance"]
special.Value = st["special"]
points.Value = st["points"]
maxhealth.Value = st["maxhealth"]
else
warn("No Data Found")
end
hope this helps
This discussion is preserved as it was. New answers, comments, and votes are closed.

2 comments
What line is the error on?
23:19:47.551 ServerScriptService.DataStoreSystem:72: attempt to index number with 'Stand' - Server - DataStoreSystem:72