Follow us on Twitter
Tickrate / Net_Graph Overview

What is Tickrate?

Valve explains Tickrate as: "During each tick, the server processes incoming user commands, runs a physical simulation step, checks the game rules, and updates all object states. After simulating a tick, the server decides if any client needs a world update and takes a snapshot of the current world state if necessary. A higher tickrate increases the simulation precision, but also requires more CPU power and available bandwidth on both server and client."

What Can The Server's Tickrate Be Set As?

You can NOT view this value from the Netgraph (See "What is The Net_Graph 3" below). Server tickrate values are constant and do not fluctuate.

  • Server tickrate = 100
  • Server tickrate = 66
  • Server tickrate = 33

    The client's tickrate changes to match what is set on the server. This is why it's important that you change your client settings to match the server's settings. If your client settings are not set to match the server's settings, then you wont see the benefits of higher tickrates.  See the section below on "What Should My Client Settings Be" to change your client settings to what they should be.
  • What Should I Set My Server's Tickrate At?

    Servers with player slots over 20 may not run smoothly with the tickrate setting of 100, especially if they are pingboosted (See Section on "What is Pingboosting?" below) also. You'll need to set your tickrate to 66 in order to get smooth game play.

    Servers < 20 Slots:

    -tickrate 100
    (The below values need to be set correctly in your server.cfg file)
    sv_maxrate 30000
    sv_maxupdaterate 100
    fps_max 600


    Servers > 20 Slots:

    -tickrate 66
    (The below values need to be set correctly in your server.cfg file)
    sv_maxrate 20000
    sv_maxupdaterate 66
    fps_max 600

    Where Do You Change The Server's Tickrate?

    The server's tickrate can only be changed in the command line. It can not be changed anywhere else with any values. If you do not have access to the command line, then you can not change this value. HLSW and rcon commands can not change the tickrate.

    What Should My Client Settings Be?

    If you join a 100 tickrate server and your own game's client settings aren't set correctly, then you wont get the benefit of the additional tickrate.

    The clients rate should = the servers sv_maxrate

    The clients cl_updaterate should = the servers sv_maxupdaterate which equals the servers tickrate.

    Thus a server with sv_maxrate 30000 tickrate 100 sv_maxupdaterate 100 the clients should run the following settings:
  • rate 30000
  • cl_updaterate 100
  • cl_cmdrate 100
  • cl_interpolate 1
  • cl_interp 0.1
  • cl_smooth 0

    These settings will provide the best client experience for the example server's variables and tickrate settings.

    If the server you are joining has different values than the ones above, you'll need to change accordingly. The above information is only an example and may not be the optimum settings for every server.
  • How Do I Change My Client Settings?

    Client settings are changed in your console window. To learn how to enable and bring down your console window click here.

    Type the following into your console window if you want to change your rate to 30000

    rate 30000

    (make sure it matches the value the server has set for sv_maxrate)

    Type the following into your console window if you want to change your cl_updaterate to 100

    cl_updaterate 100

    (make sure it matches the value the server has set for sv_maxupdaterate)

    What is Pingboosting?

    Pingboosting is a setting done on the server side. If you are renting a server from a game server provider, then this is a setting they must enable on their side. You will not see the values in your net_graph 3 raise above around 66 with a 100 tickrate server unless this is done. You do not get true 100 tickrate without pingboosting. Before renting a server from a host, make sure they have this feature.

    What is The Net_Graph?

    The net_graph contains information about the server you are connected to and what your connection is like to that server. If your own connection to the internet is having problems, then you'll see this reflected in the net_graph values. Also, if your client settings are not correct and do not match the server's settings, then you'll see this reflected in the values here. Not all problems with your connection are server related. There is not a value in the net_graph that shows the server's tickrate. The server's tickrate does not fluctuate. It is a constant value.  There are other net_graphs, but net_graph 3 is the most useful.

    How Do I Enable Net_Graph 3?

    Net_graph 3 is enabled in your console window. To learn how to enable and bring down your console window click here.

    Type the following into your console window to enable:

    net_graph 3

    What Does The Net_Graph 3 Variables Mean?



    1. fps is how many frames per second the client is rendering. This is limited by the clients fps_max setting or the refresh rate of the monitors vertical refresh rate if Vertical-Sync is enabled.

    2. ping is:
    a) netgraph ping is the round trip time for game packets, NOT including any tickrate or updaterate induced calculation delays
    b) Scoreboard latency (ping) is one way trip latency.
    c) rcon status command ping.

    IN is what is being received by you the client, FROM the server.

      The amount of IN Updates received by the client per second (controlled by cl_updaterate) will in most cases equal the servers tickrate, but will NEVER exceed:

    • The Clients cl_updaterate
    • The Servers sv_maxupdaterate
    • The Server/Clients tickrate which are always the same, as the client will always use the same tickrate as the server it connects to

      Which ever is the smallest of those 3 numbers will determine the number you see for Updates per second RECEIVED by the client.

    OUT is what is being sent by you the client, TO the server.

      The amount of OUT Updates sent by your computer per second (controlled by cl_cmdrate) will NEVER exceed:

    • The Clients cl_cmdrate
    • The Server/Clients Tickrate
    • The Clients Frames Per Second

      Which ever is the smallest of those 3 numbers will determine the number you see for Updates per second SENT by the client.

    The IN & OUT both have 3 components, starting from left to right:

    3. The size of the game packet in bytes being sent and received.

    4. The Average amount of KiloBytes Per Second being Sent or Received of GameData + UDP Segment + IP Packet overhead.

      If you multiply 3. by 5. and then divide by 1000 you will get a close approximation of this value.

    5. The Average amount of Updates being Sent or Received per Second (Not the tickrate).

      4. and 5. shown in net_graph 3, are only averages. There values are not completely accurate and sometimes reflect impossible values.

    6. Loss is due to lost packets due to network problems.  These problems can either be with your own personal computer's connection to your ISP, your ISP, or the ISP that is hosting the Server or anywhere in between. If you have loss then you will probably have choke. Do not bother trying to solve Choke problems if you have Loss problems.  If you are the only one experiencing loss on a given server, then the problem will be with your own personal internet connection.

    7. Choke If there is a Choke value here, the server is wanting to send you data but cannot. There can be many reasons why you are getting choke.