Supported browsers
Minecraft Web Client uses modern web APIs and requires a recent browser version.Desktop browsers
Chrome / Edge
Minimum version: 103+Status: ✅ Fully supportedBest performance and all features work.
Firefox
Status: ✅ Fully supportedAll features work with good performance.
Safari
Status: ✅ Fully supportedWorks well on macOS and iOS.
Opera
Status: ⚠️ Supported with caveatsSee known issues below.
Mobile browsers
iOS Safari
Minimum version: iOS 14+Status: ✅ Fully supportedTouch controls work great. Note: 300 MB file limit for zip files.
Android Chrome
Minimum version: Android 13+, Chrome 103+Status: ✅ Fully supportedExcellent performance with touch controls.
Minimum browser versions
Based on the project’s browserslist configuration:Production targets
Required browser features
The client uses several modern web APIs:Essential features
WebGL2
WebGL2
Required for 3D rendering using Three.js.Check support: Open browser console and type:
WebSocket
WebSocket
Required for connecting to proxy servers and multiplayer.All modern browsers support this.
IndexedDB
IndexedDB
Used for storing worlds, settings, and cache.Note: Private/incognito mode may have limited storage.
Web Workers
Web Workers
Used for mesher workers (4 workers for chunk rendering).All modern browsers support this.
Pointer Lock API
Pointer Lock API
Required for capturing mouse movement in-game.User must click to grant permission.
Enhanced features (Chromium only)
These features improve the experience but aren’t required:Keyboard Lock API
Keyboard Lock API
API:
navigator.keyboard.lock()Availability: Chromium browsers onlyPurpose: Allows using any key combination (like Ctrl+W) in fullscreen without triggering browser shortcuts.Keyboard Layout Map
Keyboard Layout Map
API:
navigator.keyboard.getLayoutMap()Availability: Chromium browsers onlyPurpose: Displays correct keyboard symbols for keybindings on different layouts (QWERTY vs AZERTY).Unadjusted Mouse Movement
Unadjusted Mouse Movement
API:
requestPointerLock({ unadjustedMovement: true })Availability: Most modern browsersPurpose: Disables system mouse acceleration (important for Mac users). Also known as “raw input”.Crypto API
Crypto API
API:
window.crypto.subtleAvailability: All modern browsersPurpose: Required for chat features when joining online servers with authentication.Known browser issues
Opera Mini
Vivaldi
Safari (all versions)
Safari has some limitations with Web APIs but the game still works well. Some advanced keyboard features may not be available.
Mobile-specific considerations
iOS limitations
File size limits
File size limits
iOS Safari has a ~300 MB limit for files loaded into memory.Impact: Large zip world files may fail to load.Workaround: Use folder loading or smaller worlds.
Storage limits
Storage limits
iOS may restrict storage in private browsing mode.Solution: Use normal browsing mode for world saves.
Virtual keyboard
Virtual keyboard
The virtual keyboard may interfere with touch controls.Solution: Use joystick controls and minimize chat usage.
Android optimizations
Performance tips
Performance tips
- Use Chrome for best performance
- Close background apps
- Reduce render distance in settings
- Enable hardware acceleration in Chrome flags
Testing infrastructure
This project is tested with BrowserStack.Special thanks to BrowserStack for providing testing infrastructure!
Performance expectations
Desktop
- Render distance: 8-16 chunks (depending on hardware)
- Frame rate: 60+ FPS on modern hardware
- Chunk loading: Near-instant with mesher workers
Mobile
- Render distance: 4-8 chunks recommended
- Frame rate: 30-60 FPS (device dependent)
- Battery usage: Moderate to high
Feature detection
You can check browser support in the console:Browser permissions
The game requires these permissions:Pointer Lock
Pointer Lock
When requested: When you click to start playingPurpose: Capture mouse movement for looking aroundRequired: Yes
Keyboard Lock
Keyboard Lock
When requested: When entering fullscreen (Chromium only)Purpose: Use game keybindings without triggering browser shortcutsRequired: No (enhances experience)
File System Access
File System Access
When requested: When loading a folderPurpose: Read and write world filesRequired: Only for folder loading
Notifications
Notifications
When requested: Never (not currently used)Purpose: N/ARequired: No
Troubleshooting compatibility
Black screen / won't load
Black screen / won't load
Possible causes:
- WebGL2 not supported
- Hardware acceleration disabled
- Browser too old
- Update your browser to the latest version
- Enable hardware acceleration in browser settings
- Try a different browser (Chrome recommended)
- Check browser console for errors (F12)
Controls not working
Controls not working
Possible causes:
- Pointer lock denied
- Browser extension interfering
- Incorrect focus
- Click the game window to request pointer lock
- Disable browser extensions temporarily
- Ensure game window has focus
- Try raw input toggle in settings
Poor performance
Poor performance
Possible causes:
- Too many workers/tabs open
- Integrated graphics
- Old hardware
- Close other browser tabs
- Reduce render distance
- Disable resource packs
- Use Chrome for better performance
Storage issues
Storage issues
Possible causes:
- Private browsing mode
- Storage quota exceeded
- iOS file size limit
- Use normal browsing mode
- Clear browser cache/data
- Use smaller world files on iOS
- Check available storage
Advanced browser features used
For developers and curious users, here are the rare/advanced Web APIs used:| API | Usage | Browser support |
|---|---|---|
Crypto.subtle | Chat authentication for online servers | All modern browsers |
requestPointerLock({ unadjustedMovement: true }) | Raw mouse input (disable acceleration) | Chrome, Firefox, Safari |
navigator.keyboard.lock() | Capture all keys in fullscreen | Chromium only |
navigator.keyboard.getLayoutMap() | Display correct keybinding symbols | Chromium only |
WebGL2 | 3D rendering with Three.js | All modern browsers |
Web Workers | Mesher workers for chunk rendering | All modern browsers |
File System Access API | Read/write world folders | Chromium, Edge, Safari (partial) |
Next steps
Quickstart
Start playing now
Mobile guide
Optimize for mobile devices
Settings
Configure for your device
Debugging
Browser console and debugging
