{"id":124,"date":"2011-06-17T19:41:48","date_gmt":"2011-06-17T19:41:48","guid":{"rendered":"http:\/\/www.bluemunkey.com\/?p=124"},"modified":"2018-12-30T07:50:52","modified_gmt":"2018-12-30T13:50:52","slug":"quake-i-server-setup-guide","status":"publish","type":"post","link":"https:\/\/www.bluemunkey.com\/?p=124","title":{"rendered":"Quake I &#8211; Server Setup Guide"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-126\" title=\"Quake I\" src=\"http:\/\/www.bluemunkey.com\/wp-content\/uploads\/2011\/06\/quake-300x300.jpg\" alt=\"\" width=\"225\" height=\"225\" srcset=\"https:\/\/www.bluemunkey.com\/wp-content\/uploads\/2011\/06\/quake-300x300.jpg 300w, https:\/\/www.bluemunkey.com\/wp-content\/uploads\/2011\/06\/quake-150x150.jpg 150w, https:\/\/www.bluemunkey.com\/wp-content\/uploads\/2011\/06\/quake-36x36.jpg 36w, https:\/\/www.bluemunkey.com\/wp-content\/uploads\/2011\/06\/quake-115x115.jpg 115w, https:\/\/www.bluemunkey.com\/wp-content\/uploads\/2011\/06\/quake.jpg 450w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/>A few days ago, I was reminiscing about the days when I had little responsibility and had a lot of time to play games. One of my most favorite games was Quake I. A few of my friends in high school worked at a local ISP and their employer let them set up a Quakeworld server for them and luckily their friends to play each other. Quake was new to me, but my friends were seasoned veterans. They kicked me and my brother&#8217;s ass daily. Despite sucking at the game we kept at it and eventually something clicked. We started blowing everyone away and became addicted to the game through\u00a0the domination of our friends. Fast forward several years and now Quake is open source due to a gracious Christmas present to the world from John Carmack. There are open source versions of the game with updated textures and lighting effects, but the one thing that has remained the same is the gameplay. I decided that I wanted to start up a Quake server and get my old group of friends together for some deathmatch. Here is my guide for easy, trouble free server setup under Linux.<\/p>\n<p><strong>What you will need:<\/strong><\/p>\n<ul>\n<li>Linux server with ssh and screen installed<\/li>\n<li>MVDSV Quakeworld server (v 0.29 at time of writing)<br \/>\nmvdsv_0.29-glibc_2.3.5.tar.gz from <a href=\"http:\/\/qw-dev.net\/projects\/mvdsv\/\">http:\/\/qw-dev.net\/projects\/mvdsv\/<\/a><\/li>\n<li>Pak0.pak and Pak1.pak from the original Quake CD<\/li>\n<li>id Software&#8217;s original Quakeworld server package<br \/>\n<a href=\"ftp:\/\/ftp.idsoftware.com\/idstuff\/quakeworld\/qwsv230.zip\">ftp:\/\/ftp.idsoftware.com\/idstuff\/quakeworld\/unix\/qwsv-2.30-i386-unknown-linux2.0.tar.gz<\/a><\/li>\n<\/ul>\n<p><strong>Step 1: Prepare the server<\/strong><\/p>\n<p>The first thing you&#8217;ll want to do is get your server ready. I like Ubuntu, so I&#8217;m going to write these instructions based on how I set it up on that distribution. When I installed Linux, I selected SSH from the menu that asks what services I want to install. Once you&#8217;re logged into your server, go ahead and get screen installed.<\/p>\n<blockquote><p>admin@quake:~$ sudo apt-get update<br \/>\nadmin@quake:~$ sudo apt-get install screen<\/p><\/blockquote>\n<p>Next you&#8217;ll probably want to create a separate user to run the quake server from. Here, I am making a user named quake:<\/p>\n<blockquote><p>admin@quake:~$ sudo mkdir \/home\/quake<br \/>\nadmin@quake:~$ sudo useradd -d \/home\/quake -g users -s \/bin\/bash quake<br \/>\nadmin@quake:~$ sudo chown -R quake.users \/home\/quake<br \/>\nadmin@quake:~$ sudo passwd quake<\/p><\/blockquote>\n<p><strong> Step 2: Setup MVDSV<\/strong><\/p>\n<p>Next you&#8217;ll want to log on as the new user you created to run the service under create a directory to hold everything and grab the MVDSV server binary and the\u00a0original quakeworld server from id Software. After that, you can extract the files you downloaded and\u00a0then clean up\u00a0a few things.<\/p>\n<blockquote><p>quake@quake:~$ mkdir quake1<br \/>\nquake@quake:~$ cd quake1<br \/>\nquake@quake:~\/quake1$ wget http:\/\/qw-dev.net\/attachments\/download\/200\/mvdsv_0.29-glibc_2.3.5.tar.gz<br \/>\nquake@quake:~\/quake1$ wget ftp:\/\/ftp.idsoftware.com\/idstuff\/quakeworld\/unix\/qwsv-2.30-i386-unknown-linux2.0.tar.gz<br \/>\nquake@quake:~\/quake1$ tar -zxvf mvdsv_0.29-glibc_2.3.5.tar.gz<br \/>\nquake@quake:~\/quake1$ tar -zxvf qwsv-2.30-i386-unknown-linux2.0.tar.gz<br \/>\nquake@quake:~\/quake1$ rm qwsv<br \/>\nquake@quake:~\/quake1$ rm README.qwsv<br \/>\nquake@quake:~\/quake1$ rm mvdsv_0.29-glibc_2.3.5.tar.gz<br \/>\nquake@quake:~\/quake1$\u00a0rm qwsv-2.30-i386-unknown-linux2.0.tar.gz<\/p><\/blockquote>\n<p>After that is done you&#8217;ll need to create a directory to hold the .pak files and send them up to the server. Since I have a MacBook Pro, I use scp, but ftp works just as well.<\/p>\n<blockquote><p>quake@quake:~\/quake$\u00a0mkdir id1<\/p><\/blockquote>\n<p>From Terminal on the MacBook (substitute the proper IP address of your server in after the @ sign):<\/p>\n<blockquote><p>me@MacBook:~$ scp pak0.pak quake@192.xxx.xxx.xxx:\/home\/quake\/quake1\/id1\/<br \/>\nme@MacBook:~$\u00a0scp pak1.pak quake@192.xxx.xxx.xxx:\/home\/quake\/quake1\/id1\/<\/p><\/blockquote>\n<p><strong> Step 3: Config file and startup script <\/strong><\/p>\n<p>We are almost done! We need to create a server configuration file so we can define some rules on the server. There are tons of tutorials on all of the available settings all over the Internet, so I won&#8217;t go into all of that. Create a file called server.cfg in the \/home\/quake1\/id1 directory and paste this into it to get started with basic deathmatch.<\/p>\n<blockquote><p>quake@quake:~\/quake1\/id1$\u00a0pico server.cfg<\/p>\n<p>sv_gamedir qw<br \/>\ndeathmatch 1<br \/>\nhostname\u00a0\u00a0&#8220;Your Quake DM Server&#8221;<br \/>\nserverinfo admin\u00a0\u00a0&#8220;your@email.com&#8221;<br \/>\nserverinfo url &#8220;http:\/\/www.yourwebsite.com&#8221;<br \/>\nrcon_password change_me<br \/>\ntimelimit 10<br \/>\nfraglimit 20<br \/>\npausable 0<br \/>\nsamelevel 2<br \/>\nmaxclients 16<br \/>\nmap dm1<br \/>\nfloodprot 4 8 30<br \/>\nfloodprotmsg &#8220;You have activated the flood protection and will be silenced for 30 seconds&#8221;<br \/>\nmaxspectators 2<br \/>\nallow_download 1<br \/>\nallow_download_skins 1<br \/>\nallow_download_models 1<br \/>\nallow_download_sounds 1<br \/>\nallow_download_maps 1<\/p><\/blockquote>\n<p>Lastly, you need to create a startup script that starts a new screen session, starts the server, and detaches the session so you can log out of ssh and leave the server running. You can log in and restore the session if you need to stop the server and restart it later.<\/p>\n<blockquote><p>quake@quake:~\/quake1$ pico start-qw<\/p>\n<p>echo Running server qw-dm<br \/>\nscreen -A -m -d -S qw-dm .\/mvdsv<\/p>\n<p>quake@quake:~\/quake1$ chmod 755 start-qw<br \/>\nquake@quake:~\/quake1$ .\/start-qw<br \/>\nRunning server qw-dm<\/p><\/blockquote>\n<p>To reattach to the session type the following:<\/p>\n<blockquote><p>quake@quake:~$ screen -list<br \/>\nThere are screens on:<br \/>\n9101.qw-dm\u00a0\u00a0\u00a0\u00a0\u00a0 (06\/14\/2011 08:15:42 PM)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (Detached)<br \/>\n1\u00a0Sockets in \/var\/run\/screen\/S-quake.<br \/>\nquake@quake:~$ screen -r qw-dm<\/p><\/blockquote>\n<p>If you want to re-detach from the\u00a0qw-dm screen and go back to your original ssh session, press CTRL-A D.<\/p>\n<p>That&#8217;s it! You should now have a fully functional Quake Deathmatch server. I hope it provides you and your friends with hours of fun!<\/p>\n<!--CusAds0-->\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>A few days ago, I was reminiscing about the days when I had little responsibility and had a lot of time to play games. One of my most favorite games [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,5],"tags":[19,18,20],"class_list":["post-124","post","type-post","status-publish","format-standard","hentry","category-fun","category-sysadmin","tag-id-software","tag-quake","tag-server"],"_links":{"self":[{"href":"https:\/\/www.bluemunkey.com\/index.php?rest_route=\/wp\/v2\/posts\/124","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bluemunkey.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bluemunkey.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bluemunkey.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bluemunkey.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=124"}],"version-history":[{"count":94,"href":"https:\/\/www.bluemunkey.com\/index.php?rest_route=\/wp\/v2\/posts\/124\/revisions"}],"predecessor-version":[{"id":512,"href":"https:\/\/www.bluemunkey.com\/index.php?rest_route=\/wp\/v2\/posts\/124\/revisions\/512"}],"wp:attachment":[{"href":"https:\/\/www.bluemunkey.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bluemunkey.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bluemunkey.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}