Pure CTF
Server Manual

Pure CTF v2.00 by Methabol - Pure CTF - CTF.SE

Since Zoid's first version of 3wave CTF there have been many different CTF mods out there. Some good and some not so good. Most had one thing in common though: You had to play with all new features, you couldn't just select the ones you want. I wanted a mod where you could select exactly what new features you wanted, and which ones you rather not use at all. I also wanted a solid competition mod that you could use to set up clanfights or practice games quickly and easily. Finally I wanted a mod that fixed all those small but annoying bugs that was left since the developement of 3wave CTF was discontinued. The result is Pure CTF.

With Pure CTF you got the choice. You can select any of the dozens of options, modes and clientpaks you want. You can use it as a competition server, arena server, clanarena server, even a DM server, and it supports the most popular CTF mod besides 3wave, Thunderwalker CTF. And you can combine any of the features making the possibilities endless.

Or you can play just plain, Pure CTF.

Index

Server configuration
Quick Installation or upgrade - Installation instructions
- Installing from scratch - Install Pure CTF
- Upgrading - Upgrading from Pure or any other CTF patch.
- Easy setup table - Quick guide to server settings setup.
Admin Functions - Admin modes, levels and commands
Server Modes - The major server modes.
Server Settings - Server.cfg settings.
The freeze function - An enhancement to the pause function in QW.
Anticheat features - Several anticheating measures.
Paintball Mode - The paintball and practice mode.
Arena Support(v2.00) - Support for Arena and Clan Arena.
Thunderwalker CTF(v2.00) - Support for Thunderwalker CTF
Extra clientpaks - Support for external clientpaks.
The Map queue - Configuring the map queue.
Message of the day (MOTD) - Configuring MOTD
Ping ban - Using the Ping ban feature
CTF Rank - The ranking system CTF Rank
CTF Showdown - CTF Showdown Mode and commands
Patch info
Optimizations - Info about optimizations
Fixed Bugs - Info of the Threewave CTF bugs fixed.
Todo and known bugs - Coming attractions.
History - Version history
Related files
server.txt - Original Threewave CTF doc
pingstat.txt - pingstat doc

  Credits

Pure CTF is mainly made by Methabol: A lot of new coding, most of the bug fixes and features. Also made this documentation and the web page

Thanks to Overfiend, U_Discharge, Madman, Lakris, Harvester, Poodel, Miyamoto, CEnder and many others for useful suggestions.

Thanks to Apache for promoting it to be used in several tournaments.

Thanks to DaBull of Clan CNN for the help with testing and finding bugs in the TW support.

Thanks do Crocodile for testing out the DM functions.

Thanks to Maelstorm, Jarrot, Hooch, Seb, Copycat and others for helping me beta test it.

Quick Installation or upgrade

First unzip the pure CTF zip into your CTF server directory. Note: this will not replace your old server config or your MOTD file, so you won't risk losing any settings. Check the upgrade or new install sections below.

Note: You don't need to convert the ID maps to use them with Pure CTF. All converting is done on-the-fly by the QuakeC code. If you run with converted maps anyway (e.g. Q-mans conversions), Pure CTF will detect this and not change anything, but then you waste 43 megs of HD space. If you already have converted them you can safely remove this files from the quake/CTF/maps/ directory: e?m?.bsp dm?.bsp end.bsp *.ent

Installing from scratch

Upgrading

For all mods: Just unzip Pure CTF and remove the converted maps (see above) and you should be ready to go since Pure CTF is backward compatible. It's recommended however that you scrap your old config and replace it by renaming purectf.cfg to get all new settings and options as the admin commands, etc.

Easy setup table

  modechange adminvote servermode voteexit revert Comment
Public server 0 0 0 1 0 This server will run along as a public server. Vote exit is enabled and players that you only give adminpass can't change mode.
Part time Public/Match 1 0 0 1 10 This works as public server most of the time, but those with adminpass can change to comp. mode to play a match. It reverts back after 10 min if they forget to change back to normal mode.
Private match server 0 0 1 0 0 The server is locked in competition mode. You can loan the server to others for matches by giving them adminpass if you don't trust them with rcon.

Server Modes

Switch mode using "serverinfo mode #".
 

  Mode Name Description
  0 standard This is the standard server mode, suitable for a public server.
  1 competition This mode is a mode intended to greatly simplify clan fights. All players is in "standby mode" until every one types "ready". Then, after a 15 second countdown, the match starts. (v1.30) If you want to use this mode, make sure to read about the admin functions, since these will help you a lot.
  2 arena Arena mode. Read more about it in the Arena section. If you enable both Arena and Competition you get Clan Arena.
(v1.30) 4 Thunderwalker Thunderwalker support. Read more about it in the Thunderwalker CTF Section.

Admin Functions (v1.30)

The admin functions adds a lot of commands that's easier to use than rcon commands, or does things that you can't do with rcon , such as swapping players, or start fights in competition mode. There can never be more than one admin at any time and there are three different "admin levels":

  Access overrides modechange limitations Comment
Voted admin by server vote
"adminvote" must be enabled on the server
none Can never change servermode Most useful for public showdown servers.
Standard admin by typing "setinfo admin <pass>"
"
adminpass" must be set on the server
any voted admin Can change servermode if "modechange" is set on the server Give this to people you want to give admin access, but don't want to give full rcon access.
Super admin by typing the command "super"
You must have the rcon_password
any admin, including another super admin Can always change mode. Any with rcon have access to this.

An admin have access to all admin commands and showdown commands. They are listed in the player commands reference.

Server Settings

All these settings are set with localinfo, e.g.:

Admin settings - for more info and a quick setup guide, go to the admin functions section.
  rcon_password Gives access to the console. Read more about this in the QWSV manual. none = off
  adminpass Gives access to the Pure CTF admin functions. none = off
  tinyadminpass Gives "Tiny" admin access. (You can only change map and kick players) none = off
  modechange Allow standard and vote admins to change mode. Voted admins can never change mode and super admins can always change. (Supers have rcon anyway.) bitmask:
1 = standard admins
2=vote admins
  adminvote Allow players to become admins through server vote. 0 = no votes 1 = enable votes.
Pure CTF features
  mode Sets server mode 1 = comp
2 = arena
4 = Thunderwalker
  revert After the last player leaves, the server will wait this many minutes and then revert to standard mode. Useful for a part time match server if someone forgets to change back to public. 0 = off, value = minutes
(v1.50) paintball ***This variable is no longer used!**** -
  tr Enables Toss rune. 1 = enable
  tf Enable tossflag. 1 = enable flag tossing
  dq Enables Drop quad. 1 = enable
  dr Enables Drooping 1 = enable
  pingban Enables Ping ban. ban with ping below "value"
  hpbpan Enables HPB ban. Useful if you don't want really highpingers on your server. ban with ping above "value"
(v2.00) pingsensitivity Sets sensitivity for pingchecks. Default is 4 and higher values gives you lower sens.  
  glglow Enables GL red/blue glow bit mask: 1 = players with powerups, 2 = powerups, 4 = flags
  shirtlock Locks the players topcolor to their team color 0 = off, 1 = only on connect, 2 = always
  disablepowerups Disable powerups. bit mask: 1 = quad, 2 = pentagram, 4 = ring
  discharge Discharge bug fix/features 0 = bug fixed - Only players in water take damage. 
1 = off - Only the player who discharges take damage. 
2 = as v4.2 - All players in reach take damage
  runes Runes feature. The improved haste is from Threewave CTF v4.21 and means that you run and grapple 25% faster with haste. (Why is this default? 1) It's in the latest "official release". 2) I like it better because haste is arguably the weakest rune and it makes it stronger..) 0 = fixed - With the improved haste from v4.21. 
1 = off - No runes. 
2 = as v4.2
  hook Hook bug fixed and features 0 = fixed - The "multiple hooks" bug fixed. 
1 = off - No hook. 
2 = as v4.2 - Multiple hooks possible. 
3 = as v4.21 - Zoid's hook fix. (Don't work correctly.)
  ankamaps Toggle the use of "anka" maps. 0 = disable, 1 = enable
  voteexit Enable the players to vote to exit the map. 1 = on
  quietstandby Don't allow players to shoot during standby mode. 1 = disable shooting
  specmaxrate Limits rate for spectators to ease server load. Default is 2500. value = max rate
  playermaxrate Limits rate for players. Default is off. value = max rate
(v1.55) playerminrate Limit lower rate for players Default it 2000.. value = min rate
  disableimpulses Disables the new "best weapon" impulses, 50 and 51 1 = disable
  disablefreeze Disables the freeze features selectively. Bitmask:
1: Freeze by admin.
2: Auto freeze in matches.
4:Freeze by vote
  anticheats Enable cheat checking/kicking. Check the anticheat section to se values.  
(v1.55) grapplesky Enable the grapple to stick on "sky":s. 1: enable
(v1.55) extras Enable extra clientpaks.  
(v1.55) startdelay Delays map starts X seconds. Like fairstarts but on public servers. 20 is a good value. value = delaytime
(v1.55) scramble Scramble teams at mapchange to make them more fair. Set to same value as startdelay if you use that, otherwise 30 is good. value = scrambletime
(v2.00) teamtalk Bitfield for teamtalk features: 1=Disable Expert teamaudio. 2=Enable custom teamsounds. 4=Disable "report" bitfield
(v2.00) logging Set type of logging. 0=ctfrank
1 = gibstats logstandard
(v2.00) autostats Control automatic stats at end of level. ("all stats" Could possibly flood players on a crowded server.) 0 = normal stats
1 = stats off
2 = all stats
(v2.00) noautofriction Disables automatic friction according to sv_maxspeed. 1 = Disable autofriction.
(v2.00) countdowntime Sets countdowntime in seconds for matchstarts. Default is 15 seconds. Value in seconds.
(v2.00) autospectalk Disables spectalk automatically in matches and enables it again in standaby. 1 = Set automatically.
(v2.00) auto_sv_gamedir Sets sv_gamedir "smartly" to ctf, arena, qw, etc, depending on what mode your server runs in. Set this if you want to change mode "on the fly" with minimum fuss. 1 = Set automatically.
(v2.00) randomrespawn Randomizes respawntimes. 0=no randomness, 1=max randomness. Any value from 0 to 1.
(v2.00) teamaudio Disables the teamaudio and other teamplay enhancements. This is a bitfield, so every function can be disabled separately. Disable:
1 = Expert sounds.
2 = The "report" cmd
4 = Pure teamaudio
8 = Custom sounds.
(v2.00) audiolimit Sets how often a player can play a teamsound in seconds. Note that the lowest value is 0.1, since 0 will set it to the default of 1. Value in seconds.
(v2.00) lockautoshot Forces every player to take a screenshot at the end of a match. 1 = autoshot on.
(v2.00) lockautodemo Forces every player to take a demo. 1 = autodemo on.
(v2.00) fixe1m8 E1M8 fix that makes it use standard gravit for those who want it. 0 = e1m8 grav.
1 = standard grav.

 

Game tweak parameters - parameters you can tweak to make CTF the way you want it.
  hastespeed Sets haste's additional playerspeed. 1.25 = default
  hasterate Sets haste's firerate. 2 = default
(v1.50) strength Strength damage multiplier. Default is 2. (Double damage.)  
(v1.50) resistance Resistance damage multiplier. Default is 0.5. (Half damage.)  
(v1.50) regrate Health regeneration rate. Default is 5.  
(v1.50) regmax Health regeneration max. Default is 150.  
(v1.55) armorrate Armor regeneration rate. Default is 5.  
(v1.55) armormax Armor regeneration max. Default is 150.  
  hookpull Multiplier for how fast you're pulled by a hook.1 =default. If not value is set, it will use "hookspeed".  
  hookspeed Sets the hookspeed, as a multiple of the standard hook speed. Note: hookspeed also changes with sv_maxspeed. 0 or 1 = standard speed
other values = faster or slower
(v1.51) quadrespawn Seconds until a quad respawns. (Default is 60) values in seconds
(v1.51) pentarespawn Seconds until a penta respawns. (Default is 300) values in seconds
(v1.51) ringrespawn Seconds until a ring respawns. (Default is 300) values in seconds
(v2.00) ammorespawn Seconds for ammo respawns. (Default is 30) values in seconds
(v2.00) armorrespawn Seconds for armor respawns. (Default 20) values in seconds
(v2.00) healthrespawn Seconds for health respawns. (Default 20) values in seconds
(v2.00) weaponsrespawns Seconds for weapons respawns. (Default 30) values in seconds

 

Debug Settings - Normally you shouldn't have to change these, they're just intended for server testing and suchlike.
(v1.50) puredisable Disabling for misc. fixes and features.
  • 1: Disable Wrong deathmessage fix.
  • 2: Disable Out of spawnspots fix.
  • 4: Disable Respawn telefrag fix.
Default=0

Just add the values for the features you want to disable.

  floatflagbug Debug parameter: Disables the fix for the bug where the flag "floats around" after being dropped on a teleporter. 0 = enable fix 
1 = disable fix
  logbug Debug parameter: Disables the new messages for killing the flag carrier. 0 = enable fix 
1 = disable fix
  teledebug Debug parameter: Enables teleporter debugging, useful for tracking down faulty teleporters. 0 = disable debugging 
1 = enable debugging
  singlecap Debug parameter: This disables the block to pick up the flag if there is no one in the other team. 0 = disallow single caps 
1 = allow single caps
  nodynamicmaps Turn off the dynamic map conversion. 1 = disable conversion
  notimer Turn off the countdowntimer. 1 = disable timer
  disableimpulses Disable the "best weapon" impulse (50&51); 1 = disable

 

Mapqueue settings - More about this in the mapqueue section
  votemap Sets the episode vote map to provide allstar and ctfep support. See map queue. Legal values: ctfstart, allstart, epstart, twstart.
  defaultmap Sets the default map to take if you're not in the map queue. <mapname>

 

CTF Showdown Defaults - these are the values set when you use the "default" command. (v1.30)
  default_timelimit Default value for timelimit  
  default_fraglimit Default value for fraglimit  
  etc... The same for all default values.  

 

 

The freeze function

Since v2.20, QW has included a pause function. The freeze function in Pure works like it but have many enhancements. Only admins are allowed to freeze, or you can enable freeze by vote. Also in matches, you can set it so it automatically freezes, if someone disconnects. The game is freezed until the player or a replacement returns. To freeze or start a vote to freeze, use the command "freeze".

All features are on by default. You can disable them with the localinfo variable "disablefreeze"

Bit Comment
1 Disables freezes by an admin.
2 Disables auto freezes when a player disconnects in a match.
4 Disables freezes by vote.

Anticheat features (1.51)

Pure has several anticheat features. Add the values for the features you want and use the localinfo variable anticheats to enable them.

Bit Comment
1 Botcheck - checks for "botlike behavior".
2 Botkick - Autokicks bot. use with caution. The botcheck detector is far from perfect and gives false alarms from time to time. Best used for a public server. (Needs Botcheck set to work.)
4 Alternate botdetection method.
16 Player.mdl modelkick - kick players with illegal models. Pure should recognize the original model and the correct CTF models.
32 Eyes.mdl modelkick. Same as above but for eyes.mdl.
128 Poweruptimer jammer. Disturbs hacked poweruptimer proxys.

If you have problem with the modelkick method kicking people that has correct models, but models that Pure don't recognize, you can add your own "approved" models. Use localinfo emodel1, emodel2, pmodel1 and pmodel2 to set the allowed checksum values.

Paintball Mode

Paintball / Practice mode has been removed with v1.55. Use the clanarena mode instead.

Arena Mode(v1.55)

Arena mode is like a standard Arena server, but you can of course combine it with Pure's other features like CTF or TW weapons. If you play Arena with competition mode enabled, you get "Clan Arena". To play with the arena maps or arena sounds you'll need the Arena Client pak, which can be found on the Rocket Arena Homepage. To play Arena set bit 2 in the mode variable. To play ClanArena set bit 1 and 2.

Thunder Walker(v1.55)

Pure supports Thunderwalker CTF with all it's features. To play TWCTF you'll need the TW clientpak which can be found with playing info and other things at the Thunder Walker homepage.To play with Thunderwalker support, set bit 3 to the serverinfo variable mode.

Extra clientpaks

The localinfo variable "extras" enables several features that requires extra files to be installed or downloaded. Just add the values for the features you want and add "localinfo extras <value>" to your config. To find any of the files needed for this check the filepage at Pure's homepage.

Bit Name Description
1 RA sounds Enables The rocket arena sounds for countdowns. Requires the sounds from the RA clientpak.
2 Visible weapons Enables Visible Weapons. Requires The visible weapons pak from Gatherers CTF.
4 Hook Enables the hook. This is always selected in CTF. Requires the CTF 3.0 clientpak
8 Runes Enables the runes. This is always selected in CTF. Requires the CTF 3.0 clientpak
16 Airfist Enables the Airfist. This is always selected in Thunderwalker CTF. Requires the Airfist or TW clientpak.

The Map queue

The map queue function in Pure CTF are totally compatible with allstar, ctfep, etc. You set map queue mode with the "samelevel" command. Most server admins will probably want to use the "custom" map queue (samelevel 2) to run their favorite maps only.
The status of the map queue is updated automatically into server variable "map queue". If the value there is "*broken*" your queue has an error and should be corrected.
If you use "samelevel 0" you have to set the votemap depending on which maps you want to play according to one the following:
 

serverinfo votemap ctfstart Standard Threewave CTF v4.0+
serverinfo votemap epstart CTF Expansion Pack
serverinfo votemap allstart Allstar CTF.
serverinfo votemap twstart Thunder walker CTF v3.0

 

Samelevel Name Description
0 Standard This is the standard map queue from CTF 4.0+ and Allstar CTF. You vote for a episode to play at the votemap, then play all maps in the episode and then return to the votemap. Set "votemap" to the start map for your mod. 
1 Samelevel This repeats the same level over and over.
2 Custom Custom map queue with localinfo as in QW 2.0. Syntax is "localinfo <from> <to>", and you have to do one of these for every map. Set "defaultmap" to catch any maps not in the queue.
3 Random Select maps randomly. Set "localinfo maps XX" where XX is the number of maps to pick from, then "localinfo  mapYY <mapname>" where YY is the map to pick and <mapname> is the shortname for the map. Note: You can't have more than 50 maps to pick from.

Example Map Queues

Standard mapqueue
This will cycle 14 maps in order.
Random mapqueue
This will pick one of 6 maps every map change.
samelevel 2 
localinfo defaultmap e2m1 
localinfo e2m1 e2m2 
localinfo e2m2 e2m5 
localinfo e2m5 e3m6 
localinfo e3m6 e4m3 
localinfo e4m3 dm3 
localinfo dm3 dm6 
localinfo dm6 ctf2m1 
localinfo ctf2m1 ctf2m2 
localinfo ctf2m2 ctf2m3 
localinfo ctf2m3 ctf2m7 
localinfo ctf2m7 e1m1 
localinfo e1m1 e1m4 
localinfo e1m4 e2m1
samelevel 3 
localinfo maps 6 
localinfo map01 ctf2m1 
localinfo map02 ctf2m2 
localinfo map03 ctf2m3 
localinfo map04 ctf2m5 
localinfo map05 ctf2m7 
localinfo map06 ctf2m8 

Ping ban

You can set the server to "hpb only" by setting serverinfo pingban <value> where "value" is the lowest ping allowed. Note that if you're using qw2.21 or higher you don't need any external program since QW finally has a way to check pings. Otherwise you need an external program to poll the pings. I've included the program "pingstat" which is a quick hack of Qstat v1.6 by Steve Jankowski. There's more info in the pingstat readme.

Message of the day (MOTD)

Changing message of the day is the only server setting you have to recompile to change. Due to QuakeC's limitations it's just not possible to put it in your server.cfg. (At least if you want more than one line.) NOTE! You can't compile Pure CTF with regular QCC, since it's just to big. Proqcc or fastqcc works ok.

To change the MOTD, edit motd.qc and change these lines:

Recompiling

 

CTF Rank

Pure CTF supports the server ranking system "CTF rank". For more info, check out ctfrank's homepage.

CTF Showdown (v1.30)

Showdown mode is intended to run on a public match server where players can set up small fights by themselves without needing rcon. All the showdown commands works in all modes, but may be locked. They are available to a player if 1) He is admin 2) The servermode is Showdown and none else is admin. This means that you can set up a Showdown server so that everyone can change modes normally, but an admin can take "control" for a clanfight or suchlike.

All showdown commands can be found in the player commands reference.

Optimizations

Fixed Bugs

Name Bug Description
Capture Server hang Bug This bug makes the server hang in certain circumstances when someone captures the flag. To recreate the bug on a standard server, do the following: On DM4, select red team. Get the blue flag and return to your base. Don't capture but go so close to your flag as you can. Kill yourself, by jumping in lava or suicide, not the "kill" command. After respawn, go back to pick up the flag and capture right after.
Multihook bug If you grapple and then do "impulse 22" when the grapple is out, another hook is released while the last hook is in the air. This makes it possible to grapple someone and then almost  instantly shoot several hooks into them, which can take out a player with 200a + 250h in seconds. Zoid tried to fix this bug in v4.21, but it's still possible to shot multiple hooks even if it's slower, and worse, your hook could freeze in the air, leaving you without hook until you die. 
This bug can be disabled with: localinfo hook 2 (Check server settings for more options.)
The floating flag bug Makes the flag "float around" after it been dropped on a platform. 
This bug can be disabled by: localinfo floatflagbug 1
Teleporter servercrash This fixes the servercrashes when the server encounters a faulty teleporter. The teleporters that bugs are the big round ones that are used as gateways to the secret levels in single player. If you trigger the teleporter by grappling up in it or standing on top of it, it may crash or teleport you to a faulty location. Two of these that crashes the server are the ones in the red bases on E4M5 and E4M8. 
  • e1m4.ent: t40/*85
  • e1m7.ent: t15/*15
  • e2m6.ent: t88/*77
  • e3m4.ent: t174/*83
  • e3m6.ent: t169/*65
  • e4m5.ent: t178/*95
  • e4m8.ent t273/*75
Maps with Errors Some maps have some faults, most often illegal start positions. 
The maps fixed are: 
  • e1m7: Added 4 new: "930 400 216" "930 225 216" "930 .100 216" "930 -250 216" 
  • e3m5: removed "563 -1397 448" and "563 -1455 448" (Wrong base and stuck.) 
  • e4m4: changed "832 -1496 24" to correct (blue) team. 
  • e4m5: Changed "1110 2370 120" to "1110 2300 120" (was stuck in wall)
  • ctf2: Changed the following respawns: (6)

To fix these, you have to "convert" the maps again with qbsp.

Carrier kill bonus When you kill a carrier and are awarded a 2 points bonus, only you see this message. This makes all client log parsers calculate the scores incorrectly. The new strings that are printed are: 
  • "<name> killed the flag carrier, no bonus"
  • "<name> killed the flag carrier, 2 bonus frags"

This bug can be disabled by: localinfo logbug 1

Discharge Bug This bug makes discharges affect all players in radius from the discharger, not just the ones in water. 
With the fix only players in water will take damage. 
This bug can be disabled by: localinfo discharge 2  (Check server settings for more options.)
Hook Jitter This fixes the hook "jittering" resulting from the prediction in QW not considering the hook.
Missile deathmessages This fixes the bug that shows the wrong deathmessage when you shoot some with GL or RL and swaps weapon before they die.

Todo and known bugs.

List of things I may (or may not) do/fix.

 

Bugs

Legend: DONE means that the bug/new feature is fixed. BETA means that it's probably fixed but needs some testing.

Known bugs that need workarounds.

Beta Bugs.

Misc. Bugs.

Old 3wave bugs

Dynamic Map bugs.

Thunderwalker mode

Arena Mode (beta)

Clan Arena Mode (beta)

Deathmatch (beta)

Ideas

These are the stuff I'll include as soon as I get the time. Bugfixes is usually more important though. Legend: DONE means that the feature is already implemented. BETA means that it's ready but needs some testing.

Admin and player Commands. (Simple fixes, just have to get the time.)

High Priority.

Medium Priority.

Low priority

History

 

v1.55 - 980622

v1.51 - 980525

v1.50b - 980517

v1.50 - 980515

v1.40 - 980409

v1.35 - 980404

v1.30b - 980401
Fixed two small bugs:

v1.30-980401
Major features:

Other features

v1.20 - 980322 - First Public Release

v1.11 - 980316

v1.10 - 980314

v1.03 - 980312

v1.02 - 980310

v1.01 - 980308

v1.00 - 980308