Pure CTF Manual

Pure CTF v1.51 by Methabol Pure CTF - CTF.SE

This CTF patch is for those of us who like me still love QW and who prefer to play the original CTF without "cute effects", gazillions of new runes, new weapons or other things that changes gameplay too much. What it do have is all the bugfixes Zoid never got around to and lots of useful features to simplify server configuration and setup of clan fights. Every new feature, and even some of the bugfixes that might affect gameplay, are totally optional. This is intended to be the Pure Thing. 

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 (v1.51) - An enhancement to the pause function in QW.
Anticheat features (v1.51) - Several anticheating measures.
Paintball Mode - The paintball and practice mode.
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
Player Settings and commands
Player Command reference - Commands for the player.
Player Settings - Player Setinfo Settings
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

Thanks to Overfiend, U_Discharge, Madman, Lakris, Harvester and others for useful suggestions.

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.
Showdown server 0 1 4 0 0 This will run as a public showdown, e.g. a 2o2 or suchlike. The players can run this themselves by typing showdown commands directly or vote for an admin.

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 practice Clan practice mode. Read more about it in the Paintball mode section.
  3 rljumpctf This is a weird game I just threw in for the fun of it. You play with only one team, and the purpose is to make a capture as fast as possible. The catch is that after you grab the flag you can't move or hook - just rocket jump your way home. :) 
(v1.30) 4 showdown CTF Showdown mode. This is a kind of "duel" mod, intended to run on public servers so that players can set up small matches without needing rcon or admin access. If you want an private match server use mode 1 instead.

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.:

Default values for all settings
 

  Setting Description Values
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
  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, making the server restart the map directly in the new mode.  0 = standard 1 = comp
2 = practice 3 = rljumpctf
4 =showdown
  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 Enables paintball mode. Bitmask:
1 = enable paintball
2 = auto teamswapping
  tr Enables Toss rune. 1 = enable
  dq Enables Drop quad. 1 = enable
  dr Enables Drooping 1 = enable
  pingban Enables Ping ban. ban with ping below "value"
  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. value = max rate
  tf Enable tossflag. 1 = enable flag tossing
  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 cheat  
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 Regeneration rate. Default is 5.  
(v1.50) regmax 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
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: Wrong deathmessage fix.
  • 2: Out of spawnspots 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.
8 NOT USED
16 Modelkick - kick players with illegal models. Pure should recognize the original model and the correct CTF models.

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 mode works very much like clan arena, but is adapted to CTF. You start in your base with weapons, ammo and runes. (Each team get two random runes.) Paintball is played in rounds and the goal for each round is to make one capture or eliminate the other team. You only have one life per round, and when you die you become an observer so you can watch the remaining players battling it out. To enable paintball mode you use the localinfo variable paintball. Practice mode enables paintball by default.

Bit Paintball
1 Enable paintball.
2 Enable automatic swapping after each round.

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 

 

Player Commands Reference

These are the new player commands and their corresponding impulses. Check the admin and showdown sections for more info on the corresponding commands.  

  Command Description
Helptexts
  commands Shows available commands
  adminhelp Show adminhelp
  showhelp Show showdown help.
  options Show options for changing dmm, teamplay, etc.
  ctfopt Show more showdown options like grapple, runes, etc.
  modehelp Show Modes help
(v1.35) faqhelp Show FAQ settings and commands.
Standard Commands
  scores Shows scores with number of caps and disconnects included
  models Shows which models all clients have.
  tossrune Tosses the rune you are holding.
  tossflag Tosses your flag. It will return to the enemy base in 5 seconds, so make sure someone is there to pick it up!
  settings Shows a compact table with all settings.
  autoshot Toggles auto scoreboard screenshots.
  autodemo Toggles auto FAQ demos.
  mapqueue Shows the current mapqueue
  admin Starts a vote to make you admin
  super Apply to be Superadmin. you need rcon for this.
  voteexit Starts a vote to exit the current map.
  impulse 50 Select best non-exploding weapon in the following order: 8, 5, 3, 4, 2. Never selects the Lightning Gun in water.
  impulse 51 Select best weapon in the following order: 7, 6, 8, 5, 3, 4, 2. Never selects the Lightning Gun in water.
(v1.50) cprint Disables centerprinting.
(v1.51) cam Changes the type of camera for spectating. (Fixed or chasecam.)
Competition Mode - these will only work in the competition modes
  ready Sets your status to ready for the match.
  break Sets your status to not ready for the match.
  status Shows all players status's.
Admin Commands - commands for admins.
  swap Swap a player to the other team.
  swapall Swaps all players smartly. (It remembers the previous game and sets colors according to it.)
  kick Kicks a player.
  ban Kicks a player and puts a short ban on him.
  start Force the match to start regardless if everyone typed ready.
(v1.40) kos Kick on sight. First it asks if you want to kick the player you aim at, and the kicks him if you use kos again.
  restart Restart the map, and start match countdown directly.
(v1.51) freeze Freeze all players (Like the built-in pause function in QW, except that you can use all admin commands which you can't do with "pause".)
  nospecs Kicks all spectators and lock them out.
  noadmin Removes your admin status.
Showdown Commands - commands for showdown mode (always available for admins)
  default This sets all server settings to default. The default settings are read the first time the server is started. (Which means they're taken from server.cfg)
  setinfo map <maps> this change map to <map>
  timeup/timedown Add/Sub 5 min to the timer.
  fragsup/fragsdown Adds/Sub 10 frags to the fraglimit
  dm Change deathmatch
  tp Change teamplay
  powerup Toggle powerups
  dropquad Toggle dropquad
  dropring Toggle dropring
  discharge Toggle discharges
  grapple Toggle the Grapple
  runes Toggle runes
  droprune Toggle tossrune
  maxspeed Change sv_maxspeed (320-400)
  anka Toggle Anka Maps
  spectalk Toggle Spectator talk allowed
  maxspecs Toggle Maxspectators
(v1.35) faqloc Toggles FAQ locations disable.
(v1.35) faqtimer Toggles FAQ powerup timer disable.
(v1.35) faqsound Toggles FAQ sound messages disable.
(v1.35) faqlag Toggles FAQ proxylag disable.

Player Settings(v1.51)

Add these settings to your config or type them in the console. New for v1.51 is that all settings is set with one setinfo variable, "pure", to prevent setinfo overflow. Add the values you want from the table and then add a line like this to your config:

setinfo pure 1            // This turns of the status bar

An easy way to do small changes is to go to a Pure server and use the related commands to set the settings you want. After each change Pure will tell you the new value of the pure variable for your config. 

NOTE: If you use some of the old variables, Pure will acknowledge them when you enter a server and tell you the correct new setting for "pure". After you have added it, remove the old ones. (Avoids trouble.)

Values Related command Description
0-15 impulse 70-81 Sets the position of your statusbar. 0 is off. 
16 autoshot Makes the player take an automatic screenshot of the scoreboard at level ends.
32 autodemo If you turn this on, and plays with the faqproxy, it will automatically start recording a demo when a match starts, with the name "<name>#". (where #=1,2,3.. )
64 autodemo Same as above, but records with QW's built-in demo recording.
128 cprint Disable centerprinting messages.
256 cam Disable Pure's advanced Spectator tracking.
512 cam Enable Chasecam for tracking instead of fixed cam.

 

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.

Known bugs

Todo

History

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