rockerbacon/modorganizer2-linux-installer

Suggestion: Install script extenders only optionally, and allow user selection of file.

Opened this issue · 6 comments

Submitted for consideration/discussion:

Fallout 4 has had two recent game updates on Steam (April 24 and May 13), and a version of the Fallout 4 Script Extender (0.7.2) compatible with the current Steam runtime has been released on Nexus Mods (this release does not indicate unstable/alpha status and has been working well). Unfortunately, the f4se version on the archive site that mo2-installer pulls from still has not been updated for some reason and is still at 0.6.23.

This means that the installer will not currently work against a fully updated Steam installation, and will result in an unusable game due to f4se incompatibility (it throws an error message and aborts loading the game). Less technical/new Linux users will think they need to completely re-install the game on Steam in order to fix this, and will likely abandon using the installer or blame it for "messing up the game", which otherwise is a great tool to get the game and mo2 running well on Linux.

As noted in the closed issue #628, there are very good reasons for including the script extender as part of the installer, but it can make it unreliable due to the tight dependency between the extender version and game runtime version. Also, releasing a new version of the installer any time any one of the supported games gets an update (and a corresponding script extender update) seems unworkable.

Therefore, I suggest suggest that the installer do some or all of:

  1. Prompt the user to confirm they want to auto-install the script extender (with a warning it may break the installation if the game has been updated recently) and allow the user to NOT install the script extender (or remove it if it has been installed on a previous run).
  2. Allow the user to manually select a downloaded script extender archive to install (e.g., one they manually downloaded from Nexus Mods).
  3. Verify that the script extender referenced by the installer is compatible with the installed game runtime version before installing it (this may be difficult to do).

While my experience with this is just for Fallout 4, I imagine it's an issue with any game with a script extender that receives an update, so this logic probably applies generally.

It's mostly been a non-issue for as long as this project has been alive. Updating a script extender is as simple as changing a single URL so it ends up being pretty workable for as long as I've been maintaining it.

The installer also does not override existing script extender files, so if you install the script extender manually everything will work as expected (even when updating).

The Fallout 4 case is a novel one, it's possible to disable installing F4SE specifically by setting its download URL to an empty string. That's probably a good idea until the F4SE team releases a new update on their website or GitHub.

I guess my experience is biased because I just started using it a couple months ago and ran into the FO4 situation right away by chance - I guess generally these older games are pretty stable and don't get many releases. For now, removing it is best, but I still think making it optional would be a good idea. I'll see if I can contribute something for that.

For what it's worth, here's the f4se source repo. They don't have a 0.7.2 release posted there either, but it is updated to that version and I was able to build it successfully on a Windows VM. I pinged them about issuing it. The readme says it's a beta, but the version on Nexus doesn't mention that.

Good idea, no one need outdated all the time script extenders bundled...

To follow up on this, it seems the f4se author has no plans to release a new version outside of Nexus, in part explicitly to prevent it being used in scripts such as this. So the best option may be to give the user an option to select a file they downloaded from Nexus. Or figure out how to log into nexus with the user's credentials and use the API... probably too complicated.

Unless of course you want to fork the repo and build/maintain own release here, but that's a lot of maintenance for a small part of this project. Keep in mind he also does the Starfield, Skyrim and a couple other extenders, so this might happen with other games.

F4SE 0.7.2 is a beta release for an in-progress update. In no way has Ian stated no new versions will be released outside of Nexus, only that this specific version is not meant to be anywhere else - something that was already obvious from the big red notice on f4se.silverlock.org and the Nexus thread on the update progress.

Be patient and let the F4SE team do their thing. If F4SE reaches stable status on Fallout 4 1.10.980 and it doesn’t get released anywhere, then we evaluate a solution.

Also be mindful that F4SE can’t be freely redistributed. It’s not licensed, meaning not open source and all rights reserved. Licensing would have to be discussed with the maintainers before any ideas on forking and distributing it are viable.

I'm playing the old version of Fallout IV on Windows, because Bethesda likes newer versions, in order to stabilize I had to buy the genuine version in steam, download a pirated version that won't be updated, and use it to play all kinds of mods, I recently switched to the Linux system, and found this script, but it seems that only the steam path is supported, can the user choose the game path in the script?