Closed CalibrationCult closed 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.
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.
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.txt
instad.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 thesyncedFiles
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.