Does roblox have some kind of script resource limit...?

I keep running the same script in studio over and over again, and it keeps stopping at exactly the same point with no error message or anything, just nothing happens. Is that a built in feature? a bug? can you disable it?

(please dont ask why I need 184 thousant frames, I’m testing around a bit

-- Part of a larger script, but it stops about 1/4th of the way through this. There is a UI grid.
for i = 1, 184320 do
	local frame = Instance.new("Frame")
	frame.Parent = frame1
	frame.Name = "Frame" .. i
	frame.BorderSizePixel = 0
	local uigradient = Instance.new("UIGradient")
	uigradient.Parent = frame
	uigradient.Name = "Uigradient" .. i
	pixeltable["pixel" .. i] = uigradient
end

Just to clarify once again, this script part DOES work, it stops working about 1/4th the way through filling the ui with frames

You will run out of memmory and roblox app will crash.
There is a script exghaustion limit in studio tho, that supposedly would work as an emergency break in this setuation but it almost never works.

Thats the funny part though, roblox doesn’t crash, I can still walk around in the game just fine (Although with alot of lag due to the amount of frames), its just that the script stops working

How do you know it stops working? Code looks fine to me.

Maybe search for “184320” in explorer.

Roblox has UI cooling mechanisms likely.
It should work with Parts throught and 3D objects.

The frames stop appearing, I’ve waited for 3 minutes and only the old ones (Before the sudden stop) were there

1 Like

Clearly you’re running into an instance limitation specifically to do with UI.

Switch to EditableImages, I/O is much faster for what you’re looking to do.

1 Like

It is highly likely that the part of the renderer responsible for displaying the UI may be overwhelmed; perhaps it is simply skipping out on rendering those other objects? Or do they simply not appear on the hierarchy?

Have you checked for any script exhausted execution time warnings?

Just trigger a task.wait() once every 0.5 seconds. The tick() function is really useful in this for quickly measuring elapsed time since last recorded tick.

By the way, you can indeed overwhelm the UI renderer if you have too many UI elements rendered. The most notable glitch when this happens is the layer manager improperly managing the UI layers.