You didn't say whether you had followed RusselB's suggestion to find whether another script is also using your %join variable. Other reasons it could be not incrementing the JOIN counter include:

1. Another ON-JOIN-#game event above this, in the same script file, would be executed instead of this one.

2. You're looking at joins to another #channelname

3. If the variable is not either empty or numeric, then INC does nothing, ie:

//set %xyz X | inc %xyz | echo -a *** %xyz
//set %xyz 4 $+ $chr(0160) | inc %xyz | echo -a *** %xyz