Currently re-writing how things are done for my player’s UI and I’ve been getting the title’s error for the past few days.
It mostly happens once the player reach about 50-60% of his experience bar progress.
It doesn’t stop the script from running at all and everything works despite printing quite a lot of those.
Any feedback or insight would be appreciated.
-- Important --
local player = game.Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local hum = char:WaitForChild("Humanoid")
local pUI = script.Parent
local Abb = require(game.ReplicatedStorage.ShortenNumber)
-- Stats --
local pStats = player.PlayerData:WaitForChild("Stats")
local pExp = pStats:WaitForChild("EXP")
local pMaxEXP = pStats:WaitForChild("MaxEXP")
local pStamina = pStats:WaitForChild("Stamina")
local pMaxStamina = pStats:WaitForChild("MaxStamina")
local pLevel = pStats:WaitForChild("Level")
local LevelNumber = pUI:WaitForChild("Level")
local uiGold = pUI:WaitForChild("Gold")
local vGold = player.PlayerData.Wallet:WaitForChild("Gold")
-- UI --
local pUI = script.Parent
local HealthBG = pUI:WaitForChild("Health")
local HealthBar = HealthBG:WaitForChild("Bar")
local HealthDamage = HealthBG:WaitForChild("Damage")
local HealthNumber = HealthBG:WaitForChild("Number")
local StaminaBG = pUI:WaitForChild("Stamina")
local StaminaBar = StaminaBG:WaitForChild("Bar")
local StaminaDamage = StaminaBG:WaitForChild("Damage")
local StaminaNumber = StaminaBG:WaitForChild("Number")
local EXPBG = pUI:WaitForChild("EXP")
local EXPBar = EXPBG:WaitForChild("Bar")
local EXPDamage = EXPBG:WaitForChild("Damage")
local EXPNumber = EXPBG:WaitForChild("Number")
-- Variables --
local LevelNumber = pUI:WaitForChild("Level")
local function healthChanged()
local pHealth = hum.Health
local pMaxHealth = hum.MaxHealth
local hp = pHealth / pMaxHealth
local hpText = ("%i%%"):format(hp * 100.00)
HealthNumber.Text = "HEALTH: "..hpText
HealthBar:TweenSize(UDim2.fromScale(hp, 1), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.15, true)
delay(0.5, function()
HealthDamage:TweenSize(UDim2.fromScale(hp, 1), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.15, true)
end)
end
local function expChanged()
local xp = pExp.Value / (pLevel.Value * 25)
local xpText = ("%i%%"):format(xp * 100.00)
local levelText = pLevel.Value
EXPNumber.Text = "EXP: "..xpText
LevelNumber.Text = "LEVEL: "..levelText
EXPDamage:TweenSize(UDim2.fromScale(xp, 1), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.15, true)
delay(0.5, function()
EXPBar:TweenSize(UDim2.fromScale(xp, 1), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.15, true)
end)
end
local function goldChanged()
pcall(function()
vGold.Changed:Connect(function()
local gold = vGold.Value
uiGold.Text = "$" ..Abb.Abb2(gold)
end)
end)
end
local function staminaChanged()
local sta = pStamina.Value / pMaxStamina.Value
local staText = ("%i%%"):format(sta * 100.00)
StaminaNumber.Text = "STAMINA: "..staText
StaminaBar:TweenSize(UDim2.fromScale(sta, 1), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.15, true)
delay(0.5, function()
StaminaDamage:TweenSize(UDim2.fromScale(sta, 1), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.15, true)
end)
end
healthChanged()
expChanged()
staminaChanged()
goldChanged()
hum:GetPropertyChangedSignal("Health"):Connect(healthChanged)
pExp:GetPropertyChangedSignal("Value"):Connect(expChanged)
pStamina:GetPropertyChangedSignal("Value"):Connect(staminaChanged)
vGold:GetPropertyChangedSignal("Value"):Connect(goldChanged)
player.CharacterAdded:connect(function(character)
healthChanged()
expChanged()
staminaChanged()
goldChanged()
end)