https://gyazo.com/580b3d1a2efb057e0f4c1c74da9dc3df here's a gif of what's happening. this happens both in studio and server (FE disabled)
local player = game.Players.LocalPlayer
game.Players.PlayerAdded:Connect(function()
local xptext = script.Parent
local XPLEVEL = player:WaitForChild("Data").XP
local level = player:WaitForChild("Data").Level
xptext.Text = XPLEVEL.Value.."/"..level.Value*150 -- this is the part that i'm having trouble with; the "level.Value*150" stays at 150 upon joining but the "XPLEVEL.Value is datastored.
local player = game.Players.LocalPlayer
end)
player:WaitForChild("Data").XP.Changed:Connect(function()
print("level changed")
local xptext = script.Parent
local XPLEVEL = player:WaitForChild("Data").XP
local level = player:WaitForChild("Data").Level
xptext.Text = XPLEVEL.Value.."/"..level.Value * 150
end)

1 comment
If you tried this in server already it should be working, I replicated this onto my own studio and it worked in a server test, also I'd recommend Filtering Enabled to make it harder for hackers to hack