-
Notifications
You must be signed in to change notification settings - Fork 196
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 Palworld + Voices of the Void support, initial Unreal engine support #1079
Add Palworld + Voices of the Void support, initial Unreal engine support #1079
Conversation
Nice! I skimmed this through briefly and noticed uninstallation seems to not be implemented for the shimloader at least. Whether or not the mods themselves get uninstalled properly is another question that would be good to double-check, since IIRC the way uninstalling works isn't the most reliable at the moment (I seem to remember that the uninstaller didn't necessarily have enough metadata available about what it's uninstalling to really be intelligent about it, but can't remember anymore) Another suggestion I'd have is to set up a templated way to configure games to use this pattern (specifically the install rules), e.g. akin to how it's done with bepinex now. I'll do a more thorough review once you've checked the uninstaller aspect, but could also be it's already handled & I just glanced over it so let me know if that's the case. |
I've been working through uninstalling for the better part of this morning and haven't yet found a good solution. Top-level binaries are cleaned up a-ok, but Similarly, ue4ss lua mods are also not currently installable. These are mods which contain script files (usually) in the following directory structure:
I have yet to investigate implementing a custom install rule, but the goal here would be to filter by the
Shouldn't be awful to implement. |
c206d1c
to
74fedeb
Compare
Made further tweaks to get complete shimloader uninstallation working. This necessitated the following changes:
|
Updates -
These changes are entirely dependent on the following:
|
966cc25
to
a7a5acd
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed together with the author.
489de3b
to
6061c6b
Compare
implement VotV + Palworld support via unreal_shimloader Voices of the Void is a game about hunting aliens and the wacky / spooky events that happen as a result. Palworld is, well, Palworld. You know what that is by now. Shimloader is my WIP modloader-loader which shims UE and the UE4SS loader to provide R2MM manager support. It allows Unreal to load blueprint mods (.pak) files and ue4ss mods (.lua et al) from external directories. Blueprint and UE4SS mods are installed into the following directories: - PROFILE/shimloader/pak_mods - PROFILE/shimloader/lua_mods which are then injected into the game at runtime by shimloader. CHANGES: - add Palworld and VotV assets + rule registration - add support for unreal_shimloader - add package mappings for metherul-unreal_shimloader and 0xFFF7-votv_shimloader. - add UE4SS_LUA and SUBDIR tracked installation rules - add InstallRules_Shimloader - add shimloader game launch instructions - add .modconf and .ini config file extensions
CHANGES: - fix UE4SS-settings.ini content reset when mods are disabled and re-enabled. - fix an invalid shimloader package reference. This changes it from `metherul-unreal_shimloader` to `Thunderstore-unreal_shimloader`. - fix invalid shimloader install target. This changes it from `dxgi.dll` to `dwmapi.dll`.
6061c6b
to
e132498
Compare
src/r2mm/launching/instructions/instructions/loader/ShimloaderGameInstructions.ts
Outdated
Show resolved
Hide resolved
Improve the test data populator to actually create a file structure which matches what is expected of the current tests as opposed to having to manually build the structure
Delete the now unnecessary SUBDIR_TRACKED install rule type
Revert the changes done to the uninstallState function to reduce the surface area of potentially impacted code/logic of these changes. The changes that were done are no longer necessary after all.
As the stat tracking isn't generally used for the core mod loader installers, remove it for shimloader as well. This also eliminates the need for a handful of the workarounds that were in place to exempt a specific file from being treated as any other file normally would for state tracking. This does not yet solve the initial "config should be placed in the game dir" problem; solution for that upcoming as a followup.
Adjust the mod linker to copy the shimloader config file to the correct location (game root directory) instead of the binary directory.
This was done in a separate commit to reduce diff noise in the previous one
So what about supporting the automatic installation/uninstallation of basic asset replacement pak mods? I.e. not UE4SS ones that go into
I also have some additional questions regarding game compatibility through UE4SS:
Some extra questions:
|
Voices of the Void is a game about hunting aliens and the wacky / spooky events that happen as a result.
UE4SS (https://github.com/UE4SS-RE/RE-UE4SS) is the standard modloader for a variety of Unreal engine games.
Shimloader is my WIP modloader-loader. It shims the game and UE4SS (the actual modloader) to allow Unreal to load blueprint (.pak files) and UE4SS (.lua) mods from external directories, thus enabling us to use the R2MM "linker" method of mod management.
Blueprint and eu4ss mods are respectively installed into:
PROFILE/shimloader/bp_mods
(mapped toVotV/Content/Paks/LogicMods
)PROFILE/shimloader/ue4ss_mods
(mapped toVotV/Binaries/Win64/Mods
)Config files are of
.modconf
extension and are installed intoPROFILE/shimloader/config
, which is then mapped toVotV/Content
at runtime.These paths are then injected into the game via the
--ue4ss-mods
,--bp-mods
and--config-dir
CLI args, which are then captured by the shimloader binary and used to setup win32 filesystem redirection logic.The shimloader package can be found here:
https://thunderstore.io/c/voices-of-the-void/p/0xFFF7/votv_shimloader/