VR Jester API: Gesture Recognition for Minecraft VR

VR Jester API brings gesture recognition to Minecraft VR, letting mods and players map body movements to keybinds for Minecraft.

VR Jester API

Minecraft VR has always been a strange beast. Vivecraft and QuestCraft give you the headset and the motion controllers, but most mods still expect you to press a keyboard key that does not exist in your hands. The VR Jester API closes that gap. It is a gesture recognition layer that lets mod developers and players map real body movements, like a punch, a swing, or a raised hand, directly to keybinds and mod events. No extra keyboard. Your body becomes the controller.

What VR Jester API Actually Does

At its core, this is a developer-facing API with a player-facing config. Mod authors hook into it so their abilities, spells, or tools respond to gestures instead of flat key presses. Players then define those gestures themselves. The mod watches your VR devices, checks movement, timing, speed, and direction, and fires the mapped keybind when the motion matches.

The system supports four device types: RIGHT_CONTROLLER, LEFT_CONTROLLER, HEAD_MOUNTED_DISPLAY, and combinations using a pipe, such as RIGHT_CONTROLLER|LEFT_CONTROLLER. Each gesture is built from one or more components. A component stores a movement value (forward, back, left, right, up, down), an elapsedTime in milliseconds, a speed float, a normalized x/y/z direction vector, and optional devicesInProximity data. Stack enough components and you can recognize something as complex as a two-second charge-up followed by a downward slam.

Supported Versions and Loaders

VR Jester API for Minecraft ships for both Forge and Fabric, which matters because the VR ecosystem is split. Vivecraft users typically run Forge, while QuestCraft users lean on Fabric. The mod is built around modern Minecraft releases, so check the project page for the exact version your instance uses before you grab it. Questbind is only required if you play through QuestCraft; Vivecraft players handle their trigger binding through SteamVR's controller binding menu instead.

If you would rather skip manual file juggling, the foxygame.net launcher keeps VR Jester API in its add-on catalog, so you can drop it into a compatible profile in a single click and let the launcher handle version matching for you.

How to Install

Installation is short, but order matters.

  • Install the required dependency mods for your loader first.
  • Download VR Jester API and place the jar in your mods folder.
  • Run Minecraft once so the config files generate on initialization.
  • In VR, bind a controller button to the Gesture Listener Trigger. A grip button works well.

That trigger is the start signal. The moment you press it, the API begins listening, and your movement direction is measured relative to wherever you are facing at that instant. A straight punch forward reads as "forward."

Building Gestures

There are two ways to create gestures. You can use the /gesture command in game, or you can edit config/gesture_store.json directly. The JSON route gives you full control over every component, including speed thresholds. A punch usually needs a speed around 1500.0 to 2000.0 to register reliably, but you can tune that freely. Direction vectors are normalized floats, so {0.0, 1.0, 0.0} means the hand is pointing upward.

Mapping Gestures to Keybinds

Once a gesture exists, open config/VRJesterAPI.cfg and add an entry under GESTURE_KEY_MAPPINGS. Each entry needs a KEY_MAPPING and a KEY_ACTION. Set KEY_ACTION to "click" for a single key press, or "hold" for a sustained press while you keep the gesture in place. You can chain multiple keys in one mapping, like "key.hotbar.2,key.sneak". Valid keybind names live in .minecraft/options.txt.

Handling Events in Code

Developers get a clean hook on both loaders. On Forge, subscribe to the event bus and listen for GestureEvent, then read event.getGestureName(). On Fabric, register a callback through GestureEventCallback.EVENT and pull the name from gestureEvent.getGestureName(). That is the whole integration surface, which keeps mod compatibility work small.

Who Should Use It

If you are a mod developer who has ever wanted spell casting to feel like actual casting, this API saves you from writing your own motion tracking. If you are a player running a modpack in VR and tired of reaching for keys that are not there, the config side gives you the same power without touching Java. The project is still expanding, with continuous gesture recognition, more configuration options, and performance work planned, so expect the gesture language to grow over time.

VR Jester API is not a content mod. It is infrastructure, and that is exactly why it matters. It turns motion controllers from a novelty into a real input method for the mods you already love.