Your searching for “leaderstats.jump” but you named Jump value JumpPowerr so call leaderstats.JumpPowerr.Value
Yes I 100% do agree they should read it as it is quite clear they don’t understand how to use datastores that well.
ok so…
when i leave it no save :<
script:
local DataStoreService = game:GetService("DataStoreService")
local playerData = DataStoreService:GetDataStore("PlayerData")
local function onPlayerJoin(player) -- Runs when players join
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local jump = Instance.new("IntValue")
jump.Name = "JumpPowerr"
jump.Parent = leaderstats
local playerUserId = "Player_" .. player.UserId
local data = playerData:GetAsync(playerUserId)
if data then
jump.Value = data
else
jump.Value = 0
end
end
local function onPlayerExit(player)
local success, err = pcall(function()
local playerUserId = "Player" .. player.UserId
playerData:SetAsync(playerUserId, player.leaderstats.JumpPowerr.Value)
end)
if not success then
warn(err)
end
end
game.Players.PlayerAdded:Connect(onPlayerJoin)
game.Players.PlayerRemoving:Connect(onPlayerExit)
it shows no error
This is in a server script correct?
Hi Are you testing it on Studio? Data Does not save when leaving on studio test it in game
Um are you sure data does not save in-studio? I have never had an issue like that before; data always save for me in-studio.
In All my projects and datastores when I leave the game (On studio) Data does not save, for make it work and save i need always to test in Game.
game.Players.PlayerRemoving:Connect()
doesn’t run always when leaving on studio.
yes it is
Well that is strange. I legit tested something yesterday in-studio and it saved in the datastore. Not sure why it is different for you.
@OfficerlSwearShes19 I suggest doing what Sonostrando said then as it might be that issue.
should i add the playerexit?
Yes you just need to test you’re script
My it was just an example of the playerleaving function
i added it tested it in main game and it still not working …
Ok I Got It you Typed wrong the Key
local DataStoreService = game:GetService("DataStoreService")
local playerData = DataStoreService:GetDataStore("PlayerData")
local function onPlayerJoin(player) -- Runs when players join
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local jump = Instance.new("IntValue")
jump.Name = "JumpPowerr"
jump.Parent = leaderstats
local playerUserId = "Player_" .. player.UserId
local data = playerData:GetAsync(playerUserId)
if data then
jump.Value = data
else
jump.Value = 0
end
end
local function onPlayerExit(player)
local success, err = pcall(function()
local playerUserId = "Player_" .. player.UserId
playerData:SetAsync(playerUserId, player.leaderstats.JumpPowerr.Value)
end)
if not success then
warn(err)
end
end
game.Players.PlayerAdded:Connect(onPlayerJoin)
game.Players.PlayerRemoving:Connect(onPlayerExit)
Copy and paste this inside you’re server script, basicaly on onPlayerExit → Var: playerUserId first it was “Player” and not “Player_”
Edit: Forgot to remove print(data) → Removed
i think the local script is causing the problem
This It’s a server script, you can’t put that on a local script
i made it so every time u jump u get 10 jumppower on a local script will that power not be saved?
Well, If you’re modifing the value on the client, The data will remain 0 on the server and when you will leave the server will read “0” instead you should modify the value for example via Server Script or Via localscript by firing an RemoteEvent And then have the server modify the value when receives the event