Menon May 12, 2021 @ 2:32am
Please allow passing arguments/parameters to non-Steam games
There is currently no way to launch non-Steam games with arguments/parameters on the fly.

Non-Steam games can only be run externally using the URI command steam://rungameid/<id> which unfortunately does not support arguments.

This makes Steam Input/Controller impossible to use when you need to run a non-Steam game with specific arguments (besides setting launch options, but that has to be set manually).

I humbly implore Valve devs to implement this feature, whether it be adding non-Steam games support to -applaunch and steam://run/ or arguments support to steam://rungameid/ as it would be a huge relief for anyone using Steam controllers with non-Steam games and make Steam all the more flexible as a games library manager.

On a related note, running a Steam game using steam://run/<id>//<args>/ causes a pop-up asking me to confirm. I'd like an option to bypass this. I'm currently using -applaunch to avoid that.

Thank you.
Last edited by Menon; May 12, 2021 @ 2:32am

Something went wrong while displaying this content. Refresh

Error Reference: Community_9734361_
Loading CSS chunk 7561 failed.
(error: https://community.fastly.steamstatic.com/public/css/applications/community/communityawardsapp.css?contenthash=789dd1fbdb6c6b5c773d)
< 1 2 >
Showing 1-15 of 16 comments
Satoru May 12, 2021 @ 2:49am 
..... if they're non steam games just....... launch the shortcut directly????
Menon May 12, 2021 @ 2:51am 
Like I mentioned, running the game through Steam will allow the use of Steam Input and also the overlay.
Start_Running May 12, 2021 @ 3:41am 
Originally posted by M E N O N:
Like I mentioned, running the game through Steam will allow the use of Steam Input and also the overlay.
Just appand the launch paremetyers to the file location.
Menon May 12, 2021 @ 3:50am 
That works if you always use the same arguments. I'm talking about arguments that change, like say the IP address of a server for a multiplayer game, etc.

Changing launch options every time you need something different is far from ideal, and the reason for this post.
Last edited by Menon; May 12, 2021 @ 3:52am
Originally posted by Start_Running:
Originally posted by M E N O N:
Like I mentioned, running the game through Steam will allow the use of Steam Input and also the overlay.
Just appand the launch paremetyers to the file location.

Is that the location stored in Steam?
Because if it's the location stored for accessing the "non-Steam game" in Steam, then I can see why OP is having an issue getting the results that they want.

If it's parameters stored in a file location, in an actual file on the system, then there's a way to write a script for Windows that automatically updates parameters such as IP address to what you need, in the background, without you needing to click or type anything to get the parameters updated. (Worded quite specifically, "to get the parameters updated" - obviously, there's some typing you'll have to do to actually write the script & point it to the correct file to modify the parameter string at.)


:seewhatyoudid:
Menon May 12, 2021 @ 5:01am 
He's either talking about Game Properties->Target or Launch Options, both of which cannot be edited via scripts. Not in a reasonable way at the very least.
Last edited by Menon; May 12, 2021 @ 5:08am
Originally posted by M E N O N:
He's either talking about Game Properties->Target or Launch Options. Both of which cannot be edited via scripts.

They probably could be if we knew where the client was storing the information but that is most likely wholly infeasible, especially if it's not being stored as plain-text.

It's questionable if such a thing should be modified in such a manner either, then; it's no secret that the client allows people to add their own mods to it for creating skins & themes but... that's a particularly specific situation.


:seewhatyoudid:
Menon May 12, 2021 @ 5:15am 
It's stored in Steam\userdata\<user>\config\shortcuts.vdf.
It's not a plain text file and changes to it are not reflected immediately.

It is insane to expect users to write scripts that will edit it, then restart Steam and then run the non-Steam game.
Originally posted by M E N O N:
It's stored in Steam\userdata\<user>\config\shortcuts.vdf.
It's not a plain text file and changes to it are not reflected immediately.

It is insane to expect users to write scripts that will edit it, then restart Steam and then run the non-Steam game.

Yes, I'm not sure that'a a file they'd want you to be modifying - however, I don't think expecting a user to do something like this is exactly "insane", as passing parameters & using non-Steam "games" via the Steam client (especially working with parameters) is already something a bit more technical that, if I'm not mistaken, the average user won't be doing.

Besides, if you want it badly enough, it's up to you to figure it out, in whatever makeshift way that you can make it work, - as, even if they take your suggestion, it probably won't be implemented as a feature for several years.

[Also, according to fileinfo dot com]:
Originally posted by fileinfo:
"The file features Valve's KeyValues format, which is a plain text format that saves key-value parameters in a tree hierarchy. The format is similar to JSON and YAML. While VDF files are meant to be used by the Valve Source game engine, you can open the files with a text editor to view the contents."
That sounds like plain-text to me, just with a type of hypertext / XML mark-up included, but ultimately, still plain-text.


:seewhatyoudid:
Last edited by Kiddiec͕̤̱͋̿͑͠at 🃏; May 12, 2021 @ 5:27am
Menon May 12, 2021 @ 5:32am 
I'm already using a workaround, thanks. I want Steam to better support Non-Steam games especially for Steam Controller usage.

Launching a non-Steam game with parameters if allowed, is nowhere near as complicated as what you're suggesting so you can't make them seem equivalent.
Menon May 12, 2021 @ 5:36am 
Originally posted by Kiddiec͕̤̱͋̿͑͠at:
That sounds like plain-text to me, just with a type of hypertext / XML mark-up included, but ultimately, still plain-text.
Open it and see for yourself. It's not plain text.
I'm not asking for workarounds. I want Valve to make the client better.
Last edited by Menon; May 12, 2021 @ 5:45am
Originally posted by M E N O N:
Originally posted by Kiddiec͕̤̱͋̿͑͠at:
That sounds like plain-text to me, just with a type of hypertext / XML mark-up included, but ultimately, still plain-text.
Open it and see for yourself. It's not plain text.
...
Then fileinfo is either wrong or it must be encrypted or compressed in some way.
(Or [it is] using a different encoding, since there's multiple ways to encode plain-text, such as ASCII & UTF-8, & if your reader isn't using the right encoding for the file, it won't display properly.)

Originally posted by M E N O N:
...
Launching a non-Steam game with parameters if allowed, is nowhere near as complicated as what you're suggesting so you can't make them seem equivalent.

Oh, it's totally not equivalent, this is definitely a step higher in difficulty / complexity.

My point was that both of them are, most likely, already in the territory of "not what your average / mainstream Steam users will bother doing" - despite the fact that parameters in the file-path & non-Steam games / applications are already partially supported within the client's interface.

I'd be curious if you have a simpler work-around, as far as work-arounds go, as it's not like everything that I come up with is always going to be the best solution possible - often times, what I come up with is just "a" solution, that works decently enough for anyone capable of it.

Originally posted by M E N O N:
...
I'm not asking for solutions. I want Valve to make the client better.

That's fair, though, some people are just looking for immediate implementations. Even if you're not, though, I think it's still worth discussing the complexity involved in some of these "work-arounds" that people might come up with - compared to just having a second line to click on & type some data into, within the client itself (much easier).

It kind of highlights the significance of how useful it would be to have official support for such a thing.


:seewhatyoudid:
Menon May 12, 2021 @ 5:51am 
I'm currently using batch scripts that grab parameters from environment variables. It's not very reliable cause with some games, Steam can't seem to follow the flow of control from the script to the game that the script eventually launches, and that breaks the overlay and Steam Input.
Last edited by Menon; May 12, 2021 @ 5:52am
Originally posted by M E N O N:
I'm currently using batch scripts that grab parameters from environment variables. It's not very reliable cause with some games, Steam can't seem to follow the flow of control from the script to the game that the script eventually launches, and that breaks the overlay and Steam Input.

So, less reliable than what I came up with, but easier to implement (if you're aware that it's possible) (& also able to be implemented without intruding on client files, therefore safer / more legitimate, too).

Also, neat way of doing it. I can't say I would have thought of that.


This gives me an idea, though... I wonder if instead of pointing the non-Steam game URL to a batch-script, if instead you could point it to a ".LNK" shortcut & if it would more reliably launch it without breaking the overlay & Steam input.

Now, I recognize that this doesn't allow you to modify those parameters just yet but a script could be used (which would run as a background and / or scheduled process) to modify the contents of the ".LNK" file, in order to adjust the parameters, so that way when Steam launches the ".LNK" file & gets immediately redirected to the preferred executable, it simply always does so with the updated IP address ...potentially with full reliability.


:seewhatyoudid:
It's almost like Valve doesn't set a priority on Steam functionality with non-Steam products who would of thunk it.
< 1 2 >
Showing 1-15 of 16 comments
Per page: 1530 50

Date Posted: May 12, 2021 @ 2:32am
Posts: 16