How to Make a CS2 Surf Server (Cvars, Maps and Timer, 2026)

Make a CS2 surf server: the surf cvars (sv_airaccelerate 150 and more), Workshop surf maps, and a SharpTimer setup with Metamod and CounterStrikeSharp.

Updated Oct 1, 2026 · 7 min read

On this page

To make a CS2 surf server, set sv_airaccelerate 150, turn on sv_enablebunnyhopping 1 and sv_autobunnyhopping 1, remove stamina and fall damage, make players respawn instantly, then load surf maps from the Steam Workshop with host_workshop_map. For timers, zones and records, add Metamod, CounterStrikeSharp and the SharpTimer plugin. The cvars alone are enough to surf with friends tonight. The plugin is what turns it into a real surf server.

What a surf server needs

Layer Required? What it gives you
Surf cvars Yes Air strafing that works on ramps, no stamina, no fall damage
Workshop surf maps Yes The maps. None ship with CS2
Metamod:Source and CounterStrikeSharp For plugins Plugin loader and framework
A timer plugin (SharpTimer) Recommended Start and end zones, times, records, stages, replays
MovementUnlocker and RampBugFix Recommended Smoother movement and fewer ramp glitches

Step 1: The surf cvars

Create game/csgo/cfg/surf.cfg:

// Movement
sv_airaccelerate 150
sv_accelerate 10
sv_enablebunnyhopping 1
sv_autobunnyhopping 1
sv_staminamax 0
sv_staminajumpcost 0
sv_staminalandcost 0
sv_falldamage_scale 0
sv_maxvelocity 3500
sv_jump_precision_enable 0
sv_subtick_movement_view_angles 0

// Rounds
mp_roundtime 60
mp_roundtime_defuse 60
mp_roundtime_hostage 60
mp_timelimit 30
mp_maxrounds 0
mp_freezetime 0
mp_warmuptime 0
mp_ignore_round_win_conditions 1
mp_respawn_on_death_t 1
mp_respawn_on_death_ct 1
mp_round_restart_delay 0
mp_buytime 0
mp_give_player_c4 0

// Players
mp_solid_teammates 0
mp_friendlyfire 0
mp_autoteambalance 0
mp_limitteams 0
mp_autokick 0
sv_alltalk 1
sv_deadtalk 1
bot_quota 0

Load it with exec surf, then change map. To apply it on every map, add exec surf to the end of server.cfg.

What the important ones do, with CS2's defaults:

Cvar CS2 default Surf value Why
sv_airaccelerate 12 150 How fast you gain speed in the air. 12 makes ramps unsurfable
sv_accelerate 5.5 10 Ground acceleration
sv_enablebunnyhopping false 1 Lets speed go above running speed
sv_autobunnyhopping false 1 Holding jump re-jumps on landing
sv_staminamax 80 0 Removes the slowdown from jumping and landing
sv_staminajumpcost 0.08 0 No stamina penalty on jump
sv_staminalandcost 0.05 0 No stamina penalty on landing
sv_falldamage_scale 1 0 No fall damage
sv_maxvelocity 3500 3500 Speed cap per axis. Classic surf maps are built for 3500
mp_ignore_round_win_conditions false 1 Rounds do not end when one team is "dead"

150 airaccelerate is the classic value most surf maps are tuned for. Some servers run 100 for a heavier feel or 1000 for a "fun" server where everything is easy, but 150 is where to start.

A note on sv_maxvelocity: SharpTimer's example surf config raises it to 9876 for higher top speeds. Leave it at 3500 unless you know a map wants more. Most older maps were designed around 3500, and going higher lets players skip parts of them.

Step 2: Set the game mode

Surf runs fine in casual mode, which keeps the rules simple and lets the cvars above do the work. Set it before loading your first surf map:

game_type 0; game_mode 0

The mode applies on the next map load, which is the Workshop map in the next step. Make sure no competitive config is setting rounds or bots back after your surf.cfg runs.

Step 3: Load Workshop surf maps

CS2 has no surf maps built in. They all come from the Steam Workshop:

  1. Search the CS2 Workshop for "surf". Good starter maps to look for are surf_beginner, surf_utopia_njv and surf_kitsune, all tier 1.
  2. Open the map's page. The ID is the number at the end of the URL, after ?id=.
  3. In the server console run:
host_workshop_map <id>

The server downloads the map and switches to it, and players get it automatically when they connect.

For a rotation, add your maps to a Workshop collection and run host_workshop_collection <collection id>. Then ds_workshop_changelevel surf_kitsune switches between maps the server already has. More on rotations in how to play CS2 Workshop maps on a server.

Surf maps are graded by tier, from 1 (beginner) up to 6 or 8 depending on the community. For a new server with mixed players, keep most of your rotation at tiers 1 to 3.

Step 4: Install Metamod and CounterStrikeSharp

Timers need the plugin stack:

  1. Metamod:Source 2.x from sourcemm.net. Upload addons to game/csgo/, then add Game csgo/addons/metamod under the Game_LowViolence csgo_lv line in game/csgo/gameinfo.gi.
  2. CounterStrikeSharp, the "with runtime" build, from its GitHub releases. Upload its addons folder to game/csgo/ too.
  3. Restart and run meta list to confirm both load.

The step by step version, including exactly where the gameinfo.gi line goes, is in our CS2 retakes setup, which uses the same stack.

Step 5: Install SharpTimer

SharpTimer is the most used surf, bhop and KZ timer for CS2 on CounterStrikeSharp. The original author stopped at 0.2.6 and the community fork, poor-sharptimer, is the maintained one.

  1. Install its required dependency, cs2-tags, the same way as any CounterStrikeSharp plugin.
  2. Download the latest SharpTimer release and unzip it into game/csgo/.
  3. Optional but recommended for surf: MovementUnlocker (a Metamod plugin that removes the ground speed cap) and RampBugFix (fewer cases of losing all speed on a ramp seam). Note that MovementUnlocker conflicts with CS2Fixes, so run one or the other.
  4. Restart the server and load a surf map.

The main settings are in cfg/SharpTimer/config.cfg. Times save to JSON files by default, so you do not need a database for a small server. For a bigger community, it supports MySQL or Postgres with sharptimer_mysql_enabled or sharptimer_postgres_enabled.

SharpTimer also runs per map prefix configs from cfg/SharpTimer/MapData/MapExecs/. It ships an example.surf_.cfg with surf cvars, so you can keep surf settings there and they load only on maps starting with surf_. Handy if you also run bhop or KZ maps with different movement.

SharpTimer uses the start and end zones built into the map when the map maker included them. For maps without them, it can use zone files in cfg/SharpTimer/MapData/, one JSON per map, and a few ship with the plugin (surf_kitsune among them). If the timer never starts on a map, it has neither, so test each map before you add it to your rotation.

The other big option is the CS2Surf Timer project, an open source timer built for surf only. It needs a MySQL database, so it suits a larger community with its own database more than a weekend server.

Common surf server problems

Problem Fix
Players slide off ramps or cannot gain speed sv_airaccelerate is still 12. Check the value after a map change
Rounds keep ending Set mp_ignore_round_win_conditions 1 and long round times
Settings reset every map The game mode config runs after yours. Put exec surf at the end of server.cfg
Players stop dead on ramp seams Install RampBugFix. Some maps also have this bug built in
Timer does not start The map has no timer zones and no zone file. Pick another map or add zone data
Plugins stop loading after a CS2 update The update replaced gameinfo.gi. Add the Metamod line back

Running a surf server on GamezServers

Everything above works through the Files tab or SFTP: upload the plugins, edit gameinfo.gi and drop surf.cfg in game/csgo/cfg/. Use the Workshop map button to load surf maps by ID and Run a config to exec surf. Surf is light on CPU but players love a full server, and our 8 GB plan is sized for a full 32 player lobby. See CS2 server hosting for plans.

FAQ

What is the best sv_airaccelerate for surf?

  1. It is the value classic surf maps were built around. Lower makes strafing feel heavy and higher makes it too easy to gain speed.

Do I need plugins to surf in CS2?

No. The cvars are enough to surf on Workshop maps. Plugins add the timer, zones, records and quality of life features that public surf servers have.

Why does surf feel different in CS2 than in CS:GO?

CS2's movement and sub-tick input changed how air strafing feels, and some ramps act differently on the new engine. Settings like sv_subtick_movement_view_angles 0 and plugins like RampBugFix are there to bring it closer.

How do I add surf maps to my CS2 server?

Find the map on the Steam Workshop, copy the number after ?id= in its URL, and run host_workshop_map with that number. Players download it automatically.

Is surf allowed on community servers?

Yes. Surf is a long standing community mode. Valve just requires a Game Server Login Token like any other public server.

Skip the setup. Your own CS2 server.

$4.99USD first month

Then $9.99/mo. Just trying it? $2.50 for 3 days

Keep reading