Mordhau
 CrimsonKing
Knight
  • Likes received 264
  • Date joined 19 Oct '16
  • Last seen 1 Jan

Private Message

Knight 123 262
  • 9
  • 13 Sep '17
 Vin¢

If you wish to host a dedicated server but don't want to do everything manually, I would highly recommend renting a SimRai server. However, by renting servers yourself you can achieve arguably better performance for a significantly reduced cost, plus greater flexibility for configuration options as and when they become available in the future. This guide acts as a quick tutorial and reference for anybody trying to manually set up a dedicated server for Mordhau. Specifically, I will be focusing on creating an Ubuntu Linux server, but any other distro should work too, perhaps with minor adjustments to the commands shown here.

If you're intent on using Windows for whatever reason then you can find a step-by-step guide here which explains how to do everything. Credit goes to Atropis Orbis for that.

This guide also assumes a basic understanding of how to use the command line. As a prerequisite you should have a capable server to which you have root access (e.g via SSH). If you're unsure about what hardware to choose I would suggest at least 1GB of RAM and at least 6GB of disk space (though memory usage may vary depending on how you configure your game server).

As a general overview, we need to do three things:

  • Install the game server application from steam using SteamCMD
  • Install any dependencies (i.e libraries) that the server needs
  • Configure and run the server

Installing the Game via SteamCMD

Let's start by installing SteamCMD. First, install the dependencies for SteamCMD:

$ sudo apt-get install lib32gcc1

As the root user, create a separate user as follows under which we will run the server. We do this as a security precaution: you should never run the server as root.

$ useradd -m steam

Now, we'll swap to the newly created account:

$ su - steam
# Or if you aren't currently logged in as root, use:
$ sudo -iu steam

Now, we can install SteamCMD. This installs it in the current directory:

$ curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

SteamCMD allows us to download and install the server and any updates that we may need at a later date. We'll create a simple SteamCMD script that we can run whenever we want to update our server. Create a file in the current directory with the following contents; I named mine update_mordhau.txt:

@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
force_install_dir ./mordhau
app_update 629800 validate
quit

As you can see, the command app_update 629800 is the one that installs the server executable, with 629800 being the Steam app ID we want to install (Mordhau Dedicated Server). We also ask SteamCMD to install Mordhau to the mordhau folder in the current directory.

Running the script for the first time will cause SteamCMD to download the contents of the server application to your computer entirely. Any subsequent runs of this script will simply check for an update and install it if available. We can run it with:

$ ./steamcmd.sh +login <your_username> <your_password> +runscript update_mordhau.txt

Make sure to replace <your_username> and <your_password> with your steam login information (you should omit the angle brackets). Here you may be asked to enter a code from the Steam Mobile Authenticator. Note that if you used a package manager to install SteamCMD, you may need to use simply steamcmd instead of ./steamcmd.sh.

This should initiate a fairly large download, so this may take a few minutes or hours depending on the network bandwidth of the server. Just remember to run the above command when you want to update your server to a new Mordhau patch.

See the SteamCMD documentation for more information on how to use SteamCMD.

Install Game Server Dependencies

At this point you should have all the required files to run the server in the mordhau folder. Unfortunately, we still need to install a few more things before we can start the server. If you try and run the server at this point, you'll get some errors relating to libraries not being found. We need to install these dependencies manually, so let's go ahead and do that. Note that the following is very distro-specific: you'll have to use your own intuition for which package is correct if you aren't using a distro that uses apt (or maybe search the comments for a list of library names for your specific package manager).

Using apt, you can run the following (you'll need root access for this, temporarily):

$ sudo apt-get install -y libfontconfig1 libpangocairo-1.0-0 libnss3 libgconf2-4 libxi6 libxcursor1 libxss1 libxcomposite1 libasound2 libxdamage1 libxtst6 libatk1.0-0 libxrandr2

Configuring and Running the Server

Finally, we can now start thinking about how we want to configure the server. First, navigate to the folder where Mordhau is installed. If you've been following along, this will mean simply running cd mordhau.

If you type ls, you will see a few folders. The server configuration files are stored in Mordhau/Saved/Config/LinuxServer. If you navigate there and see what files are there (cd Mordhau/Saved/Config/LinuxServer && ls) you will see a few .ini files. The one we will want to edit the most is Game.ini. So let's open up that file in your favourite command line text editor (you could also download the file, edit it on your host machine and upload it back - but editing it in place is much simpler). nano is one such simple text editor, so simply run: nano Game.ini.

You should see something like this:

[/Script/Mordhau.MordhauGameSession]
MaxSlots=16
ServerName=
ServerPassword=
AdminPassword=
Admins=
BannedPlayers=

[/Script/Mordhau.MordhauGameMode]
MapRotation=SKM_Contraband
...
MapRotation=FFA_ThePit

Most fields here are self explanatory, but I'll explain them anyway. MaxSlots is the maximum number of players the server can facilitate. ServerName is the name of the server as it appears to players in the server browser. ServerPassword is the password you need to enter to join the server - if left blank then no password restrictions are imposed. AdminPassword is a password that can be used by players to log in as admin and do certain things such as change the map. Although it is currently left blank I would highly suggest adding one (even if you don't use it) since if somebody wants to use your server temporarily you can just give them the admin password and not have to do everything yourself. Admins is a list of SteamIDs of players that are to be permanent administrators. You can find a user's SteamID using a website such as steamid.io - you're looking for the 'steamID64' field. For example, to add me and GIRU as admins on your server, just write:

Admins=76561198120639625
Admins=76561198005392690

And no, that's not a mistake: you need to repeat the line if you want multiple users as permanent admininstrators. Using this, the players don't have to login with the admin password, as they are logged in automatically upon joining the server.

BannedPlayers is a list of blacklisted players that cannot join your server. You can add entries manually (with a similar syntax to the way you add admins).

Next, we see the MapRotation fields. When one map ends, the server loads the next entry in the MapRotation field. For example, if I just wanted Contraband Skirmish and Camp FFA (in that order), I'd write:

MapRotation=SKM_ContraBand
MapRotation=FFA_Camp

The map prefixes should be self-explanatory: SKM is Skirmish, FFA is FFA/Deathmatch, TDM is Team Deathmatch, etc.

Note that some people have reported issues with the Admins and MapRotation fields on the Windows dedicated server, saying that they simply don't work. If this is the case for you, try putting a '+' before each line that starts with Admins= or MapRotation= - this has fixed the issue for many. If you have any more information regarding this bug and how to fix it, please contact me so I can update the information here.

If you want to change the tickrate of your server (default is 30, 60 or 120 may improve gameplay), you need to edit the Engine.ini file in the same folder. Add the following:

[/Script/OnlineSubsystemUtils.IpNetDriver]
NetServerMaxTickRate=60

Having configured everything we want to configure, we can finally run the server. In the root of the mordhau folder, there should be a file called MordhauServer.sh - this is the script that actually runs the server. We can execute it with:

./MordhauServer.sh

After 15s or so, your server should be up and running. Make sure that port 15000 is reachable (as of patch #4) otherwise you won't be able to connect.

We've just run the shell script directly, but the problem with this is that it's tied to the current command line session - as soon as you close your SSH connection, the server will close too. We need to run it in the background, using this command:

nohup ./MordhauServer.sh &

Instead of displaying the output directly to your screen, this will write the server log to a file in the current directory named nohup.out. Type man nohup for more details on this behaviour. Alternatively you can use systemd to run your server in the background. See this link for more information.

When you want to shut down the server, you'll need to type ps -a (or ps -ax if you don't see it) and look for the process ID of the game server. Then, close it with kill <pid> where you replace <pid> with the process ID you just found.


Thanks for reading this guide. If you have any questions pertaining to information in this guide, you can ask in the comments here.

Count 53 97
  • 1
  • 14 Sep '17
 Shifty

I host a Dedicated Duels Server off a spare machine and the following is the use statistics for 10 concurrent players:

CPU: 10% usage (single core)
RAM: 500mb
DIsk: 40mb/s write (read negligible)
Net: 60kb/s up 30 kb/s down

Edit: @ 16 players the only change is:

Disk: 60mb/s (write)
Net: 100kb/s up 37kb/s down

The specs of my machine are:

OS: Win 7 64bit
CPU: i5 4690
RAM: 8GB DDR3
SSD: 120GB Kingston
Internet: 36/1

It was difficult for me to find useage statistics anywhere on the net so hopefully some people find this useful.

Duke 5562 13285
  • 14 Sep '17
 Jax — Community Manager

https://clips.twitch.tv/CogentArbitraryClipsdadNononoCat

riposte kicks
combo kicks
morph kicks

are all very powerful imo

Knight 152 100
  • 14 Sep '17
 Lilboots

You have to change the MaxPlayers in both
C:\Program Files (x86)\Steam\steamapps\common\Mordhau Dedicated Server\Mordhau\Config\DefaultGame
And
C:\Program Files (x86)\Steam\steamapps\common\Mordhau Dedicated Server\Engine\Config\BaseGame

Most cases your server will show still 16/16 slots in server Browser but will change as more people join, past the 16.
you will also notice when you press TAB in game it'll still show 16 players in the title details but is not the case.

King 8 14
  • 14 Sep '17
 Tree

On the map Contraband, if you bend forward into the walls of the pillars (atleast with max FoV), you can see through them to the other side.Hmm1.pngHmm2.pngHmm3.png

Knight 40 40
  • 13 Sep '17
 Madcat

Possible bug:
Health stops regenerating for a few seconds if you use emotes while wounded

Knight 1 1
  • 13 Sep '17
 +---__TNT__

When the dying animation play, the kill feed become all blurry and we can't see who kill us until the animation is done.

Knight 263 646
  • 13 Sep '17
 Yirtox

20170913174917_1.jpg
Blood through ceiling

52 40

@lash said:
I want to clarify the bug with movement.

Every time, when you are freshly spawned if you walk and press emote it will stop you, does not matter what emote.

Next time untill your death, you can press it while moving.

Can be reproduced by opening and closing the chat.

-open and close
-start moving
-press default x
//movement stopped

Knight 247 637
  • 13 Sep '17
 Mr_Obliviousness

When you die in third person, the camera teleports you to the middle of the map in spectating mode. Imo it would be cool to see your body fall over, but the camera moves the instant you die :/

Knight 60 111
  • 13 Sep '17
 420SmokePyro

When I partially cut off a head it tends to go "inside" the body and looks really weird.

20170913031753_1.jpg

20170913013646_1.jpg

Knight 399 873
  • 4
  • 13 Sep '17
 Alphonse

A few more.

Loading screens

  • Unreal Engine 4 music is too loud.

  • Triternion logo animation looks blurry even in 1080p (might be due to a video in a lower resolution).

UI / Menus / Controls (inside Settings)

  • For consistency's sake, the "Show Profile select" keybind should be changed to "Show Loadout select" (B is the default key) as different customizations are referred to as "loadouts" in the rest of the menus, and even when you press B while in game.

UI / Armory

  • If you click on the green + button or the Duplicate button, the game asks you to enter a name for the new loadout. If you leave empty and click Okay, nothing really happens. There should be some warning with some text like "Please enter a name or the loadout won't be saved" or something like that..

  • Very long loadout names spill horribly out of the bounds of the screen while inside the Armory section (doesn't occur in the Loadout select menu, inside armory or when pressing B ingame). Screenshot: https://imgur.com/LudTIjq
    Also, the arrow is hard to see if the loadout name is too long:
    spillout.jpg

UI / Armory / Armor loadout

  • Selecting some armor pieces disables other elements from other parts of your loadout (probably because the models would not mess well together or certain armor types only allow similar armor type parts in other places). These "rules" are not explained properly in the UI which might be confusing for newbies or people trying different loadouts. For example, picking up a Shirt (Torso), only lets you choose "Chain gloves" (Hands). If you change your Shirt to any medium armor, Hands will now allow a lot more customization options (Chainmail mittens, Gothic Gauntlets, etc.).

UI / Armory / Face sculpting

  • The UI is not very intuitive because not all sculpting groups can be rotated / scaled / moved equally. Some can only be rotated while others can be moved and scaled, but not rotated. This is kinda confusing.

  • Sometimes you will scroll up / down to pick different sculpting groups and you'll lose the "focus", meaning you won't be able to easily switch from, say the eyes area to the jaw areas. To reproduce:

1. place cursor on one of the eyelids and notice that the highlight is focused on that particular eyelid.
2. move cursor to jaw or chin, and notice that the highlight is now placed there.
3. go back to the eyelid level, scroll up to select a 3 or 4 times wider area and try to place cursor on the jaw / chin.
4. the area won't be highlighted nor responsive, so you'll have to scroll all the way down until the eyelid is selected to sculpt a different group.

Gameplay / Online play

  • Choosing a loadout won't load that specific loadout for some unknown reason. Instead I'll occasionally join the map with a naked weaponless dude (even though none of my loadouts has a naked weaponless dude in them).

  • Can't equip a shield + fisticuffs.

  • If you have a shield up and a throwable weapon on your right hand, you'll "holster" the shield the moment you throw your weapon (in both 1P and 3P). Not sure if this is a mechanics decision, but you can pick a shield (on your left hand) and have nothing on your right just fine, except after you throw said weapon.

Gameplay / Local play

  • Not enough bot names at this moment (if you spam 16 bots lots of them will have the exact same names and loadouts).
Count 53 97
  • 14 Sep '17
 Shifty

@CrimsonKing said:
I think he meant official duel servers, I heard there was talk of importing the duelyard map from chiv?
Can someone confirm?

Had a poke around the files today. Pretty sure that It will be very difficult to create a Duels style map without the sdk, as we [as far as I know] do not have access to any uncooked files.

Even simply adding a healing fountain to ThePit or Contraband would be a step in the right direction.

Knight 152 100
  • 14 Sep '17
 Lilboots

I don't find them to fast, I just find some of the windup phase animations to immediate. some are good, but repost upward strikes are the devil at the moment,

Knight 766 3329
  • 14 Sep '17
 Mittsies

@VampireDuck said:
I believe typing "m autoFTP 0" in the console

Actually it's "m.autoFTP 0" - with a period between m and autoFTP.

Knight 27 34
  • 13 Sep '17
 LegendaryZero

Ok, I figured it out. Left alt ONLY works with bound angle strike, but it wouldn't work if the said button is also bound to directional attack. Directional attack button override the angle strike.

So, you need to unbind LMB from directional strike if you want left alt to with right strike LMB.

So maybe it's a bug that the control menu let you to bound few different functions to single button? The control menu need to be able to automatically unbind button or warn you if you attempt to bind different action to an already used button.

Knight 7 5
  • 13 Sep '17
 Dire

Is it possible to get some FFA servers dedicated to duels? I think it would really help out with people wanting to get the hang of the new combat system and do some in depth testing of weapon/armor combos. I think if you just label the server as such and have a short description of what the server is for upon spawning in most people will just naturally follow the rules.

18 59
  • 13 Sep '17
 jest

Is there a list of server admin commands published anywhere?

I'd like to do some testing on a private server.
In particular:
How can I enable God mode (god doesn't work)?
Is there a way to set spawn time?

168 1700
  • 13 Sep '17
 elwebbaro — Art

We've got plans for a dynamic crosshair with an angle indicator, it just didn't make it in time.

Knight 162 231
  • 13 Sep '17
 Q

Is there a way to disable the crosshair, without disabling the entire HUD?