ye it looks like your setting the size to something greater then want you want the 100% to be, try this code instead which finds a value within 0 - 0.9 and keeps the y value locked at 0.4:
local function updateMood(moodValue, bar, percent)
local size = math.clamp(moodValue / 100 * 0.9, 0, 0.9)
local targetSize = UDim2.new(size, 0, 0.4, 0)
bar.Size = targetSize
percent.Text = tostring(math.floor(size * 100) .. "%")
local tween = TweenService:Create(bar, info, { Size = targetSize })
tween:Play()
end