for the stop time thingie, just broadcast a message (leave the name field blank on a message actuator to have it broadcast to all objects).
like have a message called Stoptime
Every dynamic object, and your bots/monsters/whatever, will need to have a property … lets call it “Stoptime”, at default we want it off, so make the property into an intager, and set it to 0.
When dynamic objects get a message “Stoptime” have it set the property “Stoptime” to 1
then use a property sensor that looks for the property "stoptime to be “1”, then simply use a very small value in the LinV +z global axis, with a motion actuator, something like .0001.
This will make things totally stop in mid air.
you can do the same thing for your bots… have them looking for the message, and if a property is switched on, then they stop their animation, and get a LinV +z global .0001.
it wont be exactly like stopping time, because when you resume, the dynamic objects will not have the same velocity, or trajectory as they had when time stopped… they will just fall to the ground.
I bet with python you could get the velocity when it stopped time, then give it a bit of a push when it resumed time. But that is a bit out of my league.
rather than saying stop time, just have some way that your player casts forcefields on things that you freeze. Then you would not have to make any velocity calculations.
Call it a Stun spell, or a forcefield or something… (dont forget to add cool forcefield special effects to the things that get stopped)
well, that is my idea, I bet there are other ways to do it too