Skip to content

Repository files navigation

Visor Plugin

Crafted by VR enthusiasts for players and developers alike

Alpha version, will be rewritten in autumn 2026


The server-side plugin to the Visor

Network protocol: v5

Plugin messaging channel: visor:channel


Requirements

  • A Visor-modded client to connect in VR
  • A server on a supported core (see below)
  • Java version chosen by your Minecraft version (1.20.1-1.20.4 → Java 17, 1.20.5-1.21.11 → Java 21, 26.1+ → Java 25). Plugin itself is compiled to Java 17 bytecode, so a single jar loads on Java 17, 21 and 25

Supported platforms

CoreSupport
Paper✅ Works
Spigot / CraftBukkit✅ Works
Folia✅ Works
BungeeCord / Velocity🚧 Planned

Installation

  1. Download / build VisorPlugin-<version>.jar
  2. Put it in your server's plugins/ folder
  3. Restart the server
  4. On first run it generates plugins/VisorPlugin/server_settings.yml

Commands & permissions

CommandDescription
/visor reloadReload server_settings.yml and push the new settings to connected clients
/visor statusShow how many sessions are connected and how many are in VR
/visor trackersToggle body tracker debug: mirrors each VR player's HMD + body trackers as 12 cm blocks floating in front of them
/visor handsToggle hand tracking debug: same mirror, but the 26 skeleton joints per hand as 2 cm blocks (wool = left hand, concrete = right, one colour per finger)

Permission: visor.admin (default: ops)

Configuration

plugins/VisorPlugin/server_settings.yml:

KeyDefaultDescription
serverDebugfalseVerbose logging of Visor
vrOnlyfalseKick non-VR players (ops exempt)
twoHandedVRfalseEnable the off-hand slot for two-handed VR
betterSwingingfalseVR-accurate melee attacks and block breaking
swingingRepairDelay400Ticks before an unfinished VR block break "heals"
roomscaleShieldBlockingfalseBlock with a raised shield without holding use
attacksWhileBlockingtrueAllow attacking while blocking with a shield
roomCrawlingSupportedfalseAllow room-scale crawling (forced crawl/swim pose)
roomClimbingSupportedfalseAllow room-scale climbing (resets fall distance)
pvpVRvsVanillatrueAllow PvP between a VR player and a non-VR player
pvpVRvsVRtrueAllow PvP between two VR players
notifyPvpBlockedfalseMessage the attacker when PvP is blocked
creeperSwellDistance1.75Creepers swell within this distance of a VR player's head. (0 disables)
supportedMovementCONTROLLERCONTROLLER, TELEPORT, or BOTH
teleportUpLimit1Teleport-move vertical-up limit (blocks)
teleportDownLimit4Teleport-move vertical-down limit (blocks)
teleportForwardLimit16Teleport-move forward limit (blocks)
bodyTrackersSupportedfalseAllow players to send full-body tracker data
handTrackersSupportedfalseAllow players to send hand (finger skeleton) tracking data
bodyTrackersSendToOtherstrueRelay body tracker data to nearby Visor players
handTrackersSendToOtherstrueRelay hand tracking data to nearby Visor players
./gradlew build
# → build/libs/VisorPlugin-<version>.jar

Adding support for another Minecraft version

  1. Create an nms-vXXX module applying paperweight-userdev with that version's dev bundle
  2. Implement VisorVersionAdapter (copy an existing leaf; fix any API differences)
  3. Register the class in VersionAdapterRegistry.NMS_LEAVES and add runtimeOnly project(path: ':versions:nms-vXXX', configuration: 'reobf') to the root build

Notes

  • ViaVersion is supported for cross-version play: visor:channel carries a version-independent byte format, so a 1.20.1 Visor client can play on a newer server via ViaVersion
  • ...

Join our community: Discord


Licensed under the Mozilla Public License 2.0.

Copyright (c) 2025-2026 Phoenix-Ra and VisorPlugin contributors

About

Minecraft plugin to support Visor on vanilla servers

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages