rockerbacon / modorganizer2-linux-installer

An easy-to-use Mod Organizer 2 installer for Linux
GNU General Public License v3.0
932 stars 77 forks source link

Steam starting f4se_loader.exe instead of the trick Fallout4Launcher.exe #598

Open Berinkton opened 3 months ago

Berinkton commented 3 months ago

I ran the installer.sh and was able to successfully start ModOrganizer2 and begin installing mods and play with them with no problem. I had to move the Script Extender which was extracted into the Fallout 4 installation path as a sub folder called "f4se_0_06_23" for some mods to work though.

The Script extender needs to be in the root folder to find the Fallout4.exe and all the other necessary files for it to work so i moved it. Now Steam starts the f4se_loader.exe instead. After renaming the file to fallout4se_loader.exe, Steam starts ModOrganizer.exe like it's supposed to.

I added the Script Extender as a shortcut in modorganizer2 and play the game that way.

I don't know if it's just a me problem but i think the installer should extract the contents of the script extender subfolder, in this case "f4se_0_06_23", and place the files in the Fallout4 root folder and maybe rename the loader exe file so this does not happen. I spent two hours figuring out why steam starts the game and not ModOrganizer2.

Again it may just be a me problem.

I am running Debian 12 with the non-flatpak version of Steam installed.

Skyknight320 commented 3 months ago

Are you running Proton-GE? I found that that was the issue. Try a non GE version (I am Running Proton 9.0 (Beta) )

ThePeePs commented 3 months ago

I had the same problem, running LinuxMint 21.3. I found this howto guide while searching for solutions. I did the debug in Step 3, and then making the change to the run file in Step 9 worked for me. Now I just need to figure out how to get FO4 to run on my primary screen again.

[EDIT]: Running under GE-Proton7-23, because i have an older nvidia card with ver 470 of the drivers, and FO would crash with 8+.

Hope this helps.

rockerbacon commented 3 months ago

Steam starting the game instead of MO2 has nothing to do with F4SE. I believe you might have accidentally moved files around a little bit more than necessary.

Steam will always launch the executable Fallout4Launcher.exe. The installer substitutes the original launcher with a redirector binary and renames the original launcher to _Fallout4Launcher.exe. The redirector binary will always launch MO2.

If Steam updates the game or performs game file validation, it might revert the launcher back. If you have game launch options, the launch behavior may be affected.

Marking as a bug to investigate the placement of F4SE files.

Berinkton commented 3 months ago

The only thing i did after successfully installing MO2 was move the contents of the f4se folder into the root folder of my Fallout 4 install. I even checked that the original launcher was named _Fallout4Launcher.exe and verified that the new Fallout4Launcher.exe was the steam re-director file main.exe. I looked at the bash scripts and everything else before i used the installer to understand how it works. I am kind of a paranoid person :/

@Skynight320 I had steam set to use GE-Proton 9-1 for all games. I'll try a non GE version and see if that's the reason. Although it kinda doesn't matter since i renamed f4se_loader.exe it just works.

Mihlicat commented 2 months ago

proton-GE has protonfix files for certain games, the Fallout 4 one makes steam launch the f4se_loader.

    # Fixes the startup process.
    if os.path.isfile(os.path.join(os.getcwd(), 'f4se_loader.exe')):
        util.replace_command('Fallout4Launcher.exe', 'f4se_loader.exe')

Deleting the file or removing the contents will get it to launch the MO2 instance. Skyrim has it too but it has a condition so it doesn't switch by default.

    if os.path.isfile(os.path.join(os.getcwd(), 'skse64_loader.exe')):
        if 'MODS' in os.environ:
            util.replace_command('SkyrimSELauncher.exe', 'skse64_loader.exe')
swjzielinski commented 2 months ago

proton-GE has protonfix files for certain games, the Fallout 4 one makes steam launch the f4se_loader.

    # Fixes the startup process.
    if os.path.isfile(os.path.join(os.getcwd(), 'f4se_loader.exe')):
        util.replace_command('Fallout4Launcher.exe', 'f4se_loader.exe')

Deleting the file or removing the contents will get it to launch the MO2 instance. Skyrim has it too but it has a condition so it doesn't switch by default.

    if os.path.isfile(os.path.join(os.getcwd(), 'skse64_loader.exe')):
        if 'MODS' in os.environ:
            util.replace_command('SkyrimSELauncher.exe', 'skse64_loader.exe')

You can just copy the middle line from the SSE file, so it becomes:

# Fixes the startup process.
    if os.path.isfile(os.path.join(os.getcwd(), 'f4se_loader.exe')):
        if 'MODS' in os.environ:
            util.replace_command('Fallout4Launcher.exe', 'f4se_loader.exe')

This will let MO2 launch.

rockerbacon commented 2 months ago

We do not target Proton-GE, so I'm marking this as a bug outside of the project scope. PRs are still welcome, so long as this can be fixed without introducing any disturbances for Valve Proton setups.