lightwo 14 Oct, 2022 @ 7:53am
Eureka! Steam Client launch options bug worked around
You may be familiar with how Steam and Source/GoldSrc/Quake-based games work; launching with -<args> uses command line options specific to launching, and +<cmds> fire console commands at launch.

All this works just fine on SteamCMD, but the issue arises if you try to do it on the main client. The client fails to parse console commands properly (notice the single quote):
+some_command Outcome: >>> command not found: some_command'

The workaround
What's the workaround? It's actually dead simple.
Just enclose everything in quotes and add a dummy command!
"+some_command <arg> +some_other_command <arg> +dont_touch_this"

Explanation
So, normally, when you try to do this, you end up nowhere because the client mistakenly adds another ' at the end of any command:
+some_command <arg> Result: some_command' <arg>
Outcome: >>> command not found: some_command'
...and here's what happens if you try to be smart and enclose it in quotes:
"+some_command <arg>" Result: some_command <arg>'
Outcome: "some_command" = "<arg>'"
(notice the extra ')
Well, why don't we push it further to the right instead?
"+some_command <arg> +some_other_command <arg>" Result: some_command <arg>
some_other_command <arg>'
Outcome: "some_command" = "<arg>"
"some_other_command" = "<arg>'"
(again, the extra ')
Okay, but now the other command isn't usable. Let's add a dummy command to make the previous two work.
"+some_command <arg> +some_other_command <arg> +dont_touch_this" Result: some_command <arg>
some_other_command <arg>
dont_touch_this'
Outcome: "some_command" = "<arg>"
"some_other_command" = "<arg>"
(no extra '!) >>> command not found: dont_touch_this'
Awesome! It worked, but let's ignore the error from the dummy command, it doesn't matter.

How you can benefit from this
Ever wanted to use internal commands and variables like @AllowSkipGameUpdate = "1" on launch? Well, now you can!

Here's a few other interesting commands you can try:
@bMetricsEnabled 0 clientui_overlay_fps <desired FPS, def. 60> library_sharing_account_max 1337 sCommunityShareScreenshotLink about:blank (this points to Facebook by default...) steamcontroller_developer 1 voice_quality <quality, def. 6> unShaderBackgroundProcessingThreads ## (Linux, replace ## with `nproc`)



Now, I am aware of "-script <filename>" referenced in the Command Line Options wiki page, but either it's total bull, or the actual syntax and implications are not yet known.
Last edited by lightwo; 28 Aug, 2023 @ 8:03am
< >
Showing 1-6 of 6 comments
lightwo 14 Oct, 2022 @ 10:10am 
Finally! Many edits later, I figured everything out. Have fun pretending your client is SteamCMD now!
Last edited by lightwo; 14 Oct, 2022 @ 10:28am
burnhell 28 Feb, 2023 @ 7:59am 
Originally posted by lightwo:
How you can benefit from this
Ever wanted to use internal commands and variables like @AllowSkipGameUpdate = "1" on launch (which nowadays requires Small Mode, launching via steam:// URL or desktop shortcut)? Well, now you can!
May you elaborate more on how where exactly I should put; @AllowSkipGameUpdate = "1" ?

Is it on the game via steam or is it on the steam.exe?

For example:
in the steam desktop shortcut I added
"C:\Program Files (x86)\Steam\steam.exe" @AllowSkipGameUpdate 1
Last edited by burnhell; 28 Feb, 2023 @ 8:09am
lightwo 28 Feb, 2023 @ 8:11am 
Originally posted by burnhell:
Originally posted by lightwo:
How you can benefit from this
Ever wanted to use internal commands and variables like @AllowSkipGameUpdate = "1" on launch (which nowadays requires Small Mode, launching via steam:// URL or desktop shortcut)? Well, now you can!
May you elaborate more on how where exactly I should put; @AllowSkipGameUpdate = "1" ?

Is it on the game via steam or is it on the steam.exe?

For example:
"C:\Program Files (x86)\Steam\steam.exe" @AllowSkipGameUpdate 1
"C:\Program Files (x86)\Steam\steam.exe" "+@AllowSkipGameUpdate 1 +dummy"

Though @AllowSkipGameUpdate 1 is a bit obsolete considering that using Offline Mode nowadays lets you skip updates and get right into the game.

If you want the full procedure for either method, feel free to read these:
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2925299592
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2926418252
Last edited by lightwo; 28 Feb, 2023 @ 8:16am
burnhell 28 Feb, 2023 @ 8:16am 
Originally posted by lightwo:
Originally posted by burnhell:
May you elaborate more on how where exactly I should put; @AllowSkipGameUpdate = "1" ?

Is it on the game via steam or is it on the steam.exe?

For example:
"C:\Program Files (x86)\Steam\steam.exe" @AllowSkipGameUpdate 1
"C:\Program Files (x86)\Steam\steam.exe" "+@AllowSkipGameUpdate 1 +dummy"

Though @AllowSkipGameUpdate 1 is a bit obsolete considering that using Offline Mode nowadays lets you skip updates and get right into the game.
Yeah but, offline mode doesn't count hours played in the profile. lol
thank you, gonna try it now. :cozybethesda::steamhappy:
lightwo 28 Feb, 2023 @ 8:20am 
Originally posted by burnhell:
Originally posted by lightwo:
"C:\Program Files (x86)\Steam\steam.exe" "+@AllowSkipGameUpdate 1 +dummy"

Though @AllowSkipGameUpdate 1 is a bit obsolete considering that using Offline Mode nowadays lets you skip updates and get right into the game.
Yeah but, offline mode doesn't count hours played in the profile. lol
thank you, gonna try it now. :cozybethesda::steamhappy:
You also need to know that the modern library doesn't offer you to skip updates, so as noted:
...like @AllowSkipGameUpdate = "1" on launch (which nowadays requires Small Mode, launching via steam:// URL or desktop shortcut)?
...please don't go launching all your outdated games immediately, because you will find that the ConVar does nothing in the modern library.

Also, be careful to stop any updates the client starts as the result of launching the game, because... well, Steam behaves that way. Sorry.



In any case, I do recommend following my new procedure in this guide:
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2925299592

And note this:
If you want/need Steam networking: Switch back with Steam > Go Online... and continue playing

Thus, you only need to go offline to launch the game, but then you can immediately exit out of the mode.
Last edited by lightwo; 28 Feb, 2023 @ 8:24am
burnhell 28 Feb, 2023 @ 8:29am 
Originally posted by lightwo:
Originally posted by burnhell:
Yeah but, offline mode doesn't count hours played in the profile. lol
thank you, gonna try it now. :cozybethesda::steamhappy:
You also need to know that the modern library doesn't offer you to skip updates, so as noted:
...like @AllowSkipGameUpdate = "1" on launch (which nowadays requires Small Mode, launching via steam:// URL or desktop shortcut)?
...please don't go launching all your outdated games immediately, because you will find that the ConVar does nothing in the modern library.

Also, be careful to stop any updates the client starts as the result of launching the game, because... well, Steam behaves that way. Sorry.



In any case, I do recommend following my new procedure in this guide:
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2925299592

And note this:
If you want/need Steam networking: Switch back with Steam > Go Online... and continue playing

Thus, you only need to go offline to launch the game, but then you can immediately exit out of the mode.
shame modern library doesn't allow it,:steamsad:

I will try "Switch back with Steam > Go Online... and continue playing"

Edit: Works, it count hours played this way :D
Last edited by burnhell; 28 Feb, 2023 @ 8:34am
< >
Showing 1-6 of 6 comments
Per page: 1530 50

Date Posted: 14 Oct, 2022 @ 7:53am
Posts: 6