Setting up a Linux UT3 game server

While the installation of the Linux binary for the Unreal Tournament 3 Server is dead simple, some very brave game server administrators apparently chose to run the server with root permissions because there’s no useful server start script. This usually is an exceptionally bad idea for everything that opens ports on an Internet server.

Here’s a very simple start script that starts the UT3 server with a different account which you have to create using the groupadd/useradd command. In my case I’m using user game in group game. The script will sudo to this less powerful account and then start a botless deathmatch UT3 server. The server will continue to run after you close your shell. Well, at least until the server crashes, which it does frequently. In its current form the script has to be put into the ut3-dedicated/Binaries directory.

#!/bin/sh
SUDO_USER=game
MAX_PLAYERS=10
MIN_NET_PLAYERS=2
NUM_PUBLIC_CONNECTIONS=12
NUM_OPEN_PUBLIC_CONNECTIONS=12
GOAL_SCORE=50
TIME_LIMIT=20
PORT=7777
QUERY_PORT=6500
MAP=DM-HeatRay
LOG_FILE=/tmp/UT3_server.log
SCREEN_FILE=/tmp/UT3_screen.log
ADMIN_PASSWORD=<enter admin password>
GAMESPY_USER=<enter gamespy username>
GAMESPY_PASSWORD=<enter gamespy password>
GAME_PASSWORD=<enter game password>
SERVER_IP=<enter IP of the bind address, usually your server IP>
screen -A -m -d sudo -u $SUDO_USER ./ut3 Server $MAP?GameMode=0?MaxPlayers=$MAX_PLAYERS?MinNetPlayers=$MIN_NET_PLAYERS?GamePassword=$
GAME_PASSWORD?bPlayersMustBeReady=True?bAllowJoinInProgress=True?bAllowInvites=True?BotCount=0?NumPublicConnections=$NUM_PUBLIC
_CONNECTIONS?NumOpenPublicConnections=$NUM_OPEN_PUBLIC_CONNECTIONS?GoalScore=$GOAL_SCORE?TimeLimit=$TIME_LIMIT?bShouldAdvertise
=True?bUsesStats=True?bIsLanMatch=False?ForceRespawn=1?PureServer=1?bIsDedicated=True?AdminPassword=$ADMIN_PASSWORD -login=$GAM
ESPY_USER -password=$GAMESPY_PASSWORD -Port=$PORT -QueryPort=$QUERY_PORT -log=$LOG_FILE -unattended -multihome=$SERVER_IP >>
$SCREEN_FILE

At first I was unable to setup the UT3 linux server using the UT3-linux-server-12172007.bin binary. But then I stumbled upon an UT3 mailing list and found a patch that works. The patch can be found here: http://treefort.icculus.org/ut3/ut3-bin-test.tar.bz2

Please be aware that this is a development patch from the UT3 linux server developer and not a final release.

My UT3 server is set up as a private server as there are way too many aimbot-equipped kiddies on public UT3 servers. How can you connect to an unlisted, password-enabled UT3 server?

  1. Start the UT3 game client in Windows.
  2. After successfully logging in, press F10. A command prompt should be displayed.
  3. Enter open 12.34.56.78?password=gamepassword and press <enter>

Replace 12.34.56.78 with the IP address the server is running on and the game password for that server.

Things missing:

  • Nice rc.D start/stop script
  • Automatically restart the game server after it crashes
  • Jail the whole server to its own root directory for security reasons

One thought on “Setting up a Linux UT3 game server

  1. thanks, googled the hell out of help for ut3 linux, this was the first page w/ useful info, yar @ epic not including helpful docs w/ it

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>