Action Quake 2: The Next Generation
Version 2.71 (April 11, 2002)
http://www.aq2tng.barrysworld.net
by Igor, JBravo, Slicer, Deathwatch, Freud, Elviz, Rektek

--------------------------------------------------------------------------------------------------------------------
Introduction

  The Next Generation started as three seperate projects: Action Quake 2: Edition, maintained by PG Bund and Igor,
  Action Quake 2: JBravo Edition, maintained by JBravo and Action Quake 2: Millennium, maintained by Slicer, 
  Mort and Deathwatch.

  All these projects had several things in common: They wanted to fix all bugs and exploits, add new features 
  and give more control to server operators. Because of this, they got together and decided to merge their mods 
  into one, called Action Quake 2: The Next Generation.

  This mod will have the features of all the mods it merged with and more!

--------------------------------------------------------------------------------------------------------------------
Installation
  Unpack the quake2/action directory and edit the ini files in the action/config directory to suit your needs.
  Edit the server.cfg to whatever settings you want to use. Make sure you set your inifile variable to point
  to the correct action.ini in action/config.

--------------------------------------------------------------------------------------------------------------------
Features
* Mapvoting
  TNG offers mapvoting so that clients can change the map by voting for one. This is usefull for those 
  servers that wish to offer the maps the people want to play on. There is a 40 second voting block to
  prevent players with fast connections to join and vote for a map before others got a chance to join/vote.

  Commands:
  use_mapvote [0/1] - toggle to turn mapvoting on (1) or off (0).
  mapvote_pass [0..100] - Percentage of votes a single map needs before the vote passes.
  mapvote_need [0..100] - Percentage of players that has to vote before any vote may pass.
  mapvote_min [#] - Minimum number of players that need to vote for a single map. 0 to ignore that.
  mapvote_waittime [#] - Number of seconds people can't vote for a new map when they enter a map.
  maplistname "maplist.ini" - filename/location of the file containing all the maps people can vote for.
  mv_public [0/1] - When on (1), it will show what maps someone votes for.

* Kickvoting
  This offers clients to kick those unwanted players from the server when no admin is about.  

  Commands:
  use_kickvote [0/1] - toggle to turn kickvoting on (1) or off (0).
  kickvote_pass [0..100] - Percentage of votes a single player needs before the vote passes.
  kickvote_need [0..100] - Percentage of players that has to vote before any vote may pass.
  kickvote_min [#] - Minimum number of players that need to vote for a single player. 0 to ignore that.
  kickvote_tempban [0/1] - When set to 1, it will ban the kicked person until the map changes
  vk_public [0/1] - When on (1), it will show who votes for who.
kicklist - this will display a list of all players with their id number. (client side)
votekick "player" - this will cast your votekick vote for player "player". (client side)
votekicknum [#] - this will cast your votekick vote for the player with id number #. (client side)

* Configvoting
  Configvoting allows clients to vote for a certain configuration, predefined by the server admin, to be
  put on the server, in the same way as mapvoting. To vote for a config, open up the menu ('menu' in the
  console) and select Configvoting from the list.

  Commands:
  use_cvote [0/1] - toggle to turn configvoting on (1) or off (0).
  cvote_pass [0..100] - Percentage of votes a single config needs before the vote passes.
  cvote_need [0..100] - Percentage of players that has to vote before any vote may pass.
  cvote_min [#] - Minimum number of players that need to vote for a single config. 0 to ignore that.
  configlistname "configlist.ini" - filename/location of the file containing all the configs people can vote for.

* Tourney
  For those who want to offer a Rocket Arena style one on one server, this mode is ideal. It will let two 
  players spawn and face each other. The winner will stay for the next round and the loser will go back to 
  the queue. The winner then takes up the next player in the queue.

  Example: There are 4 players on a server, A, B, C and Z. Both A and B play each other, C and Z are in the
  queue. B wins and A gets put back in the queue (which then is C, Z and A). Then, B plays the next in the
  queue, namely C. If B would win, he'd face Z and C would get put back in the queue. If C would win, he would
  play Z next and B would be put back in the queue.

  Commands:
  use_tourney [0/1] - This will turn tourney mode on (1) or off (0). To use it, teamplay needs to be on. (1)

* 3 Teams Teamplay
  For more exciting teamplay games, TNG offers a 3 Teams mode of play. This variant of Teamplay will put three
  teams against each other.

  Commands:
  use_3teams [0/1] - This will turn 3 Teams on (1) or off (0). To use it, teamplay needs to be on. (1)

* Capture the Flag
  The popular gameplay mode from many games and mods is available in TNG as well. In this mode, there are two
  teams, Red and Blue. Both have a flag on the map, and they need to take the enemy flag and bring it to their
  own to score a point. (Capture the Flag, or cap for short) The other team will attempt the same ofcourse.

  To prevent spawn camping, there is an invunerability/shield mode to give some ppl some protection.

  Commands:
  ctf [0/1] - This will turn CTF on (1) or off (0). It will automatically turn Teamplay on (1).
  capturelimit [#] - The maximum number of captures before a map will change. Set to 0 to ignore that.
  ctf_respawn [#] - The time in seconds before a player will respawn after having died.
  ctf_dropflag [0/1] - Allow clients to drop the flag or not.
  drop flag - Drop the flag if you're holding it. (client side)
  uvtime [#] - The nr of seconds *10 of the duration of the 'shield' effect. (for example 40 is 4 secs)

* Matchmode
  Matchmode is a special form of Teamplay, made for clanmatches. It has several features which can be usefull
  during matches and league games. It makes sure the whole timelimit is played.

  Clients will have a few more things to do during matchmode: they have to have a captain and substitutes. 
  Everybody in a team will only be able to talk to his/her own team, with the exception of the captain 
  (see below). 
  Subs are players who are part of the team but aren't playing at the moment. With limchasecam enabled, they 
  will be limited to viewing their own team.

  Commands:
  matchmode [0/1] - Turns Matchmode on (1) or off (0). Turning Matchmode on will turn Teamplay on too.
  captain - Become the team's captain if not captain exists yet. A captain can ready/unready his team 
  and speak to the other team. (client side)
  sub - this will make you a sub for the team or remove you from the subs and back in the team. (client side)
  ready - this will ready/unready the team. A new round won't start if a team isn't read. (client side)
  teamname "name" - allows the captain to set the name of his/her team. (client side)
  teamskin "male/resdog" - allows the captain to set the name of his/her team. (client side) 
  mm_forceteamtalk [0/1/2] - this will change the way people can talk on the server. When set to 0,
  it will be the same as with normal teamplay. When set to 1, the teams will not be able to talk with each other,
  except for the admin and the captains. When set to 2, teams can talk with each other until the match starts 
  and when the match is paused or over.
  mm_adminpwd <pass> - this will set the password for match admins.
  matchadmin <pass> - this will allow a player to get admin status. (client side)
  mm_allowlock [0/1] - when on (1), this will allow captains to lock/unlock their teams.
  lock - allows a captain to lock his team. When a team is locked, noone can join it. Locks are removed on a 
  new map. (client side)
  unlock - allows a captain to unlock his team. (client side)

* Voice Command
  The voice command allows clients to play taunts for other players to hear. (as long as they have the sound file)

  Commands:
  use_voice [0/1] - When on (1), it will allow the use of voice commands.
  voice "sound.wav" - this will play sound.wav for all players to hear. (as long as the others have sound.wav)
  This command requires the .wav extension. (client side)

* Low Lag Sounds
  To reduce the number of packets being sent by AQ2 during big firefights, TNG has included the option to
  turn Low Lag Sounds on. This will use a different set of sounds for each weapon, once that reduce the number
  of packets being sent.

  When you use this, the sounds of the weapons will change to those of Quake 2 weapons. You can update your sounds
  with the following:

  MK23 Pistol: 
    sound/weapons/blastf1a.wav 
  Handcannon: 
    sound/weapons/sshotf1b.wav
  MP5 Submachinegun (Give all of them the same sound):
    sound/weapons/machgf1b.wav
    sound/weapons/machgf2b.wav
    sound/weapons/machgf3b.wav
    sound/weapons/machgf4b.wav
    sound/weapons/machgf5b.wav
  SSG-3000 Sniper Rifle: 
    sound/weapons/hyprbf1a.wav
  M4 Assault Rifle: 
    sound/weapons/rocklf1a.wav
    sound/weapons/rocklr1b.wav
  (use an 'empty' sound for rock1r1b.wav as it's only played once together with the other wav file)

  Commands:
  llsound [0/1] - When on (1), Low Lag Sounds will be used.

* Announcer
  The announcer that says "Lights, Camera, Action!" has his vocabulary increased by several words, announcing
  when people preform several feats, such as high accuracy ("Accuracy") or make an impressive shot ("Impressive")
  but also when a team wins ("Team X Wins") or when the fraglimit is about to get hit.

  Commands:
  use_warnings [0/1] - When on (1), it will play all warnings such as "3 minutes left" and "Team X Wins".
  use_rewards [0/1] - When on (1), it will play the sounds on rewards such as "Impressive".
  
* Kevlar Helmet
  A new item, the Kevlar Helmet acts like the Kevlar Vest does, only it protects the head of the player wearing
  it. To disable it, use item banning.

* Single Barreled Handcannon
  We have added the feature to let clients fire one barrel of the Handcannon at the same time. This has as benefit
  that the Handcannon will be able to fire a second shot fast after the next one, but as drawback is is that it is
  not as strong as a double barreled shot, or shotgun shot for that matter. 

  Commands:
  hc_single [0/1] - Set to 1 to enable single barreled handcannon. Default is 1.
  To switch the barrel mode of the Handcannon, press the 'weapon' key to switch mode when enabled.

* Enemy Down Radio Reporting
  Upgraded the 'enemy down' radio sound to report the number of enemies that have been killed as well.

* Player Ignoring
  Player Ignoring can be done through the menu. When ignoring a player, you won't hear any messages from him.

  Commands:
  menu - this will open the TNG menu. (client side)
  ignore "player" - this will ignore the player with the name "player".
ignorelist- this will display a list of all players on the server with their id.
ignorenum [#] - ignorenum will ignore the player with the id given.
ignoreclear - this will clear your ignore list.

* Video Setting Checking
  TNG offers a way to check for gl_lockpvs and to cap the gl_modulate settings.

  Commands:
  video_check [0/1] - turn checking for gl_modulate capping on (1) or off (0)
  video_check_lockpvs [0/1] -  turn checking for gl_lockpvs on (1) or off (0)
  video_check_glclear [0/1] -  turn checking for gl_clear on (1) or off (0)
  video_checktime [#] - sets interval between checks in seconds
  video_max_3dfx [#] - Maximum value for gl_modulate for 3dfx users.
  video_max_3dfxam [#] - Maximum value for gl_modulate for 3dfx users with the AMD patch.
  video_max_opengl [#] - Maximum value for gl_modulate for OpenGL users.
  video_force_restart [0/1] - If on (1), the server will force a client to do a video_restart when he connects.
  
* Location Files
  To support the %L and %S commands, the server needs to install the location files. Location files are files
  which contain coordinates for locations on the map and names for them. 
  The location files itself have the extension of .aqg and should be put in the action/tng directory on the 
  server.

* Punching
  We have added the extra 'punch' attack, which basically  is a weaker version of a kick. It is very close range 
  and does up to 20 damage and can punch the weapon of a player out of his hands. When bandaging, shooting, 
  reloading or zoomed with a sniper rifle, you cannot punch.

  Command:
  use_punch [0/1] - when on (1), it will allow clients to use the punch command
  punch - this will preform a punch. (client side)

* Lens command
  The lens command is in TNG and offers increased control over the zooming of the sniper rifle.

  Commands:
  lens - changes zoom on sniper rifle. (Client side)
  lens [#] - 1,2,4,6 - if you use any other number it'll go to the nearest zoom mode. (Client side)
  lens in - zooms the rifle in to the next zooming level. (client side)
  lens out - zooms the rifle out to the previous zooming level. (client side)

* New Say Variables
  TNG offers several new variables clients can use in their text:
    %K - shows the nickname of the person you killed last. 
    %P - shows the nickname of the person you damanged last.
    %D - shows the location where you hit your enemy last. This can either be head, chest, stomach, legs
         kevlar vest or kevlar helmet.
    %L - shows the location where you are at that moment. (if the map has a location file)
    %S - shows the location where you are looking at. (if the map has a location file)
    %E - shows the enemy you are looking at.
    %F - shows the weapon the enemy is holding.
    %me - shows your nickname like IRC's /me.

* Roundtimeleft
  By typing 'roundtimeleft' in the console during a round, it will give a general indication of the amount of 
  time left that round. This only works when there is a roundtimelimit.

  Commands:
  roundtimeleft - displays remaining roundtime. (client side)

* Time
  By typing 'time' in the console, a client can see the remaining time on that map. This doesn't work in
  matchmode

  Commands:
  time - display the remaining time (client side)

* sv stuffcmd
  This feature will allow people who got rcon to send commands to the clients.

  Commands:
  sv stuffcmd <player #/team1/team2/all> <client command> - If you use $<variable name>, it will display your 
  own setting for that variable. If you use !<variable name> it will display the client's variable name. 

  Example:
  sv stuffcmd all say !gl_modulate - This will make all clients say their gl_modulate setting.

* Weapon Spread
  M4 spread resetted to original value (300), instead reduced the spread for MP5 (240 instead 250) 
  and Akimbos (275 instead 300).

  Command:
  use_classic [0/1] - Turn on (1) to use the original 1.52 values.

* Grenade Strength
  Grenades are a little bit more powerful, so they're not as useless as they were sinces AQ 1.52 
  (250 instead 170 - in AQ2 1.51 they were even stronger) - should stop pepole using grenade 
  jumps in aq2 (after all, it should be an ACTION mod - have you EVER seen someone doing grenade jumps
  in a real life action film? (exclude Matrix - it's a science fiction...)

  Command:
  use_classic [0/1] - Turn on (1) to use the original 1.52 values.

* Total Kills
  The scoreboard of TNG will now show the total kills for each player. Kills is the total number of kills 
  without the negatives (suicides, cratering, teamkills) subtracted.

* Random Rotation
  Random Map Rotation will make the server pick a random map from the maplist when the current map ends.
  This will make the rotations less static.

  Commands:
  rrot [0/1] - Set to 1 to turn random rotation on.* Bandage Message

* Vote Rotation
  Voterotation computes the all time votes for maps and changes the maplist as wanted. 
  If a map is played the amount of players is subtracted form the all time votes value.  

  Commands:
  vrot [0/1] - Turn on (1), to use voterotation.

* Bandage Text
  When a client starts bandagine, a message ("You've started bandaging") will appear. Also the Health icon
  will appear on the bottom of the screen.

* Deathmatch Weapon
  A new variable allows the server to give players a starting weapon during deathmatch. When set, the players
  will get the weapon of that type with full ammo when they spawn. 

  Commands:
  dmweapon "weaponname" - Starting weapon for DM mode (dmweapon), default is "MK23 Pistol".

* Control Characters
  Some proxies use control characters to hide the name of the user. However, it is used by several players as
  well to cause abuse and do spam messages. 

  Commands:
  sv_crlf [0/1] - if off (0), clients are not allowed to issue CR/LF control characters in chat messages.

* Anti Camping
  To discourage camping, TNG has a feature which will make a client who is standing still for a certain
  number of seconds to make noises.

  Commands:
  ppl_idletime [#] - Allowed idle time in seconds before a client will start to make sounds. 0 to turn it off.

* Gibs
  Gibs are a rewarding sight for successful headshots. TNG offers a variable which can turn gibs on headshots
  on. Also handcannon shots that do enough damage will gib someone.

  Commands:
  sv_gib [0/1] - when on (1), it will display 

* Automatic Reloading of Pistol
  When someone has akimbo pistols and they are both empty, and got one clip left, to press reload and it will
  switch back to single pistol and reload that with the clip.

* Weapon Banning
  To allow/disallow the usage of certain weapons, TNG supports weapon banning.

  Commands:
  wp_flags [#] - The number for this variable is the combination of the following:
    MK 23   	- 1
    MP5 	- 2
    M4	  	- 4
    Shotgun 	- 8
    Handcannon	- 16
    Sniper	- 32
    Akimbo	- 64
    Knife	- 128
    Grenade	- 256
  
  For all weapons: 511 (default)

  Example: You want to make a sniper rifle only server: you set wp_flags to 32, the only weapon you allow.
  Or, if you only want pistols: 65 (1+64).

* Item Banning
  To allow/disallow the usage of certain items, TNG supports item banning.

  Commands:
  itm_flags [#] - The number for this variable is the combination of the following:
    Silencer 	  - 1
    Slippers	  - 2
    Bandolier	  - 4
    Kevlar Vest	  - 8
    Lasersight	  - 16
    Kevlar Helmet - 32

  For all weapons: 63 (default)

  Example: You want to have slippers and silencers only on your server: you set itm_flags to 3 (1+2)

* Teamkilling after a Round
  To add a little more fun in the game, we've added an option which will allow a team to TK each other
  after a round has ended during Teamplay. This is only available to servers where FF is off.

  Commands:
  ff_afterround [0/1] - Set to 1 to allow TKing (without punishments) after a round has ended. FF needs to be off.

* New IR Vision
  An updated IR Vision is available. This does, besides adding the red glow to players, another visual effect.
  
  Commands:
  new_irvision [0/1] - Set to 1 to turn the new IR Vision on.

* Radio and Voice Flood Protection
  To stop people spamming with the Radio and Voice command, there is flood protection for both in TNG.

  Commands:
  radio_repeat [#] - Number of the same radio/voice calls before being stopped. 0 is off.
  radio_ban [#] - Number of seconds a player will be silenced for after spamming.
  radio_time [#] - Time, in seconds, where a client may have a radio_max number of radio/voice calls in.
  radio_max [#] - Number of radio/voice calls allowed with the radio_time period.

* Darkmatch
  Ever wanted to play AQ2 in total darkness? TNG allows you to experience this by using darkmatch.
  Darkmatch has 3 modes. In it's first mode, the map will be pitch black, except for certain lights. This
  means that players have to be carefull where they walk as they do not know when they will walk off a
  building. Also, firing your weapon will make you show up clearly.

  In the second mode, the map is in it's near black mode. The map will be very dark, and it will allow for
  more stealthy play.

  The third mode will simulate a real day. The map will go from normal lighting to pitch black and then back
  again to normal lighting.

  Ofcourse, to assist players, there is a flashlight available in darkmatch only. When used, it will create
  a circle of light at whereever you point, but it will also make you show up.

  Commands:
  darkmatch [0/1/2/3] - when set to 1 it's total darkness, when set to 2, its near darkness, when set to 3
  it will simulate day/night.
  day_cycle [#] - Time in seconds where Darkmatch mode 3 will change its light settings
  flashlight - this toggle will turn the flashlight on and off. (client side)

* Map Restarting
  Sometimes you do want to restart a map, to reset the scores there. But a normal map command will disconnect
  everybody and will reset everything on the server. Or you want to load a map without disconnecting
  everybody.

  For this, TNG has two new commands.

  Commands:
  sv softmap <mapname> - this command will load 'mapname' as if it was next in the rotation.
  sv map_restart - this command will restart the map as if it was next in the rotation.

* Statistics
  To see how well players are doing, we have implemented statistics into TNG. This feature will track
  various statistics of each player, for example accuracy or frags per minute.

  Commands:
  stats_endmap [0/1] - when set to 1, this will display the stats scoreboard at the end of the map in stead
  of the normal screen.
  stats_afterround [0/1] - when on (1), this will also record stats for events that happen when a round ends,
  for example when ff_afterround or FF is on.
  stats - this will display the individual stats of the player. (client side)
  stats list - this will display a list of all players and their ID. (client side)
  stats [#] - this will display the stats for the player with the id given. (client side)
  stats_mode [0/1/2] - when set to 1, it will automatically display the stats of the player at the end of each
  round. When set to 2, it will automatically display the stats of the player at the end of the map. By default
  this is set to 0 (off). (client side)

* Automatic Joining/Equipping
  For the lazy players under us, we have created two new client commands to make things easier.

  Commands:
  auto_join [0/1] - when on (1), the players will automatically join the team he was in during the last map.
  auto_equip [0/1] - when on (1), the players will automatically be given the equipment he had during the last map.

* Automatic Demo Recording
  To ease the recording of demos by a client over several maps, we have implemented a feature which will let
  the client automatically record a demo on each new map. When enabled, the server will keep track of the
  recording of the client, and will create a demo of the map with the following name: date_time-map.dm2
  In matchmode, the demo's name will be: date_time-team1_vs_team2-map.dm2

  Commands:
  autorecord - Starts automatic recording of demos.

* Spawn Code
  TNG offers a new spawn code for Teamplay. This mode prevents teams to spawn twice on the same spot and will 
  go through most spawns.

  Commands:
  use_oldspawns [0/1] - Defaults to 0 (off). When set to 0, it will use the new spawning method for teamplay.

* Ghost
  With the use of the ghost command, the client can get back when he has been disconnected and get your frags and 
  stats back. Ghost does require the client to have the same nick and ip when using the ghost command.

  Commands:
  use_ghosts [0/1] - when set to on (1), the server allows the clients to use the ghost command.
  ghost - this will restore the scores, stats, teams and items of the client. (client side)

* Bandolier behavior
  TNG updates the way the bandolier behaves when dropping it. It will prevent people from keeping the grenade(s)
  (when enabled) after having dropped the bandolier.
  
  Commands:
  use_buggy_bandolier [0/1] - if you wish to revert back to the old bandolier behavior, set this to 1

--------------------------------------------------------------------------------------------------------------------
Contact Information
  If you wish to contact the TNG team, to report a bug, suggest a new feature, or offer JBravo your
  sister, you can find us on IRC on QuakeNet (irc.quakenet.org) in #action.dev

  Send your bug reports to tng-bugs@ra.is and for normal inquiries, email tng@ra.is.

--------------------------------------------------------------------------------------------------------------------
Credits
  Thanks go to the following people who have helped us make AQ2:The Next Generation in one way or another.

  Mort - Original Millennium CTF and lots of help with coding
  QDevels - Information and code samples
  Clan dW, Clan ROCK, Clan DP and Clan QNI - Testing and suggestions
  All BWAQSL Admins for suggestions and playtesting
  BarrysWorld, Clix, IOL, The Last Resort and Simnet for providing test servers
  iD Software - Original Flag Models/Sounds
  Davross and Chaka - Flag/Banner Skins
  Kobra - Announcer sounds
  BlackMonk - Supplying us with all kinds of info
  Dome - For helping us with some issues and supplying ideas
  Papst - For helping with the overflow problem
  Everybody who reported bugs and features to us
  And ofcourse every AQ2 player, lets keep AQ2 alive!
