Skip to content

Hosting a server

Anyone can run a community game server. It is the same runtime as official matches (server-community) with community defaults: guest names, no ranked writes, dumb autofill bots.

Download

From the game: Create Server. Zips are served from R2 (downloads.doorsfps.com), not from the Pages worker (they are larger than the 25 MiB asset cap).

FilePlatform
doors-server-win.zipWindows
doors-server-mac-arm64.zipApple Silicon
doors-server-mac-x64.zipIntel Mac
doors-server-linux.zipLinux

Each zip unpacks to a doors/ folder: doors-server (or .exe), config.json, and maps/.

Build locally:

sh
cd server-community && deno task compile:all

Run

Run the binary. It listens for Socket.IO clients (HTTP/LAN). Share IP:port for a direct join, or register the session so friends connect through proxy.games… (the game host’s community edge). Production relay refuses private/LAN targets.

Friends on the same LAN can join the Vite Network URL + the server port without the proxy.

What community is not

  • No official XP, SS, coins, or mystery cards.
  • No Clerk usernames. Everyone joins with a guest name.
  • WebTransport is off. Official hosts advertise /wt; community stays Socket.IO.
  • Token signing keys are not in the downloadable build.

Desktop

desktop/ is an Electron shell that loads https://doorsfps.com (or DOORS_GAME_URL for local). Same rules and servers as the browser. See desktop/README.md for packaging.

Play guide for Doors. Official matches at doorsfps.com.