God-Emperor
Deity
Things the AI does, or things that are automatically applied without player intervention, are usually MP compatible. One of the main things you need to do for this is to be sure you use the synchronized random number generator for any random numbers (the getSorenRandNum function) rather than a local, non-synchronized, random number generator.
Usually (but not necessarily always) the things that are not MP compatible are things where a human player is given a choice. The computers other than the one that the specific player is making their choice on have no way of knowing what the choice was - unless, of course, they are told. That is what the ModNetMessage stuff is for. Any time there is a human choice involved in something that the DLL was not set up to manage, such as clicking on a button in the interface that was added via Python, the MP compatible way to do it is via CyMessageControl().sendModNetMessage(...) and having the onModNetMessage event handler do the actual stuff instead of doing it in the function where the message was sent. Everybody, including the sender, receives the mod net message which results in the same thing being done everywhere.
Things with player choices that the game already understands don't have this problem, one example being the random event system, since they already communicate with the other computers in the MP game to provide the required data.
Usually (but not necessarily always) the things that are not MP compatible are things where a human player is given a choice. The computers other than the one that the specific player is making their choice on have no way of knowing what the choice was - unless, of course, they are told. That is what the ModNetMessage stuff is for. Any time there is a human choice involved in something that the DLL was not set up to manage, such as clicking on a button in the interface that was added via Python, the MP compatible way to do it is via CyMessageControl().sendModNetMessage(...) and having the onModNetMessage event handler do the actual stuff instead of doing it in the function where the message was sent. Everybody, including the sender, receives the mod net message which results in the same thing being done everywhere.
Things with player choices that the game already understands don't have this problem, one example being the random event system, since they already communicate with the other computers in the MP game to provide the required data.

.
?
.
that could be fun to work with. I would but thats beyond my C++ abilities
.
, but if someone requests it, then I can add that option too.
)
I have no idea why it is no longer there, that is really really weird. Could you just copy + paste the code on here?