@flayerlabs/gamemode-cli 0.5.5 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build-game-mode/SKILL.md +4 -0
- package/dist/run-a-game-server/SKILL.md +22 -10
- package/dist/scaffold.js +8 -6
- package/dist/scaffold.js.map +1 -1
- package/package.json +1 -1
- package/src/scaffold.ts +8 -6
|
@@ -55,3 +55,7 @@ In the SDK:
|
|
|
55
55
|
3. Run `pnpm release:check` when a published contract or package surface changed.
|
|
56
56
|
|
|
57
57
|
Check replay, reconnect, hidden-data leaks, late actions, duplicate actions, oversized input, wake timing and the reward ceiling where they apply. If infrastructure blocks a check, report the exact check you could not run. Do not weaken or skip it.
|
|
58
|
+
|
|
59
|
+
## Ship
|
|
60
|
+
|
|
61
|
+
Build with `@flayerlabs/gamemode-client` 0.5.5 or later, deploy the scaffolded gate (`src/gate.ts`), and upload the zip at the developer dashboard, `https://flaunch.gg/game-mode/dashboard`: one gate per chain (Base Sepolia 84532 required for testing; Base 8453 and Robinhood 4663 production), tick "supports practice mode" when the build runs on `createMockRoom`, mark it mobile-friendly if it is, and run the Base Sepolia test launch. Bundling rules and the full ship checklist are steps 7–8 of `$port-game-mode`; a game with its own multiplayer server follows `$run-a-game-server`.
|
|
@@ -8,7 +8,7 @@ description: Connects a game with its own authoritative multiplayer server to Fl
|
|
|
8
8
|
You have a game whose gameplay lives on your own server. The platform never hosts or relays your
|
|
9
9
|
realtime traffic: you run the server and the gate, and the platform gives your hosted game a strict
|
|
10
10
|
policy that only reaches what you declared. This skill exists because that declaration lives in
|
|
11
|
-
three places that must agree, and because the
|
|
11
|
+
three places that must agree, and because the dashboard refuses a gate that does not announce
|
|
12
12
|
itself. Work through the sections in order; each ends with a check you can run.
|
|
13
13
|
|
|
14
14
|
## Know the three services and who hosts them
|
|
@@ -27,8 +27,9 @@ itself. Work through the sections in order; each ends with a check you can run.
|
|
|
27
27
|
|
|
28
28
|
The reviewed game-server origins must match exactly — same scheme, same host, no path — in:
|
|
29
29
|
|
|
30
|
-
1. The
|
|
31
|
-
|
|
30
|
+
1. The game server addresses field of the developer dashboard at
|
|
31
|
+
`https://flaunch.gg/game-mode/dashboard` (one per line). This becomes your hosted game's
|
|
32
|
+
`connect-src`: the browser can only reach origins listed here or your gate.
|
|
32
33
|
2. `gameServerOrigins` in your `createGameServerGate()` options. This puts each origin into the
|
|
33
34
|
set of valid join-ticket audiences.
|
|
34
35
|
3. The `joinTicket(origin)` call in your game client and the `audience` your server verifies.
|
|
@@ -39,14 +40,15 @@ wrong in (3) and verification rejects every player. At most four origins, exact
|
|
|
39
40
|
wildcards, paths and plain HTTP are refused. Rotating regions? Put them behind stable hostnames;
|
|
40
41
|
the list is not meant to churn.
|
|
41
42
|
|
|
42
|
-
## Serve /config, or the
|
|
43
|
+
## Serve /config, or the dashboard refuses your gate
|
|
43
44
|
|
|
44
|
-
The
|
|
45
|
-
your game. `startGate()` serves it automatically; `createGameServerGate()` serves it only when
|
|
46
|
-
you pass `announce`. Without it the
|
|
45
|
+
The dashboard reads `GET /config` from your gate when you declare it, and the launch page reads it
|
|
46
|
+
again before it lets anyone launch a coin through your game. `startGate()` serves it automatically; `createGameServerGate()` serves it only when
|
|
47
|
+
you pass `announce`. Without it the dashboard reports your server "isn't answering — it may be offline,
|
|
47
48
|
or built before the current Game Mode SDK". Pass it:
|
|
48
49
|
|
|
49
50
|
```ts
|
|
51
|
+
// Base Sepolia (84532) — the TESTNET example. Production chains announce their own pair; see below.
|
|
50
52
|
const app = createGameServerGate({
|
|
51
53
|
// ...pool, sessions, claims, discovery, settlement, gameId, awardToken...
|
|
52
54
|
gameServerOrigins: ['https://us.game.example.com', 'https://eu.game.example.com'],
|
|
@@ -71,7 +73,13 @@ const app = createGameServerGate({
|
|
|
71
73
|
})
|
|
72
74
|
```
|
|
73
75
|
|
|
74
|
-
The addresses above are Base Sepolia (chain 84532), read back from the chain
|
|
76
|
+
The addresses above are Base Sepolia (chain 84532), read back from the chain, and `v1_2` is that
|
|
77
|
+
stack's generation. A Base mainnet (8453) gate announces `chainId: 8453`, `flaunchVariant: 'v1_3'`
|
|
78
|
+
and the V1_3 PositionManager and spend-gated calculator deployed there — read them back from the
|
|
79
|
+
chain, never copy the Sepolia pair. One gate process serves one chain and one calculator, and
|
|
80
|
+
adopts coins on any PositionManager wired to that calculator; `contracts.positionManager` is the
|
|
81
|
+
primary manager, and `/config` announces `positionManagerPolicy: 'wired-to-calculator'` (0.6.0) so
|
|
82
|
+
launch tooling knows other wired managers are accepted. `signer` is what a
|
|
75
83
|
launch writes into its pool as the trusted signer — announce an address you do not hold and every
|
|
76
84
|
coin launched through your game is unplayable. `walletCap` must cover a flawless round
|
|
77
85
|
(`maxPointsPerPlayer` times the wei value of a point) or boot refuses.
|
|
@@ -162,8 +170,12 @@ bundle contains none of them.
|
|
|
162
170
|
|
|
163
171
|
## Submit, then verify against the real policy
|
|
164
172
|
|
|
165
|
-
|
|
166
|
-
|
|
173
|
+
Upload the zip in the developer dashboard at `https://flaunch.gg/game-mode/dashboard`, declare
|
|
174
|
+
your gate origin as a network — one gate per chain: Base Sepolia (84532) is required for testing,
|
|
175
|
+
Base (8453) and Robinhood (4663) are production — and fill in the game server addresses. The
|
|
176
|
+
dashboard live-probes `/health` at submission, so deploy the gate first; it refuses builds below
|
|
177
|
+
`@flayerlabs/gamemode-client` 0.5.5 and gates whose `/config` `gateVersion` is below 0.5.5. Mark
|
|
178
|
+
the game mobile-friendly if it is, and run the Base Sepolia test launch from the dashboard. Localhost
|
|
167
179
|
cannot rehearse the deployed CSP: after hosting, open the deployed game and confirm every declared
|
|
168
180
|
origin connects and an undeclared one is blocked. Then launch a fresh test coin through the room
|
|
169
181
|
link — a coin launched before a registration change stays bound to what it was launched with.
|
package/dist/scaffold.js
CHANGED
|
@@ -118,8 +118,9 @@ pnpm typecheck
|
|
|
118
118
|
## Deploy your gate
|
|
119
119
|
|
|
120
120
|
Game Mode needs your game to bring its own round server — a gate — and its public https origin is
|
|
121
|
-
exactly the **Gate URL** you
|
|
122
|
-
never runs a gate for you and never holds your
|
|
121
|
+
exactly the **Gate URL** you declare as a network for the game in the developer dashboard at
|
|
122
|
+
https://flaunch.gg/game-mode/dashboard. Flaunch never runs a gate for you and never holds your
|
|
123
|
+
signing key.
|
|
123
124
|
|
|
124
125
|
\`src/gate.ts\` is the whole entrypoint; \`.env.example\` is the whole contract. On Railway:
|
|
125
126
|
|
|
@@ -408,10 +409,11 @@ USD_PER_ETH=3000
|
|
|
408
409
|
# Per-wallet cap for ETH-paired launches, in wei. Default 0.025 ETH.
|
|
409
410
|
WALLET_CAP_WEI=25000000000000000
|
|
410
411
|
# Paired-token rounds: coins paired with something other than ETH spend in THAT token's base
|
|
411
|
-
# units.
|
|
412
|
-
#
|
|
413
|
-
#
|
|
414
|
-
#
|
|
412
|
+
# units. On a paired stack (POSITION_MANAGER=<the V1_3 paired manager>) the gate prices every
|
|
413
|
+
# token the chain's PairedTokenRegistry approves by itself, through the calculator the token was
|
|
414
|
+
# registered with, so nothing is listed here. Pin a price only when you must: dollar price and
|
|
415
|
+
# the per-wallet cap a launch should write (base units — 50000000 is 50 MUSD at six decimals).
|
|
416
|
+
# Symbol and decimals are read from the chain. A token the registry does not approve is refused.
|
|
415
417
|
# SPEND_TOKENS=[{"address":"0xd0B4398976572515a269C6331A143e08a70E9ccC","usdPerToken":1,"walletCap":"50000000"}]
|
|
416
418
|
`,
|
|
417
419
|
'railpack.json': `${JSON.stringify({
|
package/dist/scaffold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/scaffold.ts
CHANGED
|
@@ -147,8 +147,9 @@ pnpm typecheck
|
|
|
147
147
|
## Deploy your gate
|
|
148
148
|
|
|
149
149
|
Game Mode needs your game to bring its own round server — a gate — and its public https origin is
|
|
150
|
-
exactly the **Gate URL** you
|
|
151
|
-
never runs a gate for you and never holds your
|
|
150
|
+
exactly the **Gate URL** you declare as a network for the game in the developer dashboard at
|
|
151
|
+
https://flaunch.gg/game-mode/dashboard. Flaunch never runs a gate for you and never holds your
|
|
152
|
+
signing key.
|
|
152
153
|
|
|
153
154
|
\`src/gate.ts\` is the whole entrypoint; \`.env.example\` is the whole contract. On Railway:
|
|
154
155
|
|
|
@@ -441,10 +442,11 @@ USD_PER_ETH=3000
|
|
|
441
442
|
# Per-wallet cap for ETH-paired launches, in wei. Default 0.025 ETH.
|
|
442
443
|
WALLET_CAP_WEI=25000000000000000
|
|
443
444
|
# Paired-token rounds: coins paired with something other than ETH spend in THAT token's base
|
|
444
|
-
# units.
|
|
445
|
-
#
|
|
446
|
-
#
|
|
447
|
-
#
|
|
445
|
+
# units. On a paired stack (POSITION_MANAGER=<the V1_3 paired manager>) the gate prices every
|
|
446
|
+
# token the chain's PairedTokenRegistry approves by itself, through the calculator the token was
|
|
447
|
+
# registered with, so nothing is listed here. Pin a price only when you must: dollar price and
|
|
448
|
+
# the per-wallet cap a launch should write (base units — 50000000 is 50 MUSD at six decimals).
|
|
449
|
+
# Symbol and decimals are read from the chain. A token the registry does not approve is refused.
|
|
448
450
|
# SPEND_TOKENS=[{"address":"0xd0B4398976572515a269C6331A143e08a70E9ccC","usdPerToken":1,"walletCap":"50000000"}]
|
|
449
451
|
`,
|
|
450
452
|
|