Search for CS2 launch options and you get the same list twenty times: -novid, -tickrate 128, -threads 8, +cl_forcepreload 1, a promise of more frames, and a line to paste. Most of that list was written for CS:GO. CS2 runs on a different engine, and the pages repeating those lines rarely show that the game still reads them.
This is what a launch option is, which ones are documented for CS2, which ones are Source 1 leftovers, which ones fight each other, and what they are not for. One thing to say before the list: the statuses below come from Valve's documentation and from which options are Source 2 engine options — not from a test on our own install. Where we cannot confirm a flag, we say “unconfirmed” rather than pick a side.
Where Launch Options Live, and How They Are Written
In Steam: right-click Counter-Strike 2 in your library → Properties → General → Launch Options. It is a single text box. Whatever is in it is handed to the game every time Steam starts it, before a menu, a console or a config exists.
Two kinds of thing go in that box. An option starting with a dash, such as -console or -windowed, is a launch parameter, read by the engine as it starts. An entry starting with a plus is handed to the console once the game is up, and it comes in two shapes: +exec autoexec runs a command, while +fps_max 0 sets a console variable to a value — the same lines you could type in the console or put in a config, just earlier. The distinction matters below: a plus entry for a console variable that no longer exists sets nothing, and for plus entries that is something anyone can check against the game's own list of variables.
Why the CS:GO Lists Do Not Carry Over
CS:GO ran on Source; CS2 runs on Source 2. A launch option only does something if the engine reads it, and several popular Source options were written for things CS2 handles differently: CS:GO's DirectX 9 renderer, its tick-rate choices, its loading and threading tweaks. Guides are rarely corrected, because an option the game ignores produces no error — the game starts either way, and the reader cannot tell whether it did anything.
So every flag in our list sits in one of three groups, and the group names are the labels our checker prints. Works in CS2 is used only for options Valve has documented or that are Source 2 engine options the game exposes. Outdated is our label for a CS:GO-era option we have found no CS2 documentation for. Unconfirmed is what the CS:GO-era guides list and we have not seen confirmed on CS2 — kept, marked, not recommended. All three are labels from documentation; none of them is evidence of how a flag behaves in your current build of CS2.
The Flags Documented for CS2
Twelve options in our list carry the first label. Most of them are about the window, the console and loading a config, which is what launch options are actually for:
+exec autoexec— runs a config file from the cfg folder on start. If you keep your settings in an autoexec, this is the usual way to make sure it loads.-console— opens the developer console on start.-fullscreen,-windowed,-noborder— exclusive fullscreen, a window, and a window without a frame. Borderless windowed is-windowed -nobordertogether.-wand-h— window width and height in pixels. Both, or neither; leaving them out means the video settings decide.-allow_third_party_software— lets overlays and other software that attach to the game process run. The flag comes from CS:GO's Trusted Mode (see below).-insecure— starts without VAC. You cannot join secure servers, including matchmaking, until you remove it. Useful for testing, harmful if forgotten.-nojoy— skips controller initialisation.-language english— the game language, overriding the Steam client setting.+fps_max 0— sets the frame-cap variable at start; 0 means uncapped. It is the same variable asfps_maxin a config, set earlier.
The third-party flag has a history worth knowing, because it is easy to get backwards. It did not arrive with CS2. Valve introduced it in the CS:GO release notes of 23 July 2020, when Trusted Mode became the default: “Previous Trusted Mode launch options have been deprecated. Instead, a new compatibility launch option "-allow_third_party_software" is provided to allow third party software to access the CS:GO game process.” That note is about CS:GO; we have not found a separate Valve note about the flag in CS2. Add it only when a program you actually want — a recording tool, an overlay — cannot reach the game without it, and not as a reflex.
The Flags Marked Outdated
Ten options in our list carry the outdated label. For two of them there is hard, dated evidence; for the other eight the label means “no CS2 documentation found”, not “tested and dead”:
+cl_forcepreload 1and+mat_queue_mode— neither name is in CS2's list of console variables and commands for build 2000918 (25 September 2026), as published by SteamDB's GameTracking. A plus entry for a variable that does not exist has nothing to set.fps_maxandexec, for comparison, are both on it.-nod3d9exand-dxlevel— DirectX 9 options from CS:GO. The same game files carry DirectX 11 and Vulkan renderers for CS2 and no DirectX 9 one.-novid— skipped the intro video in CS:GO. We have found no CS2 documentation for it.-tickrate 128— set the tick rate of a local server in CS:GO. CS2 moved to what Valve calls sub-tick updates; whether the engine still takes this option for a local server is something we have not tested, and no launch option changes the tick rate of Valve's own servers.-threads— a thread-count hint from Source 1. No CS2 documentation found.-freqand-refresh— refresh-rate overrides from CS:GO. CS2 has a refresh-rate setting in its video menu; we have found no CS2 documentation for these two.-nopreload— a Source 1 loading option. No CS2 documentation found.
We have not measured what any of these does to performance in CS2, in either direction, and a page that promises frames from one owes you a measurement. Because eight of the ten labels rest on missing documentation rather than a test, our checker's choice to drop outdated options from the clean string is a judgement, not a verdict: if one of them does a job you rely on, put it back.
The Flags We Have Not Confirmed
Four options sit between the two groups. They appear on most CS:GO-era lists, they may or may not do something on CS2, and we have not measured them either way:
-high— meant to ask Windows for high process priority. We have no measurement of it on CS2; if the game runs well without it, there is no reason to add it.-forcenovsyncand-nosync— meant to force vsync off. The video settings menu has its own vsync setting, and that is the one we would use.-autoconfig— in CS:GO, reset video settings to defaults on start. If it still does that in CS2, leaving it in resets them at every launch.
“Unconfirmed” is not a polite word for “outdated”. It means the claim is plausible and untested, in both directions.
Flags That Fight Each Other
Two things go wrong inside a launch string even when every flag in it is alive. The first is a conflict: -fullscreen next to -windowed or -noborder asks for two window modes at once, and which one you get is not something to leave to the order the engine happens to read them in. The second is a duplicate. Strings grow by pasting: a guide adds -console, another adds it again, and the box ends up with the same flag twice. Our checker keeps the first copy and drops the second; which of the two the game itself would use is not something we have measured, and with a duplicate removed you do not need to know.
A quieter failure is a bad value: -w -1, to take one example, is a flag with an argument the game cannot use.
What a Launch Option Will Not Do
Nothing on this page comes with an FPS promise, because we have measured no gain from any of it. One entry does touch the frame rate directly: +fps_max sets the frame cap, exactly as it would in a config, so it can hold frames down but cannot add frames your hardware does not produce. The window flags choose a mode you could also choose in the menu, and the options that once promised speed — thread counts, preloading, DirectX levels — are the ones marked outdated above. If the frame rate is the problem, start in the video settings; the CS2 FPS guide goes through them one by one. Launch options are for the window, the console and your config.
There is no universal launch string, and this article does not try to give you one. Choose options for a specific need. If what you need is an autoexec and the console, that is two entries:
+exec autoexec -console
Add a window mode only if you want something the video settings do not give you, and the third-party flag only when a program you want cannot reach the game without it.
Check What Is in Your Own Box
If your launch options were assembled from guides over several years, the honest way to clean them is not to delete everything and start again — some of it may be doing a job you have forgotten about. It is to name each flag and judge it.
Our CS2 launch options page does exactly that. Paste the contents of your box and every token comes back with a verdict: works in CS2, unconfirmed, outdated, duplicate, a bad value — or unknown to us. That last one matters. A flag the page has never seen is kept, not removed: deleting something because we have not heard of it would be guessing with your settings. What goes is the outdated, the duplicated and the broken, each with its reason, and you get a clean string back in the original order. The full list of flags with status and reason is on the same page, and it says in words that none of the rows has been tested on our own install yet. Until the whole list has been checked on a CS2 install — the page will say so, with the date — treat every launch-options list on the internet, this one included, as documentation, not measurement.


