Nemesis Server v2.0.15
1.16n client and server mod
http://www.q3nemesis.com
Developed by Cyrus and Wonkey
[email protected]
[email protected]
Contents
Overview
The latest version of this document is always available at http://www.q3nemesis.com/docs/server-readme.html, please use it whenever possible.
Nemesis is a client and server modification for Quake 3 offering many of the features of OSP from 1.32 with efforts to make sure the server is as cheat free as possible. There is a very simple mission statement where we strive for a competitive arena which should be consistent between servers running Nemesis. For that reason we do not allow changing of weapon damage, weapon splash damage or splash radius, weapon respawn rates or item respawn rate.
Installation
Within the server's quake 3 installation directory create a folder called nemesis. Unzip the contents of nemesis-server-X-Y-Z.zip (X, Y and Z represent the release version) into the nemesis folder you just created. You will be left with a folder structure similar to the following
- Quake 3 Installation Directory
- /baseq3
- /nemesis
- /modes
- /wonkeymagic
- description.txt
- nemesis-server-X-Y-Z.pk3
- zzz-nemesis-client-X-Y-Z.pk3 (not required on server)
- zzz-nemesis-models.pk3 (not required on server)
- client-readme.html (not required on server)
- server-readme.html (not required on server)
You will be able to start your server with a command similar to the following
./q3ded +set com_hunkmegs 64 +set fs_basepath `/bin/pwd` +set fs_game nemesis +exec modes/frz.cfg +set dedicated 2
What's New?
Description of changes between releases.
2.0.15
- Nemesis CVARs prefixed with nms_ instead of g_ to avoid confusion with default CVARs and features.
- Renamed Monkey Magic to Wonkey Magic to avoid confusion with the old standalone, java based version.
- Moved banning files, motd into a new folder called wonkeymagic.
- Reorganised modes folder so mode specific files are nested within one folder per mode.
2.0.12
Standard Configuration
Description of configuration parameters standard to quake 3.
Host Name
sv_hostname is the name you want your server to be shown as in server browsers.
sv_hostname "My Nemesis Server"
Game Type
g_gameType controls the type of game play.
- 0 - Free For All
- 1 - Tournament (1v1)
- 2 - Single Player
- 3 - Team Deathmatch
- 4 - Capture the Flag
- 5 - Freeze Tag (added by Nemesis)
g_gameType 5
Maximum Clients
sv_maxClients is used to determine the maximum number of clients allowed to be in your server at any one time (this includes spectators).
sv_maxClients 12
Remote CONtrol Password
rconPassword is used to set a the remote control password.
rconPassword "password"
Password
g_password and g_needpass are used to set a password for the whole server. This means only players with the correct password set can connect.
// enable password
g_needpass 1
g_password "password"
// disable password
g_needpass 0
g_password ""
Private Clients
sv_privateClients is used to determine how many of the client slots (set with sv_maxClients) are reserved for clients with the private password. The private password is set using sv_privatePassword.
sv_privateClients 4
sv_privatePassword "password"
Minimum and Maximum Ping
sv_minPing and sv_maxPing set the range of ping a client must be within to enter the server.
Unless you have a problem with very high pingers entering your server I'd recommend these both be set to 0. When a client connects to a server the only chance for the server to describe problems to them is the connection window (while waiting to join), but in 1.16n the message about low pings overrides everything else. e.g. if the server is full you no longer get told the server is full you get told the server is only for low pings.
sv_minPing 0
sv_maxPing 150
Pure Server
sv_pure sets whether a client is allowed to have any pk3 files that the server does not have. Set this to 1 to enable pure mode, 0 to turn it off.
When pure is on, the server asks the client to send it the unique md5 hash for each pk3 file and then compares it with the file it has. This prevents a client modifying a pk3 file.
If a client tries to connect to a pure server with extra pk3 files or without all the required pk3 files it will receive an unpure client message in the console window and will not be allowed to connect. If the server has sv_allowDownload enabled (set to 1) and the client has cl_allowDownload on (set to 1) the client will attempt to download missing pk3 files to satisfy the server.
Pure mode is notoriously buggy in 1.16n and autodownload will not even begin to work on linux servers unless they are started with the correct commandline arguments. Linux servers require the fs_basepath be set within the command that launches quake 3
q3ded +set fs_basepath <Q3_PATH> +set fs_game nemesis +exec modes/frz.cfg where <Q3_PATH> is set to the directory quake 3 is installed in (something like /home/user/quake3_116).
After all that pure mode is often regarded as useless as the internet provides a resource to download cracked quake3 executables which can bypass the server's pure checking. Nemesis provides its own anticheat system which is more effective.
sv_pure 1
sv_allowDownload 1
Frames Per Second
sv_fps controls the upper limit of how many game updates per second the server sends to clients. The actual value a client receives is determined by their setting of snaps, but the server setting prevents very high values being requested by the client. The quake 3 engine actually has a hardcoded limit of 30 so an fps of greater than 30 will never actually happen.
The more updates a client receives per second the more accurate a view of the arena they can display to the client. Of course, the higher the value, the more bandwidth requirements are placed on both client and server to keep up.
sv_fps 30
Maximum Rate
sv_maxRate controls the maximum rate a client is allowed to request from the server (via the rate command).
On a LAN game a rate of 25000 is fine because of the underlying network speeds, but an internet game should have this value set at about 12000 to prevent network congestion and laggy client performance.
sv_maxRate 12000
Knockback
g_knockback controls the amount of knockback that a player feels e.g. when caught in rocket splash. The default value is 1000.
g_knockback 1000
dmflags
You can enable/disable some standard quake features with the dmflags command. Just add up the numbers of the features you want to enable from the following list;
- 8 - No Falling Damage
- 16 - Fixed Field of View (FOV)
- 32 - No Footsteps
dmflags 8 // no falling damage
Forced Respawn
g_forcedRespawn controls the time (in seconds) before a player is forced to respawn when a new round starts.
g_forcedRespawn 1
Master Servers
Master servers hold a global list of all online quake 3 servers at any one time. Setting the master servers correctly will enable your server to be found quickly and easily by other players using server browsers. If you want to see the information a master server holds why not check out the Nemesis Server Spider
sv_master1 "monster.idsoftware.com"
sv_master2 "master3.idsoftware.com"
sv_master3 "clanservers.net"
Round Limits
A game or round can be limited in a variery of ways.
fraglimit is used in FFA and TDM games. When a player or team reaches the frag limit the game is considered complete.
capturelimit is used in CTF games. When a team reaches the capture limit the game is considered complete.
freezelimit (added by nemesis) is used in freezetag games. When a team reaches the freeze limit the game is considered complete.
timelimit controls the time in minutes after which a game is considered complete. Time limit is often used in conjunction with one of the other 3 round limiters above to prevent a game lasting too long.
freezelimit 10
timelimit 30
Bots
We recommend that you disable bots on your server if possible as they can be the cause of some curious bugs in certain circumstances. However, they work perfectly well in many games.
bot_enable controls whether bots are allowed on the server. bot_nochat controls whether bots in game are allowed to talk. bot_minPlayers controls the minimum amount of players one each team - if it falls below this value then the server automatically adds bots. g_spSkill controls the skill level of the bots.
bot_enable 1
bot_nochat 1
bot_minPlayers 2
g_spSkill 3
Nemesis Configuration
Description of configuration parameters added by Nemesis.
Anticheat
No details yet ...
ProMode
nms_proMode controls whether ProMode (copyrights of arQon, author of CPMA) is enabled on the server. 1 to enable, 0 to disable.
ProMode changes the movement physics so that players have more air control and can double jump when coming up ramps. With VQ3 physics most players will be used to holding down forward and one strafe key whilst they are in air - in ProMode you have air control only when you are holding down one direct button.
ProMode changes the weapon switch time so it is possible to fast switch between certain weapons. For example, try using the lightning gun on someone and then switching to rail. You will fire an instant railshot meaning the combination can give a very quick kill.
Players running Nemesis client will also notice ProMode adds different hits sounds depending on how much damage you caused to the enemy.
nms_proMode 1
DeLagged
nms_delagHitScan controls whether or not the server runs in delagged mode - 1 to enable, 0 to disable. Delag mode means all clients can fire directly at opponents and the server will do ping based compensations. Normally benefits high pingers, but can cause annoying side effects such as being killed when you've already run around a corner!
nms_delagHitScan 0
InstaGib
nms_instGib controls whether or not the server runs in instagib mode - one hit one kill. Choose from the following options;
- 0 - No Instagib
- 1 - Rail Instagib
nms_instaGib 0
Rail Jump
nms_railJump controls whether rail jumping is enabled on the server. 1 to enable, 0 to disable.
nms_railJump 1
Message of the Day
nms_useMotd controls whether the wonkeymagic/motd.txt file content is displayed in the console window when a client connects to the server. 1 to enable, 0 to disable.
nms_useMotd 1
Grapping Hook
nms_hookEnable controls whether players can use the grappling hook. 1 to enable, 0 to disable.
nms_hookSky controls whether players can hang on to the sky with the grappling hook. 1 to enable, 0 to disable.
nms_hookDeploy is the speed (in game units) at which the hook moves when it is fired.
nms_hookPull is the speed (in game units) at which the hook pulls the player towards it.
nms_hookHoldTime is the time (in seconds) the hook can hold on to an object before it automatically releases.
nms_hookEnable 1
nms_hookSky 0
nms_hookDeploy 800
nms_hookPull 800
nms_hookHoldTime 5
Start Weapons
nms_machineGun, nms_shotGun, g_grenadeLauncher, nms_plasmaGun, nms_rocketLauncher, nms_lightningGun, nms_railGun and nms_bfgGun are used to control the weapons a player starts with. Set to 1 to start with the weapon, otherwise 0.
nms_machineGun 1
nms_shotGun 1
nms_grenadeLauncher 0
nms_plasmaGun 0
nms_rocketLauncher 1
nms_lightningGun 0
nms_railGun 1
nms_bfgGun 1
Start Ammo
nms_bullets, nms_shells, nms_grenades, nms_rockets, nms_bolts, nms_slugs, nms_cells and nms_bfg are used to control the ammo a player starts with.
nms_bullets 100
nms_shells 10
nms_slugs 10
nms_grenades 0
nms_rockets 5
nms_bolts 0
nms_cells 10
nms_bfg 0
Start Health/Armor
nms_startHealth and nms_startArmor control the starting health and armor of players. Health defaults to 125 and armor to 0. Note that like in normal play, any values above 100 will slowly tick down.
nms_startHealth 125
nms_startArmor 30
Disable Weapons
You can disable weapons spawning on a map using the map_weaponDisable command. Just add up the numbers of the weapons you want to disable from the following list;
- 1 - MachineGun
- 2 - ShotGun
- 4 - Grenade Launcher
- 8 - Rocket Launcher
- 16 - Lightning Gun
- 32 - Rail Gun
- 64 - Plasma Gun
- 128 - BFG
If you set a weapon so a client starts with it, disabling it with map_weaponDisable only prevents it spawning on the map - the client still has it, so providing they have ammo, they can use it.
map_weaponDisable 128 // no BFG
map_weaponDisable 148 // no BFG, grenade launcher or lighning gun
Disable Items
You can disable items spawning on a map using the map_itemDisable command. Just add up the numbers of the items you want to disable from the following list;
- 1 - Armor
- 2 - Health
- 4 - Teleport
- 8 - MedKit
- 16 - Mega Health
- 32 - Quad Damage
- 64 - Battle Suit
- 128 - Haste
- 256 - Invisibility
- 512 - Regeneration
- 1024 - Flight
Alternatively you can disable all items by setting map_noItems to 1.
map_itemDisable 96 // no quad damage or battle suit
map_itemDisable 2047 // no items
Gauntlet Damage
nms_gauntDamage sets the amount of damage the gaunlet does per hit - defaults to 50.
nms_gauntDamage 50
Return the Flag
nms_returnFlag controls whether players have to carry their own flag back to base in CTF games. The default behaviour is that when a player touches the flag it instantly appears back in their base.
nms_returnFlag 1 // players must carry own flag back to base
Weapon Drop
nms_weaponDrop controls whether a player drops their current weapon when they die. 1 to enable weapon dropping, 0 to disable.
nms_weaponDrop 1
Thaw (unfreeze) Time
nms_autoThawTime controls the time (in seconds) before a player automatically thaws in freezetag games.
nms_thawTime controls the time (in seconds) you must stand by a frozen player to thaw them.
nms_worldThawTime controls the time (in seconds) before a player is thawed when they have been killed by the world - lava, slime, falling off.
nms_autoThawTime 0 // no auto thaw
nms_thawTime 3
nms_worldThawTime 5
Self Damage
nms_selfDamage controls how much you damage yourself with projectiles (e.g. rocket splash). Set between 0.0 (no damage to self) to, 1.0 (normal damage to self).
nms_selfDamage 1
Lava Damage
nms_lavaDamage controls whether lava damages players. 1 to enable this damage , 0 to disable
nms_lavaDamage 0
Force Team Only Spectate
Setting nms_forceTeamSpec to 1 means that in team games you can only spectate members of your own team. Defauls to 0
nms_forceTeamSpec 1
Spawn Protection
nms_spawnProtect and nms_protectTime TODO.
Team Knockback
nms_noTeamKnockback TODO.
Team Colored Freeze Skins
nms_teamColorFrzSkins TODO.
Spawn Kill Penalty
nms_spawnKillPenalty TODO.
Suicide Penalty
nms_suicidePenalty TODO.
Map Rotation
Instead of using vstr strings to create a map rotation you can use the map files to create a more flexible rotation scheme. The main advantage of using map files is that an admin can change to a new map using rcon and when it is complete rotation will continue. It also allows clients to see what maps are in rotation and at the end of each map the next map is displayed in the console for all to see.
map_mapRotate should be set to 1 to enable map files. map_mapFile should be set to the name of the map file (located within mapfiles directory). map_startMap should be set to the first map in rotation.
// this goes at the very bottom of your config file
map_mapRotate 1
map_mapFile frz_maps.txt
map_startMap q3dm6
map q3dm6 // used to kick server into first map
Referee
nms_refPass is used to set the referee password on the server.
A player can access referee mode in server by typing /ref PASSWORD, where PASSWORD is the value set for nms_refPass. Once authenticated as a referee you can type /ref to see a list of referee commands.
- authorize - enable(1) or disable(0) Nemesis Client authentication
- allowvote - enable(1) or disable(0) client voting
- autothawtime - time it takes a player to unthaw automatically in world(in seconds)
- banbyID - bans a player from the server, banbyID <ID>
- banIP - bans a player from the server, banIP <IP address>
- capturelimit - amount of captures needed to win in CTF
- clientips - list all available player's on server and their ips
- dowarmup - enable(1) or disable(0) warmup stage
- fastrail - enable(1) or disable(0) 1/2 sec faster rail reload
- forceteamspec - forces a player to spectate only his team members in freeze
- fraglimit - amount of frags needed to win in FFA, TDM, or 1V1
- freezelimit - amount of round wins per team needed to win a match in freeze
- friendlyfire - enable(1) or disable(0) hurting of teammates via shooting
- gametype - 0 = FFA, 1 = 1V1, 2 = SP, 3 = TDM, 4 = CTF, 5 = FRZ
- hook - enable(1) or disable(0) offhand grappling hook
- instagib - enable(1) or disable(0) rail instagib
- kick - kick a client, kick <ID>
- lockblue - locks blue team, only works for team based games
- lockred - locks red team, only works for team based games
- lockteams - locks both teams [red/blue], only works for team based games
- logout - logout as a referee
- nextmap - executes the nextmap in the server rotation (if rotation enabled)
- map - execute a map by name <MAP_NAME>
- maprotate - enable(1) or disable(0) map rotation
- minplayers - sets amount of players needed per team to continue a match
- mode - executes a mode listed in the modes.txt file
- mute - mutes a player via ID or name
- pause - pauses the game
- promode - enable(1) or disable(0) promode gameplay, for more info see www.promode.org
- protecttime - adjust amount of time client spawn protection lasts (in seconds)
- pure - enable(1) or disable(0) pure server mode
- putblue - reassign a player to blue team by ID or name
- putred - reassign a player to red team by ID or name
- railjump - enable(1) or disable(0) rail-jumping, clients can boost off floors, walls
- remove - removes player from game to spectator status via ID or name
- removeip - removes a banned players IP on the banlist
- returnflag - enable(1) or disable(0) manually returning of flag (RTF)
- restart - no value required but can give a value in seconds before map restart
- shuffle - attempts to randomize players and even out teams by player scores
- spawnprotect - enable(1) or disable(0) client spawn protection
- teamknockback - enable(1) or disable(0) weapon knockback of live teammates
- thawtime - time it takes a teammate to thaw another teammate in freeze (in seconds)
- timelimit - amount of time set per map round (in minutess)
- unlagged - enable(1) or disable(0) Unlagged compensation
- unlockblue - unlocks blue team, only works for team based games
- unlockred - unlocks red team, only works for team based games
- unlockteams - unlocks both teams [red/blue], only works for team based games
- unmute - unmutes a player via ID or name
- unpause - unpause the game
- worldthawtime - time it takes a player to thaw in world (lava, pits, etc)
nms_refPass "refereePassword"
Logging
g_log and other created files TODO.
Fast Rail
nms_fastRail controls the reload speed of the railgun with 2 possible values. 0 is default reload of 1.5s and 1 is fast reload of 1.0s
g_fastRail 0 // 1.5s reload time
g_fastRail 1 // 1.0s reload time
Wonkey Magic
Wonkey Magic is a server guardian giving you the power to control, warn and remove players automatically.
wonkeymagic/bannedIPs.txt is used to control banned IP addresses. Currently a ban is permanent and should be a complete IP address and not a subnet - e.g. 192.168.1.1
wonkeymagic/bannedNames.txt is used to control banned words in player names. Names are checked for each entry (one entry per line) in the file - e.g. an entry of named will match unnamed, unnAmEdplayer, etc. Names are stripped of color flags and converted to lowercase before comparison, so all entries should be lowercase. If a player is trying to connect with a banned name they will be prevented from entering the server. If they change their name ingame they receive a warning and have 30 seconds to change to a valid name or they are kicked.
wonkeymagic/bannedTags.txt is used to control banned clan tags in player names - a banned tag is one you want to protect, like the tag of your own clan. Names are checked for each entry (one entry per line) in the file - e.g. an entry of [*v*] will match [*v*], [*V*]PJ, etc. Names are stripped of color flags and converted to lowercase before comparison, so all entries should be lowercase. If a player is trying to connect with a banned tag they will be prevented from entering the server. If they change their name to one with a banned tag ingame they receive a warning and have 30 seconds to change to a valid name or they are kicked.
wonkeymagic/bannedWords.txt is used to control banned words in chat. Chat messages are checked for each entry (one entry per line) in the file - e.g. an entry of fool will match fool, FOOLISH, etc. Messages are stripped of color flags and converted to lowercase before comparison, so all entries should be lowercase. If a tries to send a message with a banned word in the message will not be sent and they will receive a warning. Subsequent warnings will result in the player being muted for a continually increasing amount of time - maximum of 120 seconds.
nms_monkeymagic is used to enable/disable the features of Monkey Magic (some features are always on). Just add up the numbers of the items you want to enable from the following list;
- 1 - Chat Filtering
- 2 - Name and Tag Filtering
nms_wonkeymagic 3 // name and chat filtering
Match Settings
match_minPlayers and match_maxBluePlayers and match_maxRedPlayers TODO.
g_doWarmup and
g_warmup and
g_teamAutoJoin and
g_teamForceBalance TODO