You can enable redirected downloads on your server even if it's not an ioquake3 server. You simply need to use the 'sets' command to put the <code>sv_dlURL</code> cvar into your <code>SERVERINFO</code> string and ensure <code>sv_allowDownloads</code> is set to <code>1</code>

+

+

<code>sv_dlURL</code> is the base of the URL that contains your custom .pk3 files the client will append both fs_game and the filename to the end of this value. For example, if you have <code>sv_dlURL</code> set to <code>"http://ioquake3.org"</code>, <code>fs_game</code> is <code>"baseq3"</code>, and the client is missing <code>"test.pk3"</code>, it will attempt to download from the URL <code>"http://ioquake3.org/baseq3/test.pk3"</code>

+

+

<code>sv_allowDownload</code>'s value is now a bitmask made up of the following flags:

+

<code>

+

1 - ENABLE

+

4 - do not use UDP downloads

+

8 - do not ask the client to disconnect when using HTTP/FTP

+

</code>

+

Server operators who are concerned about potential leeching from their HTTP servers from other ioquake3 servers can make use of the <code>HTTP_REFERER</code> that ioquake3 sets which is <code>"ioQ3://{SERVER_IP}:{SERVER_PORT}"</code>. For, example, Apache's mod_rewrite can restrict access based on <code>HTTP_REFERER</code>.

+

+

On a sidenote, downloading via UDP has been improved and yields higher data rates now. You can configure the maximum bandwidth for UDP downloads via the cvar sv_dlRate. Due to system-specific limits the download rate is capped at about 1 Mbyte/s per client, so curl downloading may still be faster.

Install any pre-requisites according to your distribution documentation. If you run into trouble here, please ask for help on our forums after attempting the next command and saving the output to pastebin

sh server_compile.sh

Copy pak0.pk3 from your purchased copy of Quake 3: Arena to the baseq3 sub-directory of ioquake3

Type screen and then sh start_server.sh. You can leave the screen at any time by pressing Ctrl+a then d, and then get access to your running server again by typing screen -drU

You're ready to go, just type map q3dm17 in your new server's console.

Mac OS X

Windows

Useful ioquake3 server console commands

banaddr <range>

ban an ip address range from joining a game on this server, valid <range> is either playernum or CIDR notation address range.

exceptaddr <range>

exempt an ip address range from a ban.

bandel <range>

delete ban (either range or ban number)

exceptdel <range>

delete exception (either range or exception number)

rehashbans

reload the banlist from serverbans.dat

flushbans

delete all bans

net_restart

restart network subsystem to change latched settings

game_restart <fs_game>

Switch to another mod

kicknum <client number>

kick a client by number, same as clientkick command

kickall

kick all clients, similar to "kick all" (but kicks everyone even if someone is named "all")

kickbots

kick all bots, similar to "kick allbots" (but kicks all bots even if someone is named "allbots")

tell <client num> <msg>

send message to a single client (new to server)

Using HTTP/FTP Download Support

You can enable redirected downloads on your server even if it's not an ioquake3 server. You simply need to use the 'sets' command to put the sv_dlURL cvar into your SERVERINFO string and ensure sv_allowDownloads is set to 1

sv_dlURL is the base of the URL that contains your custom .pk3 files the client will append both fs_game and the filename to the end of this value. For example, if you have sv_dlURL set to "http://ioquake3.org", fs_game is "baseq3", and the client is missing "test.pk3", it will attempt to download from the URL "http://ioquake3.org/baseq3/test.pk3"

sv_allowDownload's value is now a bitmask made up of the following flags:

1 - ENABLE
4 - do not use UDP downloads
8 - do not ask the client to disconnect when using HTTP/FTP

Server operators who are concerned about potential leeching from their HTTP servers from other ioquake3 servers can make use of the HTTP_REFERER that ioquake3 sets which is "ioQ3://{SERVER_IP}:{SERVER_PORT}". For, example, Apache's mod_rewrite can restrict access based on HTTP_REFERER.

On a sidenote, downloading via UDP has been improved and yields higher data rates now. You can configure the maximum bandwidth for UDP downloads via the cvar sv_dlRate. Due to system-specific limits the download rate is capped at about 1 Mbyte/s per client, so curl downloading may still be faster.

Using Old Versions or Protocols

Sometimes we get asked to help with NoGhost or other mods that require versions of Quake 3 prior to 1.32c. Unfortunately there is no way to make mods that require old versions of Quake 3 work with ioquake3. When id software released the source code which ioquake3 is based on we only received access to the latest version at the time they stopped working on it.

Punkbuster

Similarly, we sometimes get asked to support Punkbuster. This is closed source cheat detection software that we don't have the ability to use with ioquake3.