CurseForge · Minecraft mod
VR Jester API
Virtual Reality Gesture Recognition API for Vivecraft and QuestCraft
Quick answer
Which VR Jester API release matches 1.19.2 Quilt?
VR Jester API 1.1.1 [FABRIC 1.19.2] targets 1.19.2 with Fabric, Quilt. The project page does not say whether this file belongs on the client, dedicated server, or both. 3 required mods need a matching file.
Where it goes
Is VR Jester API required on the client, server, or both?
The project page does not say whether this file belongs on the client, dedicated server, or both.
The source does not explicitly classify this release as client-only or server-only.
What else does VR Jester API 1.1.1 [FABRIC 1.19.2] need?
1.1.1 [FABRIC 1.19.2] on 1.19.2 Quilt. Every mod below is checked against that same setup.
Install Vivecraft, Questbind, MC VR API, Architectury API and 1 more first, but 3 required mods have no matching file for this setup. Do not mix loader builds to force a match. 1 comes through another mod in the chain.
1 extra mod was pulled in by another dependency. Indented rows show who needs each one. We only count dependency files that match this setup. A file for another loader does not fill the gap.
Before you install it
Add VR Jester API without breaking your instance.
Built for VR Jester API 1.1.1 [FABRIC 1.19.2] on 1.19.2 Quilt. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use 1.1.1 [FABRIC 1.19.2]. It targets 1.19.2 with Fabric, Quilt; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
Install Vivecraft, Questbind, MC VR API, Architectury API and 1 more first, but 3 required mods have no matching file for this setup. Do not mix loader builds to force a match. 1 comes through another mod in the chain.
- 03
Put it on the correct side
The project page does not say whether this file belongs on the client, dedicated server, or both.
- 04
Pick the file you checked
Use the “Get this file” button beside 1.1.1 [FABRIC 1.19.2]. It opens that exact file at the source.
About this project
What does VR Jester API add?
Virtual Reality Gesture Recognition API for Minecraft VR
Play Vivecraft or QuestCraft? Love mods? Ever wish mods were more VR compatible? Wait no further. This is a solution for devs and players alike!
This API enables Minecraft mod developers to easily implement support for their mod to be more VR compatible. Create any custom gestures that map to any key binds and trigger events. No longer do you need to map controller keybindings to keyboard keys. With this API, your body is the controller.
Demos:
- https://imgur.com/a/UYaVFCj
- https://imgur.com/a/sYXcike
- https://i.imgur.com/kBD1TIU.mp4
- https://imgur.com/a/0fpiQ9a
- https://i.imgur.com/6xUNF6k.mp4
Installation:
- Install required dependency mods. Note that Questbind is only required for QuestCraft usage.
- Download the VR Jester API mod & place it in the
modsfolder. - Run Minecraft. Necessary config files will generate on initialization. ###
Usage:
- While in Minecraft VR, bind one of your controller buttons to the "Gesture Listener Trigger". I recommend a grip button. For Vivecraft you must do this through Steam VR's controller bindings menu. For QuestCraft you do this through QuestBind.
- These are 2 ways to create gestures:
- Using the
/gesturecommand - Modifying the
config/gesture_store.jsondirectly where gestures are stored. Sample gesture store:
- Using the
"GESTURE 1": {
"RIGHT_CONTROLLER|LEFT_CONTROLLER": [
{
"vrDevice": "RIGHT_CONTROLLER|LEFT_CONTROLLER",
"movement": "forward",
"elapsedTime": 0,
"speed": 0.0,
"direction": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"devicesInProximity": {}
}
]
},
...
- Once your gestures are created, you can map them to key binds in
config/VRJesterAPI.cfgby creating key value objects under the field "GESTURE_KEY_MAPPINGS". You can find the key bind names in.minecraft/options.txt. The "KEY_ACTION" field determines whether the recognized gesture triggers a single click key press or a hold down key press. A hold is triggered when you keep your gesture in place after it's recognized.
"GESTURE_KEY_MAPPINGS": {
"GESTURE 1": {
"KEY_MAPPING": "examplemod.key.ability_1",
"KEY_ACTION": "click"
},
"GESTURE 2": {
"KEY_MAPPING": "key.hotbar.2,key.sneak",
"KEY_ACTION": "hold"
},
"GESTURE 3": {
"KEY_MAPPING": "key.keyboard.j",
"KEY_ACTION": "click"
}
}
Download: 

Info:
- Consider each object within the square brackets [ ] a mere piece of the gesture. You can add multiple of these GestureComponent objects. This API recognizes gestures as complex as you want! Just know the more conplex, the more difficult it is to perform a gesture correctly to match your stored gesture.
- Different values for "movement" are
forward, back, left, right, up, down. The movement direction is relative to your facing direction at the moment you click the Jester Trigger which initiates the gesture listener. Simple example is punching in the same direction you're facing would be recognized as "forward". - Different values for "vrDevice" are
RIGHT_CONTROLLER, LEFT_CONTROLLER, HEAD_MOUNTED_DISPLAYand if you want a gesture recognized on multiple VR devices you can incorporate a 'logical or' using a pipe|like soRIGHT_CONTROLLER|LEFT_CONTROLLER|HEAD_MOUNTED_DISPLAY - The "elapsedTime" is in milliseconds. So putting a value of
2000would mean that part of the gesture lasts 2 seconds. This would be good for a charge up sort of move. - The "speed" field is a float value representing the velocity of that GestureComponent. A decent threshold to recognize the speed of a punch would be
1500.0-2000.0and feel free to play around with the values as much as you want. - The "direction" field takes
x,y,zfloat values that create a 3D normalized vector. Example usage of this would be having{0.0, 1.0, 0.0}to recognize when the player's brick hand is facing upwards. There's a certain threshold so it doesn't have to be exact. - Finally there's "devicesInProximity" which you can see formatted below. What this example means is that the vrDevice of this GestureComponent has to be within proximity of the left controller for 20 ticks.
"devicesInProximity": {
"LEFT_CONTROLLER": 20
}
- Subscribe to the event bus to handle events triggered by a recognized gesture (Forge) or register to the event callback interface (Fabric).
Forge:
@SubscribeEvent
public void onGestureEvent(GestureEvent event) {
// gesture handler code here -- event.getGestureName()
}
Fabric:
public static void init() {
GestureEventCallback.EVENT.register((gestureEvent) → {
// gesture handler code here -- gestureEvent.getGestureName()
});
}
Planned:
In the future I'll add continous gesture recognition, more configuration options, and optimizations.
Update 3/27/2025 - I know I haven't updated in a while, but I fully intend to come back to this mod. I've been working on other projects. Apologies for the inconvenience.
Project description from CurseForge.
Pick your setup
VR Jester API by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
1.21.1
2 loader builds1.20.2
3 loader builds1.20.1
3 loader builds1.19.4
3 loader builds1.19.3
3 loader builds1.19.2
3 loader builds1.18.2
3 loader builds1.16.5
1 loader buildCheck the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
VR Jester API versions and loaders
1.1.1 [FABRIC 1.19.2]
VRJesterAPI-1.19.2-1.1.1-fabric.jar
21 Dec 2023
VRJesterAPI-1.19.2-1.1.0-fabric.jar
15 Dec 2023
1.19.2-1.0.1-fabric
VRJesterAPI-1.19.2-1.0.1-fabric.jar
7 Dec 2023
VRJesterAPI-1.19.2-1.0.0-quilt.jar
3 Dec 2023
Looking for an older file? The official CurseForge project page is in Resources.