Play Minecraft Java Edition on Meta Quest 3, 3S, or 2 — standalone, with native controllers. No PC. No streaming. No phone.
If you searched for any of these, you're in the right place:
- How to play Minecraft Java Edition on Quest 3 without a PC
- Minecraft Java standalone on Meta Quest 3 / 3S / 2
- Use Quest controllers natively in Minecraft on Android
- Minecraft on Quest 3 with native controller support
- Play Minecraft Java flat panel on Meta Quest headset
- Minecraft Java Edition Quest standalone no PC required
- Meta Quest 3 Minecraft controller input mod
QuestBridge is a Minecraft client-side Fabric mod that lets you play Minecraft Java Edition entirely on your Meta Quest headset — no PC, no streaming, no latency from a remote connection. It runs the game natively on the headset via Amethyst-Android, and bridges your Quest controllers to the game using a local WebXR page and a low-latency WebSocket server.
The result: a flat 2D Minecraft panel floating in your mixed reality space, fully playable with your Quest 3 controllers, standalone.
Note
Developed and tested specifically for Minecraft 26.1.2 (Fabric, running inside Amethyst-Android). Compatibility with other versions is not guaranteed.
quest_demo_video_compressed.mp4
- Truly Standalone: Minecraft Java Edition running natively on Quest 3, 3S, or 2 — zero PC connection required.
- Native Quest Controller Input: WebXR captures your controller inputs and forwards them to the game over a high-speed local WebSocket (port 7374).
- Immersive Environments: Switch between native MR Passthrough, solid color backgrounds, custom 360° Skyboxes, and a procedural 3D Space scene with dynamic stars and shooting stars.
- Controller Haptics: In-game feedback (breaking blocks, taking damage, eating) sent back to your controllers, with adjustable intensity.
- Persistent Settings: Environment and haptic preferences are saved across sessions using IndexedDB and LocalStorage.
- Meta Quest 3 (tested) | Quest 3S & Quest 2 (supported)
- Developer Mode enabled on the headset — see the Official Meta Developer Guide
- Seamless Multitasking enabled:
- Open Quest Settings
- Navigate to Experimental
- Toggle Seamless Multitasking → ON
Important
Without Seamless Multitasking, the browser tab running the input bridge will freeze or terminate when Minecraft comes into focus.
-
Disable Gestures in Amethyst (recommended):
- Launch Amethyst-Android
- Go to Settings → Control Customizations
-
Amethyst-Android — the Minecraft Java launcher for Android/Quest
-
Controlify and Fabric API installed in your mods folder
- Install Amethyst-Android: Sideload the Amethyst APK onto your Quest via SideQuest or ADB.
- Launch Vanilla Once: Open Amethyst, log in, and start vanilla Minecraft. Once the main menu loads, exit.
- Create a Fabric Profile: Inside Amethyst, create a new Fabric profile.
- Open the Game Directory:
- Select your Fabric profile and tap Open Game Directory.
- This opens the Android file explorer in your active game folder.
- Tip: If no files appear, tap the three dots (top-right) and select Show Hidden Files.
- Install the Mods:
- Open the
modsfolder (create it if it doesn't exist). - Drop
questbridge-x.y.z.jar, Controlify, and Fabric API into it.
- Open the
- Launch Minecraft: Open Amethyst and boot with your Fabric profile.
- Open the Quest Browser: Navigate to:
- Pick an Environment: Choose your background (e.g., Pass for Mixed Reality Passthrough, ✦ Space for the 3D cosmos scene).
- Enter VR:
- Tap Enter VR.
- Accept the immersive session permission prompt.
- Position the Minecraft Window:
- Press the Meta button on the right controller to open your Quest app panel.
- Drag the Minecraft window into a comfortable position in your space.
Note
While playing, keep your controller pointer beams aimed slightly away from the Minecraft panel. Pointing directly at the window shifts system focus to it, which pauses the input bridge.
Pointing directly at the panel is still useful for navigating inventories, menus, and settings.
This repository includes a custom control map preset for Amethyst that makes standalone play much smoother — mapping shortcuts for the ESC menu, T for chat, and other keyboard-dependent actions to controller buttons.
- Download questbridge_cmap.json and copy it to your Quest's internal storage.
- Open Amethyst-Android on your Quest.
- Go to Settings → Control Customizations.
- Tap Edit Custom Controls.
- Tap the Gear icon at the top-center.
- Tap Load and select
questbridge_cmap.json.
| Issue | Likely Cause | Fix |
|---|---|---|
| Inputs not registering | Seamless Multitasking is off | Enable Seamless Multitasking in Quest Settings → Experimental |
| Controllers disconnecting | Focus shifted to Minecraft panel | Don't aim your pointer beam directly at the Minecraft window while playing |
| Page not loading | Mod not running or port conflict | Make sure Minecraft has fully loaded, then navigate to http://localhost:7373 |
| Passthrough is black | Wrong session type initialized | Select the Pass card before pressing Enter VR |
| No haptic feedback | Intensity at 0% | Raise the Haptic Intensity slider on the Web UI |
When Minecraft loads, QuestBridge starts a local HTTP server (port 7373) serving a WebXR page, and a WebSocket server (port 7374) to receive controller data. You open the page in the Quest Browser, enter an immersive session, and the page captures your controller inputs via the WebXR Gamepad API, forwarding them over WebSocket to the mod. The mod then feeds those inputs into Controlify, which Minecraft sees as a standard gamepad.
Haptic feedback works in reverse: the mod detects in-game events and sends haptic commands back through the WebSocket to the browser, which triggers vibration via the WebXR Haptic Actuator API.
Contributions are welcome. If you want to improve the WebGL environment, optimize WebSocket packets, or refine controller mappings, feel free to open a Pull Request. For major changes, open an issue first to discuss.
This project is licensed under the MIT License — see the LICENSE file for details.







