Quacke
Table of contents
Quake III: Arena Server Manager Tool – UNRELEASED
This game is nearly as old as I am and the third-party tools designed for it are antiquated, abandoned, or just really really ugly.
This desktop tool makes it easy for new or experienced players to deploy, manage, and sync multiple VPS servers for your Quake III: Arena needs.
Enter your SSH credentials, configure your server settings, and click deploy. The application handles everything - generating configs, uploading maps, and syncing changes across all servers.
The burden of uploading necesarry content is taken care of in the cloud (Except your very legally obtained copy of pak0.pk3!), and map updates are pushed automatically through a community-managed repository of current and essential multiplayer maps. As the community benefits from your decision to host servers, you can benefit from a community effort to keep the mappool updated and relevant.
Built in C#.
Please enjoy this AI generated documentation.
Prerequisites
Before you begin, make sure you have:
📋 Required Items:
- Windows PC running Quacke Server Manager
- VPS (Virtual Private Server) running x64 Linux (Ubuntu/Debian recommended)
- Root SSH access (hostname/IP, username, password)
- Recommended: 1GB+ RAM, 10GB+ storage
- Quake 3 Arena files:
pak0.pk3from your Quake 3 installation- Server executable:
cnq3-server-x64orioq3ded.x86_64- CPMA mod files:
z-cpma-pak1XX.pk3(CPMA without maps)- Optional:
map_cpm*.pk3(CPMA maps pack)
Set Up Your First VPS Profile
Launch Quacke Server Manager
Open the application on your Windows PC.
Create a New VPS Profile
-
Click “Add VPS” button
-
Fill in the connection details:
- Profile Name: A friendly name (e.g., “my-east-server”)
- Hostname/IP: Your VPS IP address or domain
- Username: Typically
root - Password: Your VPS root password
- Port: SSH port (default: 22)
-
Click “Test Connection” to verify SSH access
-
Click “Save” to create the profile
📝 Note: The profile is saved locally to
/profiles/[profile-name]/and contains ameta.jsonfile with your connection settings.
Upload Core Game Files
Upload pak0.pk3
Step-by-Step:
- Navigate to your VPS profile in Quacke
- Go to the “Base Files” section
- Click “Upload pak0.pk3”
- Select your
pak0.pk3file from your local Quake 3 installation - Quacke uploads it to
/root/cpma/baseq3/pak0.pk3on the VPS
What This Does:
The pak0.pk3 file contains the core Quake 3 Arena game assets including maps, textures, sounds, and models. This file is required and must come from a legitimate Quake 3 installation.
Upload CPMA Mod Files
- In the “Base Files” section
- Click “Upload CPMA Files”
- Select
z-cpma-pak1XX.pk3(the CPMA mod without maps) - Quacke uploads it to
/root/cpma/cpma/
Upload Map Pack (Optional)
If you have the CPMA maps pack:
- Click “Upload Map Pack”
- Select
map_cpm*.pk3 - Uploaded to
/root/cpma/baseq3/
Upload Server Executable
- Click “Upload Server Executable”
- Select your dedicated server binary:
- CNQ3:
cnq3-server-x64 - ioquake3:
ioq3ded.x86_64
- CNQ3:
- Quacke uploads it to
/root/cpma/and makes it executable
⚠️ Warning: Make sure you download the dedicated server version of the executable, not the client version. CNQ3 is recommended for modern CPMA servers.
Create Your First Server Instance
Add a New Server Instance
- Click “Add Server Instance” or “New Instance”
- Enter a name (e.g., “server_1”, “CTF-Main”)
- Click “Create”
📝 Note: This creates a local configuration file:
/profiles/[profile-name]/[instance-name].json
Configure Basic Settings
Fill in the following essential settings:
| Setting | Description | Example |
|---|---|---|
| Server Hostname | Name players see in browser | “My CPMA Server” |
| Max Players | Maximum player count | 16 |
| Server Port | Network port | 27960 |
| RCON Password | Admin password | (secure password) |
| Referee Password | Referee privileges | (optional) |
💡 Tip: For multiple server instances, increment the port number (27961, 27962, etc.)
Configure Map Rotation
- Go to the “Map Pool” section
- Add maps one by one or import a list:
- Click “Add Map”
- Enter map name (e.g.,
cpm3a,cpm15) - Repeat for each map in rotation
The map rotation determines which maps cycle during gameplay.
Configure Game Mode Settings
Basic Settings:
- Game Type: FFA, Team Deathmatch, CTF, CA (Clan Arena)
- Frag Limit: Score needed to win (e.g., 50)
- Time Limit: Match duration in minutes (e.g., 20)
- Friendly Fire: On/Off
Popular Configurations:
Duel (1v1):
- Game Type: Tournament
- Frag Limit: 15-25
- Time Limit: 10 minutes
FFA:
- Game Type: Free For All
- Frag Limit: 50
- Time Limit: 20 minutes
CTF:
- Game Type: Capture The Flag
- Capture Limit: 8
- Time Limit: 20 minutes
Advanced Settings (Optional)
Click “Advanced Settings” to customize additional server.cfg parameters:
Advanced Configuration Options
- Vote settings
- Weapon respawn times
- Powerup settings
- Server rates and network tuning
- Anti-cheat options
- Logging preferences
Configure Player Classes (Optional)
CPMA supports customizable player classes (Fighter, Scout, Sniper, Tank).
Edit Class Files
- Navigate to “Classes” section
- Select a class file (e.g.,
fighter.cfg) - Edit health, armor, speed, and weapon loadouts
- Save changes
📝 Note: These files are uploaded to
/root/cpma/cpma/during deployment.
Deploy to Your VPS
Save Your Profile
- Click “Save Profile” to write all configuration changes to disk
- Verify settings in the GUI before deploying
Deploy
Deployment Process:
Click Deploy → Generate Configs → Generate Scripts → Upload Files → Set Permissions → Complete
-
Click “Deploy” button
-
Quacke performs the following:
- Generates
quacke_[instance-name].cfgbased on your settings - Generates shell scripts:
start_server_[instance-name].shstop_server_[instance-name].shrestart_server_[instance-name].sh
- Uploads all generated files to
/root/cpma/ - Uploads class configs to
/root/cpma/cpma/ - Uploads maps (if new or changed)
- Generates
-
Deployment is complete when you see success confirmation
Start Your Server
Launch the Server Instance
Option A: From Quacke GUI
- Select your instance from the dropdown
- Click “Start Server”
- Quacke executes
/root/cpma/start_server_[name].shvia SSH
Option B: Manually via SSH
cd /root/cpma
./start_server_server_1.sh
Verify Server Is Running
Check running servers:
cd /root/cpma
./list_running_servers.sh
✅ Success: You should see output showing:
- Process ID (PID)
- Server command
- Uptime
- CPU/memory usage
Attach to Screen Session
To view live server console output:
screen -r q1
💡 Tip:
- q1 is the default screen session name for the first server
- q2, q3, etc. for additional instances
- Press
Ctrl+AthenDto detach without stopping the server
Test Your Server
Connect from Quake 3 Client
- Launch Quake 3 Arena with CPMA mod
- Open console (press
~) - Type:
/connect [your-vps-ip]:27960 - Press Enter
✅ Success: You should connect to your server and see the first map loading.
Test RCON Access
From in-game console:
/rconpassword [your-rcon-password]
/rcon status
You should see a list of connected players and server info.
Test Map Rotation
Play through a map or force map change:
/rcon map cpm15
The server should switch to the next map in your rotation.
Managing Your Server
Stop the Server
From Quacke GUI: Click “Stop Server”
Manually via SSH:
cd /root/cpma
./stop_server_server_1.sh
Restart the Server
From Quacke GUI: Click “Restart Server”
Manually via SSH:
cd /root/cpma
./restart_server_server_1.sh
Update Configuration
When you need to change settings:
Edit in GUI → Save Profile → Deploy → Restart Server → Changes Applied
Add More Server Instances (Optional)
To host multiple game modes or maps simultaneously:
Create Additional Instances
- Click “Add Server Instance”
- Name it (e.g., “server_2”, “Instagib”)
- Configure with different settings:
- Different port (e.g., 27961, 27962)
- Different game mode
- Different map pool
Deploy All Instances
- Save all instance configurations
- Click “Deploy” (uploads configs for all instances)
- Start each instance individually
📝 Note: Each instance runs in its own screen session (q1, q2, q3, etc.) and can be managed independently.
Troubleshooting
Server Won't Start
Check screen sessions:
screen -ls
View server logs:
screen -r q1
Look for error messages about missing files or configuration issues.
Can't Connect to Server
- Verify server is running:
./list_running_servers.sh - Check firewall allows UDP traffic on your server port (27960)
- Ensure VPS has proper network configuration
- Test with:
/connect [ip]:[port]from Quake 3 console
Maps Won't Load
- Ensure
pak0.pk3is uploaded to/root/cpma/baseq3/ - Verify map pack
map_cpm*.pk3is uploaded - Check map names in rotation match available maps exactly
Permission Denied Errors
Make server executable:
chmod +x /root/cpma/cnq3-server-x64
chmod +x /root/cpma/*.sh
Next Steps
✅ Congratulations! Your CPMA server is now running.
Now you can:
- Customize further: Explore advanced settings and weapon configs
- Monitor performance: Use
list_running_servers.shregularly- Add admins: Share RCON password with trusted admins
- Promote your server: Share IP with the CPMA community
- Set up multiple instances: Host different game modes simultaneously
Reference: Final Directory Structure
VPS Directory Structure
After complete setup, your VPS should look like:
/root/cpma/
├── baseq3/
│ ├── pak0.pk3 # id's Quake 3 assets
│ └── map_cpm*.pk3 # CPMA maps
├── cpma/
│ ├── z-cpma-pak1XX.pk3 # CPMA mod files
│ ├── quacke_server_1.cfg # Generated config
│ ├── fighter.cfg # Class configs
│ ├── scout.cfg
│ ├── sniper.cfg
│ └── tank.cfg
├── cnq3-server-x64 # Server executable
├── start_server_server_1.sh # Start script
├── stop_server_server_1.sh # Stop script
├── restart_server_server_1.sh # Restart script
└── list_running_servers.sh # Status script
Local Quacke Profile Structure
Your local Quacke profile folder:
/profiles/my-east-server/
├── meta.json # VPS connection settings
├── server_1.json # Instance config
└── server_2.json # Additional instances
💡 Need Help? Check the Troubleshooting Guide or join the CPMA community Discord for support.