ioQuake3 is based upon the Quake III source code, which was made available
for free on August 20, 2005, as open-source
and licensed under the GPLv2. Ever since the ioQuake3 project took over the code and started improving it
and fixing bugs. At the present day there aren't many users playing the original ioQuake3 game, however there
are plenty of games based upon this engine, like
OpenArena,
UrbanTerror
or World of Padman.
Here is a list of games based upon the ioQuake3 engine.

Note: Even though ioQuake3 is not widely played anymore, this guide applies to mostly all the games which
are based on this engine, like OpenArena or UrbanTerror 4.x (UrbanTerror HD will use a different engine).

Note: You can also play Quake Live, which is pretty much identical to
the original Quake III, and runs in a web browser using Flash.

Installing ioQuake3

First, download the engine installer and the data installer from the official ioQuake3 homepage. Make these
executable and run them to install the game. By default, the game installs as /usr/local/games/.
You can also install it as normal user, in a location such as $HOME/apps/ioquake3, where $HOME is your home
directory (e.g. /home/your_username).

You will also need the pak0.pk3 data file from the original Quake 3 CD.
After the installation of the engine, copy
this file inside the $HOME/.q3a/baseq directory. If you don't own Quake 3, you can always install OpenArena, or
just get the free pak0.pk3 file that comes with OpenArena and copy that instead.

Once the game is installed and set up, you can run it by typing ioquake3 in a terminal. Here is another way
of running it:

ioquake3 +set fs_game "baseq3"

This will start ioQuake3 loading the default baseq3 mod, however if you have mods like Excessive or OSP installed you
could load them using ioquake3 +set fs_game "osp" or ioquake3 +set fs_game "excessive".

Configuring ioQuake3

I will only explain how to configure ioQuake3 using config files. As with any ioQuake3-based games, configuration
can be done via text config files, and in this case the config files will be located inside the
$HOME/.q3a/baseq3 directory. You can create a text file in this directory called autoexec.cfg, and add
commands or settings in it. All the commands inside this file will be executed automatically when the game
starts. You can also create additional .cfg files in this directory and manually run them in the game console
using /exec file.cfg for example. Or you can create additional .cfg files and then put commands inside
the autoexec.cfg to run them. Below is an example:

Example of autoexec.cfg file:

name "MyNickname"
exec "settings.cfg"

Example of settings.cfg file:

seta sensitivity "9"
seta r_gamma "4"

When ioQuake3 starts, it will automatically execute all the commands inside autoexec.cfg, and thus
will execute the commands in settings.cfg too.

To add custom options, you will add them in the form of seta variable "value". For example, to
show the current FPS, you would add the following line inside your
autoexec.cfg file:

seta cg_drawFPS "1"

The Difference Between set and seta

While set will only save the variable for the current session only (that is, it will apply it and use it only for
this running instance of the game, seta will apply this variable and also save it inside the persistent
file config.cfg, making it a default value for all future running instances of the game.

Basic CVAR Configuration

This section includes some useful CVARs that you can tweak inside the autoexec.cfg file.

seta name "MyNickname"Default: "UnnamedPlayer"
This is used to set your nickname.

seta sensitivity "8"Default: ""
This changes the mouse sensitivity. The bigger, the faster your aim cursor will move on the screen.

seta com_maxfps "60"Default: ""
This caps the maximum framerate allowed. If you are using vertical sync, this will be capped to the
maximum frequency your monitor allows.

Cycling Through Different Variable Values by Pressing a Single Key

Take a look at the code below (you can copy/paste this inside the autoexec.cfg file):

This small script will bind P to change the mouse sensitivity. When you press P the first time,
the sensitivity will be changed to 5, the second time it will change the sensitivity to 7, the
third time it will change the sensitivity to 9, and if you press P again, the sensitivity will
be switched back to 5. The commands are separated by the semi-colon.

Some Useful Scripts

Colored Nickname

Quake III supports colored nicknames, and you can set a color by preceding your nickname with a color code.
For example, seta name "^5MyNickname" will use light blue, while seta name "^3MyNickname" will
be red. Here is a list of colors:

^0 - black

Example of autoexec.cfg Config File

This example config file uses ESDF keys for movement and has some bindings for cycling through sensitivity,
maximum FPS and gamma settings.

Quake III was released on December 2, 1999 and it quickly became on of the most popular shooter games ever created.
Contrary to its predecessor, Quake II, Quake III Arena focused more on the multi-player side. It has 10 weapons,
four game modes (FFA, TDM,
CTF and Tournament), single-player skirmish and online multi-player mode.