game.Players.PlayerAdded:connect(function(player)
local stats = Instance.new("IntValue", player)
stats.Name = "leaderstats"
local level = Instance.new("IntValue", stats)
level.Name = "Level"
local exp = Instance.new("IntValue", stats)
exp.Name = "Exp"
local cash = Instance.new("IntValue", player)
cash.Name = "Cash"
local class = Instance.new("StringValue", player)
class.Name = "Class"
class.Value = "Laser"
local team = Instance.new("StringValue", player)
team.Name = "Team"
team.Value = "White"
player:WaitForDataReady()
player.leaderstats.Level.Value = player:LoadNumber("Level")
player.leaderstats.Exp.Value = player:LoadNumber("Exp")
player.Cash.Value = player:LoadNumber("Cash")
level.Changed:connect(function(level)
print("Levelup")
levelupframe:TweenPosition(UDim2.new(0.5, -150, 0.5, -50), "Out", "Quad", 1, false)
leveluptext.Text = "You have leveled up to Level: " .. level
levelupframe.CashText.Text = "Cash + 50"
wait("3")
levelupframe:TweenPosition(UDim2.new(0, -300, 0.5, -50), "Out", "Quad", 1, false)
end)
end)
I want have this so when a player joins it gets their values etc set up, but I want when they level up to print("Levelup") and show a a frame, There is no error, and it dosent print at all.

2 comments
The extra lines are necessary. Unless there was another roblox update...
how though although they do is parent it, which is what ,stats does