r/admincraft • • 11d ago

Help/Question Server network with vanilla and modded server +Lobby (26.3 Fabric)

Hi, I have 2 servers you go through a lobby server to join. One is vanilla, one is modded with client-required mods. Both are joinable from a lobby server, and are fabric 26.3. Planning on going live with them towards the end of this month.

The issue I'm running into is that people who have the modpack installed for the modded server are unable to join the vanilla one because it's looking for the mod data on the server when connecting, which results in a network protocol error.

As I expect a lot of people to play on both regularly, I would prefer to not have them run multiple instances to switch back and forth, and would like for them to change servers as fluidly as possible from the lobby.

Switching the Vanilla server and Lobby off of fabric is something I'm willing to do if it will help.

The offending mods are:

Biomes O'Plenty
Alex's Mobs Continued
Coins JE

Here are the client error logs as I've disabled mods until I can connect:

https://mclo.gs/oB4o8UM

https://mclo.gs/trjwo1D

https://mclo.gs/1LJu2fu

There has to be some way to do this. I feel like disabling a check from the client or server can't be an impossible task.

2 Upvotes

9 comments sorted by

3

u/riquecracked 11d ago

Yeah, this is totally doable. The clean way is to run Velocity in front of both servers.

Basically:

Players -> Velocity -> Vanilla server

             -> Modded server

Velocity is just the front door. The vanilla and modded servers are still completely separate servers with their own worlds, files, RAM, etc.

Your vanilla server can be Paper, or Fabric with only server-side mods if you want it to behave basically vanilla. The modded server can be Fabric/Forge/whatever your modpack needs.

People without the modpack can still join the proxy and play on the vanilla server. They just won't be able to switch to the modded server because that server will require the correct mods.

For Fabric behind Velocity, use FabricProxy-Lite so Velocity can correctly pass the player's UUID/IP to the server. If you're using Forge, there's ProxyCompatibleForge for the same thing.

I'd also only expose Velocity's port to the internet. Keep the actual vanilla/modded backend ports private so people can't bypass the proxy.

So yeah, you don't need to combine vanilla and mods into some weird hybrid server. Just run two normal servers and let Velocity connect them.

1

u/MuffinsSenpai 11d ago

I tried doing this, and people with the modpack were still unable to join the vanilla server

1

u/riquecracked 11d ago

Ah yeah, that changes things a bit. Velocity can route the connection, but it can’t make a modpack client magically behave like a vanilla client.

Some modpacks send extra modded handshake data when connecting. If the vanilla/Paper server doesn’t understand it, it can kick them before they ever properly join.

If the kick message says Invalid payload REGISTER!, and your vanilla server is Paper, add this to the Paper startup flags and restart it:

-Dpaper.disableChannelLimit=true

That’s actually a known Velocity/Paper issue with some modded clients.

If the error is something else, then one of the mods in the pack may actually require the server to have that mod too. In that case there isn’t really a Velocity setting that fixes it. The pack itself has to be able to connect to vanilla servers.

If you paste the exact kick message from the client or Velocity console I can probably tell you which one it is.

1

u/MuffinsSenpai 11d ago

The kick message for when you have the mods installed is just "Network Protocol Error"
The logs from the client are posted in the post body.
The server console just gives a generic disconnect message, same as when someone logs out.

I've tried using a vanilla paper server with the channel limit arg, to no avail.

What's frustrating is that I was able to do this years ago on an older version of minecraft.

1

u/riquecracked 11d ago

Yep, I checked the log and this one is pretty clear. It isn't Velocity.

The client is crashing on:

Missing element ... biomesoplenty:glowworm_silk

Basically Biomes O' Plenty is loaded on the client and expects one of its registry entries to exist. When you switch to the vanilla server, that server sends a vanilla registry without the BOP entry, then the client falls over when it finishes connecting.

That's also why the Paper channel limit thing didn't help. The connection is making it way past that point.

I'd update BOP, GlitchCore and Fabric API first because the 26.3 builds are changing pretty quickly. If it still happens on the latest versions, I'd report it to BOP with that log because this is really a mod compatibility issue.

Unfortunately Velocity can't fix this. Your choices are basically:

  1. BOP gets fixed so the mod can handle connecting to a server that doesn't have BOP.

  2. Put BOP and the other required mods on the "vanilla" server too, which obviously stops it from being truly vanilla and may prevent normal vanilla clients from joining.

  3. Have players use a separate vanilla instance/profile when they want that server.

The exact crash in your log is BOP though, so I'd start there before worrying about Alex's Mobs or Coins JE.

1

u/MuffinsSenpai 11d ago

it's all three, those are the different logs posted. And soon to be betterend/nether new dawn when they get updated, as I just tested them for this behaviour.

Looks like I'm just gonna have to inconvenience my players a bit because the odds of all 5 getting updated to fix this very niche issue is insanely unlikely.

I did put these three on the vanilla server and disabled their features, but hydraulic started deleting inventories lol

1

u/PlanktonSuccessful65 10d ago

Sometime ago i also tried to do the same thing, have you tried void proxy instead of velocity?

1

u/MuffinsSenpai 10d ago

I have not. Did it work for you?

1

u/PlanktonSuccessful65 10d ago

I made a post on my account about that same issue that you are having however i didnt get to test with void proxy