JoinGG

Left 4 Dead 2 tickrate: what 30, 60 and 100 tick actually cost

L4D2 servers run at 30 tick until Tickrate Enabler is installed. The rate cvars that must follow, what clients really get, and the CPU cost of hordes.

SweetMask · 5 min read

A Left 4 Dead 2 dedicated server runs at 30 ticks a second, and it stays at 30 even with -tickrate 100 on the launch line, because Valve disabled that parameter in this game. Getting to 60 or 100 takes a server plugin, rate limits raised to match, clients that actually use the higher rates, and a CPU that can run the simulation more than three times as often.

Valve's developer wiki lists both Left 4 Dead games at 30 and says -tickrate was switched off in newer builds, probably over timing problems. How tick rate works covers the concept; this is the L4D2 detail.

Why the launch parameter needs a plugin

The standard fix is Tickrate Enabler, a small server plugin that ProdigySim wrote in 2012 to make the -tickrate switch work again. The copy that keeps up with game updates is Accelerator's fork, accelerator74/Tickrate-Enabler, which was still getting commits in September 2026.

It loads through a .vdf file in left4dead2/addons whose file line must point at wherever the .dll (Windows) or .so (Linux) actually sits. The README says to put the binary straight in addons; the release package puts it in addons/tickrate_enabler/ and ships a .vdf to match, so do not mix the two. Add -tickrate 100 (or 60) to the launch line, restart, and run plugin_print in the server console. If Tickrate Enabler is not in that list, nothing below applies.

The plugin also patches the Boomer, whose vomit range otherwise "scaled inversely with tickrate", and lifts the 30,000 ceiling on sv_maxrate, sv_minrate, net_splitpacket_maxrate and the client data rate. Its changelog is largely offset fixes, which is why a game update can break it.

The rates that have to move with it

Tickrate sets how often the server simulates. What each player receives is governed by a separate group of limits, and their defaults suit 30. The competitive rework, SirPlease/L4D2-Competitive-Rework, which bundles ZoneMod and several other match modes, sets them for 100 tick in cfg/server.cfg:

sm_cvar sv_minupdaterate 100
sm_cvar sv_maxupdaterate 100
sm_cvar sv_mincmdrate 100
sm_cvar sv_maxcmdrate 100
sm_cvar sv_minrate 100000
sm_cvar sv_maxrate 100000
sm_cvar net_splitpacket_maxrate 100000
sm_cvar fps_max 0

A comment above those lines gives the rule for other tickrates: replace 100000 with the tickrate times 1,000, and 100 with the tickrate. At 60 tick that means 60 and 60000.

The update rate pair clamps cl_updaterate (snapshots per second sent to each client), the command rate pair clamps cl_cmdrate (packets per second a client sends), and the rate pair clamps the client's rate in bytes per second, with net_splitpacket_maxrate matched to it "to prevent throttling". fps_max 0 lifts the cap on the server's own frame rate. Every line goes through sm_cvar, SourceMod's command for changing a cvar, so the block assumes SourceMod is loaded; installing Metamod and SourceMod cleanly is a job of its own.

The client half

A server cannot send more than one update per tick, so 100 tick means at most 100 snapshots a second, and the floor is whatever sv_minupdaterate allows. A player on cl_updaterate 30 gets 30 snapshots a second from a 100-tick server: 100-tick work spent on a 30-tick picture. Commands have a limit no cvar lifts. The rework's install guide notes that a client cannot send more commands than it renders frames, so a player at 60 fps never has a real cmdrate above 60.

That is why the competitive config sets every minimum equal to its maximum ("Rates forced to 100 on Clients", says its comment). A public co-op server may leave room below for weak connections, and then its 100 is a ceiling rather than a promise. The two middle values on a client's net_graph show what that player actually gets. The rework also pins both interp ratio limits to 0, which leaves cl_interp in charge; interpolation from the player's side explains that trade.

Where the CPU goes

Every tick, the server processes each client's commands, runs a physics step, checks the game rules and updates every object, 100 times a second instead of 30. Valve's networking page puts a 100-tick Source server at about 1.5 times the CPU load of a 66-tick one, close to the ratio of the tick counts. By the same arithmetic, 30 to 100 is more than a tripling.

In Left 4 Dead 2 most of that load is the infected. Common infected and Witches are NextBots, and nb_update_frequency sets how often they update their pathing and state. The competitive config gives the default as 0.100 and sets 0.01 ("very CPU Intensive", says the comment beside it) under a heading that reads "Ideal settings for 100 Tick and a strong CPU".

The install guide asks for a core per server and, for a raised tickrate, "a solid 3GHz CPU at minimum". The simulation runs on one main thread, so that core's speed matters more than how many sit beside it (more cores will not save it). The real test is a Tank arriving with a horde: if the sv figure on net_graph drops below the tickrate then, clients get fewer updates than your server name claims. Profiling a server that feels slow helps when the cause is less obvious.

Versus and co-op want different things

Versus is where 100 tick earns its cost: eight humans, half of them playing Special Infected, and hit registration on human targets decides rounds. The rework's match modes assume 100 throughout. Co-op fights AI, and its expensive moments are hordes, which get heavier on some custom campaigns and on servers whose plugins push z_common_limit past its default of 30. A co-op server that holds a steady 60 through every finale plays better than a 100-tick one that stutters in them.

Higher tick changes behaviour too, and the rework loads two fixes on every match mode. Tickrate Fixes speeds doors up (tick_door_speed, 1.3 by default) and pins sv_gravity at 750, and a pistol delay plugin exists because "with a high tickrate, the rate of fire of dual pistols is very high". Without equivalents, test door-heavy maps and dual pistols yourself before opening the server.

Before you advertise 100 tick

After every game update, confirm plugin_print still lists Tickrate Enabler, and check that the minimum rates match the number you intend to claim. Then fill the server, wait for a Tank with a horde behind it, and watch sv on net_graph. If it holds at 100, put 100 in the name. If it only holds at 60, advertise 60, because the players who care about tickrate are exactly the ones who open net_graph. The Left 4 Dead 2 server guide covers the rest of running one, and the L4D2 servers already listed show what the competition claims.

Tags
left 4 dead 2tickrateserver performance
Share

SweetMask

Published · 5 min read

All articles

Keep reading

Guides · Left 4 Dead 2

Left 4 Dead 2 Servers: Community and Dedicated Guide

Left 4 Dead 2 still has dedicated community servers. Campaigns, versus, custom maps, how to join one by IP and what to check before you commit an evening.

· 12 min read
Guides · Left 4 Dead 2

How to Install Left 4 Dead 2 and Join a Server

Installing L4D2, the eight special infected and why five of them leave you helpless, and how to find the dedicated servers running 8-player co-op.

· 8 min read