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

Core Support
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

Command Description
/visor reload Reload server_settings.yml and push the new settings to connected clients
/visor status Show how many sessions are connected and how many are in VR
/visor trackers Toggle body tracker debug: mirrors each VR player's HMD + body trackers as 12 cm blocks floating in front of them
/visor hands Toggle 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:

Key Default Description
serverDebug false Verbose logging of Visor
vrOnly false Kick non-VR players (ops exempt)
twoHandedVR false Enable the off-hand slot for two-handed VR
betterSwinging false VR-accurate melee attacks and block breaking
swingingRepairDelay 400 Ticks before an unfinished VR block break "heals"
roomscaleShieldBlocking false Block with a raised shield without holding use
attacksWhileBlocking true Allow attacking while blocking with a shield
roomCrawlingSupported false Allow room-scale crawling (forced crawl/swim pose)
roomClimbingSupported false Allow room-scale climbing (resets fall distance)
pvpVRvsVanilla true Allow PvP between a VR player and a non-VR player
pvpVRvsVR true Allow PvP between two VR players
notifyPvpBlocked false Message the attacker when PvP is blocked
creeperSwellDistance 1.75 Creepers swell within this distance of a VR player's head. (0 disables)
supportedMovement CONTROLLER CONTROLLER, TELEPORT, or BOTH
teleportUpLimit 1 Teleport-move vertical-up limit (blocks)
teleportDownLimit 4 Teleport-move vertical-down limit (blocks)
teleportForwardLimit 16 Teleport-move forward limit (blocks)
bodyTrackersSupported false Allow players to send full-body tracker data
handTrackersSupported false Allow players to send hand (finger skeleton) tracking data
bodyTrackersSendToOthers true Relay body tracker data to nearby Visor players
handTrackersSendToOthers true Relay 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