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.

Hosting your own client gives you full control over the default server list, resource packs, connection performance, and the overall player experience. The client is a static bundle of HTML, JavaScript, and asset files — no build step is required on the server side. Simply upload the files and serve them over HTTP or HTTPS.

What’s in the Web Bundle

The stable-download/web/ directory contains everything needed to run the in-browser client:
FileDescription
index.htmlMain entry point. Contains the eaglercraftOpts configuration object that controls servers, relays, and client behaviour.
classes.js / classes.js.mapThe compiled Minecraft 1.5.2 client, produced by the TeaVM Java-to-JavaScript compiler.
classes_server.js / classes_server.js.mapServer-side logic for singleplayer worlds, also TeaVM-compiled, runs in a Web Worker.
worker_bootstrap.jsWeb Worker loader that bootstraps the singleplayer server worker.
eagswebrtc.jsWebRTC adapter used for peer-to-peer LAN world connections.
assets.epkCompressed archive of all game assets — textures, sounds, fonts, and other resources.

Deployment

1

Download the stable release

Download stable-download.zip from the repository.
2

Extract and locate the web/ folder

Extract the ZIP to a new folder on your machine. Inside, find the web/ directory — this is the entire client bundle.
3

Upload all files from web/ to your HTTP(S) server's document root

Copy every file inside web/ (not the folder itself) to the document root of your web server (e.g. /var/www/html for NGINX or Apache on Linux). All files — including assets.epk and the .map source map files — must be present.
4

Access via https://yourdomain.com in a browser

Navigate to your domain. The Eaglercraft title screen should appear and the game should load fully. If you see a blank page or errors, check that all files were uploaded and that your web server is configured to serve index.html as the directory index.
The client will not work when opened directly from the filesystem. If the browser URL bar shows file:/// you are doing it wrong — you must upload the files to an HTTP or HTTPS server and access them over the network via http:// or https://. This is not a bug; it is a browser security restriction.

Web Server Options

NGINX

Recommended for production. Supports TLS (wss://), real IP forwarding for IP bans and rate limiting, and security headers. Can serve both the client files and reverse-proxy the WebSocket endpoint on the same domain.

Web Server for Chrome

Easier setup for local testing. Install the Web Server for Chrome extension from the Chrome Web Store, point it at your web/ folder, and access the client at localhost immediately — no configuration required.

Any HTTP Server

Apache, Caddy, GitHub Pages, Netlify, Vercel, or any static file host will work. The client is entirely static — there is no server-side processing required to serve it.

Replit

Auto-sets up a complete server and client in one click. Useful for quick testing or sharing with others without managing your own infrastructure.

Configuring the Default Server List

The window.eaglercraftOpts object in index.html controls the default server list shown to players on the Multiplayer screen, as well as LAN relay configuration, asset paths, and other client behaviour. To change the default servers, open index.html and edit the servers array:
index.html
window.eaglercraftOpts = {
    container: "game_frame",
    assetsURI: "assets.epk",
    serverWorkerURI: "worker_bootstrap.js",
    servers: [
        { serverName: "My Server", serverAddress: "your-server.example.com:25565", hideAddress: false }
    ],
    relays: [
        { addr: "wss://relay.deev.is/", name: "lax1dude relay #1", primary: true }
    ],
    // ...
};
Each entry in the servers array requires:
  • serverName — display name shown in the server list
  • serverAddresshost:port of the EaglercraftBungee instance
  • hideAddress — set to true to hide the raw address from players
For a complete reference of all available eaglercraftOpts properties, see eaglercraftOpts Reference. You can link players directly into your server by appending a ?server= query parameter to your client URL. After the player sets their username and skin, they will be automatically connected to the specified address:
https://yoursite.com/?server=your-server.example.com:25565
This works because index.html reads the server query parameter at load time and sets window.eaglercraftOpts.joinServer accordingly:
index.html
(function() {
    var q = window.location.search;
    if (typeof q === 'string' && q.startsWith("?")) {
        q = new URLSearchParams(q);
        var s = q.get("server");
        if (s) window.eaglercraftOpts.joinServer = s;
    }
})();
This is useful for sharing direct invite links, embedding a join button on a website, or creating server-specific landing pages.

Build docs developers (and LLMs) love