Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/lDEVinux/eaglercraft/llms.txt

Use this file to discover all available pages before exploring further.

Eaglercraft is a fully faithful port of Minecraft 1.5.2 that runs entirely inside a regular web browser — no Java plugin, no launcher, no installation required. The game’s Java source code is compiled to JavaScript using TeaVM, producing a classes.js bundle that executes inside a browser canvas. That means it runs on Windows, macOS, Linux, and even school Chromebooks, anywhere a modern browser is available. It supports both singleplayer (worlds saved to browser local storage) and multiplayer (connecting to real Minecraft 1.5.2 servers over a WebSocket proxy).

How It Works

Eaglercraft’s architecture bridges the gap between a browser-based JavaScript runtime and the standard Minecraft server protocol. Compilation layer — TeaVM The entire Eaglercraft client is written in Java and compiled ahead-of-time to JavaScript by TeaVM. The output (classes.js) is a self-contained script that runs the full Minecraft game loop, renderer, and network stack inside the browser’s JavaScript engine. No WebAssembly, no browser extension — just a <script> tag. Singleplayer In singleplayer mode the game runs a lightweight internal server directly in the browser. World data is persisted to the browser’s localStorage and can be exported as .epk archive files for backup or transfer between devices. Multiplayer via EaglercraftBungee Browsers cannot open raw TCP sockets, so Eaglercraft multiplayer requires a translation layer:
  1. The browser client opens a WebSocket connection to an EaglercraftBungee proxy.
  2. EaglercraftBungee (a modified fork of BungeeCord) accepts the WebSocket, unpacks the Eaglercraft framing, and forwards the traffic as a standard Minecraft TCP connection to a backend Bukkit 1.5.2 server.
  3. From Bukkit’s perspective the connection is indistinguishable from a normal Minecraft client.
Vanilla BungeeCord does not understand WebSocket connections. You must use EaglercraftBungee — the custom fork included in the stable-download bundle — or multiplayer will not work.
LAN worlds via WebRTC LAN worlds use a completely different path to allow two browser tabs — anywhere in the world — to talk directly:
  1. The host browser opens its world to LAN, then connects to a SP Relay server over WebSocket to advertise itself and exchange WebRTC ICE/SDP signalling messages.
  2. A joining player adds the same relay URL in their Network Settings and enters the join code from the host.
  3. The relay brokers a WebRTC peer-to-peer data channel between the two browsers. Once the channel is established, game traffic flows directly between the peers — the relay is only needed for the initial handshake.
LAN worlds work across the public internet, not just the local Wi-Fi network. Both the host and all joining players must have the same relay URL added in their Multiplayer → Network Settings menu.

Components

Web Client

Three files served from any HTTP/HTTPS server: index.html (bootstrap and eaglercraftOpts config), classes.js (TeaVM-compiled game code), and assets.epk (compressed resource pack). Configure default server lists, relay servers, and asset overrides directly in index.html.

EaglercraftBungee

A modified fork of BungeeCord that adds a WebSocket listener on top of the standard BungeeCord pipeline. It accepts browser WebSocket connections, translates them to Minecraft TCP packets, and proxies them to one or more backend Bukkit servers. Configured via java/bungee_command/config.yml.

Bukkit Server

A standard CraftBukkit 1.5.2 server — the same backend that powered vanilla Minecraft servers of that era. It handles game logic, world persistence, and plugin execution. EaglercraftBungee connects to it on localhost:25569 by default, completely transparent to the Bukkit process.

SP Relay

A lightweight WebSocket relay (sp-relay.jar) used exclusively for LAN world signalling. It brokers WebRTC ICE/SDP negotiation between browser peers and reports STUN/TURN servers to clients. Run with java -jar sp-relay.jar; configuration lives in relayConfig.ini.

Supported Platforms

Eaglercraft runs in any browser that supports WebSockets and the HTML5 Canvas API:
BrowserNotes
Google Chrome / ChromiumFully supported, recommended
Mozilla FirefoxFully supported
Microsoft EdgeFully supported (Chromium-based)
SafariSupported on macOS and iOS
Chrome on ChromebooksFull support — a primary design goal
Opening the web client files directly from your filesystem (file:///…) does not work. The browser blocks the asset and worker requests that the game requires. The client must be accessed over HTTP or HTTPS from a real web server. If you see file:/// in the address bar, you are doing it wrong — see the Quickstart guide for serving options.

Public Clients

Several official clients are hosted publicly and ready to play with no setup:
URLNotes
https://g.deev.is/eaglercraft/Primary client maintained by lax1dude; includes a curated public server list
https://eaglercraft.net/Official mirror
https://eaglercraft.org/Official mirror
https://eaglercraft.me/Official mirror
All four clients share the same codebase. The public server list pre-loaded in the Multiplayer screen is the best way to discover community servers, as the dedicated server-list site is currently being rebuilt.
World data is stored in your browser’s local storage for the domain you play on. If you switch to a different client URL your worlds will not automatically transfer — use the in-game Export World feature to save an .epk file you can re-import anywhere.

Build docs developers (and LLMs) love