bcssov / IronyModManager

Mod Manager for Paradox Games. Official Discord: https://discord.gg/t9JmY8KFrV
https://bcssov.github.io/IronyModManager/
MIT License
356 stars 41 forks source link

Change read/write directory #118

Closed dragonshardz closed 4 years ago

dragonshardz commented 4 years ago

Is your feature request related to a problem? Please describe. Stellaris likes to insist that all of its stuff should go into %USER_DOCUMENTS\Paradox Interactive\Stellaris. This can be changed, to a different directory on the same drive, by editing the gameDataPath in ...SteamLibrary\steamapps\common\Stellaris\launcher-settings.json.

However, Irony Mod Manager doesn't know how to look in the new location and read mods from it, or merge mods to it.

Describe the solution you'd like Add the ability to change the gameDataPath that this app reads/writes in.

bcssov commented 4 years ago

Given the fact that launcher-settings.json is in the game install directory does suggest it is not meant to be edited by users. I also prefer to have auto detection of the folders to prevent further user confusion in an already complex piece of software. 99% of users will not change these so I am unsure about this feature request. In your example there's also GOG users to consider not just steam ;)

On a further note Irony is aware of launcher-settings.json and it does read and parse it to obtain "exeArgs" property to use while launching the game.

bcssov commented 4 years ago

Added to vNext under "maybe" clause.

dragonshardz commented 4 years ago

So if I set launcher-settings.json to, say, C:\Games\Stellaris, IMM should pick that up and read/write to it?

Can't say what it's like for GoG users but it's probably similar.

bcssov commented 4 years ago

Sorry but no, Irony assumes default value of gameDataPath and goes with that. It does know about this file as I mentioned but does not use its alternate value (if modified). At the moment consider the value hardcoded. Before Stellaris 2.4 you could not even change it.

dragonshardz commented 4 years ago

It seems like the quickest solution to this sort of edge case would be to use the gameDataPath from the file that IMM is already reading and parsing, instead of hardcoding that reference.

Spaig commented 4 years ago

Was just looking for something like this - I like to keep my mod folders separate and something like this would be a big help

bcssov commented 4 years ago

As I mentioned given the fact that launcher-settings.json is in the game install folder this indicates it was not intended for modification by users. It's a descriptor for their official launcher to know where to store it's data since it's universal and the paths cannot be hardcoded in the exe anymore.

Irony in previous versions hardcoded these values due to the very same fact, that was before it was capable of recognizing launcher-settings.json. Now that it does it should be able to easily expose this for modification but this also is not just a simple job of switching to say reading this value. It is maybe possible for steam users but Irony cannot detect GOG installs and therefore has to fall back to something. So this simple feature request changes the whole workflow of how Irony options screen should behave and requires a slight rewrite of the options screen, refreshing the modlists and such. It no longer makes sense for me to ask for people to locate exes manually in their installs but rather say launcher-settings.json so that I can locate the exe, args and the mod storage directory (if we're doing this right)

I usually accept most of feature requests, this is considered a really low priority (maybe even) as aside from you 2 I only had one other inquiry about such a feature in the past 4-5 months. It's simply a matter of numbers and priorities and I'm only 1 guy.

Spaig commented 4 years ago

Bummer, but thank you!

dragonshardz commented 4 years ago

I'd say that if the launcher-settings.json wasn't intended to be modified, it wouldn't be in a format that is trivially edited in a text editor. It seems more like it's intended for power users who might not want a big pile of mods stored in their user Documents directory.

I'd be perfectly happy, personally, with a setting in Irony that allows a user to change where it read/writes mods to, much like the path browser button for if Irony somehow fails to automatically detect the installation.

edpickup commented 4 years ago

I'd third this request. Being able to keep mods off of my C drive would be very useful

bcssov commented 4 years ago

Anyone volunteering to take this on then lol

I'd say that if the launcher-settings.json wasn't intended to be modified, it wouldn't be in a format that is trivially edited in a text editor. It seems more like it's intended for power users who might not want a big pile of mods stored in their user Documents directory.

You could be right about that sure. But json is really straightforward format and is often used in apps such as this for internal configuration so in my opinion it's a case for and against at the same time.

I'd be perfectly happy, personally, with a setting in Irony that allows a user to change where it read/writes mods to, much like the path browser button for if Irony somehow fails to automatically detect the installation.

You might be but I'm not and if it's going to be done it needs to be done right in my eyes.

bcssov commented 4 years ago

You guys win. Today got a report from a dude who owns on gamepass and it writes to another user docs directory. Pushing towards 1.6 release this now.