Pros and cons of allowing multiple versions to join server?

Discussion in 'Spigot Discussion' started by MinerDwarf984, Oct 13, 2019.

  1. What are the pros and cons of having support for multiple versions of Minecraft on a single server?

    Will allowing more versions cause more problems than benefits?
    Will allowing more versions make exploits and hacking easier?
    Will a lot more maintenance be required when the server breaks?
  2. I think the answers to your questions are all ‘no’, but which version is your server running?
  3. Depends. If it's a complex server with modern features (as in, that require modern versions), then how will the old clients behave? Will all features properly work on the old versions, or would it show unexpected results? For example, you have a minigame which involves shulkers (and your server is thus at least 1.9) but you allow 1.8 clients to join. How will that work? It depends on your type of server, what your features are and how many versions you plan to support.

    Adding multiple versions shouldn't. However, if you're running something like 1.8 (or any outdated, unsupported version) which has certain exploits (assuming you didn't patch them yourself, with extra plugins for instance), then yeah, some hacks may be available. But that's more to be blamed on the server version rather than the additional versions you support.

    Probably, yeah. If you support, say, 1.8 all the way to 1.14, then you have to make sure you constantly test everything. Some things may unexpectedly break and may not be the most obvious and easy to fix. While developing for my project, we run on 1.13 and want to allow 1.14. We've sometimes seen extremely weird and expected issues show up (still do!) just because we have those version hacking plugins. Even when I join on the original version it tends to something break things. So, will it add additional maintenance effort? Yeah, without a doubt, if you want to ensure that things keep on working.
    • Useful Useful x 1
  4. On which version is your server running on. Strongly depends on it.
  5. version 1.14.4
  6. I'd say just stick to one version. It's wayyyy easier to manage and make sure nothing breaks or any weird inconsistencies happen (ie. <1.8 clients have longer attack range than >1.9, chatting with >1.13 clients will kick you on <1.12.2 servers, weird visual glitches/movement tp-back).
    • Informative Informative x 1
  7. It is also dependent on which version you try to support down to. Supporting 1.13 when running on 1.14 should be pretty bug free.
    I personally know a servers (smaller & larger ones 900+ users) which are on the 1.14.4 & supports down to 1.8.
    If you are using new watermaps there are multiple visualgliches & 1.8 Clients might be
    Inconfident. You could possibly send a message to any 1.8-1.12 User when joining that they should use a different version for best experience but still support these versions.

    Real bugs & glitches should be very rare.
    Exploits won’t happen more than normal (no almost none)

    Leonhard | EsGibtKeineMitte
    • Useful Useful x 1
  8. I prefer to allow older versions on latest spigot by using ProtocolSupport. Lower clients may have disadvantages, but in the end it is their fault for playing with an older client.
    Allow them but don’t give much support for that.

    Your questions: All of them, no.
    Ok, question 2 is hard to say and it is dependent on the anticheat. If (as an example) AAC makes the check harder on 1.13 and not on 1.8.8, 1.8.8 players will have it easier to use hack clients. But this is a case that never (should) happen(s).
    • Useful Useful x 1
  9. Puremin0rez


    It really depends on what kind of server you have. I find supporting multiple versions to be more more sane on a minigame / limited environment compared to survival.

    I would never, ever allow older clients on a survival server than the version you're running. There's no point, they're going to see things incorrectly 100% of the time as they literally lack the correct data tags, blocks, items, etc added in newer versions.

    These are my experiences running ViaVersion on a Survival server for the last year. (Server was 1.12, accepted 1.13 and 1.14)

    - Your anti cheat is really not going to like the movement / combat / ability changes from version to version. Swimming and faster water movement in general in 1.13 and 1.14 is going to make a pre 1.13 server assume hacking, since those things were not possible. This puts you in a tough situation since you're going to have to either disable this check entirely, or configure it and allow bypasses.
    - Visual errors are to be expected. For a long time, connected blocks did not work properly with newer clients on an older server since in 1.13 they changed block data to contain a lot more on the server side, and the client no longer did the "connecting" of blocks itself. This means your players see fences as disconnected, glass panes as single strips, double chests as single chests next to each other, halves of doors incorrect, etc. This has since been "fixed", but requires enabling a demanding feature in ViaVersion to send this to the client on the fly and correct it.
    - Players will complain about being unable to access certain newer features. "Where's the ocean content? I don't see it!" "Why can't I get a trident?" and if your server is really old, "Why does my recipe book not work / is blank?". It gives the player a false expectation that you're running a version that your not, and a player can feel deceived.

    - You will definitely gain new players easier, since most just stick on the latest and connect to whatever server they're looking for. Just keep in mind, if they're looking for a newer server, and they realize your server is missing the content, they'll probably leave - so you may have gained a new login, but failed to retain them.
    - Compatibility is good. The larger your net, the more players you can catch. Just keep in mind my point directly above.

    I have nothing against supporting newer clients than the server, I think it can work quite well in the right environments. I just don't feel like survival is one of those ideal environments.

    I am strongly against supporting older clients than the server, since I think it adds literally nothing to your server. Why would someone purposely be on an older version of MC and want to connect to a newer server, in which everything will look broken and they will be severely gimped compared to players running the correct version?
    • Winner Winner x 1
    • Useful Useful x 1