Client-side and server-side ViaVersion implementation for Fabric
Go to file
creeper123123321 802ebf2504 add multiconnect to readme 2021-02-07 08:40:51 -03:00
.github closes #90 2021-01-03 17:22:15 -03:00
gradle/wrapper 0.3.1, update gradle 2021-01-23 16:32:29 -03:00
src/main update readme, parse .viafabric before autodetect, close #89 by stealing viaversion-velocity code 2021-01-11 12:03:09 -03:00
.gitattributes ViaRift first commit 2018-10-07 08:57:03 -03:00
.gitignore ViaRift first commit 2018-10-07 08:57:03 -03:00
.travis.yml use system env instead of project property 2020-08-05 08:22:17 -03:00
LICENSE Update LICENSE 2020-08-14 11:32:24 -03:00
README.md add multiconnect to readme 2021-02-07 08:40:51 -03:00
build.gradle.kts add 1.16.5 to list 2021-01-23 16:32:30 -03:00
compile_push_branches.sh update readme 2020-12-27 13:29:06 -03:00
gradle.properties [ci skip] update gradle and use G1GC 2019-05-03 15:22:00 -03:00
gradlew 0.3.1, update gradle 2021-01-23 16:32:29 -03:00
gradlew.bat 0.3.1, update gradle 2021-01-23 16:32:29 -03:00
settings.gradle Ported to fabric 2019-01-05 19:30:41 -02:00

README.md

ViaFabric

Travis Build Status ViaVersion Discord CurseForge Downloads CurseForge Versions

Client-side and server-side ViaVersion implementation for Fabric

Allows the connection to/from different Minecraft versions on your Minecraft client/server (LAN worlds too)

This mod can be installed on 1.8.9, 1.14.x, 1.15.x, 1.16.x and 1.17 snapshots (in separate branches) with Fabric Loader. Check the Minecraft version in file name when downloading from CurseForge/GitHub Releases.

Note: ViaVersion is designed for Vanilla Minecraft servers. It probably will not work with modded registry entries or registry synchronization (fabric-registry-sync mod).

1.14+ Dependencies:

Dependency Download
(Bundled 3.2.1 release) ViaVersion 3.2.1+ https://ci.viaversion.com/job/ViaVersion/ or https://ci.viaversion.com/job/ViaVersion-DEV/
(Bundled) Cotton Client Commands https://www.curseforge.com/minecraft/mc-mods/cotton-client-commands
(Optional) Fabric Command API v1/v0 https://www.curseforge.com/minecraft/mc-mods/fabric-api
(Optional) Fabric Lifecycle Events v1/v0 https://www.curseforge.com/minecraft/mc-mods/fabric-api
Fabric Resource Loader v0 https://www.curseforge.com/minecraft/mc-mods/fabric-api

1.8.9 Dependencies:

Dependency Download
(Bundled 3.2.1 release) ViaVersion 3.2.1+ https://ci.viaversion.com/job/ViaVersion/ or https://ci.viaversion.com/job/ViaVersion-DEV/
(Optional) Fabric Commands v0 https://www.curseforge.com/minecraft/mc-mods/legacy-fabric-api
(Optional) Fabric Lifecycle Events v1 https://www.curseforge.com/minecraft/mc-mods/legacy-fabric-api
Fabric Resource Loader v0 https://www.curseforge.com/minecraft/mc-mods/legacy-fabric-api

With ViaVersion:

  • your server can accept newer versions
  • your client can connect to older versions

Adding ViaBackwards (and optionally ViaRewind):

  • your server can accept older versions
  • your client can connect to newer versions

How can I install ViaBackwards/ViaRewind?:

What versions can ViaVersion, ViaBackwards and ViaRewind translate?:

  • Server-side: Graph with ViaVersion supported versions

  • Client-side:

Your Client 1.8.x 1.9.x 1.10-1.14.4 1.15.x 1.16.x
1.8.9
1.14.x
1.15.x
1.16.x

✓ = ViaVersion ⟲ = ViaBackwards = ViaRewind

Can ViaVersion, ViaBackwards and ViaRewind support snapshots?:

Commands:

  • There're 3 server-side alias /viaversion, /vvfabric and /viaver, and a client-side command /viafabricclient for Minecraft 1.14+ (OP permission level 3 is required for these commands, received by Entity Status Packet)

Configuration:

  • ViaVersion configuration is available at .minecraft/config/viafabric/viaversion.yml
  • ViaFabric configuration is at .minecraft/config/viafabric/viafabric.yml

Alternatives/similar mods/proxies/plugins:

  • ClientViaVersion: This discontinued client-side plugin for The 5zig Mod implemented ViaVersion, ViaBackwards and ViaRewind for 1.7.10, 1.8.9, 1.12 and 1.12.2 clients, allowing them to connect to 1.7-1.12.2 servers. It also had a protocol translation for 1.7 servers, which there's an updated version at https://github.com/KennyTV/ViaVersion/tree/hack (unsupported).
  • DirtMultiversion: Proxy allowing to connect down to Beta 1.3 with newer Minecraft client versions (currently).
  • multiconnect: This client-side Fabric mod does also accept older protocols and fixes some differences between versions, which ViaFabric doesn't. Currently, it goes down to 1.11 (stable) and 1.9 (experimental). (2020-10-16) (Supports only latest Minecraft client version)
  • Protocol4: This LiteLoader client-side mod allows your 1.7.10 client to connect to 1.7.x servers.
  • ProtocolSupport: This Bukkit plugin allows clients to connect from older versions (down to 1.4.7).
  • VIAaaS: Standalone ViaVersion proxy with ViaBackwards and ViaRewind, allowing you to connect without a mod installed on your client. Supports online mode.
  • ViaVersion: ViaVersion can run as a plugin for BungeeCord, CraftBukkit, SpongeCommon and Velocity servers.

Cool things to try:

  • Geyser: Plugins, Fabric mod and a standalone proxy for Bedrock edition translation.
  • PolyMc: Fabric mods which translates modded items and blocks, allowing vanilla to connect using resource packs.

How can I disable client-side ViaFabric?:

  • You can disable it in the menu or by setting global protocol version to -1 (this will keep per-server translations still enabled)

How to use protocol auto detector?:

  • For using globally, set the protocol to AUTO or -2. For using in a specific server: ddns.example.com._v-2.viafabric
  • The protocol auto detector will try to ping with the client native protocol version so if you have ViaVersion or similar in the server it will use the translator, differently than multiconnect which uses -1 version, which may get the native server version.
  • It may hold your handshake for up to 10 seconds.
  • The results are cached for 100 seconds.

How can I set the version for specific servers?:

  • Append ._v(VERSION).viafabric. Example: minigame.example.com._v1_8.viafabric, native.example.com._v-1.viafabric, auto.example.com._v-2.viafabric

Does it work with multiconnect at same time on client?:

  • Yes, ViaFabric can be used with multiconnect. ViaFabric will send to their version auto detector their closest supported version. (multiconnect beta-supported versions (currently < 1.11) aren't used)
  • Example of configurations:
  • (1.8 server) <-> (disabled ViaFabric) <-> (auto-detected 1.8 server - multiconnect) = doesn't work because multiconnect doesn't support it
  • (1.8 server) <-> (detected 1.8 - ViaFabric - suggests 1.11) <-> (detected 1.11 server - multiconnect) = works, ViaVersion is translating 1.8 -> 1.11 and multiconnect is accepting 1.11
  • (1.8 server) <-> (forced 1.8 - ViaFabric - suggests 1.11) <-> (detected 1.11 server - multiconnect) = works, ViaVersion is translating 1.8 -> 1.11 and multiconnect is accepting 1.11
  • (1.8 server) <-> (forced 1.8 - ViaFabric - detected 1.12.2 client) <-> (forced 1.12.2 server - multiconnect) = works, ViaVersion is translating 1.8 -> 1.12.2 and multiconnect is accepting 1.12.2

Differences with multiconnect:

  • ViaFabric main objective is to simply implement a ViaVersion platform
  • ViaVersion works kinda of in a "MITM proxy" way
  • ViaVersion is designed for servers
  • multiconnect modifies client code more deeply, reverting movement changes
  • multiconnect is designed for clients and only works on latest client version
  • multiconnect is less likely to trigger anticheats

WARNING

I cannot guarantee that this mod is allowed on every (or even any) server. This mod may cause problems with anti cheat plugins. USE AT OWN RISK