Difference between revisions of "Community Servers"
James tatum (talk | contribs) (→Server Admin Commands) |
James tatum (talk | contribs) (→Server Admin Commands) |
||
Line 199: | Line 199: | ||
All start with '''"Server."''' | All start with '''"Server."''' | ||
+ | |||
+ | '''Note:''' If confused about the references to team 0 and team 1: a quick way to find out which is which is by checking the team select menu. The team on the left is always team 0 and the team on the right is always team 1. | ||
{| class="wikitable" | {| class="wikitable" |
Revision as of 03:25, 13 September 2018
Contents
Preface
Server configuration is currently very early in development and as such you may encounter issues whilst setting everything up. We're also aware of features that are currently missing (such as an rcon-like remote admin tool). Please bear with us as we continue to develop the game as well as the community servers/tools. Currently you NEED to have the server exposed to the internet in order to connect to it. We are working on getting the LAN support up and running asap.
Downloading
Updated 16/03/2018
We now distribute our community servers via Steam. Please use the following command in steamcmd to download (includes both Windows + Linux builds):
app_install 805140
Setup
Linux
We have been testing our build on a machine running Ubuntu 17.04. Just copying the server files, make sure the server binary has the correct permissions and run the following with the launch parameters defined in the Launching section:
LinuxServer\Battalion\Binaries\Linux\BattalionServer
Windows
Just unpack/copy the server files to your desired location and run the following with the launch parameters defined in the Launching section:
WindowsServer\Battalion\Binaries\Win64\BattalionServer-Win64-Shipping.exe
Firewalls / Port Forwarding
At the moment the server will need four ports opened. As we develop new and interesting features over time it might be an idea to make sure that 5 ports from the base port are free.
When you specify -PORT on the server command line (see below) you are telling the server it is okay to listen on ports:
PORT | Game Port |
PORT+1 | Steam Connection Port |
PORT+2 | Unused for now |
PORT+3 | You can change the Query port as you see fit however we normally set it to PORT+3 |
Launching
Launching the server is currently not as intuitive as we'd like, however we would like to fix it up asap. We've included a script in both the Linux and Windows packages called Run.sh and Run.bat respectively. You should only need to edit the IP and port information in those scripts before running them to get your server up and running. For more advanced admins / integration engineers, below is an example of how we run our Linux version at the studio:
./Battalion/Binaries/Linux/BattalionServer /Game/Maps/Final_Maps/Derailed?Game=/Script/ShooterGame.BombGameMode?listen -broadcastip="<EXTERNAL_IP>" -PORT=<DESIRED_PORT> -QueryPort=<DESIRED_PORT + 3> -log -logfilesloc="/home/bulkbuild/logs" -userdir="/home/bulkbuild/userdir" -defgameini="/home/bulkbuild/DefaultGame.ini"
/Game/Maps/Final_Maps/Derailed?Game=/Script/ShooterGame.BombGameMode?listen | You are required to add a map & mode to launch the server with, but this is NOT USED to determine what map and mode list your server runs. |
-broadcastip="<EXTERNAL_IP>" | This is your internet facing address. This is used by others to connect to your server. |
-PORT=<DESIRED_PORT> | This is the "base port" of the server. Specifically, this is the one players use to connect to the game. |
-QueryPort=<DESIRED_PORT + 3> | This is the "Query port" which helps steam and other services query your server for its current state. |
-log | This can be used to allow messages to be printed to the system console. Right now there is only one or two messages regarding the anti-cheat initialization. |
-logfilesloc="/home/bulkbuild/logs" | This tells the server where to print out some logs to. Not required. |
-userdir="/home/bulkbuild/userdir" | This tells the server where to save out some files to. This is useful as this is where crash logs will be saved out to. |
-defgameini="/home/bulkbuild/DefaultGame.ini" | This is the key command for most admins as the file referenced here will configure all of the game and map/mode behavior of the server. |
Map and Mode Rotation
Under the heading
[/Script/ShooterGame.BattalionGameMode]
in the DefaultGame.ini supplied you will see the following:
+ModeRotation=/Script/ShooterGame.TDMGameMode |
+ModeRotation=/Script/ShooterGame.DOMGameMode |
+ModeRotation=/Script/ShooterGame.CTFGameMode |
+ModeRotation=/Script/ShooterGame.BombGameMode |
+MapRotation=Coastal |
+MapRotation=Derailed |
+MapRotation=Liberation |
+MapRotation=Manorhouse_V1 |
+MapRotation=Manorhouse_V2 |
+MapRotation=Battery |
+MapRotation=Outpost |
Add or remove maps/modes in this list to control your rotations. To have a random mix of maps and modes set the following variable to True: RandomMapRotationEnabled and it will choose a random mode every map change.
I Want the Aim Map!
Cool! Just add the following to the MapRotation:
+MapRotation=AimMap_01 |
Server + Game Configuration
Some basics customization:
In the DefaultGame.ini search for the heading
[/Script/ShooterGame.BattalionGameMode]
and you should see something like:
ServerName= | Change this to the name you want players to see your server as |
Password= | Add a password here if you want |
TeamNames="ALLIES" | Change the name of Team 1 |
TeamNames="AXIS" | Change the name of Team 2 |
PlayMode=Arcade | Set the play style of the server. Most admins will want "Arcade", however "Comp" and "Unranked" are also available. These configurations mirror the matchmaking options. |
StartType=ReadyUp | Here you set how the server will start. You can choose between: "ReadyUp" requires all players to ready up before the game begins, "PlayerCount" waits until the number of players is bigger or equal to the "RequiredPlayers" config variable, and "Skip" which will start the server immediately. |
bAdminCheatCmdsEnabled=True | Allows admins to use the following commands: Invulnerable, GiveWeapon, GiveGrenade, GiveSmokeGrenade and GiveAmmo. This is useful for tournaments to prevent admins from cheating but still allow them to pause, change team etc. |
Wartide specific
DropCardsOnDeath=True | Change this to False if you want to stop cards from being dropped when a player dies. |
ResetDeckEveryRound=False | Change this to True to reset the card pool / decks every round. |
There are quite a few variables to choose from and we will expand our documentation on all of them in the coming weeks. Each mode has its own section in the DefaultGame.ini and hopefully most of them are self explanatory.
Changing Loadouts
Locate the Loadouts directory inside the server package. Here you can create your own loadout json file (we would recommend duplicating one of the existing ones) and then reference the name inside the DefaultGame.ini.
This section will be filled out more thoroughly in the coming weeks.
Server Admin Commands
First you need to add your steam guid to the AdminSteamIDs array variable. This could look like:
+AdminSteamIDs="76561197976577178" |
See below for a mix of official and dev/debug commands. Not all commands are listed and those that are may or may not exist in future versions.
All start with "Server."
Note: If confused about the references to team 0 and team 1: a quick way to find out which is which is by checking the team select menu. The team on the left is always team 0 and the team on the right is always team 1.
Server.Config.<Config Name> <Desired Value> | Edit the value of any config variable. Note that some changes will not take effect immediately. | Server.Config.RoundTime 120 |
Server.Restart | Restarts the server with its current settings. | |
Server.Shutdown | Closes down the server. | |
Server.State <Desired State> | Transfers the server directly into the desired state. | Server.State SetupRound |
Server.Pause | Pauses the server's timer. Players are still allowed to move and interact in this time. Purely used to stop the game timer. | |
Server.EndRound | Ends the current round in a draw. | |
Server.WinRound | Wins the round for the player's team that typed the command. Note: Do not use when on the spectating team. | |
Server.LoseRound | Loses the round for the player's team that typed the command. Note: Do not use when on the spectating team. | |
Server.LoadNextGame | Loads the next game. The next game is defined in the Map and Mode rotation configs. | |
Server.ChangeMap.<Map Name> <Mode Name> | Loads the server into the selected map and mode. | Server.ChangeMap Liberation WRT |
Server.AutoBalance | This command instantly calls the server's autobalance function that is usually called between games. The server will attempt to balance the teams bases on players' current score. | |
Server.Announce <Message> | Gives every player in the game an on-screen message. | Server.Announce The server will be closing in 5 minutes. |
Server.Invulnerable | Makes the player that typed the command invulnerable. | |
Server.GiveWeapon <Weapon Name> <Skin ID> <Weapon Slot> | Give yourself a weapon with a specfic skin in a specific weapon slot. | Server.GiveWeapon Kar_98k -1 0 |
Server.GiveWeaponToPlayer <Weapon Name> <Skin ID> <Steam ID> <Weapon Slot> | Use another player's steam ID to give them a weapon in a specific weapon slot. | Server.GiveWeapon Kar_98k -1 12345678901234567 0 |
Server.GiveGrenade <Amount> | Give yourself an amount of frag grenades. | Server.GiveGrenade 50. |
Server.GiveSmokeGrenade <Amount> | Give yourself an amount of smoke grenades. | Server.GiveSmokeGrenade 50 |
Server.GiveGrenadeToPlayer <Steam ID> <Amount> | Use another player's steam ID to give them an amount of frag grenades. | Server.GiveGrenadeToPlayer 12345678901234567 1 |
Server.GiveSmokeGrenadeToPlayer <Steam ID> <Amount> | Use another player's steam ID to give them an amount of smoke grenades. | Server.GiveSmokeGrenadeToPlayer 12345678901234567 2 |
Server.GiveAmmo <Amount> | Give yourself an Amount of ammo. Note that this can only fill the ammo to the max ammo for that weapon. | Server.GiveAmmo 999 |
Server.DisconnectAll | Kick all connected clients from the server. | |
Server.AddBot <Amount> | Add an amount of bots to the server. The server will split the added bots 50/50 starting from the axis side. | Server.AddBot 10 |
Server.AddBot <Amount> <Team> | Add an amount of bots to a specific team. | Server.AddBots 5 0 |
Server.KillBots | Remove all bots from the server. Note that if the config variable FillEmptySlotsWithBots is true, this command will not remove the bots that are filling the empty slots on each team. | |
Server.KickPlayerByName <Name> | Kicks any players with the given name from the server, | Server.KickPlayerByName JohnSmith123 |
Server.KickPlayerBySteamID <Steam ID> | Kicks the player with the given steam ID from the server. | Server.KickPlayerBySteamID 12345678901234567 |
Server.ListPartyMembers | Lists your current party members in the console. | |
Server.ChangeToTeam <Team> | Changes you to a specific team. | Server.ChangeToTeam 0 |
Server.SwapSides | Swap the sides just like it would do at half time. | |
Server.SetTeamOneScore <Score> | Sets the score of team one. | Server.SetTeamOneScore 8 |
Server.SetTeamTwoScore <Score> | Sets the score of team two. | Server.SetTeamTwoScore 10 |
Cmd.GetPlayerStats will dump out the entire session player info.
Banning, Whitelists and Blacklists
Currently you can only kick players from your server and that's it. Although it's a fairly straightforward bit of work, we simply haven't had the time to implement a whitelist/blacklist feature yet. It's definitely coming soon!
Connecting
You can search the server browser for games (filters coming soon!) or you type the following:
connect <IP>:<PORT>
and if you have a password:
connect <IP>:<PORT> password <PASSWORD>
Tips + Troubleshooting
Your server will take at least one minute to appear in the list. Please make sure you wait for this period when troubleshooting issues.
Known Issues
Your server may disappear from the server list when it is transitioning to a new map. This is a known issue and will be fixed asap.