Skidamek / AutoModpack

Enjoy a seamless modpack installation process and effortless updates with a user-friendly solution that simplifies management, making your gaming experience a breeze.
https://modrinth.com/mod/automodpack
GNU Lesser General Public License v3.0
91 stars 29 forks source link

Isolate the client mods #245

Closed CalibrationCult closed 5 days ago

CalibrationCult commented 5 days ago

Motivation

It makes little to no sense to have client and server mods all in one folder where they get automatically loaded on the server, by the server - every time it boots. In fact this can create issues and incompatibilities. An example off the hand would be Distant Horizons mod. Not only has it no reason or place to be loaded on the server - it prohibits the server from starting, as it has no entrypoint for it.

Not only should this never be an issue with proper structuring - AFAIK there is no way to have such a mod in AutoModpack. It cannot be 'sideloaded' to the client via its config, from another folder for example - neither can it be excluded from fabric modloader.

Description

I believe that the server and client mods should be isolated from one another in any case. I find it to be a bad design for them to be just thrown together with all the server files, especially the mods in one auto-loaded folder.

I think the best approach would be to simply isolate everything to another folder altogether. Create a "~/client" folder on the server or maybe even ~/automodpack/client-files or something. So instead of using ~/mods folder directly, that is already used by the server itself - it would be ~/client/mods Instead of having ~/options.txt just thrown inbetween all the server and its configuration files - have it in ~/client/options.txtinstad.

Not only would it be better file structure that's less confusing - it would also be a fix for issues like the one with Distant Horizons, so it could be included with AutoModpack.

Other information

The only downside I can see is that the files that are not client or server exclusive, are indeed shared. So they would have to be duplicated and kept in-sync between the isolated folders. But I believe the solution to that is already there, if using the "syncedFiles" config field in another (proper) way. It would also make such a change backwards compatible for the mod:

Make all files in ~/client folder be automatically part of AutoModpack. In addition add all the syncedFiles to the modpack, as it's been done now.

But folder isolation really should be the default approach. So you can have strictly "client-only" mods if wanted or needed. Or maybe even if for some reason I want or need to run version 1.0.2 of a mod on server and version 1.0.1 on client, it would be possible.

Skidamek commented 5 days ago

Hey!

Have you read this? There two ways of adding files to modpack.

With default config it reuses servers mods as syncedFiles work, it reuses already existing files on server. But you can also add other files to the modpack via host-modpack directory.

Default config is configured like that to, like you said don't duplicate files and waste disk space. And in many cases it just works, without any other configuration.

But yes there're wrongly configured mods like distanthorizons which require additional help and that's where host-modpack directory comes.

Skidamek commented 5 days ago

So, I see that the wiki is unclear. Could you give me feedback on how to improve it? I tend to oversimplify things when explaining... Thanks in advance! Also, if you have any other questions, feel free to ask.