ZJohnAsZ Posted December 11, 2020 Share Posted December 11, 2020 When you have the Unofficial Patch installed and try to use the Vortex App to install mods, it won't deploy the mods to the right folder and I couldn't find a way to change it in vortex.Usually, it would work with most games, but in the case of Bloodlines, when you tell Vortex where your "...\VtMB" folder is, the App takes in consideration that it has to Install mods in "...\VtMB\Vampire" folder. When you have the Unofficial Patch installed, the mods have to be put in "...\VtMB\Unofficial_Patch".I found this that could probably help in fixing the issue, but since I am not a coder, I'm not sure what to exactly change....\Program Files\Black Tree Gaming Ltd\Vortex\resources\app.asar.unpacked\bundledPlugins\game-vtmbloodlines\info.json const Promise = require('bluebird'); const path = require('path'); const winapi = require('winapi-bindings'); const { fs, util } = require('vortex-api'); const GAME_ID = 'vampirebloodlines'; const STEAM_ID = 2600; const GOG_ID = 1207659240; function readRegistryKey(hive, key, name) { try { const instPath = winapi.RegGetValue(hive, key, name); if (!instPath) { throw new Error('empty registry key'); } return Promise.resolve(instPath.value); } catch (err) { return Promise.resolve(undefined); } } function requiresLauncher(gamePath) { // VtM Bloodlines does not seem to have any steam specific files within // the game's discovery path... Attempt to launch via Steam if // we're able to retrieve the game's information via the Steam wrapper return util.steam.findByAppId(STEAM_ID.toString()) .then(game => Promise.resolve({ launcher: 'steam' })) .catch(err => Promise.resolve(undefined)); } function findGame() { return util.steam.findByAppId(STEAM_ID.toString()) .then(game => game.gamePath) .catch(() => readRegistryKey('HKEY_LOCAL_MACHINE', `SOFTWARE\\WOW6432Node\\GOG.com\\Games\\${GOG_ID}`, 'PATH')) .catch(() => readRegistryKey('HKEY_LOCAL_MACHINE', `SOFTWARE\\GOG.com\\Games\\${GOG_ID}`, 'PATH')) } function prepareForModding(discovery) { return fs.ensureDirWritableAsync(path.join(discovery.path, 'Vampire'), () => Promise.resolve()); } function getUnofficialModPath() { const state = _API.store.getState(); const discovery = util.getSafe(state, ['settings', 'gameMode', 'discovered', GAME_ID], undefined); return path.join(discovery.path, 'Unofficial_Patch'); } function isUPModType(instructions) { return fs.statAsync(getUnofficialModPath()) .then(() => Promise.resolve(true)) .catch(() => Promise.resolve(false)); } function main(context) { _API = context.api; context.registerGame({ id: GAME_ID, name: 'Vampire the Masquerade\tBloodlines', logo: 'gameart.jpg', mergeMods: true, queryPath: findGame, requiresLauncher, queryModPath: () => 'Vampire', executable: () => 'Vampire.exe', requiredFiles: [], environment: { SteamAPPId: STEAM_ID.toString(), }, details: { steamAppId: STEAM_ID, }, setup: prepareForModding, }); // The "unofficial patch" mod modifies the mods folder. GoG seems to include // this by default ? context.registerModType('vtmb-up-modtype', 25, (gameId) => gameId === GAME_ID, () => getUnofficialModPath(), (instructions) => isUPModType(instructions)); } module.exports = { default: main }; Could I fix the issue by editing this file?Edit: I am sorry, I just realized I can't delete my other post that I made in the wrong section of the forum. Link to comment Share on other sites More sharing options...
HadToRegister Posted December 11, 2020 Share Posted December 11, 2020 These parts here look like they're supposed to be finding the Unofficial Patch folderfunction getUnofficialModPath() {const state = _API.store.getState();const discovery = util.getSafe(state, ['settings', 'gameMode', 'discovered', GAME_ID], undefined);return path.join(discovery.path, 'Unofficial_Patch');}function isUPModType(instructions) {return fs.statAsync(getUnofficialModPath()).then(() => Promise.resolve(true)).catch(() => Promise.resolve(false));}// The "unofficial patch" mod modifies the mods folder. GoG seems to include// this by default ?context.registerModType('vtmb-up-modtype', 25,(gameId) => gameId === GAME_ID, () => getUnofficialModPath(),(instructions) => isUPModType(instructions));} That first one looks to be doing a search and returns if the unofficial patch folder exists and where it is The next question is, Should VtmB use Symlink or Hardlink? Link to comment Share on other sites More sharing options...
ZJohnAsZ Posted December 12, 2020 Author Share Posted December 12, 2020 Thank you for your response. Yes I figured this part could have something to do with the Unofficial_Patch folder, but it seems like there is something to be changed or missing, because it doesn't work when I Install, deploy and enable the mods.As for Symlink or Hardlink, I always thought that the only difference between the 2 is that one would be installed directly in the game folder and the other anywhere and simulate symbolically that it is in the right folder. Link to comment Share on other sites More sharing options...
HadToRegister Posted December 12, 2020 Share Posted December 12, 2020 Thank you for your response. Yes I figured this part could have something to do with the Unofficial_Patch folder, but it seems like there is something to be changed or missing, because it doesn't work when I Install, deploy and enable the mods.As for Symlink or Hardlink, I always thought that the only difference between the 2 is that one would be installed directly in the game folder and the other anywhere and simulate symbolically that it is in the right folder. Hardlink installs the mods in the Mod Staging Folder and creates a link from the Mod Staging folder to the Games Data folder, which makes it look the like mod is installed directly to the games data folder, even though it's not Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.