Counter-Strike 2

Counter-Strike 2

43 ratings
[CS:GO] How to Surf and Bhop Offline: Config / Commands
By B4
Step 1: Creating a config file

A lot of people assume that you're just going copy their commands every time you want to surf, but in reality, doing so is really annoying. I advise you to create a config file instead.

First, locate your csgo/cfg folder. To do that, you can right-click on CS:GO in your Steam library, click Properties, go to Local Files tab and click on Browse Local Files. From there, go to the csgo folder, then to the cfg folder.

Create a new text file in that folder and name it surf.

Step 2: Copy the commands

Open the file you created in Step 1, copy the commands listed below and paste them into your text file, then save the file and close the text editor.
mp_roundtime 60 mp_roundtime_defuse 0 mp_roundtime_hostage 0 mp_freezetime 0 bot_quota_mode fill mp_warmup_start mp_warmup_end bot_difficulty 0 bot_kick sv_cheats 1 ent_remove_all player_weaponstrip sv_airaccelerate 150 sv_enablebunnyhopping 1 sv_autobunnyhopping 1 sv_falldamage_scale 0 sv_staminajumpcost 0 sv_staminalandcost 0 sv_full_alltalk 1 sv_deadtalk 1 sv_talk_enemy_living 1 sv_talk_enemy_dead 1 mp_autokick 0 mp_solid_teammates 0 mp_maxrounds 0 mp_round_restart_delay 0 mp_ignore_round_win_conditions 1 mp_respawn_on_death_ct 1 mp_respawn_on_death_t 1 gods give weapon_knife bot_quota -1000 cl_showpos 1 cl_drawhud_force_radar -1 slot3

Now, look at your file. If your OS is set to display file extensions, you will notice that the full name of your file is surf.txt. You can optionally change that to surf.cfg, this will make using the config file slightly easier.

Step 3: Using the config

First of all, you will need the in-game console. If you haven't enabled it already - go ahead and do so in CS:GO's Settings - Game settings. To open or close the console, press the `~ key on your keyboard.

Go ahead and boot up a surf map. On most maps, you can select a team immediately. If the map crashes when you do that - try typing bot_quota 0 into the console (and pressing Enter) before you select a team.

Now, if you didn't rename your config file to surf.cfg, you should type exec surf.txt into the console. Otherwise, type exec surf. From now on, you will be using that command any time you boot up a surf map.

Hopefully, you can now start surfing.

Footnotes
  1. The timer is there just for your reference. The round won't stop after an hour.

  2. To respawn and reset the timer, you can execute the config again.

  3. You can see your speed in the top-left corner of the screen, after vel:

  4. In my experience, the config works with bhop maps as well.

  5. If you choose to play with friends (invite them to your lobby and start a workshop map), you will want to stick to playing on the same team (enemy players are, unfortunately, always solid), and use the kill console command in case you're stuck and need to respawn, as opposed to executing the config again. You might also have to use the bot_kick console command, as bots might spawn in case people swap teams too many times. Your friends will not see their own speed unless they type cl_showpos 1; cl_drawhud_force_radar -1 into their console.

  6. Please do restart CS:GO after surfing before playing on official servers. My experience with CS:GO's engine proves that it doesn't always reliably reset the client's commands when joining a server.

  7. Do not ever bind this config to a key. Always use the console to execute it. This is a safety precaution.

  8. Do not use this config to run public servers. It is only meant for offline play. It could also work for a small lobby of friends.

  9. I can't offer any guarantee that the config will work with every surf map in existence, but it does simplify my life.
4
   
Award
Favorite
Favorited
Unfavorite
12 Comments
B4  [author] 17 Feb, 2024 @ 12:38pm 
Hey, never tested in CS2, if CS2 Surf is a thing. Yeah, in CS:GO you can wrap whole Squirrel scripts info cfg lines, which I did in the GitHub version. It's a pain in the ass, feels more akin to obfuscation of code, but for some reason I thought people would like that it's just a cfg file.
𓅃 スノ 𓅃 15 Feb, 2024 @ 5:17am 
you can acculy run scripts with in cfg files?

i want to alter the health regen setting
B4  [author] 4 Dec, 2022 @ 1:03am 
Hello owen, what exactly doesn't work?
owensparks17 1 Dec, 2022 @ 3:33pm 
this doesnt work for me
chiki 16 Oct, 2021 @ 11:50am 
thanks
B4  [author] 26 Jan, 2021 @ 4:17am 
Alright everyone, I've uploaded the new script to GitHub. I will work on updating the guide a bit later, but for the time being, you can get the script here. If you do try it, let me know how it went.
https://github.com/peasdune/GOSurfScript/releases/tag/1.0
B4  [author] 8 Jul, 2020 @ 4:14am 
To anyone interested in receiving updates to this guide and it's scripts, please subscribe to this comment thread!

I am currently working on a very exciting update that will bring a nicer speed indicator, noblock (all players not solid to each other), server-wide godmode, and ability to reset back to the start of the stage and start of the map. I will also be working on making a timer to time your runs, but that's probably going to be later down the line.
B4  [author] 30 Jun, 2020 @ 6:24pm 
If the map you're trying to play is surf_utopia_v3 , execute these extra commands after the config:
ent_fire jail_teleport_case addoutput "targetname plsnojail";ent_fire jail_teleport addoutput "target start"

To teleport back to this map's start use this command:
script s<-Entities.FindByName(null, "start");script p<-Entities.FindByName(null, "!player");script p.SetOrigin(s.GetOrigin())
B4  [author] 30 Jun, 2020 @ 4:14pm 
I updated the guide on June 30th 2020, to add three commands to the config and some more information.
Muda! 18 Jan, 2020 @ 4:30am 
thank you man, very helpful
1