Client-Only mods are demanded and force-activated by the multiplayer server

Summary: If you have a mod that’s marked as client_only in its manifest, it is still required in order to join a multiplayer game. This applies to Steam and local mods. If the client has a client-only mod that they have disabled but the server has enabled, it will be forcibly enabled without notification when they join. If they do not have the client-only mod that the server has enabled, they will be alerted that it is missing and they can’t join unless they install it (like non-client-only mods). Clients can still have additional client-only mods enabled that the server doesn’t have enabled, and the server will not disable them.

Steps to reproduce:

  1. Host a server with a client-only mod.
  2. Install but disable that mod on a client (or don’t install it).
  3. Have the client join the server.

Expected Results: You join the game fine without needing to worry about the mod that you either don’t have installed or don’t have enabled because it’s client-only.

Actual Results: You are forced to install it if you want to join the server, and if you merely have it disabled, you aren’t even alerted that it is being used and activated.

Version Number and Mods in use: 870, many combinations of client-only mods including Debug Tools as a baseline non-client-only mod, with different combinations of server/client running those mods

1 Like

I feel like it should be possible for a server to mandate client sided mods though. Not all of them, but some. If I wanted to have a game where some client sided mod is used for some UX changes/mechanics/whatsoever, I would have to convert the mod to a server-sided mod (and then upload it, which would be kinda bad).

So while doing it by default seems like a weird choice, being able to say “That client sided mod is required for my clients” would be nice.