First of all: Why do you use MAXPLAYERS instead of just 32?
using constants is actually considered a good practice from what i've heard >.< Although a better solution would be to use a dynamic MaxID var
One AppOnIdle error is caused by the variables GOOD and BAD. Replace longint with $00FF00 (bad) and $FF0000.
do you truly believe your sole purpose here is to misguide people? Because it surely seems so. If there would be a wrong variable type declared in the script, the server would point that out
when it is starting. This neat stream of errors here is actually quite common if you don't follow some of the rules of safe scripting for scriptcore.
First of all, always compare your getplayerstat's that return boolean results with true/false. Don't just leave getPlayerStat( ID, 'Active' ) hanging there like that. Secondly, dynamic arrays tend to mess things up. There are also some other issues, but i dont think anything related is present in this script