I set sv_gravity to 0 in my flight game, and then did some movement code for the monsters that alters their velocity to move them. I also made them use a MonsterPhysics function that is basically just a duplicate of SV_PlayerPhysics (which is currently just flight movement), so their movement should be similar to player's movement? I'll probably make the monsters just use the player's function, not much point duplicating it.
Sometime earlier I was trying some alternate flight mode for the monsters (the Quake default FL_FLY sucks), but it didn't work so well with sv_gravity being non zero. They just bounced up and down annoyingly, as they tried to counter the gravity and sometimes still need to be able to move down. That sucked.
I was thinking I'd keep the sv_gravity at 0, and do my own gravity with QC. Then the flying monsters can fly without bouncing up and down insanely, and still be pushed around by damage. Walking monsters could walk if they're touching the floor, or fall if in air. Would this sort of thing work for all entities? Gravity affected missiles should probably run the function too. If I do the gravity in SV_PlayerPhysics for all entities.. and if non player entities run the function every 0.1s, do they fall slower than player? Does player run it every 0.01s or faster?
And some other thing, earlier in Blaze when I made player have air control when jumping, player just ran up all the steep slopes that he couldn't without the air control. I tried increasing the downward z velocity on certain conditions, but I just didn't get it right. Some of it made player unable to move up any slope, or suddenly stomp into the floor when being a little bit in the air over a slope, or just flat floor. I think I'll probably encounter this air control problem even with custom gravity.