local Stats = game:GetService("ContentProvider") local Divisor = 0 local TotalInstances = game:GetChildren() while true do if Divisor <= Stats.RequestQueueSize then local Divisor = Stats.RequestQueueSize end wait() script.Parent.Text = 100*(1-(Stats.RequestQueueSize/Divisor)) .. "% |" .. Divisor .. "|" .. Stats.RequestQueueSize end
Divisor
stays at 0, why is that? I need it to be the highest number ContentProvider.RequestQueueSize
reaches.
Have you tried debugging. Also try removing the local
on line 8. This creates a NEW Divisor
variable, removing the local
on line 8 will update the one declared in line 2 (don't remove the local on line 2). Maybe that is the problem.
You can also make this code more efficient and simplified if you use events and string.format
to avoid messy concatenation.
local ContentProvider = game:GetService("ContentProvider") -- why name it Stats? local divisor = 0 ContentProvider:GetPropertyChangedSignal("RequestQueueSize"):Connect(function() local request_queue_size = ContentProvider.RequestQueueSize if divisor <= request_queue_size then divisor = request_queue_size end script.Parent.Text = string.format("%d%% |%d| %d", 100*(1 - request_queue_size/Divisor), divisor, request_queue_size) end)