NIQCTF Notes:
NIQCTF is very similar to regular NIQ with (obviously) CTF support included. It is based on Eavy's Q2CTF+ mod. This is identical to regular Q2CTF with the exception that it is possible to play Q2CTF on the regular and deathmatch maps. Obviously for CTF to work, the flag items have to be left in the game and these are present in NIQCTF and can be picked up, taken and captured as usual. As in regular Q2CTF, when the flag carrier is killed, the flag is dropped for someone else to pick up and will return to its base automatically if this does not happen within some period of time. As with regular CTF, the grappling hook is always available. When the current weapon is changed by the server, clients who are using the grappling hook at the time of the change will continue to use it, otherwise they will see their weapon replaced by the new one. Since there are only 2 'weapons' at any time in NIQCTF (i.e. the grappling hook and the current NIQCTF weapon), clients should bind a key or button to weapnext or weapprev to be able to quickly switch between them. The Artful Dodger finds that using MOUSE1 for weapnext and MOUSE2 for FIRE works just fine. For NIQCTF, the standard CTF scoring and scoreboard is used and there is no count of the current number of players shown when clients join/leave the game. As with regular Q2CTF, you can set ctf=0 and play a deathmatch game (with no flags) and have the grappling hook available. However, not all of the features of NIQ deathmatch will be available, such as the NIQ scoreboard and NIQ scoring. At some point in the future, NIQ and NIQCTF may be combined into a single mod which will have a variable to enable/disable the grappling hook for regular deathmatch.Singleplayer and Coop Mode Notes
These notes apply to using NIQ to play singleplayer or coop mode games. NIQCTF does not support singleplayer/coop mode just as Q2CTF doesn't support these (deathmatch=1 is always forced). Although the NIQ mod was originally intended as a deathmatch and CTF mod, its actually quite fun and challenging in singleplayer mode as well. Coop mode has not been tested yet, but this should work as well. The main difference is that in singleplayer/coop mode, clients only get health as the result of killing some monster and the current weapon will only switch after N kills. These settings can be controlled through the file niqmonst.txt and through the NIQ configuration file (see Configuring NIQ). The idea is to remove the possibility for players to simply hide and wait until their health returns to 100% and/or until they get a better weapon (of course, these tactics don't work very well in deathmatch games). Generally, the tougher the monster, the more health you will get for disposing of it. Note that by default you do not get any health for killing the insane guys (the POWs), but if it makes you happy to put them out of their misery go ahead. If you *really* want to, you can always edit the file niqmonst.txt and specify how much health you want to gain (or lose) for killing them but killing a POW will never decrease the number of kills needed for the next weapon switch. By default, there is a message at the top of the screen describing each monster as it is killed. This is kind of fun to have and is also informative and is useful when you're not sure what you killed (e.g. with that quick BFG shot before you ducked out of sight). In singleplayer/coop mode, your health *can* increase while your are fighting (firing your weapon). All key items (keys, CDs, markers, the commander's head) have been left in the game. Monsters are allowed to drop these if applicable since some custom maps have monsters dropping keys or CDs when they are killed and these are usually needed to complete the game. Some maps may require the rebreather and/or environment suits to reach certain areas, so these items have been left in for sp/coop. Except for keys etc., monsters and the POWs will never drop anything when killed. NIQ and NIQCTF are 100% server-side mods. If your only goal in life is to connect to an NIQ or NIQCTF server as a client, you don't need to do anything except maybe read the information on what NIQ is/how it works. For NIQCTF, there is a chance that the server has been setup incorrectly. If you connect fine but get a bunch of "can't find pic" and "can't find sound" messages and you can't see the flags or the grappling hook, check what the server's gamedir is (GameSpy tells you what this is and I think you can type it in at the Quake II console to get its value). Probably the server does not have NIQCTF installed in the "ctf" directory (e.g. it might be in niqctf) so on your system, the file pak0.pak will not be found. The only solution, apart from getting the server operator to install NIQCTF correctly, is to create a directory with the same name as the gamedir name in your own quake2 directory (e.g. niqctf) and copy the pak0.pak file from your ctf directory into that directory. This should fix any problems for the next time you try to connect to that server. If you want to start an NIQ server or play NIQ in singleplayer/coop mode, you will need to download the latest version from the Downloads section and unzip it into the directory \quake2\niq (recommended). NIQCTF requires a couple of additional steps. Because Q2CTF is itself a mod to Quake II, clients connecting to a Quake II server which is running a Q2CTF mod will expect the mod to be in the ctf directory since this is where clients will look for the pak0.pak file which contains the Q2CTF maps, graphics and sounds on their own machine. This means that you will have to find a way to have NIQCTF and whatever is currently in your ctf directory (usually Q2CTF) co-exist. The easiest way to do this is probably to make \quake2\ctf\q2ctf and \quake2\ctf\niqctf directories. Assuming that Q2CTF is currently installed in \quake2\ctf, copy the file gamex86.dll into \quake2\ctf\q2ctf. Then unzip the NIQCTF files into \quake2\ctf and copy the NIQCTF gamex86.dll into \quake2\ctf\niqctf. You can then either manually copy the dll which you want to use from \quake2\ctf\q2ctf or \quake2\ctf\niqctf into \quake2\ctf before running the server or write a little batch file to do this for you. This will make whatever ctf mod you choose to run on the server transparent to clients because they will see a mod called ctf running in either case. Note that EAVY's version of Q2CTF installs a \quake2\ctf\maps directory which contains .ent files for placing the flags in the regular and deathmatch maps. Each base is marked with a red/blue banner so bases can be identified even if the flags aren't there. I've deleted the file jail3.ent because this was placing the red base near the pyramid with the result that the red flag was never visible. See Q2CTF+ for more information on this mod, but it is basically a version of Q2CTF which isn't limited to the 5 Q2CTF maps. After unzipping NIQ and/or NIQCTF, you can edit the file niq.cfg (niqctf.cfg) as desired, but most of the default settings should be fine, at least initially. You can also edit the files niqweaps.txt, niqammo.txt, niqmonst.txt and niqmotd.txt. See "Configuring NIQ" or the files themselves for more information. Start Quake II with the usualniqweaps.txt
Contains a list of weapons to use in the game. Weapons can go into the file more than once (up to 50 entries are allowed) in which case they will appear more often (in both random and sequential cycling modes).niqammo.txt
Controls how much ammo is initially given for each weapon, the rate at which the ammo for that weapon is handed out and the maximum allowed ammo for that weapon. I may drop having separate switch and start (spawn/join) initial amounts. The idea was to discourage players from getting killed intentionally in order to get more ammo, health but this is probably no longer needed.niqmonst.txt
For NIQ in sp/coop mode, controls how much health you get for killing each type of monster (tougher monsters give you more health). This may be changed in the future so that you also get more health if you kill a monster with a weaker weapon.niqmotd.txt
You can put a short (40 cols or less, and maybe 2-3 lines) message in here which will be inserted into the standard NIQ MOTD for regular deathmatch games. Note that if NIQ does not find any of the above files, it will use default values. Lines in the NIQ/NIQCTF .txt files should not exceed 128 characters in length.deathmatch/CTF
With NIQCTF (or any EAVY CTF mod), some maps will cause messages of the form "Monster_DEL! doesn't have a spawn function". This happens with fact2, for example. These don't seem to cause a problem however. There are currently no known problems which are specific to deathmatch/CTF.singleplayer/coop
The code for selecting an item through the item menu is a little bit screwed up for selecting the rebreather / environment suit. The best way select these is to bind keys to "use breather" and "use environment suit" since it isn't obvious from the menu which item is currently selected. I many try to fix this, but its not a high priority for now since the work-around is fine. The current weapon is changed when a new map is loaded, even if there is time remaining for that weapon. When you are killed and restart a map, the weapon is also reset (to the first one if cycling in order, otherwise a new random one is chosen). It might be nice to make this optional (having a new random weapon when restarting a map, e.g. after being killed, might be nice sometimes). It is occasionally possible to end up with the wrong ammo for the current weapon being incremented so that when you run out of ammo, you won't get any more. I've seen this happen once so far and I've not been able to reproduce it (might possibly be related to running Q2 inside a debugger). If this happens (with niq_autoinsp=0), you will have to get yourself killed, or kill yourself or restart the game, since your weapon will never change, because you can't kill anything without ammo. This seems to happen sometimes when loading a saved game. Some maps trigger certain events when certain items are picked up, such as the 2 soldiers on base1 who only appear when some (I'm not sure which) item is picked up. Since NIQ eliminates almost all items from the map, these events will probably never occur. For the regular game, this should simply mean that on some maps you will not be able to get 100% kills (e.g. on base1, you will only be able to get 17/19 kills). As far as I know, there is no event which is only triggered by picking up an item and which is needed in order to be able to complete the game. However, it is possible that you will not be able to complete some custom maps which do this. There are some known problems with saving and restoring games. This seems to work fine if you save a game then restore it during the same 'session', i.e. without quitting and restarting Quake II. Sometimes there may be a "SZ_GetSpace: overflow without allow overflow set" or "function pointers have moved" error which may crash the game. It seems however that it is always possible to restore the state which is saved at the start of each map, so at the very worst, this means you can't save a game somewhere in the middle of a map. The next time you start up NIQ, if you don't load a map, you can always restore the previously saved state at the beginning of the last map you were playing.general
I've occasionally seen the following error messages with NIQ/NIQCTF as well as with regular Quake II and many other mods. There hardly ever seems to be a problem when they appear, although they are somewhat annoying. If anyone knows their cause and/or how to fix them, please let me know. Are some of them related to lag? "Client has overflowed" "netchan_transmit: dumped unreliable" (in the console of a dedicated server which is running NIQ). "SZ_GetSpace: overflow without overflow set" "WARNING: message overflowed for XXX" The "can't find pic" messages might be gone. I haven't seen one in a while. The message "serverinfo string size exceeded" appears when you type "serverinfo" at the console. While the message may look scary, nothing seems to break as a result. Occasionally when firing the chaingun or hyperblaster continuously for a while, the weapon will seem to stop firing and the screen will seem to shake for a few seconds and there may be a pile of "client has overflowed" messages. Things seem to come back to normal if you stop firing for a few seconds. I don't know if this is an NIQ-specific problem or if all mods (and/or the regular game) have it as well. It could be related to lag and/or running on a slow server. These are arranged in rough order of the probability that I will actually do them. Now that the Eraser bot code is out, I'm hoping to do NIQBOTS if the code which I need to muck around with is fairly straightforward. Probably the biggest limitation of any of the bots which I've tried (I've spent hundreds of hours playing against the Reaper Bots for Quake I) is the fact that they often can't get to powerful items which their human opponents are able to reach with relative ease. This puts them at quite a disadvantage against human opponents of roughly equal fighting skill. For this reason I think that merging NIQ with the Eraser Bot code might be worth trying. I'll be looking into this once NIQ and NIQCTF seem to have settled down. Merge NIQ with Q2CTF+ which will let a single mod support all modes (CTF/deathmatch/singleplayer/coop with or without the grappling hook). Figure out how to pause the MOTD (NIQ) until the client hits the FIRE button/key (like the Lithium mod does). If anyone knows how to do this, please let me know. The MOTD works fine at present (it stays up for about 5 seconds) but its not obvious to me how/where to handle waiting for the FIRE event. Fine tune the various settings for ammo and health etc. a bit more. Try to optimize these for the best possible game play. Maybe some of these should vary with the number of players / skill level etc. In singleplayer, I think the health per monster should be reduced until skill 3 (hard+) is almost too hard for a single player (easier in coop). Currently the ammo for all clients is going back to the spawn amount after a level change in all modes. In singleplayer, the current ammo (and health, time remaining) should be kept. In DM, things should be reset to the default amount when changing levels. The respawn amount should only be used when a client first connects or respawns after dying. (Its actually quite possible that I will drop the idea of having different amounts of ammo for switching/spawning since this seems to be unnecessary -- players aren't going to gain anything by suiciding anyway). When unlimited ammo is enabled, show 999 for the current amount of ammunition and disable calls to the ammo incrementing code. Option to show the next weapon which will be used on the HUD. Look into using a custom variable for use by a GameSpy custom filter. For singleplayer/coop, have the amount of health which you get for killing a monster depend on which weapon was used (you should get more health when using a weaker weapon). This would turn the file niqmonst.txt into a table of monsters vs. weapon used to kill the monster, i.e. 10 columns instead of 1. This would be better than having, say, a multiplier for each weapon since not all weapons are equally effective against all monsters (e.g. killing flying monsters with the grenade launcher isn't too easy). Some kind of (optional) warning sound and/or flashing effect just before switching to the next weapon might be nice. Other improvements to HUD (e.g. show #1 score and scores+ranks of any players just above/below you?). Drop the ammoonstart column in niqammo.txt and add a single multiplier variable (niq_spawnmultiplier) which lets the server control how much ammo is given when the weapon is switched, versus when a client joins the game or respawns. I'm not convinced that this is even needed since if a client decides to get killed or kill himself on purpose, he will lose points and time and is probably better off trying to stay alive (to get more frags) with the ammo/health that he has. Some kind of support for handicapping a client. I might be able to do this without making the mod client-side by reusing some standard variable or command which isn't needed in NIQ. For example, if clients hit "use grenade", this could tell the server to toggle through various levels of handicapping. The handicapping could be done in several ways, by reducing the amount of damage the client does or the rate at which his health increases for example. The idea is that any client could voluntarily give himself a handicap so that the game would be more challenging for him or more fair for others, e.g. because the client has a much smoother connection. The handicap level should be shown in the scoreboard though. Option to not show a weapon switch when switching to the same weapon. This can only happen if there is only 1 weapon or if some weapons are in the weapon list more than once, so its not a big issue. Have niq_weapontime=0 indicate that each weapon should be kept until the end of the current map. Improve the custom scoreboard a bit. It would be nice to somehow fit in each client's connect time and rank. Also, it would be a plus if clients could ask for more scores or for a wider scoreboard to be shown, e.g. if they are running in a higher resolution than 320x240. In 640x480, we could show a lot more information. It might be nice to show the number or clients in the game on the scoreboard as well. This should fit in somewhere fairly easily. Let clients control whether the NIQ or regular scoreboard is used. This would let clients see the model/skin icons for clients if desired, and the time connected information which isn't available on the NIQ scoreboard (for now). Player ID support in NIQ would be nice (its in NIQCTF for free because this is in Q2CTF). Add support for reading in a list of maps to be used. Even better would be to let this list include suggested minimum and maximum numbers of players for each map so that the best map for the current number of clients would be chosen each time. The maps could be executed either in order or randomly (using all maps at least once). Some kind of a 'winded' factor which would limit how long a player can run for before he has to walk/rest for a while. I plan to upload the sources for NIQ and NIQCTF when I get a chance. Look for these to appear in this section. A lot of thanks goes out to the guys at Matrox who helped Beta test NIQ and NIQCTF and provided encouragement and helpful ideas. In particular, Olivier Rousseau (Flatulus), Martin Paradis (Aes_Sedai), Louis de Carufel (Mr.Bungle), Steve McDuff (Demolition Duff), Eric Le (DynaByte), Rudy Yang (Stonecutter), Pierre Gervais (Cacou), Wil Renczes (Hawkins) and Benoit Miller (Fulg). Thanks also to Vince Lupo (Destroy), Matt (of Weapons of Destruction fame), Dave (Fargo) Kosak, Rodger Ballard and Joost Schuur for helping me with distribution issues. Thanks to Stefan Schwarz (EAVY) of the Handy-Team for his mod to Q2CTF which lets us play CTF on the regular and DM maps. And of course, thanks to id for putting out Quake II and Q2CTF in the first place. The Quake2 source code is Copyright 1997, id Software. All modifications and additions made to the Quake2 source code to produce "NIQ," and "NIQCTF," can be used by anyone however they want, but please try to keep the files for these mods intact and unmodified. NIQ and NIQCTF are provided "as is". While every attempt has been made to make these quality modifications to Quake II, if you use them, you do so entirely at your own risk. Authors may feel free to use the NIQ sources however they want, subject to the above restrictions.