So this is my entire script:
Script Number 1 (Server)
PS = game:GetService("Players") DS = game:GetService("DataStoreService") local LevelDataStore = DS:GetDataStore("LevelStorage") local GuiDataStore = DS:GetDataStore("GuiLevelStorage") PS.PlayerAdded:Connect(function(playername) -- Adds the "PlayerFolder" in each player who joins. local playerfolder = Instance.new("Folder", playername) playerfolder.Name = "PlayerFolder" -- Adds a level IntValue to the "PlayerFolder" local level = Instance.new("IntValue", playername:WaitForChild("PlayerFolder")) level.Name = "Level" -- When a player joins the game it changes their level Screen Gui to say "Level:(their level)" playername.PlayerGui:WaitForChild("LevelGui").TextLabel.Text = "Level: "..playername.PlayerFolder.Level.Value local Data local success, errormessage = pcall(function() local Data = LevelDataStore:GetAsync(playername.UserId) end) if success then playername.PlayerFolder.Level.Value = Data print("Successfully loaded the data") else warn(errormessage) print("There was an error while retrieving the data.") end end) PS.PlayerRemoving:Connect(function(playername) local success, errormessage = pcall(function() LevelDataStore:SetAsync(playername.UserId, playername.PlayerFolder.Level.Value) end) if success then print("Data was successfully saved.") else warn(errormessage) end end)
Script Number 2 (Local)
PS = game:GetService("Players") player = game.Players.LocalPlayer Gui = script.Parent level = player.PlayerFolder.Level level.Changed:Connect(function() Gui.TextLabel.Text = "Level: "..level.Value end)
So my goal with this script was to make it so when a player joins they get a gui displaying their level and every time the level IntValue is changed it updates to what it currently is. So the gui works fine is the overall saving of the data and I am confused on why it is not working.
Short and simple version: It is not saving my data and both of the pcalls are not detecting errors.
Let me know if you need anymore information. Thanks.