Table of Contents
Games - Quake - Setup a local QuakeJS server - Setup a Local QuakeJS Server
Install curl
sudo apt install curl
Add the node.js repo
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Install additional tools needed to setup the server
sudo apt install git nodejs npm
Clone the updated QuakeJS git repository
This includes the ioq3 repository sub-module.
Change directory to the home directory:
cd ~
NOTE: This is to ensure that the home directory is being used.
Clone the updated QuakeJS git repository
git clone --recurse-submodules https://github.com/begleysm/quakejs.git
or
Clone the original QuakeJS git repository
git clone --recurse-submodules https://github.com/inolen/quakejs.git
Move into the newly created quakejs directory:
cd quakejs
Install the necessary node.js packages:
npm install
NOTE: Accept the warnings about deprecated packages and vulnerabilities.
Download BASE3Q files
Run the server for the 1st time by executing the following command.
node build/ioq3ded.js +set fs_game baseq3 +set dedicated 1
NOTE: Hold down enter to get through the EULA.
- Agree to the EULA by hitting y and game files will be downloaded.
- Once all files have been downloaded, the line ignoring setsockopt command will be shown.
- Quit by hitting CTRL+C.
Download additional CPMA files (Optional)
node build/ioq3ded.js +set fs_game cpma +set dedicated 1
NOTE: This will download files.
- When the download is complete, the line ignoring setsockopt command should be seen.
- Again hit CTRL+C to quit.
Edit the baseq3 server config file
Edit or Create base/baseq3/server.cfg.
- base/baseq3/server.cfg
seta sv_hostname "QuakeJS Server" seta sv_maxclients 12 seta g_motd "Welcome to the Local baseq3 QuakeJS Server" seta g_quadfactor 3 seta g_gametype 0 seta timelimit 15 seta fraglimit 25 seta g_weaponrespawn 3 seta g_inactivity 3000 seta g_forcerespawn 0 seta rconpassword "quakejs" set d1 "map q3dm7 ; set nextmap vstr d2" set d2 "map q3dm17 ; set nextmap vstr d1" vstr d1
NOTE: Pay special attention to seta sv_hostname, seta g_motd, and especially seta rconpassword.
- seta rconpassword: Change the password if required!
Edit the cpma server config file (Optional)
Edit or Create base/cpma/server.cfg.
- base/cpma/server.cfg
seta sv_hostname "QuakeJS Server" seta sv_maxclients 12 seta g_motd "Welcome to the Local cpma QuakeJS Server" seta g_quadfactor 3 seta g_gametype 0 seta timelimit 15 seta fraglimit 25 seta g_weaponrespawn 3 seta g_inactivity 3000 seta g_forcerespawn 0 seta rconpassword "quakejs" set d1 "map q3dm7 ; set nextmap vstr d2" set d2 "map q3dm17 ; set nextmap vstr d1" vstr d1
NOTE: Pay special attention to seta sv_hostname, seta g_motd, and especially seta rconpassword.
- seta rconpassword: Change the password if required!
Move /root/quakejs to /home/quake
The quake server needs to run as a non-root user.
Therefore the quakejs directory will be placed under the quake user created earlier.
cp -R /root/quakejs /home/quake
Set Permissions
Set permissions to belong to the quake user created earlier.
chown -R quake:quake /home/quake/quakejs
Test
cd ~/quakejs node build/ioq3ded.js +set fs_game baseq3 set dedicated 1 +exec server.cfg
NOTE: The final line with say something like Hitch warning: 5584 msec frame time.
- This is normal.
- Press CTRL-C to quit.
- The Content Server and Play Page is still required to be setup.
Continue Setup a Local Content Server