RSS

How to host a unreal server (The semi-ultimate Guide)

25 Mar

Like  last weeks post this post is very well thought out and I spent nearly 3 days writing parts of it up. If  I missed something here or you have any questions please don’t hesitate to comment.I could’nt cover every detail , But there is enough here to get someone started and running with a basic game server , and  a good understanding of some key Area in unreal and networks in general.

This is a topic which is a never ending ongoing question I hear from people.

How to host a server?

I want to host my own server unreal is the best game ever \(!)/

The thing about this is I would love  to explain this,  But it requires multiple areas of  expertise to do it correctly. The typical person who wants to run a unreal server and is asking that question typically has no idea what ports or a IP address are or how to access there router. In many cases that means the person is a teenager or kid that lives in his parents home and shouldn’t necessarily be mucking around with a machine exposed to the intenet.

Some things you need to understand before we even talk about starting the game , You need a  rudimentary understanding of how a  network works.  It will help you to  understand what a local and extrenal ip adress is , You need to know how to access a routers control panel and how to foward ports in said router.

Understand The Network Model – A Short Crash Course:

This model assumes you have a router , If your server is  directly connected to you cable modem via a single wire  you may be able to skip this. That’s Highly unlikely these days.This dosnt cover ipv6 or any ‘weird’ setups like windows ICS.or Linux.If you have a Firewall such as zonealarm installed make sure you allow unreal to pass tho it.

The network your pc’s connect to in you home or business or school  is called a LAN (Local Area Network). Every device , be it a Xbox , Set-top box , or PC that communicates in this  LAN is assigned a number by a router  when it makes a connection  for the first time (In the case of a DHCP). This could be considered a room number  for the purpose of understanding.  This number  looks like “192.169.1.x”  This range of  “192.169.1” can vary by router ,Many routers can also be configured to use a custom range. These number ranges are reserved for lan use. The number  that the router assign each computer is called the internal IP address.

Now that you understand about local  or private IP addresses or “Room numbers” , Its a lot easier to grasp the next concept. “house numbers”!

Your ISP (Internet Service Provider) That you get your internet service from assigns you a number that your conection is identified as to there WAN , This is a number from 0.0.0.0  To 255.255.255.255 It cannot be any IP in the reserved block that used for Private networks..  This is you external IP address ,It can be used to identify your network from the outside of your home.  But the outside world can’t see your rooms inside your house. This make any sense to you?

Here is a handy diagram that explains what I just summarized.

Port Fowarding:

In order for the outsite world to directly see a computer or server hosted on a LAN , The IP address and port needs to be forwarded.  When a (Player)  Queries your server they use the extranal IP, Then the router points then to the fowarded pc on the LAN network. Unreal and many other game servers  require  you to forward ports , Now that we understand why people outside you house cant ever see your server ,Lets discuss how to  forward ports.

Routers are Embedded PC”s with no display , So how can I access the settings are there buttons on the router somewhere? All managed routers , (that are not hubs ) , Have a built in web interface that can be accessed in any internet browser on  any PC on your LAN. By simply typing the gateway IP adress into the browsers for example 192.168.1.1 But as we discussed earlier different manufacturers of different brands of routers use a slightly different subnet sometimes, Like  176.192.1.1, to find out what the address of your router is theres a few ways. The only fail proof way I know of is to first find the internal IP of the computer your sitting at.

Theres a number of way to do this, One is to  open a dos commandline window ,  goto start manu >RUN  and type ‘command‘ and hit enter. Then type ‘ipconfig’ , Something like this This will be printed to the screen

If you cant use ms-dos , You can also find the gateway in the network connection properties in the control panel in windows XP.

Now it spits Up a bunch of info , But the  info we want is the ip address and  the default gateway.Take the default gateway and  goto start menu > Run and type “http:\\192.162.1.1”  Where that number is the defualt gateway and hit enter. this should open up a  window in the defualt browser.A dialog asking you for a user name and password.

What you need to enter into this box varies by router models ,(http://www.routerpasswords.com/) You may need to refer to the routers instructions for the default credentals. in the case that he default  user / pass combo has been changed ,  You may need to contact the network administartor or the person that setup you newtork , (Your parents mabye?) to  get the password to gain access.Or have your administrator do this for you.In the case of the linksys wrt54g  the defualt info is user= admin password= admin

Router Login Dailog (Shown in chroome)

Enter the password and  click login. The next step assumes you got past the login somehow.

The interfaces vary by brand ,But you looking for a tab labeled Applications and Gaming , or  Port Fowarding,

WRT54g Port Fowarding Table.  Some webcam and doom ports 

Now you have 2 options You could use this table (Best) or setup a DMZ (lazy) If you setup a DMZ every port on you computer will be visable to the world , This may be useful if you have alot of network services running on one machine , Like HTTP , FTP , WAMP ,   or multiple unreal servers on one machine where you don’t have enough fields to forward all the ranges.. It’s not generaly  recommend.

Unrealgold could use port 7777 – 7780 or so by defualt.  So you can make a rule to allow 7776  to 7780 over UDP  to be safe and set the address to the last number in you local IP address  you got earlier.You need to  also forward  master server port. 27900 over UDP so add a rule for 27900 – 27900 Udp.

Click save changes

Broadcasting The Server To The World

Unreal uses the master server model so your server tells the master it here and the master relies this information to the clients. So You need to do one more thing to be visable. Open the game , hit tilde “`~`  and type preferences  in the console. Scroll down to masterServerUplink , and change the value douplink to true ,Also expand tcp/network play. make sure dobeacon is set to true as well. This will allow you game to be broadcast to the master server.

Public Server Information

You server is advertised as a server name so you need to set one up so that people can find you.Open the game and open advanced option by opening the console and typing ‘preferences’   goto networking , > public server info > and set the servername .Servers with blank servernames are not advertised.The shortname is the game as xirwe are gamespy will denote it when long names are not avalible.

While you are here you may as well fill in the rest of the fields , they are mostly optional, You can fill in The  adminEmail field if you would like players to be able to contact you in case they need assistants or they want to contact you for any reason.  You can add a admin address here or a  AIM address or a msn messenger address is sometimes used   so they may  use instant messager to contact. Depending on how paranoid you are , You may consider making a separate email address for this purpose and not exposing your main email. and possible a Facebook account attachted to that adress etc

adminname – This feild  is generaly used to display the owners name , in the case somebody can contact the server owner , But it is generaly excepted that many people have used this field or a website address or a blog address.

MOTD line 1 – 4 – these fields are  a message that will display above the score board in the hud , It useull for a website url , or  some message o the day , If you use this field , make sure to enable showmotd

Alternate Master servers(optional)

To note are the new master server addresses , Open up the unreal.ini file  of the advanced option panel of the server ,and make sure these 2  alternative master servers  are in the list  in the serveractors. This step is not critical , But sometimes when the  gamespy or epic master server goes down no one can see your server , Many dedicated players have hosted masterservers for unreal , and these will help you be seen.

For 226 and 225 it should look like :

Nephthys.NptServerUplink MasterServerAddress=hyper.dnsalias.net MasterServerPort=27900
Nephthys.NptServerUplink MasterServerAddress=skwmaster.no-ip.org MasterServerPort=27900

For 227

IpServer.UdpServerUplink MasterServerAddress=hyper.dnsalias.net MasterServerPort=27900
IpServer.UdpServerUplink MasterServerAddress=skwmaster.no-ip.org MasterServerPort=27900

Netspeeds and Tickrates;

While you also here expand tcp/ip network play and find the tickrate and netspeeds .The defualt unreal installation assumes you use  a dialup connection, So these numbers need to be adjusted. You can use a fancy netspeed calculater if you know what you network throughput actually is.If you don’t want to do all the math for that. You can just enter some good numbers , assuming you have cable  or dsl.  Set maxclientrate to about 10000 – 20000 people recommend 10,000 .But alot of 227 clients seem to use 20,000 when they join so find a good number between those 2 yourself.  maxtickspersecond is largey dependent on you connection bandwidth , but it recommended to set this to somewhere between 10 – and 15. increasing your net speeds and tick rate can speed up downloads in some cases , but it will negativity effect the game play in game.

Try to Start your server!

Start unreal , Goto Muliplayer> Start new game , an select some game type and hit start  wait a minute or 2  then Goto the all servers tab in you server browser and see if your visable!

Now your server is visable to the world (Hopefully)  If not you need to check every thing i just said above intill it works.I know you are excited , Before you do anything serious , Its important to continue reading..

Hardware Considerations.

You need at least a basic high-speed home  cable connection. Preferably  higher tier then basic service. As you need more upload  bandwidth. Normal home internet upload speeds will be the killer here (The latency as well). If all you have is DSL or Dailup , Consider renting a server from a site like ultimategameservers.com It cheap, Only 8 or 9$ a month for 8 players . For that premium price you get Tier 1 bandwidth  , But you lose control of the advanced settings.  If your gonna Self  host you preferably need a dedicated machine , Or a multi core pc to host and play with the same PC any old crap pc can host a server for unreal ,A 1.3ghz win98 machine with 256mb ram  ‘Could’ work *, its not recommended.

*Depending on the version of unreal you wish to run , That machine may need to be running windows xp or above.

You need about  1GB of harddrive space for a basic unreal install ,If you gonna run custom maps or mods , Plan or needing 4 – 8 GB.If your name is Bob , or you edit maps and mess around a lot , Plan on needing about 10GB.  My unreal server install is about 9GB!   You should have 512MB – 1 GB of ram at a bare minimum on the server most people will recomend about 2 gb. Unreal can run with 256mb but its seriously not recommended. Bigger maps and  huge mods with tons of monsters  o even just adding a lot o skins to the server can eat up ram like candy.  I have 3 GB of ram on the PC I use to host , It’s not enough sometimes.

Picking A Unreal Version:

You need to decide if you want  to run 226, 225 or 227 , And weather you want RTNP support (Unrealgold) you need the version of your choice’s install disk.

226

Dispute retail unrealgold being the last offical release of unreal( 226f wasn’t made  to patch unrealgold) ,  It is one of the worst versions or servers compatibility wise to host with , When 226f came out it broke compatibility with 226b (Gold)  So if  you host with unreal227f  225 and 226b users cant join you.Users with 227 patch without unrealgold support cant join your server. I would recomend staying away from 226 If at all possible. If you absolutly must use gold use the retail version and dont patch it to 226f  so that the migatory of the retail players can still join you server. Oh yeah I forgot the fact that  there is also the anthology version , Witch also cant join 226 or something…yeah stay away from 226..

edit: as many have piointed out and casey explained , you CAN use 226b to host if you disable upak , but 226f may not be able to join you. ( so we still have issues again )

225

225 is the common version of servers since all future versions after it were  built against it , So any version ever made after 225 can join a 225 server** 225 isnt terrible stable if abused , Dosnt support upak or rtnp , but there are workarounds for most of that.  225 obviosly dosnt support the features in 227 , so you cant play new 227 maps. From a technical standpoint level summary wasnt introduced intill 226 , So you will need to hex edit or convert maps made after 225 to work in225  It also requires extra security mods to be safe for online hosting, People can exploit you server or crash it if it not protected.That why i said you needed to continue reading. ** certain native mod issues

227

http://www.oldunreal.com

227 is the offical community version patch. Currently if you run a 227 server 226F cant join you but the release of  227I will fix this. This patch added hundreds of bug fixes an many awsome enhancements. 227 requires windows xp or later to run . When 227I come out this is you best choice without any doubts. 227 supports both Unrealgold , and non gold versions. If you patch your server to unrealgold version you can also use rtnp maps and content , but at the trade off that people who dont  own rtnp cant join your server.  So you need to decide about that.. You have a lot more options later for mods if you use 227 now.

unreal lets you use super fast redirects so your client can download up to 10X as fast as 225 here’s a post on how to setup a free redirect server

Thinking about mods  before deciding on a server version

If you choose 225 , You cant use rtnp maps. They used native upak code that wasnt built intill 226 came out. If you want those weaposn of maps , You need to use one of the many rtnp conversion like thsrtnp. also if any custom maps you use use those weapons of actors , They wont work without editing thoe maps..If you used 225 or 226 , You cant use mods that use emitters , skeletal meshes , static meshes , dynamic zones or any 227 features. so that great mod that just came out , may not work with your server.

————

Gametypes and specifics

You need to decide on the gametype ,Generaly you can only use one gametype at once. You can have multiple gametypes installed onto the server , and you can switch mid game  but that not a typical application.You can use voting handler to allow you players to vote what gametype they want to play . but for the immediate purpose of this article we will concentrate on running a single game type on a single server.

This may end up conflicting with you choice or server version as  some gametypes like mcoop only support 225 or 226.If you already have one in mind then you can jump to that section.If not you  need to decide what you doing this for and what your options are. I cant cover the details and issues with every single version of every single gametype , as this is only to help up get up and running.

Coop Game  Types

unrealshare.coopgame

unrealshare.coop is the basic coop gametype in unreal.  this is ‘fine’ to play for 5 minutes  but offers no usefull features by istelf.
Not recommended if your serious about running a server , this gametype screems you just bought the game and you have no idea what your doing.
compatibility : all versions , it part of the original unreal game.

Installing Jcoopz1

jcoopz1 is  a feature packed coop game subclass. if offers alot of features in a small package. Since I cant acully dicuss the featues here without 7 more pages I will jump to installation

This aassumes you have a version of unreal installed already.

  • Copy Jcoopz1.int , Jcoopz1.u , Jcoopz1grp.u Jcoopz1ntp.u  and Jcoopz1ssf.u  Into your unreal/system folder.
  • If you are going to run  server as 226 or 225 ;
    If you plan on using 227 , Skip this step.

Open the archive Nephthys_v1.5a018_inst.zip and run the Nephthys_v1.5a018_inst.exe installer.
Press next ,  Argree to the terms of use , Select unreal ,   Then press next then next  twice , Intill a path is requested. Browse to your unreal installation click next ,. It will then ask for a ini file, Leave it alone unless you plan to use a separate ini file for your server. Select the unreal version you choose to install.. Click install…

  • Start up unreal, Open the console , Type preferences . Hit enter.
    Something that looks like this will open. Locate the section ‘Gametypes’ expand it to reveal “Advanced coop play jcoopz1” then find the child section “Gamecontrol” from there find the section “Primaryadmin” Here is where you will setup  the admin password for your server. Fill out the field  ‘adminpassword‘ with a pasword keep in mind this is a game server , and not you bank account , You can use a 3 charactor password if you want , The odds of someone brute forcing is is nill since then get like 3 attemps to guess it. I highlighted the field in red for you.Set the value benabled to True so we can use this password. For normal users , ‘bauthenticate’ should be set to False .
    You dont need to edit any of the other fields ,The game will fill them out when the admin logs in for the first time.

    Ops -I left some passwords in there. lol

  • At  this point you can start the  server one of  3 ways.

    In Game
    – You can start a server in the game by going to Multiplayer      > Start game > and selecting ‘Jcoopz1’ select the option ‘Start dedicated server‘. Unreal will close , And Your server will start in the background. Launching from In game is the crappy way to do it as it takes about 15 keyboard presses , and In certain cases this can have issues and crash.
  • Using command line– This is the ideal way , You can create a shortcut to Unreal.exe and edit the parameters. Add this to the target field ”  Nyleve.unr?Game=JCoopZ1.JCoopZGame?Difficulty=3 -server ” now you can click on this shortcut and your server will start in the background..
  • Using a batch file – Batch files are like mini programs , You create a basic control structure and it can do a task. I cant get into the depth of what a batch files is here , But I will explain how to use one.The benefit of using a batch file to launch your server is that if the server crashes or closes down , The batch file will auto restart it. It can also save the  log on crash so we can debug the next time.
    Here is a link to a example batch file guard.zip

    Using UCC
    – you can also start a server using UCC , In a way similar to a batch file. This way , Starts unreal in a dos window , With no GUI or options  this allows unreal server to have a even smaller footprint.. “ucc.exe -server nyleve.unr?Game=JCoopZ1.JCoopZGame?Difficulty=3”
  • To login as admin  in jcoopz , you use’ adminlogin password’ in the game.You can also login with join with password (226 or 227) or by commandline.

    ———–Installing XcoopXcoop is  a open source  coop game subclass. I covered  the features of xcoop in my xcoop review last week so I Will jump to installationThis assumes you have a version or unreal installed already.

    • Copy Ccoop.int ,Xcoop.u , Xcoop.ini, Datastructures.u  and Xcoopdata.ini  into your unreal/system folder. Copy  XCoopTextures.utx into unreal/texture Copy Xcoopsounds.uax into the unreal/sounds folder
    • if you are going to run  server as 226 or 225  do the folloing , If you plan on using 227 , Skip this step.
      download  and open the archive Nephthys and run the Nephthys_v1.5a018 installer.

    Press next ,  Agree to the terms of use ,Sselect Unreal ,   Then press next then next  twice , Intill a path is requested. Browse to your Unreal installation and Click Next. It will then ask for a ini file,  leave it alone unless you plan to use a separate ini file for your server.Select the Unreal version you choose to install..Click install…

    • Start up unreal open the console , Type preferences . Hit Enter.
      locate the section ‘Gametypes’ expand it to reveal “Xcoop” then find the child section “Logincontrol” here is where you will setup  the admin password for your server.
      Fill out the fields   ‘0‘  with a primary password and ‘1‘ as a differnt secondary admin password.
    • At  this point you can start the  server one of  3 ways.
    • In Game– You can start a server in the game by going to Multiplayer    >Start game > and selecting XCOOP select the option ‘Start Dedicated Server‘.Unreal will close and  Your server will start in the background..

    • Using Command line– This is the ideal way , You can create a shortcut to unreal.exe and edit the parameters. Add this to the target field “Nyleve.unr?Game=xcoop.xcoop?Difficulty=3 -server” now you can click on this shortcut and your server will start in the background..
    • Using a Batch File; Batch files are like mini programs , You create a basic control structure and it can do a task. I cant get into the depth of what  a batch file is here , But i will explain how to use one. The benefit of using a batch file to launch your server is that if the server crashes or closes down , The batch file will auto restart it.here is a link to a example batchfile Guard.zip
    • Using UCC –You can also start a server using UCC , In a way similar to a batch file. This way , Starts unreal in a dos window , With no GUI or options  this allows unreal server to have a even smaller footprint.. “ucc.exe -server nyleve.unr?Game=xcoop.xcoop?Difficulty=3”
    • To login as admin in xcoop you use ‘login password’ Xcoop and 225 dosnt support loggining in  password  other then the primary in the commandline
      Installing other gametypesI cant possibly discuss every since game type thats currently available even tho I want to, I am hoping after you understand the basics of how these 2 game types  above operate , Are Installed and how they are configured. That you may be able to help yourself  to install any game type available it basically the same.The game type you plan on installing will have it own instructions and you should most definitly read them as well.

    Is the server running ?  

  • OK you got you server running but where is it I dont see it! The unreal dedicated server  doesn’t have a GUI Per-Se when you start a server a icon is added to your system tray .If you don’t see in there and you know you followed all the directions,You need to open the unreal.log or server.log and trace the error out by reading the information , If all it done properly you should have a running server and no problems so far.


The server’s settings and options can be accessed by right clicking the unreal icon that in the system tray ,  and selecting a option. In this case the server console is selected and shown as a text based window.This basicly shows you in realtime whats happening , It will show Connections , downloads,  Chat , Errors , Spawns , and other Useful Information to the server owner.You cant use any cheats or many commands in the server windows, But you can click the window and type commands and they will show at the bottom of the screen , and you can press enter to execute them.You cant use “player” commands only game type specific or dev commands , Like ‘mem stat’ , or ‘exit’ , You can use say , If you want to talk to the server players. Gamtypes offer there own set of command to be use in this console , You need to refer to the game type’s instruction for thos commands and there uses.

Selecting the advanced options  will open up the  same menu as preferences did where you can edit spawn rates Serverpackages, and server settings on the fly. Most taking effect imeadiatly or after a Level Switch..Take some time to explore the advanced options and tinker with the settings.

Adding mods and Server packages

On a Dedicated Server , Only the files that are in use are sent to the clients or players. The Gametype and Current map  is always sent to the clients,  Along with any files that are attached to the game type itself like Textures or Sounds , the Exception to this is that some things are Dynamicly loaded.

Weapon mods are dynamicly loaded or replaced , Therefore they are not sent to clients themselves. For the client to be able to use or see the weapon on there end the mod must be in the server packages so it knows to send them the files they need.The map itself can load these file if thay are placed into he map, otherwise you need to add them to the packages.

Some mods that run Server-Side don’t need to be added to the Server Packages, as a rule if the mod has no phyisical obejcts IE (not any  Texture , Sounds , Models , or a weapon or another displayable actor)  The client dosnt need to know about it. So this means any custom weapons or textures  or Mutators that Contain custom models , Pawns or Skins need to be in the Server Packages,

You can edit the server packages 2 ways , In the servers advanced options user   game engine setting > server packages  or in the unreal.ini file manually.Make very sure you don’t load blank lines or incorrect file names , As  in 225 and 226 this will halt the server and exit and you will get annoyed having to troubleshoot you mistake latter manually editing a unreal.ini file in notepad.You need to restart the server for server package changes to take effect , Unless your using 227g or later.

Security concerns.

Every game has asshats and trolls that want only to make you and your players  lives hell. They spam chat , blow themselvess up continuosly , teamkill, hack your servers, cheat or lag you game with rapid joins and downloads.

Most game types have built in banning capabilities, If your game type doesn’t support these features or you want low level control over your connections, both 225 and 227 have advanced ways to deny people from joining you server and ruining you fun and the fun of others.

225 and 226 only – Using Nephthy to block/ ban/ rate limit/ query ban.

Nephthys is a native  security mod made for the older versions of unreal that has so many features that you need to Read the full documentatione if you want a better understaning . Nephthys has more options and features then the 227 stack has and can log EVERYTHING related to the players connection.

If at anytime while in game you want to see the current open connection to your server type ‘admin npt status‘ in the console it will dump every connected user inormation. You can kick players or downloaders  by ip adress as well by using “npt kick 1.1.1.1”

You can ban a  ip or range by ip adress in the server console easily
simple  –  “npt ban new ip= 1.1.1.1 bstealth=0  Message=asshat” Would ban the ip 1.1.1 from joining, and when he connects he would see the message a’ssha’t. If you would likeit  the an to be invisible, ie a server quary ban , you can use “npt ban new ip= 1.1.1.1 bstealth=1”  this way if the player opened the server browser it wont even show you server in the list to him.

If you worrry about cheats/radars/aimbots  online , You can look into psync , or one o the other package checkers , I am not getting into that here.

227

227 uses a entirely diffident network system so you need to use 227’s commands to do this , If your running 227 as server and 227 as your client , You can hit esc , goto tools > admin menu and kick/ban players in a gui.

if your in  the server console , You can use  ‘ugetconnections‘ to display connected players , and use ‘ubanid’ or ‘ukickid‘ note that you cant kick downloaders since they have no id.

You can find the documentation here for that but its pretty sparse.

If you worrry about cheats/radars/aimbots  online you can use unrealintegrely anticheat thats built into unreal 227 , make sure to read and understand the limitations and issuess with  integerity anticheat beore you choose to do this. it can be picky about packages  and only works with 227 clients.

Conclusion

Well I hope this helps someone in case I ever decide to quit hosting unreal servers  one day.I have covered alot of parts here that other tutorials didnt even touch on,I wish you the best on your endeavors to host your own unreal server.

Mabye I can talk about mods  or  messing with gametype-generic settings such as respawn rate and teams and features along with  getting advanced things like voting handlers to work in a seprate post this one is already 10 pages long..

Advertisements
 
3 Comments

Posted by on March 25, 2012 in Uncategorized

 

3 responses to “How to host a unreal server (The semi-ultimate Guide)

  1. ronaldomagalhaes

    March 27, 2012 at 11:50 pm

    Very good, clarified the doubts of many people, congratulations.

     
  2. Anonymous

    May 8, 2015 at 2:06 am

    didn’t work

     
  3. Anonymous

    July 23, 2017 at 12:36 pm

    good job !

     

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s