EMI Loot

EMI Loot

5M Downloads

Server won't start due to invalid dependency on EMI

Einhornyordle opened this issue ยท 4 comments

commented

On Modrinth, EMI is marked as client only, which means server installers like the one from AT Launcher do not download EMI when creating a server. However, EMI Loot is marked as server and client mod but has a dependency on EMI, therefore the server crashes on startup due to EMI not being available.

[main/ERROR] [loading.ModSorter/LOADING]: Missing or unsupported mandatory dependencies:
	Mod ID: 'emi', Requested by: 'emi_loot', Expected range: '[1.0.0,)', Actual version: '[MISSING]'

Version Info:
Minecraft: 1.20.1
Modloader: NeoForge 47.1.106
EMI Loot: 0.7.3

commented

Can you not just add EMI to the server mods folder manually? It does work on the server

commented

Yes, I did that as a workaround for now. but most serverpacks nowadays use some kind of automated installers (I assume to reduce size? Or maybe to make it count towards the overall download count of the mods for statistical reasons?) that download the mods for you. Basically the same way as client apps download each mod of a modpack instead of an "all inclusive" .zip file.

If some mods don't respect this new standard it causes a lot of extra work to always manually fix every broken dependency after each install/update. That's why tagging the correct environments right is so important, down the line it makes setting up servers and clients a lot easier.

commented

Ok, well EMI is a dependency. There isn't a way to specify a client only dependency afaik, and EMI can be installed on servers just fine.

commented

I'm not a mod dev so I can't say for sure but it should be possible to define server / client only dependencies as far as I know, just don't ask me how exactly to do that. I've now also tried to setup the server as docker container and it crashes with the same issue.

If there actually is no way and my information is wrong, I guess I could instead open an issue on EMI and ask them to change the mod to make it optional, instead of unsupported, on the server side