✓ Accepted answer
Functions!
The best way to go about this would be to define a function, and continuously call it from either inside of itself, or in a loop, depending on your preference.
Confusing? Let me break down the code in English. First off, you would start by creating a function, let's call it SomeRandomAsync(). This can be whatever you want it to be, it won't affect how the code runs at all.
Next, we will put our [scripting] as used in your code snippet at the beginning of the function. If you can see where I am going like this, it is structured just about the same as the loop you had initially.
Last, add your conditional. If the condition (blank happens) is true, then you can call the function again. If the condition is not true, it will exit all of the functions that it has been in automatically without needing to break it.
Let's have a look at an example!
function SomeRandomAsync()
[scripting]
if [blank happens] then
game:GetService('RunService').Stepped:Wait()
SomeRandomAsync()
end
end
SomeRandomAsync()
Replace [scripting] with the scripts that need to run, and replace [blank happens] with the conditional that should be met for the function to run again.
If you have any questions, comments, concerns, or errors, please leave a comment below. Other than that, Happy Coding! :D