Wow, it's working now, thanks. But now this runtime errors pops up and then the proc doesn't work anymore, is it any way to disable the safety check only for that proc?
runtime error: Maximum recursion level reached (perhaps there is an infinite loop)
To avoid this safety check, set world.loop_checks=0.
proc name: CHANGETITLESCREENICON (/obj/proc/CHANGETITLESCREENICON)
usr: null
src: Titlescreen (/obj/Titlescreen)
call stack:

Wow, it's working now, thanks. But now this runtime errors pops up and then the proc doesn't work anymore, is it any way to disable the safety check only for that proc?
runtime error: Maximum recursion level reached (perhaps there is an infinite loop)
To avoid this safety check, set world.loop_checks=0.
proc name: CHANGETITLESCREENICON (/obj/proc/CHANGETITLESCREENICON)
usr: null
src: Titlescreen (/obj/Titlescreen)
call stack:

There is no issue in disabling the safety check for all of them. All it does is tell you that there is an infinite loop, which you already know to be true. Just set world.loop_checks to 0.

Setting world.loop_checks to 0 is a very horrible idea. Instead, all Rai needs to do is make the DM know that it is an infinite procedure since calling the same proc is a redundant way to do so. Instead, while() should be used:

While that is true, you should just use a while loop as opposed to constantly calling the proc, I don't see anything wrong with setting the world.loop_checks to 0. If you have an infinite loop, it is intentional, accidentally having one is damn near impossible.

While that is true, you should just use a while loop as opposed to constantly calling the proc, I don't see anything wrong with setting the world.loop_checks to 0. If you have an infinite loop, it is intentional, accidentally having one is damn near impossible.

The problem is that if you accidentally get an infinite loop and solve it by setting world.loop_checks to zero, the next time you get an infinite loop you'd have no way of knowing (since you set loop_checks = 0).

The better way is to implement the loop in a way that doesn't cause this error.