Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add warning messages when using ESL plugins in Skyrim VR and Fallout 4 VR #1949

Closed
Ortham opened this issue Dec 16, 2023 · 18 comments
Closed
Milestone

Comments

@Ortham
Copy link
Member

Ortham commented Dec 16, 2023

LOOT treats Skyrim VR like Skyrim SE, and Fallout 4 VR like Fallout 4, but the VR versions do not support plugins with a .esl file extension and do not recognise the light flag when it is set.

A new complication is that there's now an SKSEVR plugin that adds support for Skyrim SE's recently-supported extended object ID range in ESL plugins.

It would be good if LOOT warned users appropriately, e.g.

  • If .esl plugins are installed and the SKSEVR plugin is not installed, warn that the plugins won't be recognised by the game.
  • If a non-.esl light plugin is installed and the SKSEVR plugin is not installed, maybe warn that the plugin will not load as a light plugin?
  • If a light plugin and the SKSEVR plugin are installed, warn that the game must be launched using SKSEVR.

pStyl3 has a VR headset and a copy of Skyrim VR so could help test. More context is also in Discord here

@pStyl3
Copy link
Member

pStyl3 commented May 5, 2024

Some months ago I've run a few tests to check Skyim VR's behaviour. See this Discord Link for the whole conversation.

The results were:

  • VR ignores the ESL flag, .esm and .esp plugins with it will load normally
  • .esl plugins will not work in VR

Using the above mentioned mod Skyrim VR ESL Support and all it's requirements
SKSEVR
Engine Fixes VR
VR Address Library for SKSEVR

.. I could succesfully load AcolyteMasks.esl from DragonPriest Retexture - SE in VR - which wasn't possible before.

@pStyl3
Copy link
Member

pStyl3 commented May 5, 2024

Definition:

  • a .esp with ESL flag is a Light Plugin
  • a .esm with ESL flag is a Light Master
  • a .esl is a Light Master

Given the above notation, I would suggest the following message, in case at least one Light Master or Light Plugin has been found, but the ESL support mod hasn't been installed:

It appears you have installed at least one Light Master or Light Plugin, but Skyrim VR ESL Support seems to be missing. Please ensure you have correctly installed Skyrim VR ESL Support and all it's requirements.

(It's a variation of &missingRequirementXforY)

If I were to write the condition for that message in the masterlist, I would probably write:
condition: 'file("([^\.]+\.esl)") and not file("SKSE/Plugins/skyrimvresl.dll")'

But that would only find .esl plugins and not .es[mp] plugins with the ESL flag.

This probably should be enough to handle the issue.

@Ortham
Copy link
Member Author

Ortham commented May 7, 2024

The approach I've taken in the skyrimvr-light-plugins branch is to have multiple different messages for different plugin types, plus for FO4VR the .esl message says that the plugin won't be loaded, while for light-flagged .esm and .esp plugins the message says they'll be loaded as normal masters/plugins.

@Ortham
Copy link
Member Author

Ortham commented May 8, 2024

@pStyl3 Can you test the skyrimvr-light-plugins branch build with Skyrim VR to see if it works as expected?

@pStyl3
Copy link
Member

pStyl3 commented May 8, 2024

I'll take a look in a bit, but first some small sidenote: our SKSEVR latest version check in the masterlist may not work as intended right now (and thus it has been confusing me for some time).

Our masterlist entry:

# Latest Version
  # SKSE VR
  - <<: *versionOldX
    subs: [ '**[SKSE VR](https://skse.silverlock.org)**' ]
    condition: 'version("../skseVR_loader.exe", "0.2.0.12", <) and file("../skseVR_loader.exe")'
  - <<: *versionUpToDateX
    subs: [ '**SKSE VR**' ]
    condition: 'version("../skseVR_loader.exe", "0.2.0.12", >=) and file("../skseVR_loader.exe")'

The current SKSEVR from silverlock "Current VR build 2.0.12 (game version 1.4.15)" includes sksevr_loader.exe and it's version is 0.2.0.12 - so far so good.

However, SKSEVR is also available on Nexus and the Nexus' version is stated to be the same as on silverlock (2.0.12). That being said the version of sksevr_loader.exe from the Nexus download is 0.2.0.11

This seems to be an oversight from the SKSE team. @ianpatt You might want to push a fix for this to the SKSEVR Nexus page.

This means that right now people can download the "latest" SKSEVR from Nexus, and LOOT tells them that they do not use the latest SKSEVR version (since sksevr_loader.exe from that download is only of version 0.2.0.11).

@pStyl3
Copy link
Member

pStyl3 commented May 8, 2024

grafik

This message triggered correctly, but I would suggest to display it as an error instead of a warning.

@pStyl3
Copy link
Member

pStyl3 commented May 8, 2024

Also working with a ESL flagged .esp

grafik

@pStyl3
Copy link
Member

pStyl3 commented May 8, 2024

Also working with a ESL flagged .esm

grafik

@pStyl3
Copy link
Member

pStyl3 commented May 8, 2024

When using the above mods while the ESL support mod is disabled, LOOTDebugLog.txt will include:

[01:17:20.060564] [warning]: "ApachiiHair.esm" is a light plugin but the game does not support light plugins.
[01:17:20.061555] [warning]: "AcolyteMasks.esl" is a light plugin but the game does not support light plugins.
[01:17:20.062071] [warning]: "SofiaFollower.esp" is a light plugin but the game does not support light plugins.

Which I guess is intended behaviour.

@ianpatt
Copy link

ianpatt commented May 9, 2024

This seems to be an oversight from the SKSE team. @ianpatt You might want to push a fix for this to the SKSEVR Nexus page.

Fixed, thanks for letting me know. This was from when Nexus was managing the page themselves.

@pStyl3
Copy link
Member

pStyl3 commented May 9, 2024

Fixed, thanks for letting me know. This was from when Nexus was managing the page themselves.

Thank you!

@pStyl3
Copy link
Member

pStyl3 commented May 9, 2024

Using loot_0.22.3-69-gbc5a440_skyrimvr-light-plugins-win64.7z now. I think this is better.

grafik

@Ortham
Copy link
Member Author

Ortham commented May 9, 2024

OK, done in b70691a.

@Ortham Ortham closed this as completed May 9, 2024
@sibir-ine sibir-ine added this to the 0.22.4 milestone May 9, 2024
@pStyl3 pStyl3 reopened this May 10, 2024
@pStyl3
Copy link
Member

pStyl3 commented May 10, 2024

grafik

I've just found that this message get's displayed for normal Fallout 4 as well.

@Ortham
Copy link
Member Author

Ortham commented May 10, 2024

I don't see that, does it happen if you launch LOOT right into Fallout 4, or did you switch games? I noticed I missed a couple of updates to move constructors that might explain this, but I can't replicate it.

@pStyl3
Copy link
Member

pStyl3 commented May 10, 2024

I can pretty reliably trigger the issue, if after starting LOOT I go into the settings and save-close the settings window, and then sort the load order.

@Ortham
Copy link
Member Author

Ortham commented May 10, 2024

@pStyl3 can you try with this build? https://github.com/loot/loot/actions/runs/9035099363

@pStyl3
Copy link
Member

pStyl3 commented May 10, 2024

That build seems to have fixed the issue. 👍

@pStyl3 pStyl3 closed this as completed May 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

4 participants