Stopped

Online Players

Start the server to see players.

BOTTLE Plugin Manager

EaglerForge is an alias — all plugins work with both names
Built-in Plugins
EaglercraftXServer
ChatFilter
AntiCheat
WorldEdit
WorldGuard
Multiverse
Enable/disable in config.jsbottle.builtins
No user plugins loaded yet.
♦ Drop .js plugin files here — uses BOTTLE.register() or EaglerForge.register()

🌐 Connect by IP Address (same network / LAN)

Players on the same network can connect directly using a WebSocket address — no SDP exchange needed. The relay is handled by the server automatically.

Relay status: Disconnected
🌐 Internet URL (via Replit proxy, works anywhere)
📶 LAN URL (same network — replace with your machine's local IP)
ws://YOUR_LOCAL_IP:8080/mc
In EaglercraftX: Multiplayer → Direct Connect → paste the URL above.
Start the server first — the relay connects automatically when the server starts.

📡 WebRTC Offer / Answer (works across internet)

For players who cannot reach this server by URL. Creates a peer-to-peer session — no port forwarding needed, works on restricted networks.

  1. Start the server, then click Generate Offer.
  2. Copy the offer code — send it to the player (Discord, chat, etc).
  3. Player opens EaglercraftX → Direct Connect → WebRTC → pastes offer.
  4. Player copies back an answer — paste it below and submit.

💻 Same-Browser / LAN Testing

Open another tab with the same URL to test locally. The server runs in this tab's Web Worker; the other tab acts as a client.

Seed
World gen seed
Players
Online / Max
TPS
Max 20
Uptime
Since start
Tick
Total elapsed
Plugins
BOTTLE loaded

Server Configuration (applied on next Start)

World Seed (blank = random)
Max Players
Default Gamemode
Difficulty
MOTD

Supported Versions (edit config.js → versions.enabled)

1.5.2 p61 1.6.4 p78 1.7.10 p5 1.8.9 p47 1.9.4 p110 1.10 p210 1.11.2 p316 1.12 p335 1.12.2 p340 ★
★ Native format. Older versions use a protocol compatibility layer.

BOTTLE Plugin API

The plugin API is named BOTTLE. EaglerForge is a drop-in alias for compatibility with existing EaglerForge plugins. Plugins call BOTTLE.register(manifest, hooks) or EaglerForge.register(manifest, hooks).
Built-in plugins (toggle in config.js):
Plugin Default Description
EaglercraftXServeronWebRTC, skins, voice chat support
ChatFilteroffSpam and profanity filter
AntiCheatoffBasic movement speed checks

File Structure

eaglernet/
├── config.js                    ← §7Server config (versions, plugins, world)
├── index.html                   ← §7Open this to launch the dashboard
├── manifest.json + sw.js        ← §7PWA + offline support
├── css/main.css
├── js/
│   ├── dashboard.js             ← §7Admin UI
│   ├── plugin-api.js            ← §7BOTTLE API (browser context)
│   └── mc/
│       ├── buffer.js            ← §7VarInt, VarLong, UUID, Position
│       ├── nbt.js               ← §7NBT all 13 tag types
│       ├── noise.js             ← §7Simplex noise (terrain gen)
│       ├── blocks.js            ← §7Block state IDs 1.12.2
│       ├── world.js             ← §7World gen (terrain, caves, ores)
│       ├── chunk.js             ← §7Chunk palette encoder
│       ├── protocol.js          ← §71.5.2→1.12.2 state machine
│       └── server.js            ← §7Game server Web Worker
└── plugins/
    ├── eaglercraftxserver/      ← §7[builtin] EaglercraftX support
    ├── chatfilter/              ← §7[builtin] spam/profanity filter
    ├── anticheat/               ← §7[builtin] movement checks
    └── example-plugin/         ← §7Template for your own plugins