Angels Fall First

Angels Fall First

 This topic has been pinned, so it's probably important
[AFF]farseer  [developer] Oct 8, 2015 @ 3:33pm
Dedicated server setup
Dedicated server files - Steam desktop client
To download the dedicated server files from the Steam desktop client, simply go into the Library, switch from "ALL GAMES" to "TOOLS", and find "Angels Fall First Dedicated Server"

Dedicated server files - SteamCMD
SteamCMD is the light-weight steam client, meant for dedicated servers, automation, and other situations where the desktop client is inappropriate. There's a lot more documentation on SteamCMD right here, on the Valve Developer Community wiki ( Please read those instructions. When you get to the command to download/update the game, use this command to download the dedicated server files (validate is an optional keyword that also validates the server files to ensure integrity)

The dedicated server appid is 407480 so you would do
app_update 407480 validate
from within steamcmd.

The configuration files are found inside Angels Fall First Dedicated Server\AFFGame\Config.

If you want to host multiple servers from the same dedicate server installation, you can do as follows:

Run the dedicated server once, then shut it down. Commandline or anything like that doesn't matter, just run the .exe and shut it down. On that first run it'll create some PCServer-AFFgame.ini etc files (about 4 of them). Copy THOSE new .ini files into a subdirectory in your AFFGame\Config directory (e.g. copy those .ini files into Angels Fall First Dedicated Server\AFFGame\Config\SpaceServer ). To make the server instance use the config subdirectory you have to run it with -configsubdir=yoursubdirname in the commandline.

PCServer-AFFGame.ini \ DefaultGame.ini

In here you will find the section [AFFGame.AFFGameReplicationInfo]
here you can set things like server name and server description:

MessageOfTheDay=Welcome to an AFF Server!
ServerName=AFF Server
ServerDescription=this is a description

In the section [UTGame.UTGame] you can set up the server mapcycle by adding the line:

You can find the map file names simply by looking in the Angels Fall First\AFFGame\CookedPC\Maps directory, here are some examples:

---Ground maps ---

---Space maps ---

PCServer-AFFEngine.ini \ DefaultEngine.ini

If you wish to alter the ports that the game listens on you need to edit these files
In the [[URL]] section you set the main port people will connect on:


To adjust the steam query port, search for the section:

and update QueryPort=27015 as needed

The executable is found at Binaries\Win64\AFFGameServer.exe. To run it, create a shortcut, batch file, or whatever other link to the executable and make it look like:

AFFGameServer.exe MAP_NAME -seekfreeloadingserver

You can add a number of additional commands, however only -seekfreeloadingserver is mandatory.

  • -multihome=IP_ADDRESS -- Allows you to bind to a different IP address. (DO NOT USE unless you actually need it!)
  • -Port=#### -- Changes the port the server uses
  • -log=DIR_NAME\LOG_NAME.log -- Save log files into subdirectory DIR_NAME within the log directory
  • -configsubdir=DIR_NAME – Load config files from subdirectory DIR_NAME within the config directory

These are standard commandline arguments. However you can also use a variety of game options - those are appended to the initial map name and separated with ?

  • NumPlay=<0-64> -- sets the minimum number of bodies that the game will be filled with. Basically if you set that to 16, the game will make sure there are always at least 8 people on each team. If there's not enough players to meet that requirement, bots will join the team
  • MaxPlayers=<2-64> -- sets how many players at most can join the game
  • BalanceBots=<true, false> -- adds bots to make the teams equal in size. Adds bots even above the NumPlay number if there are more players on the opposing team.
  • AILevel=<1-5> -- difficulty level of bots
  • BriefingTime=<0-99999...> -- sets the duration of the briefing phase (in seconds). 0 will skip the briefing phase entirely.
  • RandomCommander=<true, false> -- if set to true, skips the commander selection at the start of the match and automatically assigns command to milnet AI
  • RedStartingTickets=<10-99999...> -- tickets for the ULA team
  • BlueStartingTickets=<10-99999...> -- tickets for the AIA team
  • FriendlyFire<0-100> -- will enable a percentage of friendly fire. Warning, not tested much!

So for instance, your target may look like:

AFFGameServer.exe AFF-Ixion?GamePassword=superpassword?numplay=32?BalanceBots=true?briefingtime=60 -log=SpaceServer\server.log -configsubdir=SpaceServer -seekfreeloadingserver

Obviously the ports specified in the Port and QueryPort properties have to be forwarded to the hosting machine on the router if the server is behind one. AFF has some degree of UPNP functionality built in so it may be able to forward the ports by itself - but UPNP isn't the most universal solution, it won't work on every router. So you may have to forward the ports manually in your router's control panel.
Last edited by [AFF]farseer; Oct 6, 2018 @ 1:24pm
< >
Showing 1-4 of 4 comments
[AFF]farseer  [developer] Oct 8, 2015 @ 3:36pm 
Server can currently be administrated from within the game using some of the commands that are pretty much common to any UE3 game:

Press the [tab] or [~] key to bring up the console.

To log in as an admin
AdminLogin <youradminpassword> (eg: adminlogin password1)

It will give you a positive feedback that you've logged in as the server administrator if it worked.

To change the map
AdminChangeMap <mapname> (eg: adminchangemap aff-errah)

This will instantly change the map.

To kick a player
AdminKick <playername>

To ban a player
AdminKickBan <playername>
Last edited by [AFF]farseer; Jun 12, 2016 @ 5:51pm
gilliesmonster  [developer] Nov 21, 2015 @ 4:52pm 
Just as an update because I can't edit the existing post :D
The commandline we use for getting \ updating our dedicated server from steamcmd is along the lines of
steamcmd +login anonymous +force_install_dir C:\YourFolderHere +app_update 407480 -beta default +quit

-beta default will just grab the current public version
Last edited by gilliesmonster; Nov 21, 2015 @ 4:53pm
[AFF]farseer  [developer] Jun 12, 2016 @ 5:53pm 
Updated with some really valuable hints from Fez's guide.
[AFF]Sudazima  [developer] Apr 16, 2018 @ 12:31pm 
If you need help you can go to our dedicated discord channel at
< >
Showing 1-4 of 4 comments
Per page: 15 30 50