Measuring…
The verdict for this game appears once the first full second of packets is in.
Comparing with other tests to this server…
Measuring…
The verdict for this game appears once the first full second of packets is in.
Comparing with other tests to this server…
Are you sure you want to delete all results?
| Date & Time | Duration | Avg Ping | Avg Jitter | Packet Loss | Actions |
|---|
Hitscan that clearly connects but does no damage? Choke or loss showing in net_graph?
Team Fortress 2 is one of the few games where you can set your own interpolation delay - and one of the few where the correct value is arithmetic rather than opinion. Valve servers generate about 66.7 world states per second and cap cl_updaterate at 66, and your lerp follows directly: cl_interp equals cl_interp_ratio divided by cl_updaterate, so the lowest usable value on a Valve server is 1/66, or 15.2 ms. Setting a lower interp than your connection can sustain does not make you faster; it makes the client interpolate from packets that have not arrived, which is exactly what packet loss looks like on this chart.
What this test sends: 66 packets per second of 150 bytes, matching Team Fortress 2 rather than a generic ping. verified
Valve servers produce 66.7 states per second; cl_updaterate is capped at 66.
Run the test above for at least 60 seconds. Here is what each number means for this game specifically.
Loss is the reason to raise, not lower, your interp. A client interpolating over 15 ms cannot ride out a gap larger than that, and the result is the hitscan-through-the-target effect people blame on the netcode.
Interpolation exists precisely to hide jitter. Measure it here first: if your jitter is well under 15 ms, the minimum interp is realistic. If it is not, a higher cl_interp_ratio will feel better than a lower one.
Under 50 ms to a 66-tick server is comfortable. Ping and lerp add up in the total delay between your input and the server's world, which is why tuning one while ignoring the other rarely helps.
What you see in game, and which number on this page explains it.
| What you see in Team Fortress 2 | Look at | What it means |
|---|---|---|
| Hitscan passes through the target | loss | Interpolating from packets that never arrived. Raise cl_interp_ratio, do not lower it. |
| net_graph shows choke, not loss | rates | The server is withholding updates your rate settings did not allow through. |
| Copied config made things worse | jitter | Lerp has to match your connection, not someone else's. Measure first. |
| Consistent delay on every shot | ping | Ping and lerp add up. Tuning one while ignoring the other rarely helps. |
Team Fortress 2 is one of the very few games that hands you control over your own interpolation delay, and one of the fewer still where the right value is arithmetic rather than taste. Valve servers generate roughly 66.7 world states per second and cap cl_updaterate at 66. Your lerp follows directly from that: cl_interp equals cl_interp_ratio divided by cl_updaterate, so ratio 1 gives 1/66 - 15.2 milliseconds - and ratio 2 gives 30.3.
Interpolation exists to hide jitter. Your client deliberately draws the world slightly in the past so that it always has two known positions to draw between, rather than guessing. The lerp value is how far into the past it works. Set it too low and the client reaches for a packet that has not arrived yet - and the result looks exactly like packet loss, with hitscan passing through a target that was visibly there.
This is why copying a competitive player's config is such reliably bad advice. Their 15.2 ms works because their connection delivers packets evenly. If this chart shows any measurable loss, ratio 2 is the better setting for you: riding out a gap is worth more than 15 milliseconds of theoretical advantage you cannot actually use.
One more distinction worth carrying into the game: choke and loss are different failures. Loss means packets vanished in transit, and that is what this page measures. Choke means the server did not send them because your rate settings did not permit it - a client-side configuration problem with a client-side fix. A clean chart here combined with choke in net_graph points squarely at your rate settings rather than at your ISP.
If the chart above shows packet loss or high jitter, work through these in order.
The Symptom: Copied a config, hit registration got worse.
cl_interp = cl_interp_ratio / cl_updaterate. On a Valve server, ratio 1 gives 15.2 ms and ratio 2 gives 30.3 ms. Use ratio 2 if this test shows any loss at all - riding out a gap is worth more than 15 ms of theoretical advantage.
The Symptom: net_graph shows choke, not loss.
Choke is the server withholding updates because your rate settings ask for more than you allow through; loss is packets disappearing. This chart measures the second. If it is clean and you still see choke, adjust your rate settings instead.
The Symptom: Loss in short bursts.
At 66 ticks a burst blanks out several world states in a row. No interp setting compensates for that.
The Symptom: Ping climbs during downloads.
QoS keeps the game's small packets ahead of bulk traffic - the same fix as everywhere, and unusually visible in TF2 because the net graph shows it live.
It depends on your connection, and it is arithmetic: cl_interp_ratio divided by cl_updaterate. On Valve servers with the 66 cap, ratio 1 gives 15.2 ms and ratio 2 gives 30.3 ms. Use ratio 2 if you measure any packet loss.
Valve servers generate about 66.7 world states per second and limit cl_updaterate to 66. Community servers sometimes run higher tick rates.
No. Lerp is the buffer that hides jitter. Setting it below what your connection needs means interpolating from packets that have not arrived yet, which looks exactly like packet loss in game.
Loss means packets vanished on the way. Choke means the server did not send them because your rate settings did not allow it. This test measures loss; net_graph in game shows both.