Repository navigation
Add option to launch with or without EAC #156
Description
Activity
This feature is core to making hosting bot matches to friends possible with Steam. Right now because EAC is enabled by default, and RLBot doesn't pull from Steam launch preferences or additional flag options, there is no way to launch with -noeac for Steam. A simple toggle that adds or removes that launch flag would suffice.
Unfortunately, it is not that simple. When I launch Rocket League with
"C:\Program Files (x86)\Steam\steam.exe" -applaunch 252950 -rlbot RLBot_ControllerURL=127.0.0.1:23233 RLBot_PacketSendRate=240 -nomovie -noeacit still starts with EAC enabled. Maybe we need a different app id, or alternatively we can try starting the nonEAC exe directly instead of using Steam -applaunch. In the latter case we need the RL installation path, but I guess we can get that the same way as we do for Epic - looking at logs.The launch configurations on Steam is a choice between two binaries
RocketLeague_EAC.exeandRocketLeague.exe, see SteamDB, it does not seem to be using the launcher.exe and the-noeacflag like on Epic. However, when I run the binaries directly it fails to fetch my login information and I am put into the tutorial. So we need to find a way to select the right configuration/binary through Steam commands.I found something. Using the browser protocol,
start steam://run/252950//-rlbot/launches the game with the default configuration (EAC) and-rlbotas parameter. On the other hand,start steam://launch/252950/option1/launches the game with the specified configuration (option1being NonEAC), but it does not seem to accept parameters in the same way >:(I found something that may be useful for the Steam no-EAC launching.
https://www.reddit.com/r/Steam/comments/jpgfzh/can_i_make_steam_open_a_different_exe_file/: It is possible to make a Steam launch a different exe (and add environment vars) if you add
%command%to the launch parameters in the Steam gui. The%command%is replaced with whatever the normal launch command is. E.g. if you add"C:\Program Files (x86)\Steam\steamapps\common\rocketleague\Binaries\Win64\RocketLeague.exe" -rlbot %command%, then RL will always launch without EAC and in RLBot mode! BUT it doesn't work when I try it on the command line. I tried:"C:\Program Files (x86)\Steam\steam.exe" -applaunch 252950 "C:\Program Files (x86)\Steam\steamapps\common\rocketleague\Binaries\Win64\RocketLeague.exe" -rlbot -nomovie %command%start steam://run/252950//%22C%3A%5CProgram%20Files%20(x86)%5CSteam%5Csteamapps%5Ccommon%5Crocketleague%5CBinaries%5CWin64%5CRocketLeague.exe%22%20-rlbot%20-nomovie%20%25command%25/
So I suspect the
%command%is only resolved when steam reads the saved launch parameters :(I have also been looking into where/how the launch configurations are stored in Steam. They seem to be stored in
Steam/appcache/appinfo.vdf. It is a binary file, but there exist tools that can read and modify this file: https://steamedit.tg-software.com/, https://github.com/tralph3/Steam-Metadata-Editor, and https://github.com/leovp/steamfiles. These tools can edit and add launch configurations. That means we should be able to do it too and add an RLBot+noEAC specific launch configuration!Will this be coming to RLBot v5 soon?
Steam support is a blocking issue
@VirxEC I was getting the vibe from the @NicEastvillage message that it is possible to do by reading and modifying
appinfo.vdfto change the launch configuration for RLBot to use noEAC.If we ever add a "launch with EAC option":
- Steam should default to the old way of launching which may be more reliable
- Epic uses the current launch method but targets
RocketLeague_EAC.exeinstead ofRocketLeague.exe
Why launch with EAC?
- Steam: May be more reliable? Unknown.
- Epic: Will load your player settings. But the settings not loading may be a bug on our end.
Frankly, no reason to launch with EAC. I'm satisfied with the solution to swap to non EAC only.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsIn Progress