GTA:SAでは、SCMの処理以外も含めて、全て一つのスレッドで行っています。
ですから、SCMのどこかのスレッドで無限ループに入るとスクリプトはもちろん、
GTA:SA自体もフリーズしてしまいます。
しかし、殆どのスレッドは入力待ちなどでループをする必要があります。
:GETKEY
00D6: if
00E1: player 0 pressed_key 19
004D: jump_if_false @GETKEY
SCMで無限ループに入ると入力処理も行われないので
この例では必ずフリーズします。
:GETKEY
0001: wait 0 ms
00D6: if
00E1: player 0 pressed_key 19
004D: jump_if_false @GETKEY
Opcode 0001を使うことでスレッドは相対的に次回のスレッド起動時間を
指定して、次のスレッドへ処理を渡します。
全てのスレッドで0001が実行されるとSCMの処理から抜け、
次の描画処理に移ります。