A dedicated server can be hosted on either the dedicated server files, or the client files. You can setup your own Dedicated Chivalry Medieval Warefare Dedicated Game server yourself following this guide or rent one from a Chivalry Medieval Warfare Game Server Providers.
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 "Chivalry: Medieval Warfare 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)
app_update 220070 validate
If you want to host a Beta server, you'd instead use
app_update 220070 -beta "Beta"
When you update, if you copy the server files from one machine onto the server machine (or from one place to another for any other reason; i.e. you're not running from the Steam or SteamCMD library directory directly), be sure that you don't overwrite PCServer-UDKGame.ini or PCServer-UDKEngine.ini (if using the client files, don't overwrite UDKGame.ini or UDKEngine.ini), as these contain server-specific settings.
Also, make sure you update the config files (save for UDKGame and UDKEngine) inside any config subdirectories, if you make use of that feature! (Explanation below)
The configuration files are found inside chivalry_ded_server\UDKGame\Config. IF you want to host multiple servers from the same directory, you can copy all of the .ini files in this directory into a new subdirectory (e.g. copy all .ini files into chivalry_ded_server\UDKGame\Config\CTF1); the command to use config subdirectories is explained below in theRunning section.
There are two configuration files that server operators should change. Altering other files is not recommended.
(when using the Client files, change UDKGame.ini instead)
Most options are in this file. The most important options are below; some explanations are included in DefaultGame.iniand are reproduced below. I'm going to include the section name, followed by important commands that should appear under that section. Lines preceded by ";" are comments, so they have no effect on the config file; you can copy them in for your own reference or leave them out.
[Engine.AccessControl] (Add this section if it doesn't exist)
;password required to join the server GamePassword= ;password to get admin access AdminPassword= ;Bans will show up at the bottom of this file; these take the form of the user's Steam ID, split into two 64-bit integers. BannedIDs=(Uid=(A=681652,B=17825793))
;Server name (shows in the server browser) ServerName=Best Server Ever
;are admins on this server allowed to use the pause command to pause the server? bAdminCanPause=false ;maximum number of players allowed on the server MaxPlayers=64
[AOC.AOCGame] (for a full list of maps, see the Maplist section below)
;server map rotation; just add in "Maplist=mapname" lines for every map in the rotation, in the right order ;make sure you type these correctly, if any are wrong, the server will crash Maplist=AOCLTS-Arena3_p Maplist=AOCTO-Hillside_P Maplist=AOCTO-Battlegrounds_v3_P ;Perspective lock - PLOCK_None: None PLOCK_1P: First-person PLOCK_3P: Third-person PerspectiveLock=PLOCK_None ;How much damage do teammates do to one-another? Ranges from 0.0 to 1.0, where 0.0 is none, 1.0 is 100% fServerTeamDamagePercent = 0.5 ;What game speed should we run at? 1.0 is normal speed (so 0.5 is half-speed, 2.0 is double-speed, etc.) fTimeDilation = 1.0 ;;;;; ;Voting options: ;;;;; ;Do we enable vote kicks? bEnableVoteKick=true ;Do we enable votes to change the map? bEnableVoteChangeMap=true ;Do we enable votes to reset the current map? bEnableVoteResetMap=true ;Do we allow only admins to start new votes? bOnlyAdminsCanInitiateVotes=false ;Do we allow only admins to vote, period (includes starting new votes)? bOnlyAdminsCanVote=false ;Can players only initiate vote kicks and vote against their team mates? bOnlyTeammatesCanVoteKick=false ;When counting the number of people who voted vs. those who abstained, do we only count abstains from teammates of the player in question? (Like a soft version of bOnlyTeammatesCanVoteKick; enabling both simultaneously is pointless) bOnlyTeammatesAbstainsCountAgainstMinimum=false ;The minimum proportion of people who must have voted for the vote to be successful (0.0f to 1.0f) fVoteMinAmountNonAbstainers=0.4 ;The minimum proportion of people who must have voted Yes out of the total number who voted for a vote to be successful (0.0f to 1.0f) fVoteSuccessThreshold=0.55 ;The length of time that a vote is held for before it's tallied and decided fVoteDurationSeconds = 30.0 ;Number of updates to show in chat before the vote is completed. If there's 2, they happen at 1/3 and 2/3 through the vote. fVoteTallyUpdates = 2 ;Time to delay before enacting what was voted on (only for map changes/reset) fVoteEnactDelaySeconds = 10.0 ;The minimum time between successvie kick votes against the same player fVoteTimeBetweenVoteKicksAgainstSamePlayer=60.0 ;The minimum time between successive votes initiated by the same player fVoteTimeBetweenVotesFromOnePlayer=60.0 ;Duration for which a kick vote's temporary ban lasts fVoteKickBanDurationSeconds=300 ; Force Team VOIP bForceTeamVOIP=false ; Ranked Server or not bRankedServer=true ; Auto-balance teams ; It is not recommended to have both types of auto-balance on at the same time. bAutoBalance=true bDeathBasedAutoBalance=false ;time between autobalance checks fAutoBalanceInterval=30 ; Whether to allow player's to identify where their friends are at (shows a green marker over friends' heads) bAllowFriendNotification=true ;If true, stops players from using fists in this server bDisallowFists=false ;If true, stops players from using FreeCam while in spectator bDisallowFreelookSpectator=false ;If true, any user can use the "getinfo" or "whois" console commands to see the 64-bit Steam ID of any other user; otherwise, only admin can. (For competition servers) bAnyUserCanGetSteamID=false ;Enable the ping limiter bUseMaxPingLimit=false ;Maximum ping for player fMaxPing=200.0 ;How many times player must hit threshold before being kicked iPingThresholdHitBeforeKick=4 ;Number of seconds to kick player for breaking ping threshold. iSecondsToKickForPingLimit=120 ;Enable EXPERIMENTAL speed hack detection. We have not yet determined the false positive rate. Enable at your own risk. bDoSpeedHackDetection=false ;Allow the user to trip the speed hack detection multiple times before getting kicked (in case of packet loss, etc.) bUseCustomSpeedhackCountThreshold=true ;Number of times user can trip detection before getting kicked iSpeedhackCountThreshold=10 ;Class limits bUseArcherLimit=false iArcherLimit=10 bUseVanguardLimit=false iVanguardLimit=10 bUseKnightLimit=false iKnightLimit=10 bUseMaaLimit=false iMaaLimit=10 ;Rank limits bUseRankLimits=false iMinRank=0 iMaxRank=0 ;If true, RoundTimeOverride is used as the round time instead of the default (set in the individual gamemodes' sections to only affect one mode) bOverrideRoundTime=False RoundTimeOverride=0
;If true, RoundTimeOverride is used as the round time instead of the default bOverrideRoundTime=False RoundTimeOverride=0
;If true, RoundTimeOverride is used as the round time instead of the default bOverrideRoundTime=False RoundTimeOverride=20 ;If true, InitialResourcesOverride is used as the number of resources ("lives") per team instead of the default bOverrideInitialResources=False InitialResourcesOverride=80
;If true, RoundTimeOverride is used as the round time instead of the default bOverrideRoundTime=False RoundTimeOverride=20 ;If true, RoundsToWinOverride and MaxRoundsOverride are used instead of the defaults bOverrideNumRounds=False RoundsToWinOverride=7 MaxRoundsOverride=13
;If true, RoundTimeOverride is used as the round time instead of the default bOverrideRoundTime=False RoundTimeOverride=20
;If true, RoundTimeOverride is used as the round time instead of the default bOverrideRoundTime=False RoundTimeOverride=20
(when using the Client files, change UDKEngine.ini instead)
;server port; must be unique and unused for every server on the same machine (this can be set via the command line, see below) Port=7777
;maximum rate at which the server will send data to a player (in bytes/sec) MaxInternetClientRate=30000
;use Valve Anti-Cheat on this server bUseVAC=true ;Port to use for Steam. Must be unique. (this can be set via the command line, see below) QueryPort=7779
;for EXPERIMENTAL global ban list support, change Engine.GameEngine to AOC.AOCGameEngine GameEngine=Engine.GameEngine
[AOC.AOCGameEngine] - for EXPERIMENTAL global ban list support, add this section, with these contents:
The executable is found at Binaries\Win32\UDK.exe. To run it, create a shortcut, batch file, or whatever other link to the executable and make it look like:
If using the client files UDK.exe server MAP_NAME?dedicated=true?steamsockets -seekfreeloadingserver
If using the dedicated server files UDK.exe MAP_NAME?steamsockets -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
- -QueryPort=#### -- Changes the query port Steam uses for this server
- -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
So for instance, your target may look like: UDK.exe AOCCTF-Moor_p?steamsockets -Port=7000 -QueryPort=7500 -log=CTFServer\server.log -configsubdir=CTFServer -seekfreeloadingserver
Currently we do not have any reasonable amount of rcon support. Server administration is best done as a player inside the server. These commands can be used inside the server by admins. The commands are not case sensitive, aside from the password used for adminlogin
adminlogin Followed by the server's admin password, allows you to log into a server as an admin.
adminlogout Logs out as admin
getinfo or whois Gives a user's SteamID. This SteamID is in hexadecimal; if you want to convert it to a normal Base 10 number, I'd recommend you use the Windows calculator (put it in Programmer mode, click Hex, paste in the value, and click Dec). Most hexadecimal-to-decimal converters on the web can't handle the large values and will mess up at least the last two digits.
adminkick Kicks a user.
adminkickban Kicks a user and permanently bans them (i.e. puts their IP/NetID in the config file).
adminchangemap Changes to a different map.
AdminRestartMap Restarts the map.
AdminChangeTeam Swaps a selected player to the opposite team.
AdminChangeTeamDamageAmount Change team damage amount on-the-fly; from 0.0 (no damage) to 1.0 (full damage)
AdminCancelVote Cancels a vote in progress
ShowDebug Not strictly an admin command, but for admins it shows the server's tick rate, that is how many milliseconds the server is taking to render a single frame. Servers are set to run at 30Hz, so this should be at or below 33.33..
aoc_slomo Change the server's speed to the string argument (from 0.001 to 2.0; that is, 0.1% to 200% speed)
pause Pauses the server iff the server has admin pausing enabled
aoc_consoledamage Prints damage amounts to the console for testing purposes. Affects all players on server.
aoc_endGame Ends the current match.
AOCTO-Battlegrounds_v3_P.udk AOCTO-Darkforest_p.udk AOCTO-Hillside_P.udk AOCTO-Stoneshill_P.udk AOCTO-Citadel_p
AOCCTF-Frigid_p AOCCTF-Moor_p AOCCTF-Ruins_Large_P AOCCTF-Ruins_P
AOCDuel-Arena_Flat_p AOCDuel-Arena_p AOCDuel-Bridge_p AOCDuel-Cistern_p AOCDuel-Courtyard_p AOCDuel-Dininghall_p AOCDuel-FrostPeak_p AOCDuel-Mines_p AOCDuel-Shaft_p AOCDuel-Shipyard_p AOCDuel-ThroneRoom_p AOCDuel-Tower_p
AOCKOTH-Arena3_p.udk AOCKOTH-Hillside_P.udk AOCKOTH-Moor_p.udk AOCKOTH-Darkforest_Valley_p
AOCLTS-Frigid_p AOCLTS-ArgonsWall_p AOCLTS-Arena3_p.udk AOCLTS-Battlegrounds_Farm_p.udk AOCLTS-Battlegrounds_p.udk AOCLTS-Darkforest_XL_p.udk AOCLTS-Darkforest_Valley_p AOCLTS-Hillside_P.udk AOCLTS-HillsidePyre_P.udk AOCLTS-Moor_p.udk AOCLTS-Moor_Large_p AOCLTS-Ruins_P.udk AOCLTS-Ruins_Large_P AOCLTS-StoneshillVillage_P.udk AOCLTS-ThroneRoom_P.udk
AOCFFA-Arena3_p.udk AOCFFA-Darkforest_Cistern_p AOCFFA-Darkforest_Valley_p AOCFFA-HillsidePyre_P.udk AOCFFA-Hillside_P.udk AOCFFA-Moor_p.udk AOCFFA-Ruins_P.udk AOCFFA-ThroneRoomXL_P.udk AOCFFA-StoneshillVillage_P.udk
AOCTD-Frigid_p AOCTD-ArgonsWall_p AOCTD-Ruins_P.udk AOCTD-ThroneRoom_P.udk AOCTD-StoneshillVillage_P.udk AOCTD-Moor_p.udk AOCTD-Battlegrounds_Farm_p AOCTD-Battlegrounds_p AOCTD-Hillside_P.udk AOCTD-HillsidePyre_P.udk AOCTD-Darkforest_XL_p AOCTD-Darkforest_Valley_p AOCTD-Moor_Large_p AOCTD-Ruins_Large_P