Jump to content

Ioquake3: Difference between revisions

From Official NixOS Wiki
Onny (talk | contribs)
mNo edit summary
Onny (talk | contribs)
Dedicated server setup: Note configuration of full game files
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
[https://ioquake3.org/ ioquake3] is an open-source, community-maintained engine port of Quake III Arena, compatible with the original game data.
[https://ioquake3.org/ ioquake3] is an open-source, community-maintained engine port of Quake III Arena, compatible with the original game data.
=== Client setup ===
{{Warning|The ioquake3 module is not yet upstream and will be available in the upcoming NixOS 26.11 release.}}
The game can be installed and configured using the dedicated <code>programs.ioquake3</code> option.<syntaxhighlight lang="nix">
programs.ioquake3 = {
  enable = true;
  settings = {
    name = "onny";
    com_maxfps = 125;
    cg_frawFPS = true;
    cg_fov = 115;
    r_mode = "-1";
    r_customheight = 1080;
    r_customwidth = 1920;
    model = "sarge/default";
  };
};
</syntaxhighlight>ioquake3 will use the demo game files. If you have purchased the game and have a full copy, you can point <code>programs.ioquake3.baseq3</code> to the baseq3 file system path.


=== Dedicated server setup ===
=== Dedicated server setup ===
Following snippet will enable a Quake 3 Arena dedicated server. The map <code>q3tourney3</code> (Hell's Gate) will be loaded.<syntaxhighlight lang="nix">
{{Warning|Parts of this module are not yet upstream and will be available in the upcoming NixOS 26.11 release.}}
Following snippet will enable a Quake 3 Arena dedicated server. The map ''q3dm7'' will be loaded.<syntaxhighlight lang="nix">
services.quake3-server = {
services.quake3-server = {
   enable = true;
   enable = true;
   openFirewall = true;
   openFirewall = true;
   baseq3 = "/var/lib/quake3";
   settings = {
    rconPassword = "super_secret";
    sv_hostname = "My NixOS Quake 3 Arena Dedicated Server";
  };
  # Configure map rotation
   extraConfig = ''
   extraConfig = ''
     seta rconPassword "super_secret"
     set d1 "map q3dm7 ; set nextmap vstr d2"
     seta sv_hostname "My NixOS Quake 3 Arena Dedicated Server"
     set d2 "map q3dm1 ; set nextmap vstr d1"
     map q3tourney3
     vstr d1
   '';
   '';
};
};


</syntaxhighlight>Game files must be present and readable on the path specified. The full path to the single game file will be <code>/var/lib/quake3/.q3a/baseq3/pak0.pk3</code>. Permissions must be set world-readable.<syntaxhighlight lang="bash">
</syntaxhighlight>The server will use the demo game files, so various maps and assets won't be available.
chmod -R o+rX /var/lib/quake3/.q3a/
</syntaxhighlight>


If you have purchased the game and have a full copy, you can point <code>services.quake3-server.baseq3</code> to the baseq3 file system path. Setting it, for example, to <code>/var/lib/quake3</code>, the game file is to be expected at <code>/var/lib/quake3/.q3a/baseq3/pak0.pk3</code>.
[[Category: Applications]]
[[Category: Applications]]
[[Category: Gaming]]
[[Category: Gaming]]

Latest revision as of 11:39, 11 August 2026

ioquake3 is an open-source, community-maintained engine port of Quake III Arena, compatible with the original game data.

Client setup

⚠︎
Warning: The ioquake3 module is not yet upstream and will be available in the upcoming NixOS 26.11 release.

The game can be installed and configured using the dedicated programs.ioquake3 option.

programs.ioquake3 = {
  enable = true;
  settings = {
    name = "onny";
    com_maxfps = 125;
    cg_frawFPS = true;
    cg_fov = 115;
    r_mode = "-1";
    r_customheight = 1080;
    r_customwidth = 1920;
    model = "sarge/default";
  };
};

ioquake3 will use the demo game files. If you have purchased the game and have a full copy, you can point programs.ioquake3.baseq3 to the baseq3 file system path.

Dedicated server setup

⚠︎
Warning: Parts of this module are not yet upstream and will be available in the upcoming NixOS 26.11 release.

Following snippet will enable a Quake 3 Arena dedicated server. The map q3dm7 will be loaded.

services.quake3-server = {
  enable = true;
  openFirewall = true;
  settings = {
    rconPassword = "super_secret";
    sv_hostname = "My NixOS Quake 3 Arena Dedicated Server";
  };
  # Configure map rotation
  extraConfig = ''
    set d1 "map q3dm7 ; set nextmap vstr d2"
    set d2 "map q3dm1 ; set nextmap vstr d1"
    vstr d1
  '';
};

The server will use the demo game files, so various maps and assets won't be available.

If you have purchased the game and have a full copy, you can point services.quake3-server.baseq3 to the baseq3 file system path. Setting it, for example, to /var/lib/quake3, the game file is to be expected at /var/lib/quake3/.q3a/baseq3/pak0.pk3.