[docs] update some documentation about versions

This commit is contained in:
Devin Zuczek
2026-09-01 09:56:55 -04:00
parent ab623c376b
commit cae0ebd4ae
3 changed files with 64 additions and 28 deletions
+14
View File
@@ -44,6 +44,20 @@
- Changesets manage versions and changelogs - Changesets manage versions and changelogs
</architecture> </architecture>
<game-clients>
Supported client builds live in `SUPPORTED_GAME_VERSIONS`
(`packages/domain/src/presence-db.ts`); `GAME_VERSION` is the default the stack targets.
- `20230414` — default, official. Manifest `7859140924515540835` (2023).
- `20250718.01` — beta, official. Manifest `1151455856673601091`; reaches this server via
the [patch-2025](https://github.com/recflare/patch-2025) patch.
- `20250424.01`, `20231207`, `20230616` — alpha.
Builds are date-stamped (`YYYYMMDD[.NN]`) so they order as plain strings; several
surfaces gate on "newer than `20230414`" (econ storefront catalog, `api` event tags,
`rooms` featured rooms) rather than on an explicit list.
</game-clients>
<code-style> <code-style>
- Use tabs for indentation, spaces for alignment - Use tabs for indentation, spaces for alignment
- Type imports use `import type` - Type imports use `import type`
+34 -16
View File
@@ -2,7 +2,7 @@
<img width="1063" height="409" alt="image" src="https://github.com/user-attachments/assets/521d5b11-fb93-4900-9158-71d51d2343ae" /> <img width="1063" height="409" alt="image" src="https://github.com/user-attachments/assets/521d5b11-fb93-4900-9158-71d51d2343ae" />
![example branch parameter](https://github.com/djdevin/recflare/actions/workflows/test.yml/badge.svg?branch=main) ![badge](https://github.com/djdevin/recflare/actions/workflows/test.yml/badge.svg?branch=main)
RecFlare is a scalable implementation of RecNet — the Rec Room backend — built on RecFlare is a scalable implementation of RecNet — the Rec Room backend — built on
Cloudflare Workers. It implements the network services the Rec Room client talks Cloudflare Workers. It implements the network services the Rec Room client talks
@@ -36,15 +36,24 @@ resulting in bugs getting fixed faster. I hope.
## Game client ## Game client
See [RecFlare Client](https://github.com/djdevin/recflare-client) See [RecFlare Client](https://github.com/djdevin/recflare-client) for the official RecFlare build.
RecFlare is compatible with the These game builds are supported:
[RecNet Plugin](https://github.com/djdevin/recnet-plugin) and the build of Rec
Room with manifest `7859140924515540835` (around 2023). Other client or game versions may expect | Build | Manifest | Support |
different endpoints and response shapes and are not supported. | ------------- | --------------------- | --------------------------------------------------------------------------------------- |
| `20230414` | `7859140924515540835` | **Default**, official — the 2023 build the rest of the stack targets |
| `20250718.01` | `1151455856673601091` | **Beta**, official — use the [patch-2025](https://github.com/recflare/patch-2025) patch |
| `20250424.01` | | Alpha |
| `20231207` | | Alpha |
| `20230616` | | Alpha |
Alpha builds get past the version check and largely work, but nothing else in the
stack targets them, so expect protocol differences. Other client or game versions
may expect different endpoints and response shapes and are not supported.
Generally speaking any client that effectively rewrites the nameserver with the Generally speaking any client that effectively rewrites the nameserver with the
right mods can be used with this server. right mods (see [RecNet Plugin](https://github.com/djdevin/recnet-plugin), [2025 patch](https://github.com/recflare/patch-2025)) can be used with this server.
## Services ## Services
@@ -58,9 +67,11 @@ Want to run it yourself? See [DEPLOYING.md](DEPLOYING.md)
### What year is this for? ### What year is this for?
This works with 2023 clients. It has been tested with manifest `7859140924515540835`. Other clients may not work. Most 2023 and 2025 clients. A few older builds work at
alpha quality — see the table in the "Game client" section above. Other clients may not
work.
See the "Client" section above for instructions on how to modify a client to connect to this server. See the "Game client" section above for instructions on how to modify a client to connect to this server.
### Can I run this locally on my PC? ### Can I run this locally on my PC?
@@ -70,11 +81,13 @@ See "Run the development microservices" above. It may be possible later as Wrang
### Can I use this to make my own server? ### Can I use this to make my own server?
Yes, that's the point. Just set your custom domain and deploy it. Yes, that's the point. See [DEPLOYING.md](DEPLOYING.md)
### Is there an admin panel? ### Is there an admin panel?
Not yet. But there could be. Yes, the server comes bundled with a simple web panel with more functionality being added.
There are also [CLI tools](CLI.md) you can use for admin tasks like granting roles.
### Can I copy this project and modify it? ### Can I copy this project and modify it?
@@ -89,15 +102,20 @@ keeps those in sync: `pnpm` workspaces share dependencies, `@repo/` packages
share code, Turborepo runs build/test/lint with a single cached task graph, and share code, Turborepo runs build/test/lint with a single cached task graph, and
cross-service changes land in one atomic commit. cross-service changes land in one atomic commit.
This makes it easier to deploy the whole stack at once or a smaller selection
of microservices to avoid downtime events.
## Credits ## Credits
I started this after the official servers shut down, so I could only see the I started this soon after the official servers shut down when I saw there were
only monolithic servers usually running on one server. I could only see the
request shapes coming from the game client. I used many different projects as request shapes coming from the game client. I used many different projects as
resources to get response shapes, logic examples, enums, etc. They all had resources to get response shapes, logic examples, enums, etc. They all had
missing pieces. Again, another reason to come together on one project and missing pieces. Again, another reason to come together on one project and
stop gatekeeping. stop gatekeeping.
Unfortunately, they were all leaked code except for - [CannedNet](https://github.com/CannedNet/CannedNet)
[CannedNet](https://github.com/CannedNet/CannedNet), [DorkNet](https://github.com/DorkSquadRR/DorkNet), and jordanparki7's postman - [DorkNet](https://github.com/DorkSquadRR/DorkNet)
collection of RecNet APIs which is gone for some reason. So I will not list the - jordanparki7's postman collection of RecNet APIs which is gone for some reason.
leaks publicly. - Leaked C# projects I won't list (for response shapes)
- Claude and my [wire shapes skill](https://github.com/recflare/skills/blob/main/.claude/skills/wire-shapes/SKILL.md)
+16 -12
View File
@@ -33,21 +33,25 @@ export const PRESENCE_TTL_SECONDS = 900
export const GAME_VERSION = '20230414' export const GAME_VERSION = '20230414'
/** /**
* Client builds `/api/versioncheck/v4` answers "current" for. `GAME_VERSION` is the one * Client builds `/api/versioncheck/v4` answers "current" for, in the support tiers the
* the rest of the stack targets and reports for itself; the others are later clients * README publishes. They talk close enough to the same protocol to get past the update
* that talk close enough to the same protocol to get past the update prompt. * prompt; how much beyond that is tested differs by tier:
* *
* DEBUGGING ONLY beyond `GAME_VERSION`: this is not a supported-version list. Nothing * - `GAME_VERSION` (`20230414`, manifest `7859140924515540835`) is the DEFAULT — the
* else in the stack targets those builds, so a client waved through here can still hit * build the rest of the stack targets and the one it reports for itself.
* protocol differences the version check would otherwise have caught. Trim it back to * - `20250718.01` (manifest `1151455856673601091`, reached through the `patch-2025`
* `GAME_VERSION` alone before anyone but us is playing. * patch) is BETA — supported, and the build the "newer than `20230414`" gates in
* `econ`/`api`/`rooms` are written and tested against.
* - The rest are ALPHA: waved past the version check, but nothing else in the stack
* targets them, so they can still hit protocol differences this check would otherwise
* have caught. Expect breakage rather than treating a bug there as a regression.
*/ */
export const SUPPORTED_GAME_VERSIONS: string[] = [ export const SUPPORTED_GAME_VERSIONS: string[] = [
GAME_VERSION, GAME_VERSION, // default
'20230616', '20250718.01', // beta
'20231207', '20230616', // alpha
'20250424.01', '20231207', // alpha
'20250718.01', '20250424.01', // alpha
] ]
/** Whether a client-supplied build (the version check's `?v=`) is one we serve. */ /** Whether a client-supplied build (the version check's `?v=`) is one we serve. */