This item has been removed from the community because it violates Steam Community & Content Guidelines. It is only visible to you. If you believe your item has been removed by mistake, please contact Steam Support.
This item is incompatible with Quake Live. Please see the instructions page for reasons why this item might not work within Quake Live.
Current visibility: Hidden
This item will only be visible to you, admins, and anyone marked as a creator.
Current visibility: Friends-only
This item will only be visible in searches to you, your friends, and admins.
Quake Live Linux Dedicated Server Install/Config
Installation and configuration readme for the Quake Live Linux dedicated server.
The dedicated server is available in both 32-bit and 64-bit versions, and should run on any modern machine that can run the Steam client. We recommend Ubuntu Server 14.04.
To run the 32-bit version of the server on 64-bit installs, you will need to install 32-bit versions of all libraries. See your distribution's instructions on how to perform this.
To run the 32bit server on Ubuntu x64 install requirements via: sudo apt-get install lib32gcc1 lib32z1 lib32stdc++6
2. Updating and Launching
Install and update the server through SteamCMD (use sudo for useradd as the SteamCMD guide suggests), using the command below (change the path if you wish but not necessary, login details are correct).
Run the server using the provided run_server_x86.sh and run_server_x64.sh scripts. This will set the proper working directory and LD_LIBRARY_PATH to the correct libsteam_api.so. You can add command line options at will.
A standard server or VPS can host many instances of Quake Live, so you may wish to run multiple servers. We recommend managing them through a third party process control system. Below is a sample script that will take one parameter: a number starting at 0. This will launch a server with a unique hostname, port, rcon port, and stats port. This is a great way to quickly run a small cluster of servers on a single box.
You should change the path to reflect where you have installed the game. Never run the server under root.
This can be combined with a process control system like supervisord in order to manage and launch any number of instances. Note that supervisord is third party software, and the below may change at any point. We will not support issues involving third party software.
You will need to replace "user" with the user name of the dedicated server.
In conjunction with the above launch script, this will give you 10 server instances, numbered #1 to #10, starting at port 27960, with rcon starting at port 28960. They will automatically restart if crashed. For information on using rcon, please see later in this document.
3. Configuring your server
Configure your server through server.cfg. You may wish to make a copy of this file and place it into your fs_homepath, as updates to the default server.cfg may revert your changes to default. The default server.cfg is heavily commented, so please see that for further information.
There is no need to specify a map on the command line or server.cfg. The server will automatically execute the variable "serverstartup" when the server has completed initialization. By default, this will launch a random map selected from the server's map pool. Please see the below section on configuring map pools.
Quake Live servers are designed to handle multiple gametypes, and multiple gametype variations on one server. This means that your server can switch from Free For All to Capture the Flag to Clan Arena, to even variants of gametypes, such as InstaGib FFA, and custom variations that provide more traditional competitive settings.
Because of this, you should generally not place gameplay settings inside server.cfg. Although the server will attempt to restore all old settings after switching gametypes, these factory settings will override settings in server.cfg.
See the below section on creating custom factories to setup your own match rules.
4. Managing server access list
Quake Live reads and stores to a persistent text file on disk information about who has access to server moderation, server administration, and ban list. By default, this is in the file access.txt, and can be changed through the console variable "g_accessFile"
Only edit this file on disk while all servers are stopped, as the game will write out the current access list before each map load. In order to have access to your server, you will need to add yourself as an admin. Obtain your 64-bit Steam ID by connecting to any match, and typing /players in the console. Put it in access.txt in the given format. Example:
Save the file, and start the server. You can then use /addmod, /addadmin, /demote, /ban and /unban commands to manage the access list while the server is running.
Originally posted by tjone270:
It's worth noting the reload_access command for the server (/rcon reload_access if you're in-game/admin), so you can change the file while the server's running and have it re-read if the user makes a change. (nb. annoyingly this command doesn't currently autocomplete)
Access.txt is re-written on map change, so if you edit it by hand for a running sever, be sure to /reload_access before a map change occurs or you will lose those changes.
5. Setting up a map pool
The server's map pool accepts a map, and a factory, delimited with a |. See the default mappool.txt for an example. A different file can be specified through "sv_mapPoolFile"
If you wish to use your own custom factories, you can specify them in here so that your custom factory will appear in the three map voting system at the end of the game.
If you wish to lock your server to one gametype, then make sure your map pool only contains maps in that factory, then add 8 to g_voteFlags to stop "callvote map" from accepting the optional factory argument. This is not usually needed though; we recommend allowing your players to play and callvote whatever gametypes they wish to play on your servers, but it is often not bad to restrict Duel servers due to the low player counts.
6. Creating custom gametypes (factories)
Setting up a custom factory is a bit more involved than the past solutions of editing config files, but it allows for more flexibility in match rules, while ensuring that settings don't leak over into future matches. By default, Quake Live ships with base rules for every gametype, and a few variations. Other factories may be available on Steam Workshop.
To define your own gametype factory, create a "scripts" folder inside your baseq3 directory, and name the file with anything that ends in ".factories"
This file is a JSON file that contains either a JSON array with multiple factories, or a JSON object containing a single factory. For example, here is the built in InstaGib FFA factory:
All fields should be present and of the correct type.
"id" is how you will refer to the factory inside a map pool or a callvote, and must be a string. "title", "author" and "description" are all strings containing info about the factory, and can be seen in Start Match "basegt" is a string of the base gametype it should apply the settings on. Valid values for "basegt" are: ffa, duel, race, tdm, ca, ctf, oneflag, har, ft, dom, ad, rr "cvars" is an object containing key value pairs of the cvar names and values to set.
If a factory is invalid, the reason why will be printed in the console during startup, and the factory will not be available for play.
7. Using Steam Workshop
Quake Live will only autodownload custom content that has been uploaded to Steam Workshop. The legacy HTTP and UDP download functions have been removed. If you want your players to be able to play custom content on your servers, you must use Steam Workshop.
To add a workshop item to your server, add its item ID to workshop.txt. The item ID can be obtained from the URL when browsing the Steam Workshop in your browser.
Before the server finishes initializing, it will attempt to download all items in workshop.txt, such that custom content can be included in your map pool. The progress of this process will be printed to the server console, and if any download fails, it will be skipped and the server will continue to start.
To upload content, you will need to use SteamCMD's workshop_build_item command. Please refer to the Steam documentation on how to upload Workshop content.
Occasionally, the Workshop startup process will fail, usually due to temporarily unavailable content server. Some users have reported that switching from the 64-bit dedicated to the 32-bit dedicated binary will fix downloads. In these cases, you can use SteamCMD to download the workshop item, and then move it to the appropriate place.
The remote console works differently than previous titles. Rcon is disabled by default, and can be configured using "zmq_rcon_enable", "zmq_rcon_ip". "zmq_rcon_port" and "zmq_rcon_password". Unlike previous titles, rcon will bind to the TCP port you specify, not UDP. The socket itself is a ZeroMQ socket, using CZMQ for authentication. Included with the server is a simple rcon client, zmq_rcon.py, written for Python 2.x. You will need to install Python ZMQ, which can most easily be done through "pip install pyzmq" if pip is available on your system. To run the script, use something similar to the following:
Quake Live also exposes a ZeroMQ publish/subscribe socket that will emit a great amount of detail about the ongoing match, live as events occur. A basic script is included, zmq_stats_verbose.py, but it will simply print the stats events to screen as an example. All events emitted by the engine should be valid JSON. Any additional functionality and storing of stats is left as an exercise to the reader.
The default server.cfg has no set g_inactivity, and it defaults to 0 it seems.
Please change this to a sensible figure in seconds in your server.cfg, eg 240, as otherwise zombie players idle on servers for hours not moving at all spoiling the game.
g_dropInactive 1 must also be set.
You can also configure g_inactivityWarning in seconds to forwarn the player.
g_voteFlags, dmflags, g_StartingWeapons
These three cvar settings are bitmasks, each single decimal shown represents one bit in the bitmask, one of the simplest explanations of a bitmask is here[www.yyosifov.com], but all you need to understand to configure your server is - add together the numbers shown here for the settings that you wish to apply (or disable, as stated), and set the cvar to that number.
no self splash-damage on health
no self splash-damage on armor
no falling damage
eg. set dmflags 12 This is 4 (no self splash-damage on health) + 8 (no self splash-damage on armor)
Add the below values for which callvote commands should not be allowed on your server:
"/callvote map campgrounds" allowed, but "/callvote map campgrounds ca" will fail
set g_voteFlags 17 This is 16 + 1 This would prevent people from kicking anyone or voting for "map xxx", but would not prevent map_restart or nextmap votes which are bits 2 and 4 respectively.
To disable all four of - kicking, voting for map, voting for map_restart and voting for netxmap you would use 16+4+2+1 = 23 \set g_voteFlags 23
eg. set g_startingWeapons 535 512+16+4+2+1 You would spawn with Grappling Hook, Rocket, Shotgun, Machine Gun and Gauntlet.
NOTE To convert one of the bitfield settings back to a human readable list take the number, and start to subtract numbers from the relevant table above from it working backwards from the largest.
533- 512 is the largest number you can subtract without going negative, so that's' the first setting. 23 is left, 16 is the next largest number in the table you can subtract without going negative, so that's the next bit that has been set, and so on.
It is important to do this if you already have a number, but want to add settings to it, as if for example you wanted to add 8 to it, but 8 was already set, then that would be 8+8 so in fact the bit representing sixteen would be set, which would not be the setting you wished to alter.
527 If you didn't check and thought 8 wasn't set and added 8 to it then you would end up with 535.
but 527 = 512+8+4+2+1
So with the new 8 added that would become 535 which actually reverses as 512+16+4+2+1
which would not be the settings you wanted.
So either always work out your settings from scratch, or reverse the number you have as described above to check the settings first.
You can on the fly disable/enable specific weapons with:
set disable_weapon_shotgun 1
set disable_weapon_grenadelauncher 1
set disable_weapon_rocketlauncher 1
set disable_weapon_lightning 1
set disable_weapon_railgun 1
set disable_weapon_plasmagun 1
set disable_weapon_bfg 1
set disable_weapon_nailgun 1
set disable_weapon_chaingun 1
set disable_weapon_hmg 1
Then map_restart or change map. (prefix with rcon if administering a remote server)
This will remove them from the player selection bar and the map, but it will not remove ammo for them from the map.
The above is all from the official readme, reposted with permission from [id]Sponge, there is also now #qldedsrv on the quakenet IRC network for any extra help you may need.
Importantly your server will only show up on the LAN server browser in steam/QL if it's running on net_port 27015 - 27020, so only 6 LAN servers per IP if you want them all to show in the browser. It just is this way currently, maybe it can get fixed.
4) supervisorctl reread
5) supervisorctl update
This should start default server on port 27960. You can check the status with "supervisorctl status". If you create you own launch script then you have to change "command" in supervisors's config accordingly. Here is a good tutorial https://serversforhackers.com/monitoring-processes-with-supervisord
[ Section thanks to tjone270 and Xsi ]
If you are having stability issues please use the x86 server, it seems to be more stable at the moment :-/
Server not showing up in the server browser ?
When looking for it in the browser make sure you don't have filter tags set which would exclude your server from being listed
set sv_tags on your server to some unique comma seperated tags you can filter for to find it easily, as there is no normal search in the standard browser, only tag filtering.
Check it's relevant ports aren't blocked so Steam can query it. Especially you must have set up port forwarding on your router for the UDP game port your server is on (from net_ip in server.cfg, default 27960. if /connect IP:port works ok from an external machine then this is already ok). TCP is only used for zmq/rcon you don't need this to get your server listed.
Steam master servers run at port 27010-27013 so outgoing traffic there must not be blocked if your server is otherwise locked down for outgoing traffic.
Check sv_servertype also, ensure that it has been set to 2.
Check sv_master is set to 1
If all of this is set correctly your server should show up within a second or two when you refresh the list, there is no need to wait minutes before attempting to debug.