Your code is erroneous. For example the following infinite loop: (edit: Okay this problem does not exists in you last post anymore, but it's still not better

)
Code: Select all
PBEChecks:
* Some code
gosub PBEChecks
And what are all these gotos and gosubs for? Try to avoid these.
Take lines 10 to 12 for example. You could combine these statements and avoid the "gosub End" by simply putting this procedure there (btw: "End" is a irritating name, because it implies that the script is ended here).
If you need this procedure more often, it is of course okay to put it into a label.
And you are using goto and gosub wrong. A "gosub" jumps to a piece of code and jumps back, when it hits an "endsub". A "goto" does not jump back. So in your case if $GCheck is [TRUE] it would simply end the script, because it does not jump back as you expect.
On top of that, your code only is accepted by the game, because you used "end" instead of "endsub" in line 48. If you used "endsub" there would be one "end" missing before.
Null M3 - gets nothing. I want all M3s of all races, how?
The command unfortunately does not work this way, so fastest possibilty might be to use another loop, which loops through all races. Or you could try the "find ship" command with a Find.Multiple - Flag.
Greetings,
ScRaT