So a few days ago i asked the following question in the sponge discord:
essentialy i am looking into making a ‘lobby server’ to connect all my others vanilla / vanilla creative / project ozone / direwolf20 and ftb revelation. before i do anything pratical i was reading up on the theory so to speak
so for reference i had the following servers:
- spigot-1.12.2.R0.1 vanilla survival
- spigot-1.12.2.R0.1 vanilla creative
- spongeforge-1.12.2-2555-7.1.0-BETA-2817 FTB revelation 1.12.2
- spongeforge-1.12.2-2555-7.1.0-BETA-2817 Direwolf 20 1.12.2
- forge-1.10.2-12.18.3.2511 Project Ozone lite 1.10.2
what i wanted to achieve was to create a bungeecord network to link them all up and to have 1 single lobby who all users would connect through and eventualy when it comes out add 2 servers for forever stranded lost souls. (i could thus whitelist the lobby and restrict access that way)
the problem was that i had a mix of spigot/forge/spongeforge and different versions 1.10.2 - 1.12.2 as well. i also wanted to use ip-forwarding to prevent naughty children (as i was trying to connect to a forge based server i found out that normal bungeecord would not work and that i should use waterfall.
for a test i set up 4x1.12.2 spigot servers all default with nothing added and went through the bungeecord(waterfall) setup of making 1 the proxy 1 the hub and leaving the other 2 as they were (setting online-mode: false on all but the proxy)
this worked fine - providing the connecting client was vanilla 1.12.2 (1.10.2 clients could not join as version mismatch - more on this later)
i had heard that spigot, should you connect with a modded (forge) client would simply disregard the mods and let you connect - this is true up to a point - some of the mod packs have too many mods for spigot to handle - even if it is going to disregard them
i ended up with this error
Couldn’t register custom payload java.lang.IllegalStateException: Too many channels registered
so back to various discords and after a couple of days (i suppose understandably no server admins from the big community servers out there would answer my questions) i stumble across Yive’s Chat (awesome discord for help btw) and was reccomended viaversion in order to let clients from different versions connect.
viaversion is fantastic, so now i have a lobby (MC version 1.8.8) which will let any - vanilla - client from 1.8.8 to 1.12.2 connect, halfway there.
the problem was i was still getting errors when modded (forge) clients would connect so after even more failed googling i tried my luck back at yives chat and what do you know, again result.
i was suggested to change waterfall to hexacord(the proxy server) and spigot to paperspigot(lobby server)
success, i can now have any MC version from 1.88 - 1.12.2 and any client be it vanilla or forge modded - access the lobby, from where they can move to their respective servers.
regretfully i couldnt get an answer to why the combination of hexacord and paperspigot worked but hey! it does so woooo.
for final reference / tl;dr in order for me to have a lobby whom any of my members can join (be it vanilla / forge or 1.8.8 - 1.12.2 ) i now have the following servers:
- spigot-1.12.2.R0.1 vanilla survival
- spigot-1.12.2.R0.1 vanilla creative
- spongeforge-1.12.2-2555-7.1.0-BETA-2817 FTB revelation 1.12.2
- spongeforge-1.12.2-2555-7.1.0-BETA-2817 Direwolf 20 1.12.2
- forge-1.10.2-12.18.3.2511 Project Ozone lite 1.10.2
- hexacord-v180 (proxy)
- PaperSpigot-1.8.8-R0.1 + ViaVersion 1.3.0 (lobby)
shout out to @ryantheleach @killjoy for inital help and suggesting i make this post when i figure it out
apparently this question gets asked a lot, but people either give up or dont let anyone else know when they get a solution, so here it is and i hope it helps