Skip to content

Latest commit

 

History

History
106 lines (72 loc) · 4.5 KB

README.md

File metadata and controls

106 lines (72 loc) · 4.5 KB

Quake 3 Arena Dedicated Server in Docker

Quake 3 Arena Screenshot

IOQuake3

This docker image uses IOQuake3 for the server binary. It also includes OSP mod.

Demo Vs. Full Game Server

By default, this server will only work the maps that were shipped with the public Quake 3 demo (q3dm1, q3dm7, q3dm17, and q3tourney2). To run a Quake 3 server that includes all maps, you will need to provide a legal copy of pak0.pk3 from the retail version of Quake 3. Quake 3 can be easily picked up on Steam, GOG, and the Microsoft Store / Gamepass. For legal reasons this pak0.pk3 is not distributed with this Docker image.

To provide a pak0.pk3, simply use a Docker volume to mount it inside the running container.

-v /local/path/to/pak0.pk3:/app/baseq3/pak0.pk3

Playlist information

This server separates playlist to keep game modes easier to manage via a chain of cvars, configured via playlists.cfg. It groups like-maps in rotating playlists. For example:

set stock-dm-2 "map q3dm2 ; set nextmap vstr stock-dm-3"        // House of Pain

On this configuration line the cvar stock-dm-2 will load map q3dm2 and queue up the cvar stock-dm-3 to be executed afterwards. To start a server using the map q3dm2, add the command +vstr stock-dm-2 to the end of your launch string, this will keep the playlist intact.

Using with VR

This server supports Quake3quest, by providing specific config file, a custom playlist, and the Dreamcast Map Pack. The Dreamcast map pack was originally intended to allow cross-play between Dreamcast and PC, however due to the reduced visuals it became popular to the VR community since its easier for the quest 2 to hit that 90 frames per second. It can easily be downloaded on the quest2 using the Quake3quest companion app.

docker run -it --rm --net=host lacledeslan/gamesvr-ioquake3 /app/ioq3ded.x86_64 +exec server-ffa-vm.cfg +exec playlists.cfg +vstr dc-dm1 +set rconpassword "EXAMPLE"

Linux

linux/amd64

Run Self-Tests

docker run -it --rm lacledeslan/gamesvr-ioquake3 ./ll-tests/gamesvr-quake3.sh;

Run Simple Interactive Server (Free For All Deathmatch)

docker run -it --rm --net=host lacledeslan/gamesvr-ioquake3 /app/ioq3ded.x86_64 +exec server-ffa.cfg +exec playlists.cfg +vstr stock-dm-1 +set rconpassword "EXAMPLE"

Capture the Flag

docker run -it --rm --net=host lacledeslan/gamesvr-ioquake3 /app/ioq3ded.x86_64 +exec server-ctf.cfg +exec playlists.cfg +vstr stock-ctf-1 set rconpassword "EXAMPLE"

Team deathmatch

docker run -it --rm --net=host lacledeslan/gamesvr-ioquake3 /app/ioq3ded.x86_64 +exec server-tdm.cfg +set rconpassword "EXAMPLE" +exec playlists.cfg +vstr stock-dm-1

Instagib (Free For All Deathmatch)

docker run -it --rm --net=host lacledeslan/gamesvr-ioquake3 /app/ioq3ded.x86_64  +set fs_game osp +exec ffa-instagib.cfg +exec playlists.cfg +vstr stock-dm-1

Instagib 1v1

docker run -it --rm --net=host lacledeslan/gamesvr-ioquake3 /app/ioq3ded.x86_64  +set fs_game osp +exec 1v1-instagib.cfg +exec playlists.cfg +vstr stock-1v1-map1

Instagib Capture The Flag

docker run -it --rm --net=host lacledeslan/gamesvr-ioquake3 /app/ioq3ded.x86_64  +set fs_game osp +exec ctf-instagib.cfg +exec playlist.cfg +vstr stock-ctf-1

Instagib Team Deathmatch

docker run -it --rm --net=host lacledeslan/gamesvr-ioquake3 /app/ioq3ded.x86_64  +set fs_game osp +exec team.cfg +exec playlists.cfg +vstr stock-dm-1

Freeze Tag Team Deathmatch

docker run -d --rm --net=host lacledeslan/gamesvr-ioquake3 /app/ioq3ded.x86_64 +set fs_game osp +exec freezetag.cfg +exec playlists.cfg +vstr stock-dm-1