That code raises an error, specifically targetted towards your massive if statement in your object. Instead of checking to see if it might spawn outside the auto delete clip, you could set it larger by calling every frame in @MainLoop:
SetShotAutoDeleteClip(200, 200, 200, 200);
Expanding the active game field from it's default 64, 64, 64, 64 pixels beyond the game window, to 200, 200, 200, 200. I'm not sure if it will work, but you can give it a shot.