Sign inSign up

crunch41/eden-room-server

By crunch41

•Updated 4 days ago

Eden dedicated room server with latency & hardening patches. Auto-rebuilt from upstream upon changes

Image
Networking
0

4.8K

crunch41/eden-room-server repository overview

⁠Eden Room Server

Dedicated multiplayer room server for the Eden Nintendo Switch emulator, compiled from source with hardening and latency patches applied at build time.

⁠Quick Start

⁠Private Room
docker run -d -p 24872:24872/tcp -p 24872:24872/udp \
  -e ROOM_NAME="My Room" \
  -e PREFERRED_GAME="Mario Kart 8 Deluxe" \
  -e PREFERRED_GAME_ID="0100152000022000" \
  crunch41/eden-room-server:latest
⁠Public Room
docker run -d -p 24872:24872/tcp -p 24872:24872/udp \
  -e ROOM_NAME="My Room" \
  -e PREFERRED_GAME="Mario Kart 8 Deluxe" \
  -e PREFERRED_GAME_ID="0100152000022000" \
  -e USERNAME="your-username" \
  -e TOKEN="your-eden-token" \
  -e WEB_API_URL="https://api.ynet-fun.xyz" \
  crunch41/eden-room-server:latest
⁠Working Example (Unraid)
docker run -d -p 24872:24872/tcp -p 24872:24872/udp \
  -e ROOM_NAME="AU/NZ Room" \
  -e ROOM_DESCRIPTION="Welcome!" \
  -e PREFERRED_GAME="Mario Kart 8 Deluxe" \
  -e PREFERRED_GAME_ID="0100152000022000" \
  -e MAX_MEMBERS="16" \
  -e USERNAME="YourUsername" \
  -e TOKEN="your-eden-token" \
  -e WEB_API_URL="https://api.ynet-fun.xyz" \
  -e TZ="Australia/Melbourne" \
  -v /mnt/cache/appdata/eden-room:/home/eden/.local/share/eden-room \
  crunch41/eden-room-server:latest

⁠Environment Variables

VariableRequiredDefaultDescription
ROOM_NAMEYes-Room name shown in lobby
PREFERRED_GAMEYes-Game name shown in lobby
PREFERRED_GAME_IDYes-Game title ID in hex (e.g. 0100152000022000)
ROOM_DESCRIPTIONNo-Room description
MAX_MEMBERSNo16Max players (2-254)
PASSWORDNo-Room password, leave unset for open room
USERNAMEFor public-Your Eden username
TOKENFor public-Your token from Eden Settings > Multiplayer
WEB_API_URLFor public-Set to https://api.ynet-fun.xyz
TZNoUTCTimezone for log timestamps
PUID / PGIDNo99 / 100Process UID/GID

Note: USERNAME, TOKEN, and WEB_API_URL must all be set together for a public room. Any missing and the room runs privately.

⁠Persistent Data

Mount a volume to save ban list and session logs:

-v /mnt/cache/appdata/eden-room:/home/eden/.local/share/eden-room

Files stored:

  • ban_list.txt - Banned usernames and IPs
  • session_DD-MM-YYYY_HH-MM-SS.log - Per-session log files

⁠Key Patches

This image applies patches to the upstream Eden source before compiling:

  • Unreliable relay - game packets use ENET_PACKET_FLAG_UNSEQUENCED, eliminating head-of-line blocking on lossy high-RTT paths (AUS to USA)
  • Extended peer timeout - 12s/60s instead of ENet defaults, surviving transient international packet loss
  • Event loop drain - removes up to 5ms of server-added relay latency under burst load
  • Relay throttle pin - prevents ENet from silently dropping game packets on jittery links
  • Join rate limiting, packet validation, moderator subnet gate - hardening against malformed input and abuse

⁠More Information


Auto-builds: Daily when upstream Eden changes Support: https://github.com/Crunch41/eden-room-docker/issues⁠

Tag summary

Content type

Image

Digest

sha256:438d1025f…

Size

135.5 MB

Last updated

4 days ago

docker pull crunch41/eden-room-server