Any update? Is there any way we can get the extension to allow us to still use the non-experimental version of UE4SS? I was able to get the loop to go away by jumping over to the Beta build of Vortex. Now it doesn't bother me for an installation every launch. That being said, the experimental version of UE4SS broke a very important mod for me. In the past you could toggle previous versions of UE4SS. Something to do with the naming of the experimental version is causing issues. Who handles the vortex extensions, does anyone know?
Since this extension is essentially based on JavaScript, which is in plain text and can be modified locally, I solve the problem to some extent without recompiling. The key file is like "C:\Users\%Username%\AppData\Roaming\Vortex\plugins\Palworld Vortex Extension-770-0-1-9-1741784971\index.js":
There was an issue with this extension during version checking. Version checking is based on file paths, but only the "latest" version gets a "coerced" one, which means the current version string contains the "-394" suffix, and break the version check function of the tool "semver". To solve it you need to change the code like this at about line 1335: const latestVersion = versionMatch[1]; const coercedVersion = vortex_api_1.util.semverCoerce(latestVersion, { includePrerelease: true }); const coercedCurrnetVersion = vortex_api_1.util.semverCoerce(currentVersion, { includePrerelease: true }); if (coercedVersion.version === coercedCurrnetVersion.version || semver_1.default.satisfies(`^${coercedVersion.version}`, coercedCurrnetVersion.version, { includePrerelease: true })) { return; }
There is an unnecessary requirements download option in function "setup". I just commented out this part at about line 470: try { const UE4SSPath = (0, util_1.resolveUE4SSPath)(api); const oldSegments = UE4SSPath.split(path_1.default.sep); oldSegments.pop(); oldSegments.push('Mods'); const oldScriptSystemPath = oldSegments.join(path_1.default.sep); await Promise.all([path_1.default.join(UE4SSPath, 'Mods'), oldScriptSystemPath, common_1.PAK_MODSFOLDER_PATH, common_1.BPPAK_MODSFOLDER_PATH].map(ensurePath)); await (0, migrations_1.migrate)(api); // await (0, downloader_1.download)(api, common_1.PLUGIN_REQUIREMENTS); }
A file check of "UE4SS-settings.ini" is performed every time the mod is deployed, the archive structure of the auto-downloaded version is different from that of some experimental version of UE4SS, so the extension assumes that UE4SS is not installed and performs download. If you do not want to check these every time, you could just commented out this part at about line 534 too: async function onDidDeployEvent(api, profileId, deployment) { const state = api.getState(); const profile = vortex_api_1.selectors.profileById(state, profileId); const gameId = profile === null || profile === void 0 ? void 0 : profile.gameId; if (gameId !== common_1.GAME_ID) { return Promise.resolve(); } try { // await (0, tests_1.testBluePrintModManager)(api, 'did-deploy'); // await (0, tests_1.testMemberVariableLayout)(api, 'did-deploy'); await onDidDeployLuaEvent(api, profile); } catch (err) { (0, vortex_api_1.log)('warn', 'failed to test BluePrint Mod Manager', err); } return Promise.resolve(); }
When you try to drop zip file to import experimental version of UE4SS, there might be a version check error, this could be fixed by renaming the filename like "UE4SS_v3.0.1-2034-3-0-1-1735748548.zip" (not UE4SS3.0.1-2034-3-0-1-1735748548.zip), but there may be a message says "UE4SS missing or corrupted".
even though UE4SS was installed through this extension, every time I load vortex, deploy mods, or launch the game, it insists on reinstalling UE4SS for some reason
This extension is making such a mess when you install it.
It install the UE4SS experimental (just fine, no issue) and then.. every single time you do anything from installing mods to start up vortex, it prompt you there's an update (but show the same identical version installed) and keep wanting to update it, over and over and over in a loop.
No issue with any other game, just with this extension and palworld.
Is there a possibility to add deployment support for UE4SS dll mods? Since their location and structure is the same as lua mods.
Lua mods and dll mods get loaded from the same folder with the same enabled.txt or mods.txt mechanics. Only difference is Lua mods have a "Scripts" folder and dll mods have a "dlls" folder instead of "Scripts". And just like with main.lua the dll name has to be main.dll aswell.
My mod now needs 2 main downloads for Vortex support just to emulate the folder structure of either Steam or XboxGames. My mod detects either game version or the dedicated server by itself, so it would be much appreciated if UE4SS dll's could be supported.
Pretty sure this is broken, even if I try adding it manually it tells me that it is not an extension and that info.json is missing even though there is a info.json in the folder I am uploading. Anytime I try to just download it with vortex it doesn't work either.
Have you any more details on what is failing to install? Any particular mod? Is it managing the game in the first place? What game platform are you using - Steam, Game Pass etc. Anything you got would be helpful, thanks!
Howdy! I'm on steam and havin the same issue. For me, I can't even manage the game at all- it says that the game is supported through an extension and I must download it, then when I try to it fails and tells me to check notifications.
The notification simply says the download failed and only gives me the option to try again
Ah ok. You can manually download the extension from https://www.nexusmods.com/site/mods/770 which should sort that out. Not sure why it wouldn't auto download, maybe the site was down at the time?
Altermatic can't be used properly with Vortex since it insists on deploying the /SwapJSON folder inside /LogicMods, instead of /~mods as intended. The Altermatic zip is more complex as it includes both Xbox and Steam versions but even stripping the staging folder down to one version still produces a wrong deployment.
Actual result: /Paks/LogicMods/Altermatic.pak /Paks/LogicMods/~mods/SwapJSON/
Mods with that kind of structure all seem equally broken (every mod relying on Altermatic for example) as the plugin seems to assume that everything should be in /LogicMods which is often not the case, I've tried a few different folder structures in the staging to get it right but no cigar.
78 comments
const latestVersion = versionMatch[1];
const coercedVersion = vortex_api_1.util.semverCoerce(latestVersion, { includePrerelease: true });
const coercedCurrnetVersion = vortex_api_1.util.semverCoerce(currentVersion, { includePrerelease: true });
if (coercedVersion.version === coercedCurrnetVersion.version || semver_1.default.satisfies(`^${coercedVersion.version}`, coercedCurrnetVersion.version, { includePrerelease: true })) {
return;
}
try {
const UE4SSPath = (0, util_1.resolveUE4SSPath)(api);
const oldSegments = UE4SSPath.split(path_1.default.sep);
oldSegments.pop();
oldSegments.push('Mods');
const oldScriptSystemPath = oldSegments.join(path_1.default.sep);
await Promise.all([path_1.default.join(UE4SSPath, 'Mods'), oldScriptSystemPath, common_1.PAK_MODSFOLDER_PATH, common_1.BPPAK_MODSFOLDER_PATH].map(ensurePath));
await (0, migrations_1.migrate)(api);
// await (0, downloader_1.download)(api, common_1.PLUGIN_REQUIREMENTS);
}
async function onDidDeployEvent(api, profileId, deployment) {
const state = api.getState();
const profile = vortex_api_1.selectors.profileById(state, profileId);
const gameId = profile === null || profile === void 0 ? void 0 : profile.gameId;
if (gameId !== common_1.GAME_ID) {
return Promise.resolve();
}
try {
// await (0, tests_1.testBluePrintModManager)(api, 'did-deploy');
// await (0, tests_1.testMemberVariableLayout)(api, 'did-deploy');
await onDidDeployLuaEvent(api, profile);
}
catch (err) {
(0, vortex_api_1.log)('warn', 'failed to test BluePrint Mod Manager', err);
}
return Promise.resolve();
}
It install the UE4SS experimental (just fine, no issue) and then.. every single time you do anything from installing mods to start up vortex, it prompt you there's an update (but show the same identical version installed) and keep wanting to update it, over and over and over in a loop.
No issue with any other game, just with this extension and palworld.
Since their location and structure is the same as lua mods.
Lua mods and dll mods get loaded from the same folder with the same enabled.txt or mods.txt mechanics.
Only difference is Lua mods have a "Scripts" folder and dll mods have a "dlls" folder instead of "Scripts".
And just like with main.lua the dll name has to be main.dll aswell.
My mod now needs 2 main downloads for Vortex support just to emulate the folder structure of either Steam or XboxGames.
My mod detects either game version or the dedicated server by itself, so it would be much appreciated if UE4SS dll's could be supported.
The notification simply says the download failed and only gives me the option to try again
I can't find palworld in the unmanaged games tab in the vortex launcher.
I use steam.
Intended structure:
/Paks/LogicMods/Altermatic.pak
/Paks/~mods/SwapJSON/
Actual result:
/Paks/LogicMods/Altermatic.pak
/Paks/LogicMods/~mods/SwapJSON/
Mods with that kind of structure all seem equally broken (every mod relying on Altermatic for example) as the plugin seems to assume that everything should be in /LogicMods which is often not the case, I've tried a few different folder structures in the staging to get it right but no cigar.