The leaderstat works but the DataStore service does not save anything.
Here's my code ::
local level = game:GetService('DataStoreService'):GetDataStore('Lev191el')
local xp = game:GetService('DataStoreService'):GetDataStore('X191P')
local axp = game:GetService('DataStoreService'):GetDataStore('AXP') -- amount of xp needed
function savedata(dataname, playerid, value)
game:GetService('DataStoreService'):GetDataStore(dataname):SetAsync(playerid, value)
end
game.Players.PlayerAdded:connect(function(player)
local leader = Instance.new('Folder')
leader.Name = 'leaderstats'
leader.Parent = player
local levelz = Instance.new('IntValue')
levelz.Value = level:GetAsync(tostring(player.userId)) or 1
levelz.Name = 'Level'
levelz.Parent = player:WaitForChild('leaderstats')
local xpz = Instance.new('NumberValue')
xpz.Value = xp:GetAsync(tostring(player.userId))
xpz.Name = 'XP'
xpz.Parent = player
local xpn = Instance.new('IntValue')
xpn.Value = axp:GetAsync(tostring(player.userId)) or 700
xpn.Name = 'XpNeeded'
xpn.Parent = player
xpz.Changed:connect(function()
if player:WaitForChild('XP').Value >= player:WaitForChild('XpNeeded').Value then
levelz.Value = levelz.Value+1
xpn.Value = xpn.Value+700
savedata('Levels',player.userId,levelz.Value)
savedata('XP',player.userId,xpz.Value)
savedata('AXP',player.userId,xpn.Value)
else
savedata('Levels',player.userId,levelz.Value)
savedata('XP',player.userId,xpz.Value)
savedata('AXP',player.userId,xpn.Value)
end
savedata('Levels',player.userId,levelz.Value)
savedata('XP',player.userId,xpz.Value)
savedata('AXP',player.userId,xpn.Value)
end)
end)
game.Players.PlayerRemoving:connect(function(player)
savedata('Levels',player.userId,player.leaderstats.Level.Value)
savedata('XP',player.userId,player.XP.Value)
savedata('AXP',player.userId,player.XpNeeded.Value)
end)

1 comment
I'll add on that making your DataStores named strangely doesn't really increase security.