Quake 1 Competition Server

CRMod7

The definitive Quake multiplayer competition mod. Eight game modes, deep match management, live stat tracking, and modern integrations — open source and built on a legacy that started in 1999.

8 Game Modes
25+ Years of Legacy
Frags
Scroll

Get the Stack

Grab the mod, the recommended engine, and the common map-pack downloads used by public CRMod7 servers.

Eight Ways to Frag

From classic deathmatch to modern arena variants, every competitive format you need.

Rocket Arena

1v1

Queue-based 1v1 elimination. Players wait in line, winner stays on. Pure aim, pure skill.

Clan Arena

Team Arena

Round-based team elimination. No self-damage, no pickups — just teamwork and aim. Up to 9-round matches with MVP tracking.

Wipeout

Team Arena

A modified Clan Arena format with progressive respawn delays that ramp from 5 to 80 seconds. Wipe the enemy team completely to win. Strategic, punishing, intense.

DMM4

1v1

Arena deathmatch with timed scoring. The classic 1v1 format for structured competitive duels.

Airshot Arena

Skill

Dedicated airshot scoring. Height-based damage multipliers reward vertical plays. Gib streak tracking and records for the ultimate aim challenge.

Built for Competition

The match layer, the spectator layer, and the stat layer are all treated as first-class product features. This is where CRMod7 stops feeling like a simple mod and starts feeling like infrastructure.

Voting System

Majority-based voting for maps, modes, settings, powerups, fraglimits, and more. Players control the server democratically.

Match Management

Full match lifecycle: countdown, pause/unpause, overtime, sudden death, ghost save/restore, and auto-abort on inactivity.

Ghost Recovery

Disconnect protection with ghost codes and restore flow, so players can rejoin an active match without losing their game state or collapsing the roster.

Admin Controls

Live admin authentication, lockdowns, kick/ban controls, spawn and camera editing, and in-game server operations for running organized matches cleanly.

Observer Mode

Walk or fly spectating with player targeting, camera positions, QuakeTV commentary support, and AFK detection.

Deep Statistics

Per-weapon damage tracking, quad stats, teamkills, suicides, gib tracking, top-5 records — weapon-level detail for every match.

Player Identification

Real-time teammate info at 2048 units: current weapon, armor type/value, rune, ammo, and available weapons at a glance.

Grappling Hook

Classic Zoid-style grappling hook, voteable per-mode. Pull mechanics with teleport safety and dynamic unhooking.

Rune System

Four runes — Resistance, Strength, Haste, Regeneration — with spawn control, tossing, and persistent settings.

Powerup Control

Vote on Quad, Pent, Ring, and Suit per-match. Drop tracking, ownership logging, and consecutive pickup commentary.

Alternative Entities

Vote to swap between standard and alternative entity sets per map. Custom spawn points, item layouts, and weapon placements — separate sets for CTF and DM modes. Automatically resets on mode switch.

Client Compatibility

Maximum feature support with QSS-M. Legacy compatible with Qrack and ProQuake — any NetQuake client can connect and play.

After the rules are loaded, CRMod7 keeps the entire event moving: countdowns, spectators, reconnects, overtime, music, records, and post-game flow.

Match Lifecycle

  • Pre-match warmup with leave-me-alone protection
  • Countdown timers with audio cues
  • Pause / unpause with team confirmation
  • Overtime & sudden death resolution
  • Ghost save/restore for disconnects
  • Auto-abort when no team movement detected

Play Modes

  • Normal — Public and pickup games
  • Practice — Configurable training rules
  • Match — Full tournament play with spectators, team management, and stat logging

CTF Capture Times

  • Per-team trial and match records
  • Google Sheets integration for persistent leaderboards
  • Local disk fallback for reliability
  • Historical record lookup
  • Ping tracked per record

Arena Modes

  • Round-based progression (CA up to 9 rounds)
  • Queue system for Rocket Arena
  • MVP tracking per match
  • Auto team balancing
  • Round start countdowns with audio

Every Frag Accounted For

End-of-match stats dump straight from the console. Weapon efficiency, damage, items, CTF stats, quad tracking, and player efficiency ratings.

match statistics — ctf3m2 — 3v3 ctf match
match statistics

map: ctf3m2
09-07-2025 20:14
CRMod 7 - denver.quakeone.com

efficiency

   team  |kill |weapn|     name
---------+-----+-----+------------------
   red   | 34  |  26 | omicron
   red   | 19  |  25 | baker
   red   | 17  |  23 | deepfriednewbie
         |     |     |
   blue  |  4  |  14 | ..
   blue  | 24  |  28 | frenzy
   blue  | 35  |  29 | woods
weapon efficiency

bul|nls|rox| lg|total|fpm |     name
---+---+---+---+-----+----+------------------
 29| 16| 36| 23|  26 | 1.7| omicron
 19|  0| 34| 18|  25 | 0.9| baker
 21| 21| 27| 20|  23 | 0.8| deepfriednewbie
   |   |   |   |     |    |
  0|  0| 26| 11|  14 | 0.2| ..
 29| 20| 33| 20|  28 | 1.2| frenzy
 25| 11| 38| 22|  29 | 1.7| woods
kill statistics

frags|opp|avng|slf|tm |kld| dc|  dtk  |  dgv  |  ewp  |     name
-----+---+----+---+---+---+---+-------+-------+-------+------------------
  106| 34|   0|  0|  0| 20|  0| 7868  |10873  | 7817  | omicron
  105| 19|   0|  4|  0| 19|  0| 6813  | 5424  | 3098  | baker
   87| 17|   0|  1|  0| 24|  0|  5430 | 6047  | 4103  | deepfriednewbie
     |   |    |   |   |   |   |       |       |       |
  114|  4|   0|  3|  0| 31|  0|  6555 | 1585  | 1135  | ..
  169| 24|   0|  4|  0| 26|  0| 8371  | 9085  | 7029  | frenzy
  221| 35|   0|  4|  0| 13|  0| 7418  | 9441  | 6177  | woods
quad damage

quads| time|eff|opp|slf|tm |     name
-----+-----+---+---+---+---+------------------
    7|  210| 16| 12|  0|  0| omicron
    2|   30| 29|  2|  0|  0| baker
    1|   30|  8|  1|  0|  0| deepfriednewbie
     |     |   |   |   |   |  red  10 quads
     |     |   |   |   |   |
    1|    0|  0|  1|  1|  0| ..
    3|   60| 26|  5|  0|  0| frenzy
    6|   90| 17| 11|  1|  0| woods
     |     |   |   |   |   |  blue  10 quads
capture the flag

flag |  time  |cap|  best  |def|rtn|fcd|fca|fck|     name
-----+--------+---+--------+---+---+---+---+---+------------------
    8|  8:31  |  0|  ---   |  1|  6|  4|  2|  3| omicron
   10|  3:42  |  4|  0:10  |  0|  7|  2|  3|  7| baker
    7|  2:50  |  1|  0:13  |  0|  2|  3|  2|  3| deepfriednewbie
     |        |   |        |   |   |   |   |   |
    4|  1:03  |  0|  ---   |  0|  1|  0|  0|  1| ..
   10|  4:33  |  3|  0:15  |  1|  4|  1|  4|  6| frenzy
   15| 10:23  |  8|  0:09  |  0| 11|  0|  6| 11| woods

ctf3m2 match capture-time record: 0:09 by woods
ctf3m2 trial capture-time record: 0:08 by unspoken
items taken

hlth|mega|suit| GA| YA| RA|bkpk|     name
----+----+----+---+---+---+----+------------------
  88|   3|   0|  4| 12| 20|  41| omicron
  59|   0|   0|  5| 16| 14|  26| baker
  55|   4|   0|  5| 17|  6|  22| deepfriednewbie
    |    |    |   |   |   |    |
  20|   1|   0|  3| 15|  1|   5| ..
  58|  12|   0|  2|  8| 14|  27| frenzy
  60|  14|   0|  3| 20| 25|  26| woods

weapons taken             ammo taken

ssg| ng|sng| gl| rl| lg|shl|nls|rox|cls|     name
---+---+---+---+---+---+---+---+---+---+------------------
 15|  7|  3| 13|  5| 10| 78| 19| 33| 39| omicron
  6| 10|  2|  8| 10| 18| 28|  9| 24| 41| baker
  8| 11|  5|  8| 15|  9| 35| 12| 48| 15| deepfriednewbie
   |   |   |   |   |   |   |   |   |   |
  1| 10|  5| 10| 11|  6| 16| 10| 27| 13| ..
  5|  9|  9|  3| 15|  8| 10| 20| 68| 12| frenzy
 12| 14|  2| 16|  8| 14| 44| 10| 28| 28| woods
player efficiency rating (PER)

  PER   |     name
--------+------------------
  7.8   | omicron
  7.1   | woods
   3.3   | frenzy
   2.8   | baker
   1.5   | deepfriednewbie
  -1.1   | ..

  woods: 8 captures, 38% rockets, 25 RA

team scores

   Red team    won: 5   lost: 11
   Blue team   won: 11  lost: 5

Join a Server

Once you know the mode stack and the match tooling, the next step is simple: pick a server, grab a record page, and get into the rotation.

la.quakeone.com

Los Angeles Checking status

denver.quakeone.com

Denver Checking status

dallas.quakeone.com

Dallas Checking status

ohio.quakeone.com:26003

Ohio Checking status

Classic Game, Modern Stack

CRMod7 keeps the gameplay old-school and lets the surrounding tooling be modern: webhooks, JSON, Sheets, CSQC HUDs, and wide client compatibility.

Google Sheets

Async HTTP-based capture time records pushed directly to Google Sheets. Persistent leaderboards, queryable history, zero external tooling required.

JSON Export

Streaming JSON builder with pretty-printing. Match data, last scores, and stats exported to machine-readable format for external tools and dashboards.

Discord Webhooks

HTTP POST callbacks for match statistics. Post-game results pushed to Discord channels automatically — scores, stats, and records.

CSQC HUD & Scoreboard

Client-side QuakeC for custom HUD rendering (vanilla, QW, N64 styles), dynamic scoreboards with team colors, and match timer display. Requires QSS-M for full CSQC support.

Client Compatibility

CRMod7 is built for maximum feature support with QSS-M — the recommended NetQuake client, with CSQC, HTTP downloads, and modern protocol extensions. Legacy clients are fully supported too: Qrack, ProQuake, and any standard NetQuake client can connect and play with full gameplay functionality. Advanced features like custom HUDs and scoreboards gracefully degrade for older clients.

Command Reference

This is essential once you're playing, but it's still reference material. Keeping it collapsed makes the top-level page easier to scan while leaving the full in-game command surface one click away.

Command Reference Aliases, argument rules, built-in help pages, observer tools, and admin controls
cmd dm [mode] [map] Switch to Deathmatch
cmd ffa [map] Shortcut for public free-for-all Deathmatch
cmd ctf [mode] [map] Switch to Capture the Flag
cmd ca [map] Switch to Clan Arena
cmd ra [map] Switch to Rocket Arena
cmd dmm4 [map] Switch to Duel (1v1 DMM4)
cmd airshot [map] Switch to Airshot Arena
cmd wipeout [map] Switch to Wipeout
cmd ctfdmm4 [map] Switch to CTF Duel
cmd hh [ffa|normal|team] [map] Switch to Head Hunters in free-for-all or team mode
cmd normal [map] Change to normal (public/pickup) play mode
cmd practice [map] Change to practice play mode
cmd match [map] Change to competitive match play mode
warp Open the map selection menu
<mapname> Warp directly to any map in the map list (e.g. dm6, ctf1)
yes Vote yes on the current vote
no Vote no on the current vote
sethook Vote to toggle grappling hook
setrunes Vote to toggle runes
setquad Vote to toggle Quad Damage
setpent Vote to toggle Pentagram of Protection
setring Vote to toggle Ring of Invisibility
nogibs Vote for no gibs
lowgibs Vote for low gib level
highgibs Vote for high gib level
weaponstay Vote to toggle weapon stay
powerupdrop Vote to enable/disable powerup dropping alias: pudrop
cmd timeset [min] Vote to set the timelimit (opens menu if no value given)
cmd fraglimit [val] Show rules, or vote to set the fraglimit
otset Vote for overtime settings
altents Vote to toggle alternative entity set
prediction Vote to toggle movement prediction
faststart Vote to toggle fast match starts
autopause Vote to toggle auto-pause on disconnect
obits Vote to toggle extended obituaries
abortmatch Vote to abort the current match
nextmap Vote to advance to the next level in levels.cfg (non-match public modes only)
stats Show full match stats dump
efficiency Show weapon efficiency summary alias: eff
killstats Show kills, deaths, and damage breakdown
quadstats Show Quad Damage pickup and kill stats
pentstats Show Pentagram stats
badstats Show self-kills, teamkills, lava/fall deaths
flagstats Show CTF flag captures, returns, defenses
teamstats Show team win/loss totals
wtstats Show weapons-taken statistics
itstats Show items-taken statistics
dstats Show defense statistics
ticrate Show the current server tickrate / sys_ticrate value
autostats Toggle automatic stats dump at end of match
cmd captimes [map] Show capture time records (defaults to current map)
cmd highscores [map] Show high scores / arena records
lastscores Show scores from the previous match
last Show last player disconnects
score Show current match score
rules Show current server rules aliases: teamplay, deathmatch, timelimit, fraglimit, noexit
levels Show map rotation list
commands Show available commands in-game
vinfo Show server version / mod information
cmd flagstatus [on|off|toggle] Report or toggle the CTF flag-status HUD display
motd Show the message of the day
ready Mark yourself as ready for match start
notready Unmark yourself as ready
ready? Check who is and isn't ready
timerstop Pause the match timer
timerstart Resume the match timer
force In arena modes, vote or admin-force the waiting match to start
lock Lock your team (prevent joins)
unlock Unlock your team
ghost Reconnect using your ghost code
ghostcode Display your current ghost code
ghostlist Show ghost reconnect codes currently visible to you
red Join red team and ready up
blue Join blue team and ready up
leavemealone Toggle intangibility during pre-match warmup
qwsucks Toggle QuakeTag (QWSucks) mode alias: quaketag
q14ever Toggle QuakeTag (Q14Ever) overlay variant
afkon Mark yourself as AFK alias: afk
afkoff Remove AFK status
hook Fire the grappling hook also: +hook / -hook
dropweapon Drop your current weapon (CTF only)
dropammo Drop ammo for your current weapon (CTF only)
droprune Drop your held rune
rpickup Vote/admin reshuffle committed teams before a team-mode match starts
autoweapon Toggle automatic weapon switching alias: aw
pos_save Save your current position (prewar only)
pos_move Teleport to your saved position (prewar only)
pos_show Display saved position coordinates
cmd pos_origin x y z Set position origin (* to keep current axis)
cmd pos_angles p y r Set position angles (* to keep current)
shownick Show target player's nickname (teamplay)
cmd ignore Add a player to your ignore list
cmd unignore Remove a player from your ignore list
observer Enter observer (spectator) mode
walk Walk-mode spectating
flyme Fly-mode spectating
chase Chase-cam spectating alias: chasecam
cmd eyecam [n] First-person eye-camera spectating
camera Cycle through fixed camera positions
autocam Automatic camera mode aliases: autocamera, quaketv
autochase Auto-chase mode (follows action)
autopov Automatic point-of-view mode
rockets List which players currently hold rocket launchers during a live team match
commentary Toggle commentary mode for broadcasters
headsup Toggle heads-up display for observers
tourney Tournament spectator mode
cmd admin [code] Authenticate as admin with 4-7 digit passcode
cmd lockdown [sub] IP-based lockdown: status, list, add, remove, on, off
kick! Kick a player aliases: skick, crkick
crban Ban a player
unban Unban a player
bans Show current ban list
ips Show connected player IPs
dmset Set deathmatch mode
maxteams Set max teams
safepractice Toggle safe practice mode
modevote Toggle mode voting
options Open server options menu
autoss Force screenshot capture for anti-cheat checks
nextspawn Cycle to next spawn point
makespawn Create spawn point at current position
nextcam Cycle to next camera position
makecam Create camera at current position

Built-in help pages are also shipped as commands: help-server, help-observer, help-match, help-stats, help-misc, help-camera, help-chase, help-fly, help-walk; admins additionally get help-admin. The in-game category views modes, gameplay, watch, stat, misc, modhelp, and shortcuts are aliases too.

Compatibility quirks in the current codebase: pudrop maps to powerupdrop, quaketag maps to qwsucks, lastplayers is still stuffed to clients but currently resolves to the same disconnect-log output as last, and itemstats exists as an alias name but does not have its own dedicated handler yet.

Operator Reference

Configs, admin controls, launch files, and runtime data all live here. It's operator-facing material, so it's collapsed by default instead of sitting in the middle of the showcase flow.

Open Server Setup Admin controls, runtime configs, launch samples, and generated data formats

These are the high-level operational features that sit above the raw config files.

Lockdown Mode

IP-based connection whitelisting with duration timers. Lock the server for scrims, auto-release on match start.

Admin Authentication

Multi-password admin system with tiered access. Kick, ban, configure — all from within the game.

Spawn & Camera Editing

Create and edit spawn points and camera positions in-game. Entity file export for map customization.

Custom Models & Sounds

Per-entity custom models for heads, bodies, projectiles, and gibs. Mapper-settable sound effects for full map customization.

IP Management

Ban management, IP label tracking, IPv4/IPv6 normalization. Keep your server clean.

AFK & Inactivity

Configurable AFK timeouts, auto-screenshots, movement validation, and spectator management.

Runtime server configs live in configs/, packaged launch examples live in release/, generated state lands in data/, and the cleanest public deployment path is still a Linux VPS or dedicated host.

Hosting & Deployment

Recommended

Best run on a dedicated Linux server for consistent uptime. CRMod7 can run on QSS-M Server for macOS, Windows, or Linux, and on FTEQW Server for Windows or Linux, but a Linux VPS is usually the cleanest public-hosting path.

Recommended Host Layout

For public servers, use a VPS or dedicated box with a static IP, persistent storage, and a background process manager. QSS-M is the easiest deployment target because it listens on a single UDP game port, which keeps NAT and firewall setup simple.

  • Best fit: dedicated Linux server or Linux VPS for 24/7 uptime
  • Supported engines: QSS-M Server on macOS, Windows, Linux; FTEQW Server on Windows, Linux
  • Suggested approach: provision a VPS, open one UDP game port, upload the engine plus id1/ content, then run it under screen or systemd
  • Working reference: QSS-M-Server is an exact copy of a working server configuration directory
Linux VPS Bootstrap

A practical bootstrap flow is: provision a current Ubuntu LTS VPS, update the base system, install transfer and runtime packages, upload QSS-M, then run the server inside screen. Older notes that started on Ubuntu 16.04 and upgraded through later releases should be treated as legacy; start from a current supported LTS image instead.

sudo apt update
sudo apt upgrade -y
sudo apt install -y vsftpd git curl screen build-essential \
  libsdl2-2.0-0 libgl1-mesa-glx libopusfile0 libvorbisfile3 libmad0
sudo timedatectl set-timezone America/Los_Angeles
date

# Upload the server package to /home/quake/qssm, then:
chmod 755 QSS-M-l64
screen -S qssm26001
./QSS-M-l64 -dedicated -port 26001 -protocol 666 -condebug
# detach: Ctrl+A, then D
screen -r qssm26001
CRMod Upload Flow

After the base server is live, upload the mod payload into id1/: progs.dat, server.cfg, configs/, maps/, sound/, locs/, and any other custom assets you want available for client auto-downloads. In practice, configs/ usually carries both the core files and map-specific overrides, maps/ can include BSPs, per-map .ent files, and alternative-entity folders, and sound/ often carries mode-specific or custom subfolders like match music, weapon audio, player sounds, ambience, and arena assets. Some deployments also keep map packs and content bundles as root-level .pak archives next to the unpacked folders. The mod uses fteextensions.qc, so older ProQuake builds are not a good server target.

/home/quake/qssm/
  QSS-M-l64
  id1/
    pak0.pak
    pak1.pak
    ctf3maps.pak
    ctf4maps.pak
    ctfgoldmaps.pak
    ctflocmaps.pak
    raexpo.pak
    ramaps.pak
    progs.dat
    server.cfg
    progs/
    configs/
      clanring.cfg
      warp.cfg
      warp_main_menu.cfg
      levels.cfg
      dm3.cfg
      ultrav.cfg
    maps/
      dm6.bsp
      dm6.ent
      ctf1war.ent
      dm_alt/
      ctf_alt/
      ctf/
    sound/
      matchsounds/
        int001.wav
      weapons/
      player/
      misc/
      plasma/
      ra/
      doors/
      fire/
      ambience/
    locs/
    data/
Network Notes

QSS-M is the recommended public-hosting target because it only needs the single UDP game port forwarded, and it should generally be run in protocol 666 for Qrack compatibility. CRMod7 also depends on fteextensions.qc, which is not supported by older ProQuake versions. Older ProQuake-style server setups can require additional ephemeral UDP ports, which makes them less friendly behind NAT or restrictive firewalls.

clanring.cfg

Primary Config

The main server configuration file. Controls global settings, admin passwords, mode-specific rules, and external integrations.

Global Commands

Executed every time the server starts a new level. Set admin passwords, powerup defaults, tick rates, and webhook URLs here.

setadmin 1234567          // Main admin passcode (4-7 digits, first non-zero)
setadmin1 9876543         // Additional admin passcode (up to 9)
noexit 1                  // Prevent level exit in normal/practice
pausable 0                // Disable console pause (match pause still works)
quadon                    // Quad Damage on by default
ringoff                   // Ring of Invisibility off by default
pentoff                   // Pentagram off by default
runesoff                  // Runes off by default
autopauseon               // Auto-pause match on player disconnect
matchsoundson             // Enable end-of-match music
sv_pak0_only 0            // Restrict assets to pak0/shareware-safe content
ctfticrate 0.025          // Server update rate for CTF
tdmticrate 0.025          // Server update rate for TDM
captimesdiscordurl <url>  // Discord webhook for cap time records
statsdiscordurl <url>     // Discord webhook for match stats
matchposturl <url>        // HTTP POST endpoint for match data
googlesheetsurl <url>     // Google Sheets script URL for captimes
googlesheetsapikey <key>  // Google Sheets API key
cr_allow_leavemealone 1   // Allow leave-me-alone in prewar
cr_allow_qwsucks "1"      // Allow QuakeTag QWSucks mode
cr_allow_q14ever "1"      // Allow QuakeTag Q14Ever mode
Init Section

Executed only once when the server first starts. Use for one-time setup.

-init-
modevoteon                // Enable mode voting
setafk 5                  // Mark inactive players AFK after 5 minutes
kickafk 0                 // AFK kick timeout (0 = disabled)
Mode Sections

Each mode section executes its commands when the server enters that mode on a new level.

-ffa-                     // Free For All settings
timelimit 10
fraglimit 40
deathmatch 3              // 3 = weapon stay on
powerupdropon

-pub-ctf-                 // Public CTF settings
timelimit 10
fraglimit 100
runeson
deathmatch 1              // 1 = weapon stay off

-practice-                // Practice mode
safepracticeon
timelimit 0               // 0 = no limit
fraglimit 0

-match-tdm-               // Team Deathmatch match settings
teamplay 2                // 2 = team damage on
timelimit 20
setovertime 5
deathmatch 3

-match-ctf-               // CTF match settings
timelimit 20
setovertime 5
pentoff
deathmatch 1

-done-                    // Finalize and apply collected cvar changes
Parser & Extra Commands

The parser accepts regular Quake cvars, custom CRMod commands, and generic set/seta lines. These are also valid in map-specific overrides.

// Generic cvar passthrough
set hostname "CRMod 7 - local"
// FTE/QSS engine cvar passthrough
seta sv_demoAutoRecord 1
setadmin2 2468101                // Extra admin codes up to setadmin9
ringauto                         // Return ring handling to automatic mode logic
allvoteoff                       // Disable all player voting globally
powerupdropoff                   // Disable Quad/Ring/Suit dropping
matchsoundsoff                   // Disable intermission music
safedischargeon                  // Legacy alias for safe discharge rules
tossruneoff                      // Prevent players from throwing runes
sv_pak0_only 1                   // Force pak0/shareware-safe assets
cr_allow_leavemealone 0          // Disable leave-me-alone entirely
cr_allow_qwsucks 0               // Disable QuakeTag QWSucks mode
cr_allow_q14ever 0               // Disable QuakeTag Q14Ever mode

<mapname>.cfg

Per-Map Overrides

Override mode settings for specific maps. The file name matches the map's BSP name. Only the mode sections you include are overridden.

// dm3.cfg - overrides for The Abandoned Base
-match-tdm-
deathmatch 1              // No weapon stay for dm3
penton                    // Enable Pent
ringon                    // Enable Ring
timelimit 20

// ultrav.cfg - minimal override
-match-tdm-
deathmatch 1              // No weapon stay for ultrav

warp.cfg

Map Menu

Defines the in-game warp/map selection menu. Maps are grouped into categories separated by ****. Max 30 maps per category, 50 categories total (1500 maps).

// Each map entry is 3 lines:
dm3                       // BSP filename (no extension)
The Abandoned Base        // Display title
John Romero               // Author (blank line if unknown)

****                      // Category separator

ctf1                      // Next category starts
McKinley Base
Dave "Zoid" Kirsch

warp_main_menu.cfg

Menu Labels

Names for each category tab in the warp menu. One line per category, matching the order in warp.cfg. Current code limit: 50 category labels.

e1m1-e4m8
id deathmatch arenas
threewave ctf         (ctf1-ctf2m8)
league of capture     (ctf3m1-ctf3m9)
ctf gold              (ctfgold1-ctfgold8)
ctf revival           (rctf1-rctf5)
ctf custom maps
dm custom maps 1
rocket arena maps 1
dmm4 arenas
holiday themed
training

levels.cfg

Map Rotation

Automatic map rotation for each game mode. Maps cycle sequentially and loop back to the start. The current implementation stores up to 199 rotation entries per mode section.

-ctf-                     // CTF rotation
e1m1
e1m3
e2m2
e4m3
-dm-                      // Deathmatch rotation
aerowalk
ztndm3
ultrav
dm6
dm2
-ca-                      // Clan Arena rotation
dm3
ztndm3
ultrav
-ra-                      // Rocket Arena rotation
23ar-a
2pyramid
2towers

matchsounds*.cfg

Audio

End-of-match music that plays during the map vote screen. Three variants based on game outcome.

// matchsounds.cfg - standard (max 20 tracks)
matchsounds/int001.wav
matchsounds/int002.wav

// matchsounds_blowout.cfg
// Plays if score diff > 200 (CTF) or > 40 (other)
matchsounds/blowout.wav

// matchsounds_rematch.cfg
// Plays if score diff < 50 (CTF) or < 10 (other)
matchsounds/rematch.wav

release/*.cfg

Launch Samples

The release/ folder carries deployable examples: a minimal root server.cfg wrapper and a mirrored configs/ tree that holds the actual engine-facing startup settings.

// release/server.cfg
exec "configs/engine.cfg"

// release/configs/engine.cfg
set cr_startmode 2
map dm3
hostname "localhost"
sv_public 1
net_messagetimeout 60
sv_gameplayfix_bouncedownslopes 1

data/

Runtime Data

Server-generated data files. These are written automatically — you don't edit them, but understanding the format is useful for external tools.

data/stats/*.crx — Capture Time Records

Per-map capture time leaderboards. Trial records use <map>_captimes.crx, match records use <map>_captimes_match.crx. Each file stores the current top 3 records with team-color metadata and optional v2 record metadata.

// ctf1_captimes.crx - trial records
unspoken                  // Player name
14                        // Team color (14=red, 5=blue, etc.)
10.19873046875            // Capture time in seconds
# meta v2 2026-01-09T07:12:53-0800  // Timestamp
data/json/*.json — Match Results

Full match stat exports in JSON. Includes per-player weapon efficiency, damage breakdown, item pickups, CTF stats, quad stats, and more. The same directory also carries snapshots like lastscores.json.

{"match": {
  "date": "2025-09-07 20:14:28",
  "hostname": "CRMod 7 - denver.quakeone.com",
  "map": "ctf3m2",
  "gamemode": "ctf match",
  "team size": 3,
  "timelimit": 20,
  "teams": [
    { "name": "Red team", "players": [
      { "name": "omicron", "score": 106, "kills": 34,
        "rockets_eff": 36, "lightning_eff": 23,
        "ctf": { "captures": 0, "returns": 6 }
      } ...
    ]}
  ]
}}
data/stats/airshot_*.crx — Airshot Records

Tracks airshot height records and gib streak records in the same .crx format. Used by the Airshot Arena mode.

data/disconnect_log.txt — Recent Disconnects

Append-only disconnect history used by the in-game last command and related moderation workflows.

From ClanRing to CRMod7

CRMod7 is not just a straight CRMod successor. It pulls from two ClanRing lineages: CRMod++ for match structure, admin flow, and competitive server tooling, and CRCTF for the ThreeWave-derived Capture the Flag branch that shaped its teamplay core. The result is a merged competitive stack carried forward with modern integrations, new modes, and open-source maintenance on GitHub.

1996 Quake released
Oct 1996 ThreeWave CTF establishes the baseline Capture the Flag lineage that later CRCTF servers build on
Nov 27, 1997 CRCTF 2.6 released with Expansion and All-Star map support plus a broad round of fixes
Jan 21, 1998 CRCTF 2.8D framed ClanRing CTF around both public skirmish play and clan match mode
Mar 17, 1999 CRMod 5.0 released after the Paul Baker-era CRMod 3.x/4.0 line was pushed forward by J.P. Grossman into the 4.1 and 5.x generation
Dec 10, 1999 CRMod++ 5.1 released by Mephistopheles with improved console logging and DeQuake support
Feb 11, 2000 CRMod++ 6.0 released with native ProQuake support and the first qccx-era feature wave
May 10, 2000 CRMod++ 6.1 shipped as a fast stability update to fix a server-crash bug and match pause issues
Apr 22, 2001 CRMod v6.2 posted with per-level config files and expanded match workflow updates
May 26, 2002 CRMod++ v6.3 available with vote-admin support and AFK detection
2002 r00k used the Elohim and CRMod 5.x-era codebase to build CRCTF forward in parallel, adding ThreeWave CTF while tracking the competitive ClanRing feature set
Apr 6, 2003 CRMod++ v6.4 released with QuakeTag improvements and bug-fix cleanup
Apr 2006 CRCTF 3.0 rewrite line was active in deployment, marking a major modernization pass for match CTF
2000s Community adoption across NetQuake leagues and long-running public server use
Apr 26, 2013 CRMod++ v6.5 released with ratings work that continued through the 2013 maintenance updates
May 10, 2013 CRCTF 3.5 beta represented continuing community maintenance on the CTF branch
Mar 12, 2017 Classic-era maintenance release with FFA ranking fixes and final cleanup
2017 J.P. Grossman published the CRMod source on GitHub, r00k started development on CRMod7, and the project could restart from the cleaner 5.1 line without the old ProQuake and qccx lock-in for engines like FTE and DarkPlaces
Feb 2022 bucksh0t added Arena modes to CRMod7, expanding the modern ruleset beyond the original ClanRing branches
Now CRMod7 — open source, 8 modes, modern integrations, active development