Client-side and server-side ViaVersion implementation for Fabric
Go to file
EnZaXD 0c0cfdcfda
Implement PlayerAbilities and PlayerLookTarget provider (#245)
* implemented providers from my last pull requests

* only register providers on the client

* added UserConnection#isClientSide checks
2023-05-11 09:20:43 -03:00
.github Add wrapper validation action to workflows 2023-02-22 16:36:04 +01:00
gradle/wrapper 23w18a support, CI updates, Minor README adjustments (#242) 2023-05-08 18:09:40 -03:00
src/main Show protocol version and advertised version in server listing (#240) 2023-05-07 18:30:05 -03:00
viafabric-mc18 fixed uuid for console 2023-04-09 20:04:25 -03:00
viafabric-mc114 Implement PlayerAbilities and PlayerLookTarget provider (#245) 2023-05-11 09:20:43 -03:00
viafabric-mc115 Implement PlayerAbilities and PlayerLookTarget provider (#245) 2023-05-11 09:20:43 -03:00
viafabric-mc116 Implement PlayerAbilities and PlayerLookTarget provider (#245) 2023-05-11 09:20:43 -03:00
viafabric-mc117 Implement PlayerAbilities and PlayerLookTarget provider (#245) 2023-05-11 09:20:43 -03:00
viafabric-mc118 Implement PlayerAbilities and PlayerLookTarget provider (#245) 2023-05-11 09:20:43 -03:00
viafabric-mc119 Implement PlayerAbilities and PlayerLookTarget provider (#245) 2023-05-11 09:20:43 -03:00
viafabric-mc120 Implement PlayerAbilities and PlayerLookTarget provider (#245) 2023-05-11 09:20:43 -03:00
.editorconfig Remove ncr warn (#206) 2022-10-21 06:11:18 -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
build.gradle 23w18a support, CI updates, Minor README adjustments (#242) 2023-05-08 18:09:40 -03:00
CONTRIBUTING.md update legacy fabric api, lang autogen 2022-01-26 09:05:18 -03:00
gradle.properties 23w18a support, CI updates, Minor README adjustments (#242) 2023-05-08 18:09:40 -03:00
gradlew 23w18a support, CI updates, Minor README adjustments (#242) 2023-05-08 18:09:40 -03:00
gradlew.bat 23w18a support, CI updates, Minor README adjustments (#242) 2023-05-08 18:09:40 -03:00
jitpack.yml 23w18a support, CI updates, Minor README adjustments (#242) 2023-05-08 18:09:40 -03:00
LICENSE GPL 2021-04-02 12:03:06 -03:00
README.md 23w18a support, CI updates, Minor README adjustments (#242) 2023-05-08 18:09:40 -03:00
settings.gradle.kts 23w18a support, CI updates, Minor README adjustments (#242) 2023-05-08 18:09:40 -03:00

ViaFabric

ViaVersion Discord CurseForge Downloads Modrinth 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.4, 1.15.2, 1.16.5, 1.17.1, 1.18.2, 1.19.4 with Fabric Loader.

Dependencies

Dependency Download
(Bundled) ViaVersion https://viaversion.com/
(Bundled) Cotton Client Commands (MC 1.14-15) https://jitpack.io/#TinfoilMC/ClientCommands
Fabric API (MC 1.14+) https://modrinth.com/mod/fabric-api
Legacy Fabric API (MC 1.8.9) https://modrinth.com/mod/legacy-fabric-api

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

ViaVersion

How can I install ViaBackwards/ViaRewind?:

  • Just drop them into mods folder. Make sure you are using versions compatible with the ViaVersion version you are using.
  • CurseForge links: ViaBackwards ViaRewind

What versions can ViaVersion, ViaBackwards and ViaRewind translate?:

  • 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.

  • Server-side: See https://viaversion.com/

  • Client-side:

1.8.x 1.9.x 1.10-1.14.4 1.15.x 1.16.x 1.17.x 1.18.x 1.19.x
1.8.9 client
1.14.x client
1.15.x client
1.16.x client
1.17.x client
1.18.x client
1.19.x client

✓ = ViaVersion ⟲ = ViaBackwards = ViaRewind

Can ViaVersion, ViaBackwards and ViaRewind support snapshots?:

Alternatives

Client-side:

  • ClientViaVersion: Discontinued 5zig plugin.
  • multiconnect: Fabric mod for connecting to older versions: down to 1.11 (stable) and 1.8 (experimental).
  • ViaForge: Fork of ViaFabric porting it to Forge.
  • ViaFabricPlus: Fabric ViaVersion/ViaLegacy/ViaAprilFools implementation with client-side fixes.

Server-side:

  • ProtocolSupport: Bukkit plugin for older client versions (down to 1.4.7).
  • ViaVersion: Plugin for BungeeCord, CraftBukkit, SpongeCommon and Velocity servers.

Standalone proxy:

  • DirtMultiversion: Proxy allowing to connect down to Beta 1.3 with newer Minecraft client versions.
  • VIAaaS: Standalone ViaVersion proxy with ViaBackwards and ViaRewind, allowing you to connect without a mod installed on your client. Supports online mode.
  • ViaProxy: Standalone ViaVersion proxy with ViaBackward, ViaRewind and ViaLegacy, allowing you to connect to a wide range of versions (down to classic versions) with your modern client (1.7.2+). Supports online mode.

Cool things to try:

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

Commands

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)

Configs

Configuration:

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

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 detection?:

  • For using globally, set the protocol to AUTO or -2. For using in a specific server: ddns.example.com._v-2.viafabric
  • The protocol detector will try to ping with the client native protocol version, differently than multiconnect which uses -1 version, which may detect the native server version.

How can I set the version for specific servers?:

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

multiconnect

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

  • Yes, ViaFabric can be used with multiconnect. ViaFabric will send to its version auto detector the closest non-beta supported version. (multiconnect beta-supported versions are currently < 1.11))

Differences with multiconnect:

ViaVersion multiconnect
Designed for servers clients
Can be installed on multiple client/server versions latest client version
Objectives simply implement ViaVersion version support with fixes to version changes
How does it work? modifying packets at network code modifying client code more deeply
Triggering anti-cheats very likely less likely

Disclaimer

It cannot be guaranteed that this mod is allowed on specific servers as it can possibly cause problems with anti-cheat plugins.
(USE ONLY WITH CAUTION!)