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

[BUG - Release] Hogwarts Legacy Build 1235957 after July 24 2024 Hot-Fix - Failed to find EngineVersion #601

Closed
Noodneek opened this issue Jul 26, 2024 · 5 comments
Labels
game specific This issue is not a UE4SS core problem, but related to a specific game patternsleuth Could improve patternsleuth

Comments

@Noodneek
Copy link

Noodneek commented Jul 26, 2024

Release:
UE4SS_v3.0.1

Game Version:
Hogwarts Legacy Build 1235957 (after July 24 2024 Hot-Fix)

Engine Version:
4.27

Bug Description:
Infinite loop with the following error:

[2024-07-25 20:22:41] PS Scan attempt 1
[2024-07-25 20:22:41] [PS] Reading image
[2024-07-25 20:22:41] [PS] Starting scan
[2024-07-25 20:22:42] [PS] Scan finished in 1.0200905s
[2024-07-25 20:22:42] [PS] Failed to find EngineVersion: expected at least one value
[2024-07-25 20:22:42] [PS] You need to override the engine version in 'UE4SS-settings.ini'.
[2024-07-25 20:22:42] [PS] Found GUObjectArray: 0x14943dd00
[2024-07-25 20:22:42] [PS] Found GMalloc: 0x1493d9be0
[2024-07-25 20:22:42] [PS] Found FName::ToString: 0x1437f6400
[2024-07-25 20:22:42] [PS] Found FName::FName(wchar_t*): 0x1437e9850
[2024-07-25 20:22:42] [PS] Found StaticConstructObject_Internal: 0x1439fe5a0
[2024-07-25 20:22:42] [PS] Found FText::FText(FString&&): 0x143706c80
[2024-07-25 20:22:42] [PS] Scan failed

Ends with fatal error after 30 sec.

UE4SS.log with this error

Mods directory, specific mod used and important history:

Up until July 24 2024 update I was using Better and instant timeskip mod with UE4SS_Xinput_v2.5.1 with no issues whatsoever.
Mods directory is C:\Program Files (x86)\Steam\steamapps\common\Hogwarts Legacy\Phoenix\Binaries\Win64.
After July 24 hot-fix UE4SS_Xinput_v2.5.1 failed to load with the following looping error:

[2024-07-25 18:55:28] Engine Version: 4.27 <- Built-in
[2024-07-25 18:55:28] FName::ToString address: 0x1437f6770 <- Built-in
[2024-07-25 18:55:28] Scan attempt 2/60
[2024-07-25 18:55:30] AOB scans could not be completed because of the following reasons:
Was unable to find address for 'StaticConstructObject_Internal'
You can supply your own in 'UE4SS_Signatures/StaticConstructObject'

(v.2.5.1 UE4SS.log)

I decided to try to install the latest v.3.0.1 instead of v.2.5.1, but got another error, this time with failure to find EngineVersion (in the bug description above).

So I edited 'UE4SS-settings.ini' with the following and saved the file:

[EngineVersionOverride]
MajorVersion = 4
MinorVersion = 27

Note: You can always find Unreal Engine version by right clicking on HogwartsLegacy.exe file in \Phoenix\Binaries\Win64, then selecting Properties -> Details tab ('File version' - currently 4.27.2.0) (see the screenshot).

This fixed the issue - UE4SS-RE loaded successfully and hooked the mod (log).
[!] - Latest v.3.0.1 ended up causing loading lags in-game and frequent crashes - you should use experimental versions until the new release! - see the important update below!

Steps to reproduce the bug:

  1. Launch the game
  2. See error in log

Expected behavior:
UE4SS_v3.0.1 successfully loads and hooks the mod without the need to override the engine version in 'UE4SS-settings.ini'.

Desktop:
Win10

[!] IMPORTANT UPDATE [!]

Released v.3.0.1 worked fine for about 2 days and then started causing loading lags in-game and frequent crashes, both on launch and while playing. Following this advice, I tried experimental v.3.0.1-137 and it indeed worked with no issues!
So for now use latest experimental versions. Since then I tested versions 3.0.1-137, 142, 146 and 149 - they all work fine. (You still need to edit UE4SS-settings.ini file to override the engine version as I showed above!)

@UE4SS UE4SS added the game specific This issue is not a UE4SS core problem, but related to a specific game label Jul 26, 2024
@UE4SS
Copy link
Collaborator

UE4SS commented Jul 26, 2024

I appreciate you making this issue, it will hopefully help other people having the same problem.
I am, however, going to close this issue because we don't generally do game specific support.
If we were to work on this problem, the solution would involve improving patternsleuth, probably by supplying more samples.

@UE4SS UE4SS closed this as completed Jul 26, 2024
@UE4SS UE4SS added the patternsleuth Could improve patternsleuth label Jul 26, 2024
@Noodneek
Copy link
Author

Thanks for the reply!

Maybe the least that could be done (and very easily I think) is to update the zCustomGameConfigs.zip to include a folder for Hogwarts Legacy with just an edited 'UE4SS-settings.ini' (with overridden EngineVersion as in my example)?
It would really help all those who use mods based on UE4SS-RE, which now are apparently broken otherwise...

Thanks again for the help!

@UE4SS
Copy link
Collaborator

UE4SS commented Jul 26, 2024

Maybe the least that could be done (and very easily I think) is to update the zCustomGameConfigs.zip to include a folder for Hogwarts Legacy with just an edited 'UE4SS-settings.ini' (with overridden EngineVersion as in my example)? It would really help all those who use mods based on UE4SS-RE, which now are apparently broken otherwise...

We've been neglecting the custom game config stuff for a long time.
The problems are as follows:

  1. When we add a custom config, we're on the hook for fixing it when it breaks, which in some cases may involve non-trivial reverse engineering work.
    If it's just an AOB that needs to be updated, that's usually fairly simple but it still takes effort that no one wants to put in, and time that no one wants to spend, not to mention the occasional cases where it's not actually simple at all.
    If it's anything other than an AOB, it gets more complicated and in some cases require a light amount of reverse engineering to be done.
    People on forums, discord, etc, will tell other people to use the custom config, and when the config stops working, they aren't going to change what they said (for obvious reasons) which will lead people to using broken configs.
  2. Testing each config continually to make sure it's not broken is cumbersome, so it's simply not done.
  3. When a config becomes outdated and stops working, we don't know about it because of 2.
  4. Testing and fixing a broken config requires access to the game, and we can't expect our contributors (that work on this project for free as a hobby) to pay (sometimes a lot of money if it's AAA) out of their own pocket just to fix a problem for someone else.

For these reasons, I don't want to add any more custom game configs.
I'd rather rely on people searching through issues to hopefully find the solution to their problems.
Note that this is my own personal opinion, and the rest of the team might disagree.

@Noodneek
Copy link
Author

Thank you for such a detailed answer!
Maybe I don't understand something, but if the only issue is a failure to find the engine version and putting it in [EngineVersionOverride] resolves this issue, how can it stop working, even if this is fixed in future updates? Isn't the engine remains the same in the same game? I understand your overall principle, but this particular case is much simpler in my uneducated opinion...

@UE4SS
Copy link
Collaborator

UE4SS commented Jul 26, 2024

Thank you for such a detailed answer! Maybe I don't understand something, but if the only issue is a failure to find the engine version and putting it in [EngineVersionOverride] resolves this issue, how can it stop working, even if this is fixed in future updates? Isn't the engine remains the same in the same game? I understand your overall principle, but this particular case is much simpler in my uneducated opinion...

There's nothing that stops a game developer from updating to a newer version of the engine.
There's also nothing that stops a game developer from making engine changes, or other changes that affect the exe such as changing compilation flags like enabling extra optimizations.
The game developers can change anything at any point, even if the game has been out for a while and has already had a few updates.
So while the config would be simple right now, it might not be the case in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
game specific This issue is not a UE4SS core problem, but related to a specific game patternsleuth Could improve patternsleuth
Projects
None yet
Development

No branches or pull requests

2 participants