Documentation Index
Fetch the complete documentation index at: https://mintlify.com/zardoy/minecraft-web-client/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Minecraft Web Client provides extensive configuration options for graphics, controls, audio, interface, and gameplay. Settings are automatically saved to browser local storage and persist across sessions.
Accessing Settings
In-Game Menu
Press Escape or open the pause menu, then click Settings
Browser Console
Press F12 to open developer console, then type:On mobile, add #dev to the URL to enable console access. Modify Settings
Change settings via console:options.renderDistance = 8
options.fov = 90
Recommended Settings
From the README (lines 43-49):
Controls:
Touch Controls Type: Joystick
Auto Full Screen: On
Interface:
Enable Minimap: Always
Controls:
Raw Input: On (enabled by default)
Interface:
Chat Select: On (enabled by default)
Graphics Settings
Render Distance
renderDistance: 3 // Singleplayer default
multiplayerRenderDistance: 3 // Multiplayer default
keepChunksDistance: 1 // Extra chunks to keep loaded
Higher render distance improves view range but increases memory usage and GPU load.
Field of View (FOV)
fov: 75 // Default: 75 degrees (60-110 recommended)
Lighting & Rendering
smoothLighting: true // Smooth lighting between blocks
newVersionsLighting: false // Use newer lighting algorithm
dayCycleAndLighting: true // Enable day/night cycle
starfieldRendering: true // Render stars at night
defaultSkybox: true // Show default sky
Visual Effects
viewBobbing: true // Camera bobbing when walking
showHand: true // Show player hand
renderEntities: true // Render mobs and players
loadPlayerSkins: true // Download and show player skins
renderEars: true // Render deadmau5 ears
frameLimit: false // Limit FPS (number or false)
backgroundRendering: '20fps' // Background tab rendering
// 'full' | '20fps' | '5fps'
lowMemoryMode: false // Reduce memory usage
numWorkers: 4 // Mesher worker threads
GPU Settings
gpuPreference: 'default' // 'default' | 'high-performance' | 'low-power'
Default (Auto)
High Performance
Low Power
Let browser choose GPU (integrated or dedicated)
Force dedicated GPU on laptops with dual graphics
Force integrated GPU for battery saving
Advanced Rendering
activeRenderer: 'threejs' // Rendering engine
rendererSharedOptions: {
_experimentalSmoothChunkLoading: true, // Smooth chunk loading
_renderByChunks: false // Chunk-based rendering
}
rendererPerfDebugOverlay: false // Show performance overlay
Controls Settings
Mouse
mouseSensX: 50 // Horizontal sensitivity (1-100)
mouseSensY: -1 // Vertical sensitivity (-1 = match X)
mouseRawInput: true // Use raw pointer lock movement
preciseMouseInput: false // More precise mouse tracking
Touch Controls
touchMovementType: 'modern' // 'modern' (joystick) | 'classic' (split)
touchInteractionType: 'classic' // 'classic' (tap) | 'buttons'
touchButtonsSize: 40 // Button size in pixels
touchButtonsOpacity: 80 // Button opacity (0-100)
touchButtonsPosition: 12 // Distance from edge (%)
See Mobile & Touch Controls for details.
Gamepad
From src/controls.ts:119:
gamepadPollingInterval: 10 // Poll gamepad every 10ms
See Controller Support for button mappings.
Camera
defaultPerspective: 'first_person' // 'first_person' | 'third_person_back' | 'third_person_front'
Audio Settings
volume: 50 // Master volume (0-100)
enableMusic: true // Enable background music
musicVolume: 25 // Music volume (0-100)
mutedSounds: [] // Array of muted sound IDs
Interface Settings
GUI
guiScale: 3 // GUI scale (1-4)
autoFullScreen: false // Auto-enter fullscreen on join
autoExitFullscreen: false // Auto-exit fullscreen on disconnect
Chat
chatWidth: 320 // Chat width in pixels
chatHeight: 180 // Chat height in pixels
chatScale: 100 // Chat scale percentage
chatOpacity: 100 // Chat opacity when focused (0-100)
chatOpacityOpened: 100 // Chat opacity when typing (0-100)
messagesLimit: 200 // Max messages to keep
chatSelect: true // Enable text selection in chat
chatVanillaRestrictions: true // Enforce vanilla chat limits
chatPingExtension: true // Show ping in chat
chatSpellCheckEnabled: false // Spell check in chat input
Minimap
showMinimap: 'never' // 'always' | 'singleplayer' | 'never'
minimapOptimizations: true // Enable minimap performance opts
See Minimap for details.
HUD Elements
displayBossBars: true // Show boss health bars
topRightTimeDisplay: 'only-fullscreen' // 'only-fullscreen' | 'always' | 'never'
displayLoadingMessages: true // Show loading screen tips
displayRecordButton: true // Show packet recording button
Gameplay Settings
Movement
autoJump: 'auto' // 'auto' | 'always' | 'never'
autoParkour: false // Auto-jump for parkour
Creative Inventory
jeiEnabled: true // Enable JEI-like creative inventory
// true | false | ['creative', 'survival', 'adventure', 'spectator']
World Interaction
autoSignEditor: true // Auto-open sign editor
wysiwygSignEditor: 'auto' // WYSIWYG sign editor: 'auto' | 'always' | 'never'
Respawn
autoRespawn: false // Automatically respawn on death
Multiplayer Settings
Username
localUsername: 'wanderer' // Default username
guestUsername: 'guest' // Guest mode username
askGuestName: true // Prompt for guest name
Server Features
serversAutoVersionSelect: 'auto' // 'auto' | 'latest' | '1.20.4' | <version>
serverResourcePacks: 'prompt' // 'prompt' | 'always' | 'never'
See Resource Packs for server resource pack handling.
Singleplayer Settings
Auto Save
singleplayerAutoSave: false // Auto-save world periodically
alwaysBackupWorldBeforeLoading: undefined // Auto-backup before loading
Local Server Options
localServerOptions: {
gameMode: 1 // Default game mode (0=survival, 1=creative)
}
Advanced Settings
These settings are experimental or for advanced users. Changing them incorrectly may cause issues.
Debug
renderDebug: 'basic' // 'none' | 'basic' | 'advanced'
debugLogNotFrequentPackets: false // Log non-frequent packets
showChunkBorders: false // Show chunk boundaries (F3+G)
showCursorBlockInSpectator: false // Show block outline in spectator
Resource Packs
enabledResourcepack: null // Name of enabled resource pack
useVersionsTextures: 'latest' // Texture version to use
From src/defaultOptions.ts:46-48.
waitForChunksRender: false // Wait for chunks before moving
// false | true | 'sp-only'
neighborChunkUpdates: true // Update neighboring chunks
Experimental
disableAssets: false // Disable asset loading
modsSupport: false // Enable mods support
modsAutoUpdate: 'check' // 'check' | 'never' | 'always'
vrSupport: true // Show VR mode button
vrPageGameRendering: false // Render game on VR page
experimentalClientSelfReload: false // Client-side reload
Network
customChannels: 'websocket' // Custom protocol channels
remoteContentNotSameOrigin: false // Allow remote content
remoteSoundsSupport: false // Download remote sounds
remoteSoundsLoadTimeout: 500 // Sound load timeout (ms)
System
preventBackgroundTimeoutKick: false // Prevent AFK kick when tabbed out
preventSleep: false // Prevent system sleep
errorReporting: true // Send error reports
Default Options
All default values from src/defaultOptions.ts:1-129:
export const defaultOptions = {
renderDistance: 3,
keepChunksDistance: 1,
multiplayerRenderDistance: 3,
closeConfirmation: true,
autoFullScreen: false,
mouseRawInput: true,
autoExitFullscreen: false,
localUsername: 'wanderer',
mouseSensX: 50,
mouseSensY: -1,
chatWidth: 320,
chatHeight: 180,
chatScale: 100,
chatOpacity: 100,
chatOpacityOpened: 100,
messagesLimit: 200,
displayLoadingMessages: true,
volume: 50,
enableMusic: true,
musicVolume: 25,
fov: 75,
defaultPerspective: 'first_person',
guiScale: 3,
autoRequestCompletions: true,
touchButtonsSize: 40,
touchButtonsOpacity: 80,
touchButtonsPosition: 12,
touchMovementType: 'modern',
touchInteractionType: 'classic',
gpuPreference: 'default',
backgroundRendering: '20fps',
// ... and many more
}
Server-Safe Settings
Servers can remotely change certain safe settings. From src/defaultOptions.ts:167-204:
export const serverSafeSettings: Partial<Record<keyof typeof defaultOptions, true>> = {
remoteContentNotSameOrigin: true,
renderEars: true,
viewBobbing: true,
mouseRawInput: true,
preciseMouseInput: true,
showHand: true,
fov: true,
defaultPerspective: true,
volume: true,
musicVolume: true,
enableMusic: true,
smoothLighting: true,
// ... and more display/input settings
}
Security-critical settings like modsSupport and customChannels cannot be changed by servers.
Resetting Settings
Reset all settings to defaults:
// Clear settings from localStorage
localStorage.removeItem('options')
location.reload()
Viewing Changed Settings
See which settings differ from defaults:
This global variable shows only non-default values.
Browser-Specific Notes
Opera Mini
Disable mouse gestures in browser settings to avoid new tab opening on right-click-and-hold.
Vivaldi
Disable Raw Input if experiencing mouse issues:
options.mouseRawInput = false
Desktop
renderDistance: 6-12
gpuPreference: 'high-performance'
numWorkers: 4-8
Mobile
renderDistance: 2-4
lowMemoryMode: true
touchMovementType: 'modern'
autoFullScreen: true
Low-End Devices
renderDistance: 2-3
lowMemoryMode: true
frameLimit: 30
backgroundRendering: '5fps'
smoothLighting: false
See Also