Both in Studio and in live games
Steps to Reproduce
In a blank baseplate, add these scripts to the workspace:
print("A start") print("A:", require(workspace.B)) return "A"
print("B start") coroutine.resume(coroutine.create(function() print("B coroutine start") print("B require:", require(workspace.A)) end)) return "B"
print("C start") print("C:", require(workspace.A))
C start A start B start B coroutine start A: B C: A
When ‘B’ is done, this lets ‘A’ finish up, allowing ‘C’ to resume; the brand new coroutine in ‘B’ should also be resumed at this time.
Place with those scripts
require bug.rbxl (18.5 KB)
So long as you put it on Roblox’s thread scheduler via
wait() or by using
delay instead of using coroutines directly, it works as expected.