Counter-Strike 2 server troubleshooting: crashes, lag, more

Counter-Strike 2 server troubleshooting on Hostd: browser visibility, Steam auth failures, lag, plugin loading, restart loops, and instant kicks.

Counter-Strike 2 server troubleshooting on Hostd usually lands on one of six things: browser visibility, Steam auth, lag, plugin loading, restart loops, and instant kicks on join. This doc walks each one with the most common fix.

Server won't appear in the browser

Most common symptom on a new server. Check, in this order:

  1. Steam Game Server Token panel: the badge should be green Configured. If it's amber Not configured, the server is running without a token and will not appear in the browser. Paste one in and Save. See Getting and applying a GSLT for CS2.
  2. Server visibility panel: mode should be Public, or Auto showing the green "Public: Steam auth completed" line. If Auto is showing the amber "Direct-connect (fallback)" state, Steam didn't confirm the login within 60 seconds on the last boot. Click Retry public mode and restart.
  3. Restart: visibility and token changes only apply on boot. The dashboard says it: "Restart the server after switching modes."

Deeper background is in CS2 server visibility.

Server boots but AuthStatus invalid: Waiting forever

The token format is fine, the account is in good standing, App ID is 730, the badge is green, but the server console sits on AuthStatus (invalid): Waiting and never reaches Gameserver logged on to Steam. Valve sometimes refuses gameserver auth from specific source IP ranges. No token will work from a refused IP.

Mitigation: switch Settings → Server visibility to Direct-connect and restart. Your token stays stored; you can try Public again later. Full detail in the troubleshooting section of the GSLT doc.

Lag or choppy gameplay

CS2 is single-thread bound, so the question is almost always "is one core saturated?", not "is RAM full?". Hostd runs Ryzen 9700X at 5.5 GHz precisely to keep tick stable, but a plugin hot loop or a runaway timer can still tank a tick.

What to check:

  • In the client: drop the console (~) and run net_graph 3. Watch the choke and loss values during a bad moment. Choke means the server is throttling outbound updates; loss means packets aren't arriving.
  • In the dashboard: open the CPU and RAM panels. CPU spiking to 100% on one core during play is the smoking gun for plugin or map issues. RAM steadily climbing across a session points to a plugin leak.
  • Without plugins: temporarily disable your plugin stack (rename the CounterStrikeSharp config or move plugins out of addons/counterstrikesharp/plugins via the Files tab) and play one round. If the lag vanishes, a plugin is the cause; get rid of it.
  • Map: some community maps have expensive nav meshes or particle systems. Try a vanilla Mirage match as a baseline.

If a vanilla Mirage match also lags, open a ticket; we'll look at the node.

Plugin not loading

CS2's plugin world runs on Metamod:Source plus CounterStrikeSharp (C#). Both work on Hostd, but the toolchain is younger than CS:GO's and load errors are usually clear once you find them.

What to check:

  • cs2_log.txt in the Files tab. Search for the plugin name; load errors usually show a missing dependency, a wrong .NET runtime, or a syntax error in the plugin's config.
  • Metamod loaded? First boot should print Metamod:Source initialisation lines; if it's silent, gameinfo.gi may not be patched. The entrypoint patches it on every boot, so a restart usually fixes it.
  • Plugin requires a GSLT? A small number of CounterStrikeSharp plugins refuse to register without a valid token. On a Direct-connect server they'll silently no-op. If a specific plugin works on Public but not Direct-connect, that's the cause; you'll need to be in Public mode for that plugin.
  • Plugin's own dependencies: some plugins need a sibling plugin or a shared lib in addons/counterstrikesharp/shared. Re-read the plugin's README.

Restart loop

If the server keeps restarting, the console always says why. Open the dashboard console and scroll to the last clean boot followed by a crash.

Common causes:

  • Out of memory: rare on CS2 plans (CS2 isn't RAM-hungry), but possible with a leaking plugin over many hours. A restart usually clears it; if it returns within minutes, get rid of those plugins.
  • Bad config: a broken cvar in server.cfg or a malformed plugin config can crash the engine at load. The crash usually names the file.
  • Missing dependency: a plugin was added without its shared lib; engine logs the missing symbol.

If the console is empty or unhelpful, open a ticket with the timestamp of the crash; node-level logs can fill in the rest.

Players join but get kicked instantly

Two usual suspects:

  • sv_pure mismatch: the server's pure setting disagrees with the player's files. Set sv_pure 0 in your server.cfg (or match files properly via pure_server_whitelist.txt) and restart.
  • VAC-secure flag with no token: extremely rare in practice because Hostd only writes sv_setsteamaccount when a token exists, but if you've manually edited config to force VAC without a GSLT, players get kicked on join. Remove the manual override; visibility mode controls VAC for you.

If neither fits, check the kick message client-side (it's usually informative) and search the console for the matching SteamID at the kick timestamp.

Where to next

Last updated 2026-05-20. Notice a mistake? Tell us.

Cookies