Jump to content

20.4 new mod folder location


Recommended Posts

8 hours ago, meganoth said:

Note the changelog says "<UserDataFolder>" which happens to point to %appdata% on windows now, but such a default could be changed.

And concerning the main problem: For servers a solution already exists, with the serverconfig.xml having a line to change that path to anything one wants. Maybe there needs to be a clientconfig.xml as well. (or serverconfig.xml has to be parsed even on clients)

 

 

You can already do this for the non-dedi client. Just set the values in the serverconfig.xml and then start the client with the argument -configfile=serverconfig.xml.

I have not tested if this will change the location for the Mods folder though.

 

69195bcf146e868a8b50ab37d25b02c1.png

  • Like 1
Link to comment
Share on other sites

I’m surprised that nobody pointed out the fact the some overhauls have files outside of the mods folder such as undead legacy and/or overwrite some game files such as the trader prefab xml.

 

This will become very difficult to manage given users will need to know how to set up what used to be a single zip into two locations, more than doubling the confusion they already face when having to install mods.

 

Not being able to create multiple game folders in this case will mean having to keep track of which files were overwritten, make backups, and wouldn’t help with the intent of having no files be changed inside the game folder anyway.

  • Thanks 1
Link to comment
Share on other sites

1)  why not just use   <username>\Documents\my games     ?  Isn't that why it's there, instead of using hidden folders.

 

2)  even with using the appdata, could still have copies of various versions, just more difficult now.  Have rename the mods folder there as well as the actual game folder.

 Right now, I just tack on a descriptor to the game folder, then copy over the vanilla one.  Would have to do this to the mods as well (even if was in the my games, but that's at least easier to find)

 

3) How will this affect us Linux users?  Is the mods folder staying where it is, or is it going to be somewhere else.

 

4) options in the configfile sound good.  (how many will just put it right back where it is now though)  :D

 

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, canadianbluebeer said:

1)  why not just use   <username>\Documents\my games     ?  Isn't that why it's there, instead of using hidden folders.

 

Does anyone know what Microsoft suggests as account-specific game data locations? I'm asssuming that TFP's intention is at least partially to conform to guidelines so it plays well under a lot of circumstances.

 

Making the location depend on account would surely be a way to make the change noob-friendlier.

 

1 hour ago, canadianbluebeer said:

 

2)  even with using the appdata, could still have copies of various versions, just more difficult now.  Have rename the mods folder there as well as the actual game folder.

 Right now, I just tack on a descriptor to the game folder, then copy over the vanilla one.  Would have to do this to the mods as well (even if was in the my games, but that's at least easier to find)

 

3) How will this affect us Linux users?  Is the mods folder staying where it is, or is it going to be somewhere else.

 

I would assume (and hope) it will use <UserDataFolder> as well (meaning essentially <homedir>/.local/share/7DaysToDie/ (and don't let the "share" confuse you, it is local to an account).

So this already means division by account is happening in Linux and you can just make a new account for each modded game.

 

What I definitely wouldn't like is if different platforms had totally different ways of handling it.

 

1 hour ago, canadianbluebeer said:

 

4) options in the configfile sound good.  (how many will just put it right back where it is now though)  :D

 

 

 

Who cares? TFP surely won't either. If someone shoots himself in the foot this way (if there is some shoot-into-foot possibility in the future) or finds true happiness it is his own responsibility or luck

Edited by meganoth (see edit history)
  • Dislike 1
Link to comment
Share on other sites

Why do Devs feel the need to save data to Windows Registry and C Drive locations???
The whole reason I put games on a separate physical drive to the OS is to improve performance and increase Drive life.
Regardless of WHY TFP have decided to save data to the C Drive...it's a BAD idea on several level.
Give PC Users the choice (either during Install or in the Game Menu) of where to store their data and Settings.

Alienating long time Fans is not a good move...just saying.

On a side note, the DOS folder redirect command MKLINK may get more use... ie. Mklink /J C:\Users\<USERNAME>\AppData\Roaming\7DaysToDie D:\7_DtD_Data

  • Like 2
Link to comment
Share on other sites

Just a thought towards a compromise.

 

Environment Variables, such as %APPDATA%, are supported by all OS's that I know of. During installation, 7D2D could define a %7D2DDATA% environment variable. They could point it to %APPDATA%/7d2d if they wanted. Then, players could change the %7D2DDATA% environment variable to point it to alternative locations.

 

Players cannot change %APPDATA% without affecting other applications. Also %APPDATA% (specifically) isn't common to other OS's.

 

The nice thing about using an environment variable is various scripts/apps like Installers can find out where to put files.

 

Another possibility is that the game will use %7D2DDATA% if it is defined, or %APPDATA% otherwise. This way, people can override %APPDATA% without modifying %APPDATA%.

Edited by zztong (see edit history)
Link to comment
Share on other sites

4 hours ago, KhaineGB said:


The suggestion to use "Documents" would mean you could, in theory, still only run 1 mod, or vanilla.

Running from the /Mods folder within the game would be a LOT better as it'd allow you to do what you're currently doing.

But I made that suggestion as I had concerns TFP wouldn't listen to me if I said "Just get rid of it" whereas they might if I said "This location is bad because of X reason. Maybe try Y instead?"

Thanks

The part about still only being able to run the one mod is what I was concerned about. Like you I would like it to stay like it is. I could manage if they did change it but having to swap out mods each time. That would put a crimp in my gameplay for sure.

  • Like 1
Link to comment
Share on other sites

47 minutes ago, zztong said:

Just a thought towards a compromise.

 

Environment Variables, such as %APPDATA%, are supported by all OS's that I know of. During installation, 7D2D could define a %7D2DDATA% environment variable. They could point it to %APPDATA%/7d2d if they wanted. Then, players could change the %7D2DDATA% environment variable to point it to alternative locations.

 

Players cannot change %APPDATA% without affecting other applications. Also %APPDATA% (specifically) isn't common to other OS's.

 

The nice thing about using an environment variable is various scripts/apps like Installers can find out where to put files.

 

Another possibility is that the game will use %7D2DDATA% if it is defined, or %APPDATA% otherwise. This way, people can override %APPDATA% without modifying %APPDATA%.


There's also a command in unity to just pull the games data path, which is what TFP are doing.

Which is why the only reason I think the change is even being CONSIDERED is for XBox on PC store access (Not console, that's different) since you can't access the game folder as windows locks it down HARD.

IMO, the best solution is to just allow the game to load from both areas.

  • Like 1
Link to comment
Share on other sites

Is it possible I wonder they could just add an option to choose either the default (what they want to change it too) or Mods folder (in the game folder like it is now) when you start a game so. Like you said best solution is to load from both areas if they are really going to add this. Guess game could check if Mods folder and if none then use the one they set up

Link to comment
Share on other sites

If that <UserDataFolder> separation works, it does have one upside; it isolates the saves for each mod from one another, right? One won't accidentally run the wrong mods on a save, as the saves are not there.

 

Of course, the downside of "everybody script, now!" feels a little more significant.

Link to comment
Share on other sites

I have another idea, cos i'm digging in the DLL. This might be better for Alloc if he's lurking in here.

If TFP could make the ModManager.loadModsFromFolder method PUBLIC, then we can harmony patch the LoadMods method to make the game load overhauls from different directories.

Which then might be better for users regarding vanilla + several other mods for people who want that.

Just spitballing an idea. It puts a bit more work on us modders, but it might benefit users.

  • Like 1
Link to comment
Share on other sites

3 hours ago, KhaineGB said:

There's also a command in unity to just pull the games data path, which is what TFP are doing.

 

That's great if you're using Unity. Folks who are just making tools and installers using Python, C++, JOVIAL, Assembly Language, etc... can't call on Unity. I believe every runtime environment can find OS environment variables.

 

I'd suggest "symbolic links" to Mods folders as a solution, but that only helps Macs and Linux. The Windows equivalent is a Shortcut, but I'm not sure those are as seamless.

Link to comment
Share on other sites

Posted (edited)
45 minutes ago, zztong said:

 

That's great if you're using Unity. Folks who are just making tools and installers using Python, C++, JOVIAL, Assembly Language, etc... can't call on Unity. I believe every runtime environment can find OS environment variables.

 

I'd suggest "symbolic links" to Mods folders as a solution, but that only helps Macs and Linux. The Windows equivalent is a Shortcut, but I'm not sure those are as seamless.


Except the game is literally built in unity, so what does python or anything else have to do with it?

Oh, and windows can do symlinks. I've done it before.

Edited by KhaineGB (see edit history)
  • Like 1
  • Haha 1
Link to comment
Share on other sites

4 hours ago, KhaineGB said:

I have another idea, cos i'm digging in the DLL. This might be better for Alloc if he's lurking in here.

If TFP could make the ModManager.loadModsFromFolder method PUBLIC, then we can harmony patch the LoadMods method to make the game load overhauls from different directories.

Which then might be better for users regarding vanilla + several other mods for people who want that.

Just spitballing an idea. It puts a bit more work on us modders, but it might benefit users.

I don't think it is a good idea to let the mod developer choose the dir. Bad for other platforms than windows, bad even for windows users when the mods dir suddenly appears at arbitrary places

 

 

 

PS: I just realized that even on Windows that %appdata% dir is per user, right?

So there is already a lowtech possibility to have installations with different mods, one per windows account. Or am I missing something?

 

 

Edited by meganoth (see edit history)
  • Like 1
  • Dislike 1
Link to comment
Share on other sites

please don't make it take only %appdata% as mods source - for many people C: disk is a smallish SSD built MOSTLY for windows, i don't want it to be cluttered with mods, let alone that issue that people brought - inability to change mods on the run (expect for copying and deleting them - AGAIN on system drive, potentially shortening it's lifespan)

  • Like 3
Link to comment
Share on other sites

22 minutes ago, meganoth said:

I don't think it is a good idea to let the mod developer choose the dir. Bad for other platforms than windows, bad even for windows users when the mods dir suddenly appears at arbitrary places

 

 

 

PS: I just realized that even on Windows that %appdata% dir is per user, right?

So there is already a lowtech possibility to have installations with different mods, one per windows account. Or am I missing something?

 

 


Yep, it is, but that's not an acceptable workaround since most users barely know what a zip file is. ;)

  • Like 1
Link to comment
Share on other sites

24 minutes ago, KhaineGB said:


Except the game is literally built in unity, so what does python or anything else have to do with it?

Oh, and windows can do symlinks. I've done it before.

 

Because people write all sorts of apps to interrogate game files to do things like generate maps, install POIs, and more. They don't have to write them in Unity.

 

When those tools are distributed and installed, one of the first things those apps have to do is find the game files and/or the Mod files. The location of the game files has been highly variable, thus the Mods folder has been too. The recent change provides a way for tools to find the Mods folder because the advertised path includes the %APPDATA% environment variable. That is a handy thing.

 

I get that many people want to be able to have many different Mods folders for different installs. That's why I suggested using an environment variable created and installed by the game, instead of %APPDATA% which has other uses. Better, teach the game to look for a %7D2DMODS% environment variable pointing to a Mods folder, and if found use it. If not found, then use %APPDATA%. Then, folks who need to relocate the Mods folder, can just define that environment variable. If you want 20 different overhaul Mods, install them in different places and change the variable.

 

 

Symlinks in Windows?

 

Oh, well if they're fully functional, then we've got lots of options. Just make %APPDATA%/7days2die/Mods a symbolic link to wherever you really want your Mods folder to be. If you want to change between different Mods folders, change the symbolic link.

 

The last I messed with Windows symlinks, they weren't fully functional, but that has been a long time ago. Glad to hear there might be some support. Thanks!

Link to comment
Share on other sites

I did then in Win 7, so yeah, they're functional.

HOWEVER, this is still not a viable alternative. You have no idea how many people I have to walk through manually installing mods because they seriously don't know how to deal with zip files.

A lot of the suggestions thus far are way above the tech level of most users based on my experience as both a mod author AND tech support for a gaming company.

  • Like 4
Link to comment
Share on other sites

Ease of installation is a reason to make an installer. How does the installer know where the Mods folder is? It can either...

  • ask the user -- as you say they don't know where it is, or
  • ask the environment -- provided for by TFP's use of the %APPDATA% environment variable.

But the complication is that %APPDATA% is a Windows convention shared by many applications. The user cannot change it, even if they knew how, because they clearly won't want all there other apps using that variable to put stuff elsewhere.

 

Ah, but you can make the Mods folder a symbolic link to someplace else. Then %APPDATA% remains useful.

 

Alas, as you say, a novice user probably cannot make a symlink either.

 

But, of course, those same users cannot find the game files either. So advocating keeping the existing system really isn't making anything any better. It is just the status quo.

 

An independent installer or mod manager could manage symlinks.

 

Eventually maybe the Game's Launcher will know of a registry of Mods and install the Mods via a built-in Mods manager. Well, we're probably not there yet. :)

Link to comment
Share on other sites

Posted (edited)

The current method is WAY easier than AppData.

However, the documents folder would be easier than both. Also, you can access it on Windows, Linux and Mac OS in .NET (which all 3 platforms support).

System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

 

;)

Edited by KhaineGB (see edit history)
  • Like 4
Link to comment
Share on other sites

If all of the folder selections could be picked from the command line or the config file then that would solve everyone's problems.  Put all your stuff in the folders you want to keep them separate, point the executable at the config file (or command line options) for the game you're playing and have fun.  Create a separate shortcut for each configuration you want and you're off to the races.  This way you could do everything with a single download of the game, assuming you're not butchering the EXE file.  :p

 

If TFP really wanted to get fancy they could create a ServerConfig folder and pop-up a selection window to pick your config file when you launch if you have multiple files in this folder (and haven't designated your config file with command line options).

 

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, KhaineGB said:

However, the documents folder would be easier than both.

Better than appdata, I'd say, but it doesn't really feel like the right place either. As an oversimplification; appdata is for settings, docs is for files you're working on.

I guess the issue is, mods are really neither; for modlets appdata might work - especially if the game had functions to manage import and selection of modlets (with save games remembering their mod load out etc). That would leave overhauls in a weird spot; almost deserving their own appdata - entries.. hmm, could that be plausible? (Not sure if I'm actually asking you or just pondering... :) )

Link to comment
Share on other sites

5 hours ago, KhaineGB said:

Oh, and windows can do symlinks. I've done it before.

 

You're right. Thanks for the update. It is the "mlink" command for those who are interested.

 

This makes a nice work-around for my Prefab Editor / Parts in Modlets issue.

 

cd C:\Program Files (x86)\Steam\steamapps\common\7 Days To Die\Data\Prefabs\Parts>
mklink ZZParts /d "C:\Users\zzton\AppData\Roaming\7DaysToDie\Mods\ZZTong Prefabs\Prefabs\Parts"

 

Thanks for the tip, @KhaineGB.

 

For those who want to put their Mods folder elsewhere, and have the knowledge to use the mlink command, this approach should work for you.

 

Whether it is the ultimate answer to life, the universe, and everything, I'll let the debate continue...

Edited by zztong (see edit history)
  • Like 1
Link to comment
Share on other sites

2 minutes ago, zztong said:

 

You're right. Thanks for the update. It is the "mlink" command for those who are interested.

 

This makes a nice work-around for my Prefab Editor / Parts in Modlets issue.

 

cd C:\Program Files (x86)\Steam\steamapps\common\7 Days To Die\Data\Prefabs\Parts>
mklink ZZParts /d "C:\Users\zzton\AppData\Roaming\7DaysToDie\Mods\ZZTong Prefabs\Prefabs\Parts"

 

Thanks for the tip, @KhaineGB.

 

For those who want to put their Mods folder elsewhere, and have the knowledge to use the mlink command, this approach should work for you.

 

Whether it is the ultimate answer to life, the universe, and everything, I'll let the debate continue...

Unfortunately, this only helps to move the folder off the C drive and Appdata. We still need to solve the issue of how to run multiple versions of the game with different mod sets.  Sure you could write a batch to run before you change versions to re-direct the symlinks, but that's not a great answer either. 

 

Going to head out and update my client to test a couple of things.

 

  • Like 1
Link to comment
Share on other sites

1 minute ago, SylenThunder said:

Unfortunately, this only helps to move the folder off the C drive and Appdata. We still need to solve the issue of how to run multiple versions of the game with different mod sets.  Sure you could write a batch to run before you change versions to re-direct the symlinks, but that's not a great answer either. 

 

Going to head out and update my client to test a couple of things.

 

 

Right. It isn't a complete solution for everybody, but its a possible solution for some.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...