Mordhau Wiki
Advertisement

Welcome, below you will find information on how to host a Mordhau dedicated server on Linux and Windows.

While the following guides and information tries to be as helpful as possible, you can also find additional resources and assistance over on the Mordhau Server Owner's Discord

Much of this information assumes that you are trying to host a server yourself, either on a local machine within your home network, or on a VPS or Dedicated server that you have rented. There is also a list of Dedicated Game Server Providers who offer their services to set up a server that can be managed more easily at an additional cost, usually through a website control panel.

There is currently no option available in-game to host a private server that other players can join, meaning you will have to either attempt to host a server yourself using one of the following setup guides, or through one of the external hosting services mentioned above.

At this time, there are currently no options to host private servers for Console players. There is also not a Dedicated server tool available on the Epic Game Store, but servers set up through the methods below will work for both Steam and Epic players.

Additional Guides[ | ]

Windows Server[ | ]

Linux Server[ | ]

General[ | ]

Ports[ | ]

Please note that the default server ports are also used as the default ports for the Game client, so if you are running a server from the same machine you intend to play on, you will HAVE to change the default ports to ones that are unused.

Name Default Type Description
Server Port 7777 TCP/UDP Required. The main game port, via which most player traffic will occur
RCON Port 7778 TCP Used for RCON clients/bots
Beacon Port 15000 TCP/UDP Used for connecting players to reserve a slot
Query Port 27015 TCP/UDP Used for the server browser to query details of the server

To run multiple server instances, all of the ports for each server must be unique per instance. These ports can be changed via launch parameters (detailed below).

These ports must be open in your firewall, and for home routers the ports must also be forwarded to your local machine. For more specific Router guides you may need to search for documentation for your particular model of router, or check https://portforward.com/mordhau-server/

Launch Parameters[ | ]

If you are launching via Steam, you can set the following into the Launch parameters under the General tab of the properties for the Server tool. Otherwise, these could be set within the windows shortcut, batch file, bash script, or directly from the command line when the server is launched. Tools such as WindowsGSM or LinuxGSM may provide separate config files to allow you to specify these.

Some external server hosts may let you modify these values from their website control panel, if they do not, you may need to contact them directly to have these changed.

Parameter Description
mapname If set, it must be the first launch parameter. Specifies the default map to load when the server starts.
-log Outputs the server log in real-time when launched
-Port=XXXX Specifies the Server port
-RconPort=XXXXX Specifies the RCON Port
-BeaconPort=XXXXX Specifies the Beacon Port
-QueryPort=XXXXX Specifies the Query port

The following launch parameters should only be used if you have a specific need for them:

Parameter Description
-ENGINEINI="path/to/file.ini" Can be used to specify a full path to an Engine.ini file
-GAMEINI="path/to/file.ini" Can be used to specify a full path to a Game.ini file
-MULTIHOME=<IP Address> Specifies the exact IP address the server should bind to if there are multiple

Server Configuration[ | ]

There are two main configuration files for a Mordhau server called Engine.ini and Game.ini, and the folder they are located in may differ depending on the method you used to install the server, or whether you are using an external game server hosting service.

If you are not self-hosting and instead making use of external host, they may provide either a website URL to manage the configuration, or may provide an FTP account to allow you to access and edit the files.

For more a more specific breakdown of individual settings and folder paths, please see the Server Configuration guide.

General Commands[ | ]

These can be issued by all players and do not require Admin on the server, but are otherwise also useful commands for server administration.

Command Description
LookupPlayer <SteamID/PlayfabID> Returns all relevant IDs known about a player account from Playfab.
CopyID <SessionID> Copies the player's PlayfabID into your Clipboard. You are always SessionID 1
PlayerList Shows all players on the servers, their SessionID on that server, as well as their PlayfabID.
VoteKick <Name/PlayfabID/SessionID> Initiates a votekick against a given player.
CancelVotekick Cancels your own currently active votekick.

Admin Commands[ | ]

These commands only work for Admins on servers, or on Local matches. These must be issued through the Console in-game, default is the ` key, though you can rebind this key to one more accessible through the in-game Key bindings setting "Show Console". Double-tapping this key bind will open the console fully.

Command Description
AdminList Displays a list of all current server admins.
AddAdmin <PlayfabID/SessionID> Adds an admin to the server (can be used by any admin, be warned)
RemoveAdmin <PlayfabID/SesssionID> Removes an admin from the server (can be used by any admin, be warned)
BanList Shows all active bans on the server.
Ban <PlayfabID/SessionID> <duration> <reason> Applies a ban from the server.
Unban <PlayfabID> Removes a ban from the server.
MuteList Shows all active mutes on the server.
Mute <PlayfabID/SessionID> <duration> Apples a chat mute, preventing that player from talking. A timer will appear instead of the chat box to let the player know how long is left on their mute.
Unmute <PlayfabID/SessionID> Removes a chat mute
Kick <PlayfabID/SessionID> <reason> Removes a player from the server, but does not prevent them from rejoining.
CancelVotekick Cancels any currently running votekicks on the server. When not admin, it only cancels your own.
ChangeLevel <Map Name> Changes the current map to the specied, see Server Map Names for a list of suitable official maps. Changing to an invalid map name may cause players to disconnect.
AddBots <Integer> Adds the specified number of bots to the server, appearance/weapons will be entirely random.
RemoveBots <Integer> Removes the specified number of bots from the server.
AddBotsTeam <Team> <Integer> Adds the specified number of bots to a Team. 0 for Red team, 1 for Blue Team.
RemoveBotsTeam <Team> <Integer> Removes the specified number of bots from a Team. 0 for Red team, 1 for Blue Team.
ToggleDamage Disables damage for all players and bots.
ToggleStamina Disables stamina usage for all players and bots.

Slomo <Value>

Slows down time for all players. 1 = 100%, 0.5 = 50%. Can be set to higher amounts to speed up time, but be wary of setting too high.

ParryThis

Spawns a 1411 into one of your empty inventory slots. Cannot be dropped, reloads at an ammo box.

GiveHorse

Spawns a Horse at your current location, if there is available space.

GiveHog

Spawns a Hog at your current location, if there is available space.

Horsgor

Spawns a Camel at your current location, if there is available space.

GiveCata

Spawns a Catapult at your current location, if there is available space. This catapult is a variant and may behave differently.

GiveBlunderbuss

Spawns a Blunderbuss with 120 ammo. Note that the weapon will currently drop if you are hit, or when you are killed.

PlayerStats

Outputs a list of all players showing their Levels and Duel/Teamfight MMR Rating

ShowAuthTraces 1

Displays the authoritive Server-side tracers, which may differ from client-side tracers.

m.ShowServerStats 1

Reveals the min/avg/max tickrate of the server, can be useful to identify whether the server is struggling with performance.

Chat Commands[ | ]

Chat commands have to be issued within the chat box itself, prefixed with a forward slash / .

Admins[ | ]

Requires bAllowAdminChat set to True, which is the default. See the Server Configuration page for how to change this setting.

Command Description

/aserver <Message>

Sends a Message as Server to All

/achat <Message>

Admin Internal chat (Only Admins on the same server will see this messages)

/announce <Duration> <Message>

Sends a Popup-Message to everyone for the given duration (Must be between 3-30 [incl.] seconds)

/apopup <Duration> <PlayfabID/Name> <Message>

Sends a Popup-Message to a specific Player for the given duration (Must be between 3-30 [incl.] seconds)

/asay <Message>

Sends a Message as Admin to all Players (Highlighted with ADMIN Tag and purple name)

/awhisper <PlayfabID/Name> <Message>

Sends a Message as Admin to a specific Player (Highlighted with ADMIN Tag and purple name)

Players[ | ]

Requires bAllowWhisperChat set to True, which is False by default. See the Server Configuration page for how to change this setting.

Command Description

/whisper <PlayfabID/Name> <Message>

Sends a Message to a specific Player

General[ | ]

Command Description

/help

Shows all available Chat commands

RCON[ | ]

Bots & Tools[ | ]

Mordhau uses the Source Engine RCON protocol, and should work with most RCON tools that support the Source RCON protocol.

Here a few examples of tools specifically for use with Mordhau:

Broadcasts[ | ]

Broadcasts are messages that the game server can send out to RCON clients

There are currently 6 supported broadcast channels that can be used:

  • Chat: Connected clients will receive the chat feed
  • Login: This will inform clients when a player logs in or out
  • Matchstate: Informs clients when the match is starting or ending (may add more later)
  • Scorefeed: Notifies clients when scores change (both player and team)
  • Killfeed: Notifies clients when a player is killed
  • Custom: A customizable channel that modders can use to broadcast custom information

Server-side mods can be used to extend the information sent through each of these channels.

In order to begin listening to a channel, use the 'listen' command: e.g. "listen chat start" would start listening for chat messages being broadcasted

You can set channels that new connecting clients will listen to by default by adding this to Game.ini:

[Rcon]
ListeningToByDefault=InsertTypeOfBroadcastHere
ListeningToByDefault=chat
ListeningToByDefault=custom

 

See the Server Configuration page for more details on how to configure RCON.

Commands[ | ]

Command Description

help

Provides a list of these commands.

alive

Prevents the connection from being timed out due to inactivity. Only usually necessary if you are not listening to any broadcasts (see above), or the server has been inactive for too long.

listen <Type> <Start/Stop>

This command will allow you to toggle listening for broadcasted data from the server. Supported types: all login, matchstate, killfeed, scorefeed, chat

listenstatus

Retrieve a list of what types of broadcasts you are listening for

adminlist

Displays a list of PlayfabID's for all current admins

banlist

Displays a list of PlayfabID's for all current bans and their duration

mutelist

Displays a list of PlayfabID's for all current mutes and their duration

playerlist

Displays a list of PlayfabID's for all players on the server, displaying their name, ping, and team (if applicable).

maplist

Displays a list of all of the current maps in the map rotation, as well as their ArrayIndex.

addmap <MapName> <ArrayIndex> <UpdateConfig>

Adds a map to the map rotation. For MapName see Server Map Names. ArrayIndex would be the position you wish to insert the map (see the ArrayIndex from maplist), you can set this to 0 to place at the top. UpdateConfig is a boolean, setting to True would save the change to the Game.ini file, False would hold it in memory only.

removemap <MapName> <UpdateConfig>

Removes a map from the map rotation. See the maplist command for the valid map name to use. UpdateConfig is a boolean, setting to True would save the change to the Game.ini file, False would hold it in memory only.

addadmin <PlayerName/PlayfabID>

Adds a player or PlayfabID to the list of admins.

removeadmin <PlayerName/PlayfabID>

Remove a player or PlayfabID from the list of admins.

addbots <Amount> <Team>

Adds the specified amount of bots to the server. The team is 0 by default for non-team modes, otherwise 0 for the Red team, and 1 for the Blue Team.

removebots <Amount> <Team>

Removes the specified amount of bots from the server. The team is 0 by default for non-team modes, otherwise 0 for the Red team, and 1 for the Blue Team.

changelevel <MapName>

Changes the current map to the specified Map. For a list of valid maps see Server Map Names.

say <Message>

Send a generic message as the server

customsay <Message> <MessageType>

Currently disabled/non-functional.

string <String>

Used for modding.

event <EventName>

Used for modding.

spawnserveractor <ActorPath> <Transform>

Used for modding.

kick <PlayerName/PlayfabID> <Reason>

Kicks the specified player or PlayfabID for the given reason. Player name can only be used if the player is currently on the server.

ban <PlayerName/PlayfabID> <Reason> <Duration>

Bans the specified player or PlayfabID for the given reason and duration. Duration must be an integer, in minutes. Player name can only be used if the player is currently on the server.

unban <PlayFabID>

Unbans a specified PlayfabID.

mute <PlayerName/PlayfabID> <Duration>

Mutes the specified player or PlayfabID for the given duration. Duration must be an integer, in minutes. Player name can only be used if the player is currently on the server.

unmute <PlayFabID>

Unmutes a specified PlayfabID.

scoreboard

Displays the current scoreboard on the server. Output is as follows: PLAYFABID, NAME, TEAM (0 for Red or No Team, 1 for Blue -1 for spectator), LEVEL/MMR (0 for unranked or bot), SCORE, KILLS, DEATHS, ASSISTS

info

Displays the current server info. HostName, ServerName, Version, GameMode and Map.

stats

Returns server performance statistics - minimum, average and maximum tick rate

writetoconsole <Message>

Displays a message in the console, that won't be seen by players.

changeteam <PlayerName/PlayfabID> <Team>

Changes the team of the specified Player or PlayfabID. The team is 0 for the Red team and 1 for the Blue team. It cannot be used to force a player into Spectator.

modifyinivar <File name> <Section name> <Variable name> <Value> <Type>

The file name should be 'game' or 'engine'. The section name and variable name must match an INI heading and value from that file. Supported types: bool, int, float, string, text, vector2d, vector, rotator, color

getmatchduration

Will output how many seconds are remaining on the current match.

extendmatchduration <Duration in seconds>

Allows you to extend the current match duration, Duration must be in Seconds.

setmotd <Url>

Must link to a valid Markdown file, see MOTD Markdown Guide

teleportplayer <PlayerName/PlayfabID> <x=#,y=#,z=#>

Teleports the specified Player or PlayfabID to the coordinates provided. Must be provided in the format: x=#,y=#,z=# . You can get these coordinates from the SDK, or using in-game console commands such as ShowDebug CAMERA

killplayer <PlayerName/PlayfabID>

Kills the specified Player or PlayfabID. The player must be on the server to function.

getteamdamage <PlayerName/PlayfabID>

Displays the current team damage of a specified Player or PlayfabID. Must be a team mode, and player must be on the server.

renameplayer <PlayerName/PlayfabID> <New name>

Renames the specified Player or PlayfabID to the new name.

chatlog <Num messages to retrieve>

Returns the specified number of recent chat messages. You should use the Chat Listen Broadcast instead (see above) to get a real-time feed of chat messages.

shutdown

Shuts down the server

MOTD[ | ]

See the MOTD Markdown Guide for more detail on the Markdown syntax and options for file hosting.

Monitoring[ | ]

quakestat can be used to monitor your Mordhau server.

sudo apt install qstat

quakestat -a2s IP:PORT

use quakestat --help to see all options.

Advertisement