Level Bar Error

We Are Trying To Make Are Level Bar Work And I Keep Getting This Error After Clicking Play.

Players.cornholio11111.PlayerGui.LevelUI.Frame.backframe.Level Up:38: attempt to perform arithmetic (div) on number and nil

image

local player = game.Players.LocalPlayer
local xp = player.leaderstats:WaitForChild("xp")
local level = player.leaderstats:WaitForChild("levels")
local expToLevelUp
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LevelUpEvent = ReplicatedStorage.Events.PlayerLevelUp


xp.Changed:Connect(function()
	
	if xp.Value < 1 then
		script.Parent.Visible = false
	end
	
	if level.Value < 1 then 

		expToLevelUp = 100 

	else

		expToLevelUp = math.floor(level.Value^1.3)*200+math.floor(level.Value^4)
		script.Parent.Visible = true
	end

	if xp.Value >= expToLevelUp then
		script.Parent.Visible = true
		local data = expToLevelUp
		script.Parent.Size = UDim2.new(xp.Value/expToLevelUp,0,1,0)
		wait(0.5)
		script.Parent.Size = UDim2.new(xp.Value/expToLevelUp,0,1,0)
		LevelUpEvent:FireServer(data)
	else
		script.Parent.Size = UDim2.new(xp.Value/expToLevelUp,0,1,0)
	end
	
end)

script.Parent.Size = UDim2.new(xp.Value/expToLevelUp,0,0.1,0)

Seems like the problem is you are attempting to add math.floor to nil. Make sure you set the level value to 0 or 1 when the player joins.

Hope this helps! :slight_smile:

1 Like

expToLevelUp is never set until xp.Changed is fired. The problem is that before xp is changed, this line is run script.Parent.Size = UDim2.new(xp.Value/expToLevelUp,0,0.1,0). This divides xp.Value by expToLevelUp, but expToLevelUp is nil, and you cant divide a number (xp.Value) by nil.

To fix this, you could give expToLevelUp a default value.

1 Like