Every ranked session you spend re-importing a crosshair or fumbling for smoke in the scroll wheel is a round you could have won. A single autoexec.cfg loads your sensitivity, binds, and crosshair on launch — so muscle memory and utility timing stay consistent match to match.
This guide walks through the CS2 cfg folder, `+exec autoexec.cfg` launch options, jump-throw binds for lineups, grenade quick-select keys, crosshair persistence commands, and practical aliases that Valve allows in Competitive and Premier. If you are still learning economy and utility basics, start with our beginner's guide; pair video and launch flags with our competitive settings guide once your cfg skeleton is in place.
Quick answer: CS2 config essentials
- Create `autoexec.cfg` in `…\Counter-Strike Global Offensive\game\csgo\cfg\`.
- Steam → CS2 → Properties → Launch Options: `+exec autoexec.cfg` (optionally `+fps_max 0`).
- Jump-throw bind via alias — test on empty server after every major patch.
- Bind grenade slots: flash, smoke, incendiary/HE on separate keys.
- Mirror crosshair with `cl_crosshair*` commands or Settings → Share/Import codes.
- Never run unknown `.cfg` files from Discord or random download sites.
Key takeaways
- One autoexec beats five scattered cfg files — load order matters less than knowing what is in the file.
- Jump-throw binds are allowed; recoil scripts and auto-fire macros are not.
- Dedicated grenade keys cut fumble time during executes — pair with lineup reps on your main maps.
- Save crosshair to autoexec after you lock it for a week — not before every tweak.
- Back up cfg before patches; Valve occasionally resets or renames console commands.

Table of contents
- Key takeaways
- What config files do in Source 2
- CS2 cfg folder location
- Creating autoexec.cfg and loading it on launch
- Launch options that pair with autoexec
- Jump-throw bind for consistent lineups
- Grenade binds — flash, smoke, molotov
- Saving crosshair settings to autoexec
- Useful alias and QoL bind examples
- Security: never download random configs
- Fair-play boundaries
- Testing and maintaining your config
- Common config and bind mistakes
- Frequently asked questions
- Conclusion
What config files do in Source 2
CS2 stores most player settings in the cloud, but console commands, binds, and aliases still live in local `.cfg` files. An autoexec is a text file the game executes on startup — sensitivity, crosshair, audio toggles, grenade binds, and practice aliases in one place.
Competitive players treat config like infrastructure: boring when it works, painful when it breaks mid-season. You are not chasing a pro's 200-line paste — you are building a minimal file you understand line by line. That is the difference between tweaking with purpose and resetting binds after every patch because you never knew what half the commands did.
CS2 cfg folder location
The cfg directory lives inside your CS2 game install, not in Documents. Default Steam path on Windows:
- `Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg\`
- Create `autoexec.cfg` here with Notepad or any plain-text editor — save as UTF-8 without BOM if your editor offers the choice.
- Optional practice configs: `practice.cfg`, `crosshair_backup.cfg` — exec them manually with `exec practice` in console.
- If CS2 lives on another drive, right-click Counter-Strike 2 in Steam → Manage → Browse local files, then navigate to `game\csgo\cfg\`.
Creating autoexec.cfg and loading it on launch
Start minimal. A working autoexec needs only a few lines — expand after you confirm it loads.
- Create `autoexec.cfg` in the cfg folder above.
- Add `echo "autoexec loaded"` as the first line — you will see confirmation in console when it works.
- Append binds and settings (sections below).
- In Steam: Counter-Strike 2 → Properties → General → Launch Options, enter `+exec autoexec.cfg`.
- Launch CS2, open console (`~`), confirm the echo message appears.
You can also run `exec autoexec` manually in console to reload without restarting. Keep a dated backup copy (`autoexec_2026-08-01.cfg`) before major Valve updates.
Launch options that pair with autoexec
Source 2 ignores most CS:GO-era flags. Keep launch options short — long strings from old forum posts cause stutter or no effect. Pair video and FPS tuning with the competitive settings baseline from the intro; config-focused flags below.
| Launch option | Status | Use with autoexec |
|---|---|---|
| +exec autoexec.cfg | Required | Loads your binds and saved commands on every launch |
| +fps_max 0 | Optional | Uncap FPS — or match monitor refresh + 20 for steadier pacing |
| -nojoy | Optional | Disables joystick API; harmless trim |
| -allow_third_party_software | Situational | Only if capture or overlay tools require it |
| -high | Test individually | Remove if frametimes worsen after adding autoexec |
| -tickrate 128 | Dead | Sub-tick replaced tickrate — delete from old configs |
Jump-throw bind for consistent lineups
Manual jump-throws vary with frame timing. A bind releases attack at jump apex every time — essential for smoke lineups on Inferno banana, Mirage window, and dozens of ranked spots. Valve allows jump-throw aliases; they are not cheats.
Add this block to autoexec, replace `v` with your preferred key, and test on an empty server with `sv_cheats 1; noclip` disabled — throw smokes at a wall and verify landing consistency. After patches, re-test; alias behavior occasionally shifts.
- alias "+jumpthrow" "+jump; -attack; -attack2"
- alias "-jumpthrow" "-jump"
- bind "v" "+jumpthrow"
- Optional alias name `+jt` / `-jt` works identically — pick one naming scheme and stay consistent.
Grenade binds — flash, smoke, molotov
Scrolling the weapon wheel under pressure loses executes. Bind direct slots so muscle memory selects utility in one keypress. CS2 slot numbers differ from CS:GO — verify in an empty server after binding.
| Bind example | Command | Ranked use |
|---|---|---|
| Flash | bind "f" "slot7" | Fast pop before peek — slot number may vary; test in-game |
| Smoke | bind "c" "slot8" | Instant smoke select for executes and retakes |
| Molotov / incendiary | bind "x" "slot10" | Site denial and post-plant delay |
| HE grenade | bind "g" "slot6" | Damage and wallbang utility |
| Last inv + quick switch | bind "q" "lastinv" | Rifle ↔ utility without scroll wheel |
Slot numbers depend on loadout order. Open console, equip each grenade manually, note which `slot#` activates it, then update binds. Do not copy a 2019 CS:GO grenade cfg without re-verifying every slot in CS2.
Saving crosshair settings to autoexec
Settings → Crosshair → Share/Import handles pro codes and quick swaps — but codes do not always survive patches. Mirror your locked crosshair in autoexec after a one-week test so launch always restores your baseline.
Full style breakdown — gap, color on Mirage vs Nuke, static vs dynamic — lives in our crosshair settings guide. Example persistence block:
- cl_crosshairstyle 4
- cl_crosshairsize 2; cl_crosshairgap -2; cl_crosshairthickness 0
- cl_crosshairdrawoutline 1; cl_crosshairoutlinethickness 1
- cl_crosshaircolor 1
- cl_crosshairalpha 255; cl_crosshairusealpha 1
- host_writeconfig crosshair_backup — writes current session to cfg for manual merge
Useful alias and QoL bind examples
Aliases chain console commands to one key. Below are competitive-safe examples — no automation of firing, recoil, or target acquisition.
| Alias / bind | Purpose | Notes |
|---|---|---|
| bind "mwheelup" "+jump"; bind "mwheeldown" "+jump" | Scroll wheel bhop | Allowed; consistency varies — many players prefer space only |
| bind "kp_ins" "toggle cl_crosshairsize 0 2" | Crosshair size toggle | Practice-only toggle; reset before ranked if distracting |
| alias "clearblood" "r_cleardecals"; bind "mouse4" "clearblood" | Clear blood/decals | Bind any spare key; run on interval during retakes |
| bind "n" "toggle voice_modenable 1 0" | Mute all voice | Escape toxic lobbies without menu diving |
| alias "pracc" "sv_cheats 1; mp_warmup_end; mp_freezetime 0; mp_roundtime 60" | Private practice server setup | Exec manually — do not bind for matchmaking |
| bind "kp_end" "buy ak47; buy vesthelm; buy defuser" | Full CT rifle buy | Know manual buy strings — economy overrides bind buys |
Security: never download random configs
Discord servers, YouTube descriptions, and "pro config pack" sites distribute `.cfg` and `.exe` files that can run arbitrary console commands — including binds you cannot see, network settings that phone home, or instructions paired with malware launchers.
Safe approach: write autoexec yourself, copy individual bind lines from trusted write-ups (like this guide), and inspect every line before saving. If someone sends a config, open it in Notepad first. Delete anything invoking `exec` on other files, unknown URLs, or `bind` keys you did not choose.
Fair-play boundaries
Valve permits jump-throw binds, buy binds, crosshair toggles, and decal clears in Competitive. Banned or risky territory includes recoil compensation scripts, triggerbot-style `+attack` automation, pixel-color aimbots, and hardware macros that fire faster than human input.
When a bind feels like it plays the game for you, it probably violates integrity rules. Stick to one-input-one-action binds documented in this guide.
Testing and maintaining your config
- After creating autoexec: verify echo message, test jump-throw on five known lineups.
- After each Valve patch: re-test jump-throw and grenade slot binds in empty server.
- Before ranked: confirm no practice aliases (sv_cheats) leaked into autoexec.
- Monthly: backup cfg folder to cloud storage or a dated zip.
- One change per session — do not add ten binds and wonder which broke long throws.
Common config and bind mistakes
| Mistake | What happens | Fix |
|---|---|---|
| Wrong cfg folder (CS:GO legacy path) | autoexec never loads; settings feel random | Use `game\csgo\cfg\` under CS2 install — see folder section above |
| Missing +exec in launch options | Binds work once manually, lost on restart | Add `+exec autoexec.cfg` in Steam launch options |
| Pasting full pro config unedited | Wrong slots, dead commands, surprise binds | Cherry-pick lines; understand each command |
| Jump-throw not re-tested after patch | Smokes land short on execute rounds | Empty-server test after every major update |
| Crosshair code only, no autoexec backup | Patch resets crosshair mid-season | Mirror locked crosshair with `cl_crosshair*` in autoexec |
| CS:GO grenade slot numbers in CS2 | Bind pulls knife or wrong utility | Verify slot numbers in empty server |
| Downloading "FPS booster" cfg packs | Malware risk or harmful network cvars | Write autoexec manually; see security section |
| Recoil or rapid-fire alias scripts | VAC or overwatch exposure | Remove — use aim training instead |
Frequently asked questions
Do jump-throw binds work in CS2?
Yes. The alias pattern `+jump; -attack; -attack2` on key down and `-jump` on key up produces consistent jump-throws for smokes and molotovs. Re-test after major patches because Valve occasionally adjusts bind behavior.
Where is the CS2 config folder?
Inside your Steam CS2 install: `Counter-Strike Global Offensive\game\csgo\cfg\`. Right-click CS2 in Steam → Manage → Browse local files if you installed on a non-default drive.
Does autoexec load automatically?
Only if you add `+exec autoexec.cfg` to Steam launch options or run `exec autoexec` manually in console. The file sitting in the cfg folder does nothing until executed.
Are buy binds allowed in competitive?
Yes. Buy binds that run standard `buy` console commands are permitted. Still learn manual buy strings — binds cannot adapt to economy decisions mid-round.
Can I get banned for config files?
Plain text autoexec with binds and aliases is safe. Bans target recoil scripts, trigger automation, and external cheats — not jump-throw or grenade binds. Never run unknown cfg files from untrusted sources.
How do I save my crosshair permanently?
Lock your crosshair for a week, then copy `cl_crosshair*` values into autoexec or use Settings → Share/Import for a code plus autoexec mirror. See our crosshair guide for recommended values.
What launch options should I use with autoexec?
Minimum: `+exec autoexec.cfg`. Optional: `+fps_max 0` or a refresh-based cap. Avoid long CS:GO-era flag lists — details in our competitive settings guide.
Should I download a pro player's config?
Download is the wrong word — inspect and cherry-pick. Pros tune for their DPI, crosshair, and key layout. Copy individual bind lines you understand; never exec a 400-line file from a random link.
Conclusion
Build one autoexec you understand: cfg folder path confirmed, `+exec autoexec.cfg` in launch options, jump-throw and grenade binds tested on an empty server, crosshair mirrored after a locked week of play.
Next: lock crosshair color and gap for 30 days, drill Inferno smokes with your jump-throw key, and review grenade mechanics if lineups still land short.
