Instead of trying to loop through all clients OnMapStart (which, again, won't work) check the cvar and set the variable on them either when they connect (OnClientConnected/OnClientPutInServer) or disconnect (OnClientDisconnect). Though keep in mind, all of those will be called again for each client when the map changes.
Also, based on the loop you used
![Cat Face](images/smilies/catface3.png)
some notes for future client loopings: Use MaxClients instead of GetMaxClients(), and be sure to never constantly call a non-action-doing (e.g. SetEntProp) non-player-based (e.g. IsClientInGame) function from within a loop. In this case, you could have done
new bool:pluginon = GetConVarBool(g_IsPluginOn); just before you did
for (new z... and checked the value of pluginon instead of using GetConVarBool every time the loop cycles through clients. ramblerambleramble.
Also, most IsValidClient() stocks check if the client is in-game. If the one you're using does that, there's no need to check IsClientInGame again beside it.
__________________