Config options for CPU performance (HELLO HIGH SLOT SERVERS)


  • Developer

    I don’t think it’s noted in the server documentation yet, but there are also three config options you can use to tradeoff a decrease in CPU use for increased bandwidth consumption both for the server and every client. These are particularly useful for servers with more than 32 slots. They all result in more players/objects being replicated to every client, but depending on the map and gametype most players may be replicating already (i.e. in Arena, every player is mostly visible to every other player), so the bandwidth increase might not be that huge. YMMV.

    If they’re not there already, they go in PCServer-UDKEngine.ini; they’re documented in BaseEngine.ini and default to FALSE. We haven’t tested them in a 64-player server yet, so we don’t know how big an improvement these will actually make; I was going to wait for the hotfix to get some data since I just added console commands to flip them on and off on-the-fly.

    Set the following to TRUE to enable them:

    [Engine.Engine]
    ;If the server is starting to take too long to do each frame, this will automatically tradeoff increased network use for decreased CPU use (the effect will be reversed if server performance improves)
    bAllowRelevancyAutoAdjust=FALSE

    ;A more aggressive way of decreasing CPU use; sort of like having the Auto Adjust always going at medium strength. Can combine with the above setting.
    bNoComplexPawnRelevancy=FALSE

    ;Even more aggressive. Can also combine with bAllowRelevancyAutoAdjust, but this is almost at full strength on its own. This includes bNoComplexPawnRelevancy, there’s no need to combine both.
    bAllPawnsAlwaysRelevant=FALSE


  • Developer

    Also useful:

    You can check if the server is lagging in-game:

    • Log in as an admin (“adminlogin password” in console); you have to do this first or the next command won’t show all the data until map change or until you disconnect/reconnect

    • Do “showdebug” in the console

    • Near the top-left of the screen, some info will come up. Near the bottom, you’ll see “server ms:”. To the right of this is a number representing how long the server is taking to do one frame. Since servers are by default locked at 30Hz right now, you want this to be 33.33ms or lower. If it is, the server is hitting 30Hz fine so won’t be introducing any lag that way



  • Thanks for the info Soup. :)



  • I enabled 2 of the options now on my server and they will start taking effect once I restart the server again. I used the debug mode and looked at the server latency. Some other maps have far less latency

    Worst case scenario:
    https://dl.dropbox.com/u/27709072/CMW/2 … _00010.jpg

    Not so bad:
    https://dl.dropbox.com/u/27709072/CMW/2 … _00011.jpg
    https://dl.dropbox.com/u/27709072/CMW/2 … _00014.jpg

    In Team Last Man Standing the latency starts dropping once people start dying.



  • We’ve been running 64 slots on all three of our demo Chivalry servers. We actually put these variables into play and it did increase performance slightly. But the dedicated servers for this game are currently very unstable and the server list is buggy with steam servers. Other than that the 64 player game play is awesome.



  • So do I set this now to TRUE or False if I want less cpu usage?


  • Developer

    Ah, sorry, good question. Set them to TRUE.


  • Developer

    @Bluefang:

    We’ve been running 64 slots on all three of our demo Chivalry servers. We actually put these variables into play and it did increase performance slightly. But the dedicated servers for this game are currently very unstable and the server list is buggy with steam servers. Other than that the 64 player game play is awesome.

    We’ve noted 64-player instability in some of the TO maps, particularly Battlegrounds. We’re working on it. The LTS maps seem to be stable, though we haven’t done any long-term testing with that player limit.



  • @CrustaceanSoup:

    We’ve noted 64-player instability in some of the TO maps, particularly Battlegrounds. We’re working on it. The LTS maps seem to be stable, though we haven’t done any long-term testing with that player limit.

    Yes the LTS maps have been very stable. Playing 64 slots on our LTS server has been a blast. I believe mainly because there isn’t any constant re-spawning. The amount of corpses in TO or TDM is probably a factor in FPS issues and lag spikes. But for the most part all the games run smoothly except for the few hiccups every now and then. I would actually be very appreciative if you addressed the issues with the server list. The servers lose connection to steam constantly and therefore do not show up on the list even while they are still in a running state. Our clients put in support tickets stating that the server has crashed when that is just not the case. FIXED! :P



  • @CrustaceanSoup:

    Since servers are by default locked at 30Hz right now, you want this to be 33.33ms or lower. If it is, the server is hitting 30Hz fine so won’t be introducing any lag that way

    so the ‘NetServerMaxTickRate’ setting won’t do anything right now?

    bAllowRelevancyAutoAdjust=FALSE
    bNoComplexPawnRelevancy=FALSE
    bAllPawnsAlwaysRelevant=FALSE

    what is the console command to change these on-the-fly?

    should ‘MaxClientRate’ and/or ‘MaxInternetClientRate’ be adjusted for servers with more than 32 players?



  • Thanks OP this explains why i feel like almost all servers lag from time to time. Im starting to think the main problem is the same as it was back in Red orchestra 2. Most ppl dont know the UE3 netcode and just run vanilla settings and try to go for WAY to many players. Thank god they upped the tickrate to 30 as default. In RO2 they kept the UE3 default tickrate of 20 and that is 50ms added to your ping. My clan used to run a RO2 server with NetServerMaxTickRate = 40 And not only was it the server we would get best ping times on since in that game the server response time was added to your ingame ping. It was also
    without a doubt the best ro2 server we had played on. Even random pubbers claimed it was the best server they ever played on. However when the tickrate is increased the bandwith and cpu power required for EACH player goes up accordingly. We ran 32 players on it since we all felt we would rather have a smaller smoother server than an “epic” 64 player lagfest. IMO Preformance always outweigh the ammount of players.

    I think the lag that i feel often yet cant see in my ingame ping is due to servers not having the cpu power they need to keep the server at NetServerMaxTickRate 30. Is the server response time added to the ingame ping in this game? I suspect so since the server browser ping is always lower than ingame ( Like in RO2 )

    So with 40 ping in the browser you whould end up with roughly 40ms ping + 33ms default response time = 73ms ingame

    The OPs commands might very well be a good solution to this cpu power shortage.
    But the most effective method is still going to be to restrict the ammount of players to something reasonable for your tickrate / Hardware. Im starting to think ppl dont realize that the gameplay will SUFFER if you overdo it. Starting small is the best way to make your server / hardware give you all that it can.

    Here is an (old)comparison of NetServerMaxTickRate 30 and 40
    NetServerMaxTickRate 30:
    http://wiki.unrealadmin.org/images/8/89/Tr1_030.jpg
    NetServerMaxTickRate 40:
    http://wiki.unrealadmin.org/images/5/50/Tr1_040.jpg

    You can clearly see the difference in the air. A pretty big deal in a mele based game where possition is everything. Im not saying we need 40 ticks in this game however servers NEED to run at 30 if they cant handle the default tickrate the game is altered in such a way that its to random to truly master.

    Basicly the netcode revolves around 2 Server commands:
    [IpDrv.TcpNetDriver]
    MaxInternetClientRate=25000 (default)
    NetServerMaxTickRate=30 (default)

    And one Client command:
    [Engine.Player]
    ConfiguredInternetSpeed=25000 (default)

    Found in the UDKEngine.ini file located in:
    Users\Hjan\Documents\My Games\Chivalry Medieval Warfare\UDKGame\Config
    Remember that if the server is dedicated it has its own config file that must be changed.
    Also if you increase MaxInternetClientRate you need to increase ConfiguredInternetSpeed to make use of the new bandwith. If the (server)MaxInternetClientRate is lower then the clients rate the client is forced to the servers tickrate.

    We used to run a 32 player server from multiplay in RO2 on these settings:
    [IpDrv.TcpNetDriver]
    MaxInternetClientRate=30000
    NetServerMaxTickRate=40

    [Engine.Player]
    ConfiguredInternetSpeed=30000
    With GREAT results the game ran like never before.

    PS: In RO2 with a tickrate of 20 not even the company that made the game could host decent 64 player servers and their servers were beastly. Like Bluefang said running a server in Last Team Standing will prob take less resources makeing a higher player count possible. Otherwise i would not recommend anything above 40 players even with a beastly server.



  • bAllowRelevancyAutoAdjust=FALSE
    bNoComplexPawnRelevancy=FALSE
    bAllPawnsAlwaysRelevant=FALSE
    what is the console command to change these on-the-fly?

    Not sure back in cod 2(Unreal engine) it used to be:
    Set bNoComplexPawnRelevancy=FALSE
    in console but that engine might have been slightly modified.

    should ‘MaxClientRate’ and/or ‘MaxInternetClientRate’ be adjusted for servers with more than 32 players?

    When playing a game its the Upload of your internet that bottleneck.
    Lets say we have a 1 Mbit/s upload (Mbit/s is NOT the same as MB/s)

    1 Mbit/s = 131,072 bytes / s
    The rate commands are in byte/s format. So if im just a client i might aswell put
    ConfiguredInternetSpeed=130000 (default 25000 * 5,2) since the server is going to force it down to its rates anyway.

    However if im hosting a server the servers
    ( MaxInternetClientRate * Number of players ) must never excede the servers upload capability.
    Also i would recommend too leave some room for extra safety.

    So now im hosting a default server with my 1 Mbit/s upload
    1 Mbit/s = 131072 bytes / s
    130000 / 25000 = 5,2
    IF my servers CPU can handle the default tickrate of 30 i should be able to have 5 players on my server without the game being laggy.

    Now lets try 10 Mbit/s upload:
    131072 bytes * 10 = 1310720 bytes
    10 Mbit/s = 1310720 bytes / s
    1310720 / 25000 = 52,4288
    IF my servers CPU can handle the default tickrate of 30 i should be able to have 52 players on my server without the game being laggy. As the numbers of players go up the stress on the servers cpu trying to keep the tickrate at 30 goes up exponentially.

    When playernumbers goes up the CPU is going to be your bottleneck no matter what upload you have. The way i would go about setting up a chivalry server is:

    Start by checking the max ammount of players your servers CPU can provide steady 30 ticks for by using CrustaceanSoups method:

    You can check if the server is lagging in-game:

    Log in as an admin (“adminlogin password” in console); you have to do this first or the next command won’t show all the data until map change or until you disconnect/reconnect
    Do “showdebug” in the console
    Near the top-left of the screen, some info will come up. Near the bottom, you’ll see “server ms:”. To the right of this is a number representing how long the server is taking to do one frame. Since servers are by default locked at 30Hz right now, you want this to be 33.33ms or lower. If it is, the server is hitting 30Hz fine so won’t be introducing any lag that way

    When you know what your CPU can handle i would up the servers MaxInternetClientRate accordingly.
    Again hosting with 10 Mbit/s upload:
    10 Mbit/s = 1310720 bytes / s
    Lets say my server can handle 46 players with steady 30 ticks
    1310720 / 46 = 28493
    MaxInternetClientRate = 28000 (All players can now recive 12% more data)
    Remember to raise the client rate to 28000 or more. If you have a lower client rate then the servers sending rate you are going to recieve choke which manifests itself as lag. Although the game clients might not even need the extra data remember its only the max ammount of data the server / client can send.

    And there you have it your server is now maxxed out.
    Remember to show your rate and tickrate in the servername and or description if its not default so ppl know why your server is the greatest.

    The last thing to do is to raise the tickrate but doing this WILL decrease the amount of players your server can keep at a steady tickrate. So this is optional idk if this game even needs more than 30 ticks. In Red orchestra 2 a realism FPS game that have no Interpolation where you have to lead your target in order to hit. In that game with 20 ticks close range targets where the hardest to hit in the game if they where hauling ass / trying to dodge. Basicly if he was 1 meter in front of you moving to the left you had to shoot half a meter to a meter to the left of your target. However when we dubbled the tickrate to 40 and trippled the rate to 30000 on our server it went from pretty ridiculous to pretty realistic. Shots seemed to connect faster no matter the range but it was def most obvious in CQC.

    If i where to host on 10mbit/s and good hardware going for max players i whould test:
    MaxInternetClientRate = 30000 (All players can now recive 20% more data)
    Tickrate = 30-40 (The server now updates 0-20% faster per sec)
    Playerslots = 32-42

    If i where to host a match server on 10mbit/s and good hardware going for preformance:
    MaxInternetClientRate = 30000 (Or calculated depending on slots)
    Tickrate = 40-50 (The server now updates 20-60% faster per sec)
    Playerslots = 10 - 32 depending on need (KEEP LOW)
    If i had 100Mbit/s upload i whould go for MaxInternetClientRate = 300000 (One more zero)
    Oh and make sure your clients FPS dont drop below the server tickrate then you are missing out.

    Now get out there and be the admins i know you can be. :D



  • Hi, I’ve been having frame lag trouble with anything more than 18 players or so. High graphics with low player counts are not an issue for me. I’m not too computer savvy, so can someone tell me if these fixes will help someone like me? I’m thinking my issues are stemming from the fact that my processor is older: Intel 2 CPU 6420 @ 2.13GHz

    And to be clear, would I want to set the OP values to true or false?

    If anyone has any other optimization advice I would appreciate it.

    Intel 2 CPU 6420 @ 2.13GHz
    3582MB DDR3 RAM
    Windows XP 32 bit
    NVIDIA GeForce GTX 550 Ti

    Thank you.

    EDIT: Sorry, I stumbled upon this thread on google and just noticed the forum description. Does this stuff only apply to server hosting?



  • EDIT: Sorry, I stumbled upon this thread on google and just noticed the forum description. Does this stuff only apply to server hosting?

    This is only for servers. You should check this out:
    http://www.tweakguides.com/UT3_1.html
    The game runs on the same engine.



  • Hello,

    could someone advise me on how to improve server performance?

    We try to host a 64 slot server, might think of using a 50 slot only.

    Our specs:

    100mbit up/down stream

    i7 975 @3.3 ghz

    12gb ram



  • Hello Liu,

    As of currently, I do believe chivalry isn’t optimized enough for this. Odds are the clock speed (3.3ghz) is just not high enough for 64 slot. There was one fella, who had a 3930X, the extreme one. Which could run 64 slots smoothly. It has a significantly higher clockspeed.



  • I’ve enabled the three settings as originally posted. Upon testing the server the gameplay is fine and there was no noticeable lag however the player latencies are very high. I didn’t see anyone with a ping under 100 the entire time we tested and more often than not the latencies averaged about 180-200. After looking at all of the settings it looks as if logging was enabled (UDKLogging.exe). I have since disabled logging but am wondering if it could increase latencies or if it may be a more serious issue. I’ll be testing the server again later so we’ll see what happens. Does anyone know if logging could increase the latency that much?

    UPDATE: So apparently having logging enabled essentially doubles the latency all the way around. Disabling logging dropped our pings from ~200-210 down to ~90-100. If anyone has high ping problems it’s worth checking.



  • @bestrafung:

    I’ve enabled the three settings as originally posted. Upon testing the server the gameplay is fine and there was no noticeable lag however the player latencies are very high. I didn’t see anyone with a ping under 100 the entire time we tested and more often than not the latencies averaged about 180-200. After looking at all of the settings it looks as if logging was enabled (UDKLogging.exe). I have since disabled logging but am wondering if it could increase latencies or if it may be a more serious issue. I’ll be testing the server again later so we’ll see what happens. Does anyone know if logging could increase the latency that much?

    UPDATE: So apparently having logging enabled essentially doubles the latency all the way around. Disabling logging dropped our pings from ~200-210 down to ~90-100. If anyone has high ping problems it’s worth checking.

    Is logging enabled by default? Is that in either the game or engine ini?



  • @DoxHoliday:

    Is logging enabled by default? Is that in either the game or engine ini?

    Logging is enabled by starting your server with UDKLogging.exe instead of UDK.exe. As far as I’m aware there’s no way to enable logging by config options, only by running the exe.


Log in to reply