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. |
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 |
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. |
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
|
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.
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. |
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. |
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.
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.
|
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. |
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. |
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 / Practice mode has been removed with v1.55. Use the clanarena mode instead.
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.
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.
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 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. |
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 |
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.
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:
Pure CTF supports the server ranking system "CTF rank". For more info, check out ctfrank's homepage.
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.
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.
|
Maps with Errors | Some maps have some faults, most often illegal start
positions. The maps fixed are:
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:
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. |
List of things I may (or may not) do/fix.
Legend: DONE means that the bug/new feature is fixed. BETA means that it's probably fixed but needs some testing.
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.
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.03 - 980312
v1.02 - 980310
v1.01 - 980308
v1.00 - 980308