Files
HeliumRecServer/README.md
T

2.2 KiB

HeliumRecServer (custom-node-server branch)

This branch adds a Node.js skeleton for running a custom Rec Room (2023) server replacement that you can adapt to work with the Photon-based client by swapping keys/addresses in the client.

What I added in this commit:

  • WebSocket server skeleton (src/index.js) that accepts query-token authentication and persists minimal user data
  • Protocol stub (src/protocol.js) — where Rec Room / Photon packet parsing should be implemented
  • Auth helpers (src/auth.js) for Steam/RecNet token verification (placeholders that call configured endpoints)
  • SQLite persistence (src/storage.js)
  • Admin console (src/admin.js) with basic auth and endpoints to list connections and broadcast messages
  • Logger and test client
  • package.json with dependencies

Environment variables (set in .env):

  • PORT (default 5055) — WebSocket server port
  • ADMIN_PORT (default 5056) — Admin HTTP server port
  • LOG_LEVEL — winston log level (info/debug/...)
  • STEAM_WEB_API_KEY — Steam Web API key (if you plan to use Steam verification)
  • RECNET_VERIFY_URL — RecNet verification endpoint to POST { token }
  • SQLITE_FILE — path for the SQLite DB file (default ./helium.db)
  • ADMIN_USER / ADMIN_PASS — optional Basic auth for admin console

How to run:

  1. Copy .env.example to .env and fill in the variables you need.
  2. npm install
  3. npm start
  4. Admin console: http://localhost:5056 (use basic auth if ADMIN_USER/ADMIN_PASS set)

Notes about Photon & Rec Room:

  • The client uses Photon; this skeleton provides a WebSocket entry point you can use for reverse engineering and testing. Photon traffic is binary and has its own framing — you'll need to implement Photon protocol handling inside src/protocol.js (or add a UDP/TCP transport if Photon expects that).
  • You said you can replace Photon keys and localhost yourself — good. Put the Photon server host/port to point to this process and replace any required AppId/AppVersion in the client.

Next steps I can take after you confirm:

  • Implement Photon framing and basic handshake to accept a 2023 Rec Room client (requires packet captures or protocol docs).
  • Implement Steam/RecNet direct verification flow if you provide endpoints or tokens to test.
  • Add more persistence (Redis) and matchmaking logic.