Excuse the mess, but in the script I've made below. It saves the XP/Level etc of the player and loads it all up. But on some servers when people are playing my game, the Billboard Gui doesn't display above their heads with the Level of their player and on other servers the whole thing works fine.
I have noticed it has said Levels is not a valid Int occasionally but I'm sure that's no longer a problem.
local ds = game:GetService("DataStoreService"):GetDataStore("dataone1") local dso = game:GetService("DataStoreService"):GetOrderedDataStore("levelstore1") function PlayerAdded(newPlayer) local stats = Instance.new("IntValue", newPlayer) stats.Name = "leaderstats1" local coins = Instance.new("IntValue", stats) coins.Name = "Coins" local tokens = Instance.new("IntValue", stats) tokens.Name = "Tokens" local xp = Instance.new("IntValue", stats) xp.Name = "XP" local levels = Instance.new("IntValue", stats) levels.Name = "Levels" local coinKey = ds:GetAsync("Key" .. newPlayer.Name) if coinKey then coins.Value = coinKey else coins.Value = 0 end local tokensKey = ds:GetAsync("Key1" .. newPlayer.Name) if tokensKey then tokens.Value = tokensKey else tokens.Value = 0 end local xpKey = ds:GetAsync("Key2" .. newPlayer.Name) if xpKey then xp.Value =xpKey else xp.Value = 0 end local levelsKey = dso:GetAsync("" .. newPlayer.Name) if levelsKey then levels.Value = dso:GetAsync("" .. newPlayer.Name) else levels.Value = 1 end coins.Changed:connect(function(save) ds:SetAsync("Key" .. newPlayer.Name, save) end) tokens.Changed:connect(function(save) ds:SetAsync("Key1" .. newPlayer.Name, save) end) local xpDeb = false xp.Changed:connect(function() if xpDeb then return end xpDeb = true while xp.Value >= 100 do xp.Value = xp.Value - 100 levels.Value = levels.Value + 1 end ds:SetAsync("Key2" .. newPlayer.Name, xp.Value) dso:SetAsync("" .. newPlayer.Name, levels.Value) xpDeb = false end) end function CharacterAdded(newPlayer) wait(6) newPlayer.leaderstats1:WaitForChild("Levels") local gui=Instance.new("BillboardGui") gui.Parent=newPlayer.Character.Head gui.Adornee=newPlayer.Character.Head gui.Size=UDim2.new(3,0,2,0) gui.StudsOffset=Vector3.new(0,2,0) local text=Instance.new("TextLabel") text.TextColor3 = Color3.new(255, 255, 255) text.Text = "Level " .. newPlayer.leaderstats1.Levels.Value text.Size=UDim2.new(1.25,0,0.5,0) text.Position=UDim2.new(-0.125,0,-0.25,0) text.BackgroundTransparency = 1 text.Parent=gui text.FontSize = ("Size36") text.Font = ("SourceSansBold") text.TextStrokeColor3 = Color3.new(0.50, 0.50, 0.50) text.TextStrokeTransparency = 0 w = game.Lighting.WepsGroup:GetChildren() for i = 1,#w do w[i]:Clone().Parent = newPlayer.Backpack end end function onPlayerEntered(newPlayer) newPlayer.Changed:connect(function (property) if (property == "Character") then CharacterAdded(newPlayer) end end) end game.Players.PlayerAdded:connect(onPlayerEntered) game.Players.PlayerAdded:connect(PlayerAdded)