So about the command bar, I used the command bar for scripts when I don’t want to press run, but then I wrote a while loop and put code inside it, then I forgot to put a break so it just kept going on forever, and I could not stop it! Is there a way to stop the CommandBar with a while loop after it runs, any help is appreciated, even if you say there is no other way
Never really done this but can’t you just overwrite it by typing another line of code like
print("Hello World") or just restart studio
You can just set a timeout to the loop, for example 10 seconds.
local timeout = tick() while tick() - timeout < 10 do --your code here wait() end
Or you can create a temporary part somewhere in the game and refrence it, so when you delete the part the loop will error and break
Instance.new("Part", game.Lighting).Name = "somethingwhatever" while game.Lighting.somethingwhatever do --your code here wait() end
I don’t really suggest the second way, but if it works it works
no, the command bar can run multiple code at once! But restarting studio MIGHT help thanks
Thanks for the tip but I want to know if there is a way to stop it if you accidentally did not do a break inside it, or a timeout or the other code thing…
Closing that window is the only way I know of stopping it. The command bar is powerful and I’d avoid using while or repeat loops, or connecting to any of the task scheduler events in there.
If I need a loop in the bar I’ll always use a for loop either over a table or between two numbers.
Unless the loop has frozen your studio by running without any yield, you should be able to save safely and close the window to open it again.
You can also add a bool value somewhere in serverstorage and inside the loop check if the value is equal to true. If it is, then it should break the loop. This makes it so you can check/uncheck the boolvalue instance to stop any loops running from the command bar.
You can use global variables
local _G.e = true while _G.e==true do print 'e' wait() end
FYI: global variables in the command bar save, so you don’t have to use _G. Run this:
while not foobar do print("yeah") task.wait() end
Then run this:
foobar = true
The loop will stop.
If you want to check what globals you have active in the command bar, use getfenv:
I didn’t know getfenv() could get globals, is there any way to “delete” globals to make getfenv() not return them?
Set them to nil.
foobar = nil
nil is considered nonexistent and the values will be garbage collected if applicable.
Inserting an appropriate break statement into the while loop somewhere is likely the least complicated solution here.