{"id":108,"date":"2017-12-04T16:43:28","date_gmt":"2017-12-05T00:43:28","guid":{"rendered":"https:\/\/www.lucaswilliams.net\/?p=108"},"modified":"2021-04-12T22:41:25","modified_gmt":"2021-04-13T05:41:25","slug":"setting-up-unreal-tournament-2004-game-server-on-ubuntu-16-04","status":"publish","type":"post","link":"https:\/\/www.lucaswilliams.net\/index.php\/2017\/12\/04\/setting-up-unreal-tournament-2004-game-server-on-ubuntu-16-04\/","title":{"rendered":"Setting up Unreal Tournament 2004 Game server on Ubuntu 16.04"},"content":{"rendered":"<p>Hey everybody.<\/p>\n<p>Been a while since I wrote here. Figured I would write up a howto to setting up a Unreal Tournament 2004 server. I really love this game. It brings back tons of memories, playing this when I was in the Navy with my friends on the sub.<\/p>\n<p>My boys have some break time off from school, and they played a little bit back in the day, so I decided to spin up a server so that we could play. I looked for a way to do this online, and couldn&#8217;t find anything so I figured I would write something up, so here you go.<\/p>\n<p>So, the good thing is that because the game is pretty old now, over 13 years old now, it doesn&#8217;t really require a lot of CPU or memory or storage. I deployed a KVM with 2 cores and 4GB of RAM and 20GB storage server running Ubuntu 16.04.3, and got all the updates installed. I then spent the next few hours searching for the ut2004 dedicated server package. Never could find it. Luckily, I had a backup copy, which I have uploaded to this server so you can download it <a href=\"https:\/\/www.lucaswilliams.net\/files\/dedicatedserver3339-bonuspack.zip\">here<\/a>. You&#8217;ll also need the patch, which you can download <a href=\"https:\/\/www.lucaswilliams.net\/files\/ut2004-lnxpatch3369-2.tar.bz2\">here<\/a>.<\/p>\n<p>I created a directory for the game in \/usr\/local\/games\/UT2004 and extracted the .zip here:<\/p>\n<p><code>sudo unzip -d \/usr\/local\/games\/UT2004 dedicatedserver3339-bonuspack.zip <\/code><\/p>\n<p>Once that was complete, I then untarred the patch and had to manually install it, since it creates a directory called <code>UT2004-Patch<\/code> so I had to actually go into each directory and move the files into their respective directories in the UT2004 directory. Once that was complete, you now have a system capable of running Unreal Tournament 2004 server. However, I needed to do a couple more things.<\/p>\n<p>Next, you need to install libstdc++5 package. This is required so that Unreal can run. Run the following command to install libstdc++5:<\/p>\n<pre>sudo apt install libstdc++5<\/pre>\n<p>One, I decided to start the web admin. In the \/usr\/local\/games\/UT2004\/System\/UT2004.ini. Find the UWeb.Webserver section and modify it:<\/p>\n<pre><code>[UWeb.WebServer]\nApplications[0]=xWebAdmin.UTServerAdmin\nApplicationPaths[0]=\/ServerAdmin\nApplications[1]=xWebAdmin.UTImageServer\nApplicationPaths[1]=\/images\nbEnabled=True\nListenPort=80<\/code><\/pre>\n<p>You can change the ListenPort to what ever you want, you just need to change bEnabled=False to True to enable it.<\/p>\n<p>Next, I decided that I wanted this to run as a service using SystemD instead of just running in the background with me logged in to the server. Below is my UT2004-Server.service file:<\/p>\n<pre><code>[Unit]\nDescription=Unreal 2004 Dedicated Server\nAfter=network.target\n\n[Service]\nType=simple\nUser=ut2004\nWorkingDirectory=\/usr\/local\/games\/UT2004\/System\nExecStart=\/usr\/local\/games\/UT2004\/System\/ucc-bin-linux-amd64 server CTF-BridgeOfFate?game=XGame.xCTFGame?AdminName=admin?AdminPassword=XXXXXXXX ini=UT2004.ini log=server.log -nohomedir\nRestart=on-abort<\/code><\/pre>\n<p>Just change the <code>?AdminPassword= <\/code>to what you want I then copied the file into \/lib\/systemd\/system and chmod 644 and chown root:root the ut2004-server.service file and now I can control the service with systemctl:<\/p>\n<p><code> systemctl start ut2004-server.service<\/code> and I can get status with<code> systemctl status ut2004-server.service<\/code><\/p>\n<p>One last thing I did as well is I included my cdkey from my game since I was getting errors about a missing cdkey, however, I have tested it, and it is not required. The game will still run, you just can&#8217;t advertise your server on the Internet and host Internet games without it, which means your stats also won&#8217;t work. You used to be able to download a CD-Key from Epic, but that service is no longer working. I emailed them about this on December 2, 2017 with no reply as to date.<\/p>\n<p>Happy gaming!<\/p>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hey everybody. Been a while since I wrote here. Figured I would write up a howto to setting up a Unreal Tournament 2004 server. I really love this game. It brings back tons of memories, playing this when I was in the Navy with my friends on the sub. My boys have some break time [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30,37,6],"tags":[16,27,68,34,55,67,22,69,5,65,66,33],"class_list":["post-108","post","type-post","status-publish","format-standard","hentry","category-games","category-howto","category-ubuntu","tag-16-04","tag-canonical","tag-dedicated","tag-games","tag-howto","tag-server","tag-setup","tag-systemd","tag-ubuntu","tag-unreal-tournament-2004","tag-ut2004","tag-xenial"],"_links":{"self":[{"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/posts\/108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/comments?post=108"}],"version-history":[{"count":3,"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/posts\/108\/revisions"}],"predecessor-version":[{"id":230,"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/posts\/108\/revisions\/230"}],"wp:attachment":[{"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/media?parent=108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/categories?post=108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lucaswilliams.net\/index.php\/wp-json\/wp\/v2\/tags?post=108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}