Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Variable is not being set, How come?

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.

1 answer

✓ Accepted answer

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)

2 comments

0

changing the local fixed it

0

changing the local fixed it\

This discussion is preserved as it was. New answers, comments, and votes are closed.