Source editing and compilation The mod builds for both POQ (plain old Quake) and QW (Quake World). The files in the src directory are used to generate files in the poq and qw directories, the latter are what's actually compiled. You can edit the files in the src directory if you've got a Unix-like system with GNU make and m4 (I usually use Linux, but it also works with Cygwin). Otherwise, if you just want to make some simple changes and recompile for your server, you should edit the files in the poq or qw directories and compile from there. As of version 0.5, the poq and qw source can only be compiled with qccx 1.0 or compatible compiler. DM_WEAPONS_STAY Originally I had weapons which were charged with ammo blink occasionally, but this caused them to sometimes disappear and I couldn't fix it. At Matthew's suggestion I tried raising them up a little when they're full with ammo. Not only does this not cause any bugs, it's also a nicer effect. Impulses Normally Quake ignores impulse commands while you're in the middle of an attack animation (for most weapons) or while you're attacking at all (for the nail and lightning guns). This makes things look a little nicer (for the player, because of the weapon animation, and from the outside, because of the player animation). It causes impulse commands to be lost if more than one is sent to the game before it checks for them, though (only the last one received works). I've changed it so that the game always pays attention to impulse commands, even if you're in the middle of attacking. For most people, the most important thing this will affect is that you can use your rune even while attacking. Eg, if you shoot a rocket and then activate the shield rune, the shield will come up immediately rather than waiting until the rocket animation finishes. Additionally, if you're using a complex binding scheme to do client side switch firing, it will generally work better because the only time an impulse command is lost is when two are sent in the same game tick. Use the "wait" command to make sure the impulses each arrive in a different tick. Player entities The player entites are numbered from 1 to maxplayers. (0 is the world edict.) You use nextent() to access them that way. Damage rate damage damage/second shotgun 1/0.5 24 max 48 super shotgun 1/0.7 56 max 80 flame 1/0.15 15 100 nail 1/0.1 9 90 lava 1/0.1 9 90 super nail 1/0.1 18 180 grenade 1/0.6 112 approx 186 rocket 1/0.8 110 approx 138 lightning 1/0.1 30 300 Rune models To find the model a rune will get, take the rune number (RN_*), divide by 4, and check the remainder: 0 earth magic 1 black magic 2 hell magic 3 elder magic spawnflags 256 don't spawn if skill is 0 (easy) 512 don't spawn if skill is 1 (medium) 1024 don't spawn if skill is 2 (hard) (map specs say "and nightmare", ?) 2048 don't spawn if deathmatch != 0 Default gamespy source for POQ servers http://www.runequake.com/servers/gamespy-quake http://www.gameaholic.com/servers/qspy-quake Angles pitch vertical plane, v_angle is negative going up, angle opposite yaw horizontal plane, -180 to 180, 0 is right at start flip ? pitch for v_angle is opposite from pitch for angles. vectoangles() works with angles (positive for up pitch) not v_angle: makevectors() works with v_angle rint() -1.9 -> -2 -1.5 -> -2 -1.1 -> -1 -1.0 -> -1 -0.9 -> -1 -0.5 -> -1 -0.1 -> 0 0.0 -> 0 0.1 -> 0 0.5 -> 1 0.9 -> 1 1.0 -> 1 1.1 -> 1 1.5 -> 2 1.9 -> 2 URLs ftp://ftp.runequake.com/ http://planetquake.com/qccx/ http://www-vlsi.stanford.edu/~jsolomon/clan9/qsmack/