Files
docker-compose-cookbooks/runescape-dragonwilds

runescape-dragonwilds

Overview

Dedicated server for RuneScape: DragonWilds, run via SteamCMD. Server files are downloaded/updated on start and saves persist to a host volume.

Project Details

Getting Started

  1. Copy sample.env to .env and set RSDW_OWNER_ID (your Player ID, found in the game's Settings) and RSDW_ADMIN_PASSWORD
  2. Forward UDP 7777 and 8888 on your router/firewall to the Docker host
  3. Start the container: docker compose up -d
  4. Watch the first start (it downloads the server files): docker compose logs -f
  5. In game, find the server by RSDW_SERVER_NAME and use RSDW_ADMIN_PASSWORD for Server Management

Environment Variable Notes

RSDW_OWNER_ID – REQUIRED. Your RuneScape: DragonWilds Player ID (in-game Settings)
RSDW_ADMIN_PASSWORD – REQUIRED. Server Management password, default: ChangeThisPassword
RSDW_WORLD_PASSWORD – optional join password; empty = public
RSDW_SERVER_NAME – server display name, default: DragonWildsServer
RSDW_WORLD_NAME – world created on first start, default: MyWorld
RSDW_MAX_PLAYERS – default: 6
RSDW_PORT – game UDP port, default: 7777 (also sets DEFAULT_PORT in the container)
RSDW_BEACON_PORT – world settings beacon UDP port, default: 8888 (also sets BEACON_PORT)
RSDW_UPDATE_ON_START – set false to skip SteamCMD download/validation on start
RSDW_PUID / RSDW_PGID – owner of the server files, default: 1000

Volume Notes

/home/steam/server-files – host path /data/runescape-dragonwilds/server-files (server binaries, saves, config)

Back up the saves inside this directory; the server binaries can be re-downloaded.

Network Notes

Requires proxy network (declared for convention only — players connect directly over UDP, not through NPM).

Docker Run

docker run -d \
  --name runescape-dragonwilds \
  --restart unless-stopped \
  --stop-timeout 30 \
  -p 7777:7777/udp \
  -p 8888:8888/udp \
  -e OWNER_ID=YourPlayerId \
  -e ADMIN_PASSWORD=ChangeThisPassword \
  -v /data/runescape-dragonwilds/server-files:/home/steam/server-files \
  indifferentbroccoli/runescape-dragonwilds-server-docker:latest

See compose.yaml for the full set of environment variables.

Additional Notes / Gotchas

  • Host and container ports must match — mismatched ports cause join failures. The compose file uses the same var for both sides; don't remap one without the other.
  • The beacon port (8888) is required for creating/editing worlds.
  • The server won't show up without working port forwarding and a valid OWNER_ID/ADMIN_PASSWORD.
  • RAM: about 2 GB + 1 GB per player (8 GB for a full 6-player server).
  • stop_grace_period: 30s gives the server time to save on shutdown.
  • Crossplay (PC, PS5, Xbox Series X|S, Switch 2) is supported since 1.0. The image doesn't set PlatformPolicy in DedicatedServer.ini, so the game default (Crossplay) applies. It rewrites that file on every start, so a manual PlatformPolicy= edit to lock the server to one platform won't survive a restart.
  • Clients must be on the same game version as the server — keep RSDW_UPDATE_ON_START=true and restart after game patches. There is no cross-save: character progress doesn't carry between platforms.

Dockhand Stack, Deploy from Git

Cookbooks Repository stackname: runescape-dragonwilds Compose file path: runescape-dragonwilds/compose.yaml Additional env file (optional): runescape-dragonwilds/sample.env

Then "Load" runescape-dragonwilds/sample.env into the Environmental variables in dockhand

Create the Stack