@idosgames/mcp 0.1.18 → 0.1.20

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.
Files changed (55) hide show
  1. package/dist/cli.js +2 -2
  2. package/package.json +1 -1
  3. package/registry/host.json +69 -25
  4. package/registry/index.json +895 -620
  5. package/registry/modules/ai.json +65 -0
  6. package/registry/modules/board-game.json +8 -8
  7. package/registry/modules/boosts.json +66 -0
  8. package/registry/modules/{character-ui.json → character.json} +8 -12
  9. package/registry/modules/chat.json +70 -0
  10. package/registry/modules/collections.json +69 -0
  11. package/registry/modules/coop-events.json +67 -0
  12. package/registry/modules/{craft-ui.json → craft.json} +8 -12
  13. package/registry/modules/{deal-offer-ui.json → deals.json} +7 -11
  14. package/registry/modules/events.json +72 -0
  15. package/registry/modules/{friends-ui.json → friends.json} +11 -14
  16. package/registry/modules/idle-rpg.json +7 -7
  17. package/registry/modules/inventory.json +67 -0
  18. package/registry/modules/invite.json +70 -0
  19. package/registry/modules/{leaderboard-ui.json → leaderboard.json} +8 -12
  20. package/registry/modules/lootboxes.json +67 -0
  21. package/registry/modules/mailbox.json +71 -0
  22. package/registry/modules/marketplace.json +71 -0
  23. package/registry/modules/mini-game.json +69 -0
  24. package/registry/modules/multiplayer.json +74 -0
  25. package/registry/modules/premium.json +67 -0
  26. package/registry/modules/profile.json +70 -0
  27. package/registry/modules/{pvp-ui.json → pvp.json} +9 -13
  28. package/registry/modules/quests.json +69 -0
  29. package/registry/modules/rewards.json +66 -0
  30. package/registry/modules/season.json +71 -0
  31. package/registry/modules/{store-ui.json → store.json} +9 -13
  32. package/registry/modules/{tutorial-ui.json → tutorials.json} +8 -12
  33. package/registry/modules/voxelcraft.json +15 -455
  34. package/registry/modules/workshop.json +10 -6
  35. package/registry/skills/blockchain-system.json +1 -1
  36. package/registry/skills/dev-test-loop.json +1 -1
  37. package/registry/skills/idosgames-compose-modules.json +2 -2
  38. package/registry/skills/idosgames-getting-started.json +2 -2
  39. package/registry/skills/idosgames-module-contract.json +2 -2
  40. package/registry/skills/idosgames-project-structure.json +1 -1
  41. package/registry/skills/idosgames-ui-kit.json +2 -2
  42. package/registry/skills/mailbox-system.json +6 -0
  43. package/registry/skills/multiplayer-realtime.json +2 -2
  44. package/registry/skills/push-notifications.json +1 -1
  45. package/registry/skills/workshop-system.json +1 -1
  46. package/registry/modules/chat-ui.json +0 -74
  47. package/registry/modules/events-ui.json +0 -80
  48. package/registry/modules/game-hud.json +0 -104
  49. package/registry/modules/inventory-ui.json +0 -73
  50. package/registry/modules/marketplace-ui.json +0 -75
  51. package/registry/modules/profile-ui.json +0 -74
  52. package/registry/modules/referral-ui.json +0 -73
  53. package/registry/modules/rewards-ui.json +0 -75
  54. package/registry/modules/season-ui.json +0 -79
  55. package/registry/modules/showcase.json +0 -92
@@ -1,231 +1,470 @@
1
1
  {
2
- "generatedFromCommit": "2ab0fc3b95730d188c5b6a961593191f5222a7e1",
2
+ "generatedFromCommit": "07ae5dcee5ec61ed20e2143f2f87df768fff56f3",
3
3
  "runtimePackages": {
4
- "@idosgames/core": "0.19.0",
5
- "@idosgames/wallet": "0.5.1",
6
- "@idosgames/module-sdk": "0.5.0",
4
+ "@idosgames/core": "0.19.1",
5
+ "@idosgames/wallet": "0.6.0",
6
+ "@idosgames/module-sdk": "0.7.0",
7
7
  "@idosgames/react": "0.3.0",
8
- "@idosgames/app-shell": "0.6.0"
8
+ "@idosgames/app-shell": "0.8.0"
9
9
  },
10
10
  "host": {
11
- "id": "host-starter",
12
- "fileCount": 22
11
+ "id": "base",
12
+ "fileCount": 33
13
13
  },
14
14
  "modules": [
15
15
  {
16
- "id": "board-game",
17
- "name": "Board Game",
18
- "type": "template",
19
- "engine": "three",
20
- "genre": "board",
21
- "summary": "3D tycoon board game: roll dice, move around the board, buy and upgrade city tiles.",
22
- "description": "A turn-based property board game rendered in Three.js with a React overlay. Players roll dice, move around a looping board, and buy, sell and upgrade tiles to build a city and earn income. The board layout, tiles and interactions are data-driven, so the theme and economy are easy to re-skin.",
16
+ "id": "store",
17
+ "name": "Shop",
18
+ "type": "feature",
19
+ "engine": "dom",
20
+ "summary": "Shop screen for any game: the title's storefront with stores as tabs, offer cards, purchase confirmation and the reward animation.",
21
+ "description": "A ready shop for ANY game, built on the @idosgames/react/ui kit. It draws the storefront the server resolves for the player (client.store.getStorefront — rotation, limits, timers and badges are the server's), several stores as tabs, the first section of a store as a carousel and the rest as grids, a free daily gift that shines, sold-out and not-yet-available states with countdowns, a confirmation popup (a bottom sheet on phones) and the 'You got' animation where rewards fly to the balance counters. Registers itself as the 'store' feature of the game (ctx.features): the lobby of the base shows it as a tab, and any module can open it with ctx.features.open('store'). Its badge counts free offers waiting. Ships title-seed.json: a demo store with a daily gift, items and currency packs.",
23
22
  "provides": [
24
- "turn-based dice movement around a looping board",
25
- "buy / sell / upgrade board tiles",
26
- "player-vs-player property economy",
27
- "3D board rendering with a React HUD overlay",
28
- "data-driven board layout and tile configuration"
23
+ "shop screen from the title storefront",
24
+ "several stores as tabs",
25
+ "offer carousel and grids with countdowns",
26
+ "free daily gift offer",
27
+ "purchase confirmation popup",
28
+ "reward animation with icons flying to balances",
29
+ "shop badge for free offers",
30
+ "demo store settings"
29
31
  ],
30
32
  "tags": [
31
- "board",
32
- "tycoon",
33
- "3d",
34
- "turn-based",
35
- "economy",
36
- "three"
33
+ "shop",
34
+ "store",
35
+ "storefront",
36
+ "purchase",
37
+ "offers",
38
+ "ui",
39
+ "screen",
40
+ "economy"
37
41
  ],
38
- "media": {
39
- "image": "https://cloud.idosgames.com/drive/modules/board-game/cover.png",
40
- "video": "https://cloud.idosgames.com/drive/modules/board-game/demo.mp4"
42
+ "author": {
43
+ "name": "iDos Games",
44
+ "url": "https://idosgames.com"
41
45
  },
42
- "demoUrl": "https://cloud.idosgames.com/drive/modules/board-game/demo/",
46
+ "version": "0.1.0",
47
+ "dependencies": {
48
+ "@idosgames/core": "0.19.1",
49
+ "@idosgames/module-sdk": "0.7.0",
50
+ "@idosgames/react": "0.3.0",
51
+ "react": "19.2.7"
52
+ },
53
+ "fileCount": 6,
54
+ "contentHash": "dc935a7e6f6a19abc3a8f03b41d721727f70221ff1c3e3a4debb35dc351a7bcb"
55
+ },
56
+ {
57
+ "id": "premium",
58
+ "name": "VIP",
59
+ "type": "feature",
60
+ "engine": "dom",
61
+ "summary": "VIP for any game: premium passes with benefits, until when the player holds one, a free trial and buying with in-game currency.",
62
+ "description": "A ready VIP screen (Unity PremiumPopUp) for ANY game, built on the @idosgames/react/ui kit and client.premium. Every premium pass of the title, lowest tier first: its name, benefits and duration, a timer while the player holds it, a one-time free trial, and buying (or extending) it with currencies or items. A pass paid in a store (real money) is the platform's checkout and is not sold here. Events and season send the player here for their VIP prizes (ctx.features.open('premium', { premiumID }) marks that pass). Registers the 'premium' feature; its badge shows a free trial waiting. The demo pass comes with the base's settings.",
63
+ "provides": [
64
+ "VIP passes screen",
65
+ "free VIP trial",
66
+ "buy or extend VIP with in-game currency",
67
+ "VIP timer",
68
+ "badge for a free trial"
69
+ ],
70
+ "tags": [
71
+ "vip",
72
+ "premium",
73
+ "subscription",
74
+ "monetization",
75
+ "ui",
76
+ "screen",
77
+ "economy"
78
+ ],
43
79
  "author": {
44
80
  "name": "iDos Games",
45
81
  "url": "https://idosgames.com"
46
82
  },
47
83
  "version": "0.1.0",
48
- "events": {
49
- "listens": [
50
- {
51
- "topic": "idle-rpg:character-upgraded@1",
52
- "why": "shows an 'Idle RPG hero reached Lv N' news chip in the board HUD (optional — works without idle-rpg)"
53
- }
54
- ]
84
+ "dependencies": {
85
+ "@idosgames/core": "0.19.1",
86
+ "@idosgames/module-sdk": "0.7.0",
87
+ "@idosgames/react": "0.3.0",
88
+ "react": "19.2.7"
89
+ },
90
+ "fileCount": 6,
91
+ "contentHash": "ec99b4243633026ae61d43679fca7b37731033cd262bae6f5cc17479d1e67e7a"
92
+ },
93
+ {
94
+ "id": "character",
95
+ "name": "Heroes",
96
+ "type": "feature",
97
+ "engine": "dom",
98
+ "summary": "Heroes screen for any game: roster, ranks and stats with their costs, equipment slots with 'Equip best', item levels and skins.",
99
+ "description": "A ready heroes screen (the Hero button of the Unity SDK) for ANY game, built on the @idosgames/react/ui kit and client.character. The screen is the selected hero's equipment hub: portrait, class and rarity, rank and server-computed Power, 'Rank up' with its price, gear slots (locked ones show the rank they open at), 'Equip best' when better gear fits, and the gear the player owns by class. Everything detailed is a popup: the hero list (select, unlock for currency), the stats (level/cap bars, upgrade prices, requirements, and 'where this number comes from' — base, stat levels, rank, gear flat and percent bonuses), a slot's fitting gear, a piece of gear (equip / take off / level up) and skins (wear, buy). Prices and caps follow the title's curves (rank ladder, stat cost curve, StatMaxLevelCurve, item Upgrade); the server re-checks everything. Registers the 'character' feature; the inventory hands equipment to it with ctx.features.open('character', { itemInstanceID }). Its badge counts heroes to unlock or rank up and better gear. Ships title-seed.json: three heroes (Knight free, Archer and Mage for gems) with stats, ranks and slots.",
100
+ "provides": [
101
+ "hero roster with unlock for currency",
102
+ "rank up with price by the rank ladder",
103
+ "stat upgrades with costs, caps and requirements",
104
+ "stat breakdown popup by source",
105
+ "equipment slots and equip / take off",
106
+ "equip best gear automatically",
107
+ "item level upgrades",
108
+ "character skins",
109
+ "demo heroes"
110
+ ],
111
+ "tags": [
112
+ "heroes",
113
+ "characters",
114
+ "rpg",
115
+ "stats",
116
+ "equipment",
117
+ "gear",
118
+ "skins",
119
+ "ui",
120
+ "screen",
121
+ "economy"
122
+ ],
123
+ "author": {
124
+ "name": "iDos Games",
125
+ "url": "https://idosgames.com"
55
126
  },
127
+ "version": "0.1.0",
56
128
  "dependencies": {
57
- "@idosgames/core": "0.19.0",
58
- "@idosgames/module-sdk": "0.5.0",
129
+ "@idosgames/core": "0.19.1",
130
+ "@idosgames/module-sdk": "0.7.0",
59
131
  "@idosgames/react": "0.3.0",
60
- "@idosgames/wallet": "0.5.1",
61
- "@tanstack/react-query": "5.101.2",
62
- "react": "19.2.7",
63
- "three": "0.185.1",
64
- "viem": "2.55.2",
65
- "wagmi": "3.7.2"
132
+ "react": "19.2.7"
66
133
  },
67
- "fileCount": 27,
68
- "contentHash": "a7a360f0ecb5106bb5c5565d06b13845a8f1838bdb475d626f33ca89c73cec29"
134
+ "fileCount": 6,
135
+ "contentHash": "aff7a5b3c7b4970cd421c4e01932eea8123f1a91d3cfddd058e92660c0083377"
69
136
  },
70
137
  {
71
- "id": "idle-rpg",
72
- "name": "Idle RPG",
73
- "type": "template",
74
- "engine": "phaser",
75
- "genre": "idle-rpg",
76
- "summary": "Idle RPG: heroes auto-battle and earn resources over time, with upgrades and offline progress.",
77
- "description": "An incremental idle RPG built on Phaser. Heroes fight automatically, generate currency and loot over time, and keep progressing while the player is away. Includes an upgrade loop and offline-income accrual, so it fits any 'tap to grow / auto-battler / idle economy' request.",
138
+ "id": "inventory",
139
+ "name": "Inventory",
140
+ "type": "feature",
141
+ "engine": "dom",
142
+ "inBase": true,
143
+ "summary": "Inventory screen for any game: owned items by rarity with category tabs and item cards.",
144
+ "description": "A ready inventory for ANY game, built on the @idosgames/react/ui kit. It shows what the player owns from the SDK's cached inventory (no request of its own): category tabs (equipment, consumables, other), rarity frames, counts and levels, and an item card popup with the description. Equipment hands off to the heroes screen (ctx.features.open('character', { itemInstanceID })) and a chest or key item to the chests screen (ctx.features.open('lootboxes', { itemID })) when those systems are installed. Registers the 'inventory' feature — always shown in the lobby, even before the title has items.",
78
145
  "provides": [
79
- "auto-battling heroes",
80
- "idle resource generation over time",
81
- "offline income accrual",
82
- "upgrade / progression loop",
83
- "2D sprite rendering (Phaser)"
146
+ "owned items grid by rarity",
147
+ "category tabs",
148
+ "item card popup",
149
+ "hand-off of equipment to the heroes screen",
150
+ "hand-off of chests and keys to the chests screen"
151
+ ],
152
+ "tags": [
153
+ "inventory",
154
+ "items",
155
+ "rarity",
156
+ "ui",
157
+ "screen",
158
+ "economy"
159
+ ],
160
+ "author": {
161
+ "name": "iDos Games",
162
+ "url": "https://idosgames.com"
163
+ },
164
+ "version": "0.1.0",
165
+ "dependencies": {
166
+ "@idosgames/core": "0.19.1",
167
+ "@idosgames/module-sdk": "0.7.0",
168
+ "@idosgames/react": "0.3.0",
169
+ "react": "19.2.7"
170
+ },
171
+ "fileCount": 6,
172
+ "contentHash": "da42d93b3d21d21109e0f35338c349042dbb01ef442701439dc1d9d4ddbff98d"
173
+ },
174
+ {
175
+ "id": "lootboxes",
176
+ "name": "Chests",
177
+ "type": "feature",
178
+ "engine": "dom",
179
+ "summary": "Chests for any game: the title's lootboxes with every way to open them, once or ten at a time, with an opening animation.",
180
+ "description": "A ready chests screen (Unity LootboxOpeningPopUp) for ANY game, built on the @idosgames/react/ui kit and client.lootbox. Every lootbox of the title as a card for each way to open it (currencies, a chest item, a key); 'Open' once, and 'Open ×10' where the lootbox's ceiling (MaxOpenCount) and the player's balance allow — the box shakes while the server rolls it, bursts, and the rewards fly out. The inventory hands a chest or key item over (ctx.features.open('lootboxes', { itemID })) — the screen then shows what that item opens. Registers the 'lootboxes' feature; its badge counts chests the player can open with the items they hold.",
181
+ "provides": [
182
+ "lootbox list with every way to open",
183
+ "opening animation with rewards",
184
+ "open ten at once",
185
+ "open a chest with a key item",
186
+ "badge for openable chests"
187
+ ],
188
+ "tags": [
189
+ "lootbox",
190
+ "chest",
191
+ "gacha",
192
+ "rewards",
193
+ "ui",
194
+ "screen",
195
+ "economy"
196
+ ],
197
+ "author": {
198
+ "name": "iDos Games",
199
+ "url": "https://idosgames.com"
200
+ },
201
+ "version": "0.1.0",
202
+ "dependencies": {
203
+ "@idosgames/core": "0.19.1",
204
+ "@idosgames/module-sdk": "0.7.0",
205
+ "@idosgames/react": "0.3.0",
206
+ "react": "19.2.7"
207
+ },
208
+ "fileCount": 6,
209
+ "contentHash": "64fb8cc7fb26c68c838117f01739d5bafcc8da16d797691c651658f1911f527e"
210
+ },
211
+ {
212
+ "id": "boosts",
213
+ "name": "Boosts",
214
+ "type": "feature",
215
+ "engine": "dom",
216
+ "summary": "Boosts for any game: timed boosts to activate (×2 rewards and the like), what runs now with timers, and the title's global happy hours.",
217
+ "description": "A ready boosts screen for ANY game, built on the @idosgames/react/ui kit and client.timedBoost. 'Active now': the player's own boosts with their timers or uses left, and the title's global windows (a scheduled happy hour, a phase of a boost chain) marked 'for everyone'. 'Boosts': every boost of the title with its effect as the server applies it (×2, +50%, +10 — to all rewards, quest rewards, board rewards or costs), its duration and uses, activated for free or for currencies/items. The server applies every boost; the screen only shows. Registers the 'boosts' feature. Ships title-seed.json: a free welcome boost and a paid double-rewards boost.",
218
+ "provides": [
219
+ "boosts screen",
220
+ "activate a boost for free or for currency",
221
+ "running boosts with timers",
222
+ "global happy hours"
223
+ ],
224
+ "tags": [
225
+ "boosts",
226
+ "multiplier",
227
+ "happy-hour",
228
+ "monetization",
229
+ "ui",
230
+ "screen",
231
+ "economy"
232
+ ],
233
+ "author": {
234
+ "name": "iDos Games",
235
+ "url": "https://idosgames.com"
236
+ },
237
+ "version": "0.1.0",
238
+ "dependencies": {
239
+ "@idosgames/core": "0.19.1",
240
+ "@idosgames/module-sdk": "0.7.0",
241
+ "@idosgames/react": "0.3.0",
242
+ "react": "19.2.7"
243
+ },
244
+ "fileCount": 6,
245
+ "contentHash": "1c1a852a29a89982e2ed997b1a2356bc4722d00eb4db834ab7472f66f9a8eee3"
246
+ },
247
+ {
248
+ "id": "leaderboard",
249
+ "name": "Leaderboards",
250
+ "type": "feature",
251
+ "engine": "dom",
252
+ "summary": "Leaderboards screen for any game: boards as tabs, top players and my rank, rank rewards, score milestones and the reward of the last round.",
253
+ "description": "A ready leaderboards screen for ANY game, built on the @idosgames/react/ui kit. The title's enabled leaderboards are tabs; each shows a card with the player's score, rank and the countdown to the end of the round, and the top list with the player highlighted and medals for the top three. Rank rewards and score milestones open as popups (claim a milestone there). When a round ends, the reward for the place the player took pops up by itself with a Claim button (like LeaderboardCycleRewardPopup in the Unity SDK). A game that has something to play for the score registers a 'play' feature and a Play button appears on the card. Registers the 'leaderboard' feature; its badge counts boards with a reward waiting. Ships title-seed.json: a weekly best-score leaderboard with rank rewards.",
254
+ "provides": [
255
+ "leaderboard screen with several boards as tabs",
256
+ "top players and my rank",
257
+ "round countdown",
258
+ "rank rewards popup",
259
+ "score milestones with claiming",
260
+ "auto popup for the reward of the finished round",
261
+ "badge for waiting rewards",
262
+ "demo leaderboard settings"
263
+ ],
264
+ "tags": [
265
+ "leaderboard",
266
+ "ranking",
267
+ "top",
268
+ "milestones",
269
+ "rank-rewards",
270
+ "ui",
271
+ "screen",
272
+ "events"
273
+ ],
274
+ "author": {
275
+ "name": "iDos Games",
276
+ "url": "https://idosgames.com"
277
+ },
278
+ "version": "0.1.0",
279
+ "dependencies": {
280
+ "@idosgames/core": "0.19.1",
281
+ "@idosgames/module-sdk": "0.7.0",
282
+ "@idosgames/react": "0.3.0",
283
+ "react": "19.2.7"
284
+ },
285
+ "fileCount": 6,
286
+ "contentHash": "9bc3e6c5600bcee5d20c1449b191702d4eb08a6febbb980a3cf5e397a3a826f5"
287
+ },
288
+ {
289
+ "id": "rewards",
290
+ "name": "Rewards",
291
+ "type": "feature",
292
+ "engine": "dom",
293
+ "summary": "Daily rewards for any game: a login calendar that greets the player once per session.",
294
+ "description": "A ready daily rewards screen for ANY game, built on the @idosgames/react/ui kit and client.reward. A daily login calendar (collected / today / locked cards, the last day a big milestone) that pops up by itself once per session while a reward is waiting (like DailyBonusAutoOpener in the Unity project). Registers the 'rewards' feature; its badge shows the daily bonus waiting. Quests are the quests system. Ships title-seed.json: a 7-day calendar.",
295
+ "provides": [
296
+ "daily login rewards calendar",
297
+ "daily bonus popup on entry",
298
+ "badge for the waiting daily bonus",
299
+ "demo daily calendar"
300
+ ],
301
+ "tags": [
302
+ "daily-rewards",
303
+ "calendar",
304
+ "login",
305
+ "retention",
306
+ "ui",
307
+ "screen",
308
+ "events"
309
+ ],
310
+ "author": {
311
+ "name": "iDos Games",
312
+ "url": "https://idosgames.com"
313
+ },
314
+ "version": "0.1.0",
315
+ "dependencies": {
316
+ "@idosgames/core": "0.19.1",
317
+ "@idosgames/module-sdk": "0.7.0",
318
+ "@idosgames/react": "0.3.0",
319
+ "react": "19.2.7"
320
+ },
321
+ "fileCount": 6,
322
+ "contentHash": "0f3066cc534f0865a232a8883b4374fc88751e4220f151c58dc75b9b0f1abf9b"
323
+ },
324
+ {
325
+ "id": "quests",
326
+ "name": "Quests",
327
+ "type": "feature",
328
+ "engine": "dom",
329
+ "inBase": true,
330
+ "summary": "Quests for any game: quests by cycle with details, claim all and the quest points track.",
331
+ "description": "A ready quests screen (Unity Runtime/UI/Quests) for ANY game, built on the @idosgames/react/ui kit and client.quest. The title's quests: cycles as tabs (daily, weekly, achievements) with the timer to the next cycle, progress bars, a quest details popup with every goal, 'Claim all' for finished quests, and the quest points track with chests to claim along it. Registers the 'quests' feature; its badge counts finished quests. Ships title-seed.json: four daily quests.",
332
+ "provides": [
333
+ "quests by cycle with progress",
334
+ "quest details popup",
335
+ "claim all finished quests",
336
+ "quest points track with milestone chests",
337
+ "badge for finished quests",
338
+ "demo daily quests"
339
+ ],
340
+ "tags": [
341
+ "quests",
342
+ "missions",
343
+ "achievements",
344
+ "daily",
345
+ "ui",
346
+ "screen",
347
+ "events"
348
+ ],
349
+ "author": {
350
+ "name": "iDos Games",
351
+ "url": "https://idosgames.com"
352
+ },
353
+ "version": "0.1.0",
354
+ "dependencies": {
355
+ "@idosgames/core": "0.19.1",
356
+ "@idosgames/module-sdk": "0.7.0",
357
+ "@idosgames/react": "0.3.0",
358
+ "react": "19.2.7"
359
+ },
360
+ "fileCount": 6,
361
+ "contentHash": "7498596d1c779ccadfa57e24b0023652e46c97f5c8657a4ac95ca15b6c8dcc27"
362
+ },
363
+ {
364
+ "id": "collections",
365
+ "name": "Collections",
366
+ "type": "feature",
367
+ "engine": "dom",
368
+ "summary": "Collections for any game: an album of card sets with set rewards and a grand prize, packs and chests, trading spare cards with friends.",
369
+ "description": "A ready collections screen (engine Collection) for ANY game, built on the @idosgames/react/ui kit and client.collection. Album: the player's collection with every set in order — the cards held (with how many) and the gaps, a reward to claim per completed set and a grand prize for the whole album. Packs: every pack type with every way to pay, opened once or ten at a time (the server rolls them — new cards and duplicates are shown), and collection chests bought with the points duplicates turn into. Trades: offers from other players (accept / decline), your own offers (cancel), and giving a spare card to a friend. Registers the 'collections' feature; its badge counts set rewards and the grand prize waiting. Ships title-seed.json: a small album with sets, a pack and a chest.",
370
+ "provides": [
371
+ "collection album with sets",
372
+ "set rewards and grand prize",
373
+ "card packs, once or ten at a time",
374
+ "collection chests for points",
375
+ "trading cards with friends",
376
+ "badge for rewards waiting"
84
377
  ],
85
378
  "tags": [
86
- "idle",
87
- "rpg",
88
- "incremental",
89
- "auto-battler",
90
- "phaser",
91
- "2d"
379
+ "collection",
380
+ "album",
381
+ "cards",
382
+ "stickers",
383
+ "trading",
384
+ "ui",
385
+ "screen",
386
+ "events"
92
387
  ],
93
- "media": {
94
- "image": "https://cloud.idosgames.com/drive/modules/idle-rpg/cover.png",
95
- "video": "https://cloud.idosgames.com/drive/modules/idle-rpg/demo.mp4"
96
- },
97
- "demoUrl": "https://cloud.idosgames.com/drive/modules/idle-rpg/demo/",
98
388
  "author": {
99
389
  "name": "iDos Games",
100
390
  "url": "https://idosgames.com"
101
391
  },
102
392
  "version": "0.1.0",
103
- "events": {
104
- "emits": [
105
- {
106
- "topic": "idle-rpg:character-upgraded@1",
107
- "when": "a hero's level went up (after a successful client.character.upgradeCharacterLevel)",
108
- "payload": {
109
- "characterId": "string",
110
- "level": "number"
111
- }
112
- }
113
- ]
114
- },
115
393
  "dependencies": {
116
- "@idosgames/core": "0.19.0",
117
- "@idosgames/module-sdk": "0.5.0",
394
+ "@idosgames/core": "0.19.1",
395
+ "@idosgames/module-sdk": "0.7.0",
118
396
  "@idosgames/react": "0.3.0",
119
- "@idosgames/wallet": "0.5.1",
120
- "@tanstack/react-query": "5.101.2",
121
- "phaser": "4.2.1",
122
- "react": "19.2.7",
123
- "viem": "2.55.2",
124
- "wagmi": "3.7.2"
397
+ "react": "19.2.7"
125
398
  },
126
- "fileCount": 19,
127
- "contentHash": "143c4595784974ca4d58d5032e77b26e93d1d96c2455974c796c7d5c1d710ba6"
399
+ "fileCount": 6,
400
+ "contentHash": "dc0cf44c410258a1aa38f31d38eba7fb895cde14c7bb4ee67b1c7ee4546b25d0"
128
401
  },
129
402
  {
130
- "id": "voxelcraft",
131
- "name": "VoxelCraft",
132
- "type": "template",
133
- "engine": "three",
134
- "genre": "sandbox",
135
- "summary": "Minecraft-like voxel survival game: mine, craft, build, farm and fight from the first night to the dragon — with worlds generated from a picture + description (with or without AI).",
136
- "description": "A first-person voxel game rendered in Three.js that follows Minecraft's mechanics 1:1 under its own names (every player-facing name lives in one table, so a commercial game can re-skin it; Minecraft names are accepted as aliases). Survival and creative modes: ores and tool tiers, crafting, smelting, armor, hunger, air and drowning, XP, enchanting, anvils, smithing, potions and beacons; farming, animals, taming and riding, fishing, boats and minecarts; villages with trading villagers, raids, and dozens of hostile and neutral mobs. Three dimensions — the overworld (biomes from deserts and jungles to the deep dark, caves, ocean temples, mansions, trial chambers, archaeology), the Inferno (Nether-like: fortresses, its own mobs and biomes) and the Beyond (End-like: citadel portal, the dragon boss, outer islands and cities, wings). Redstone (wire, torches, repeaters, comparators, pistons, observers, hoppers, dispensers, rails), weather, day/night, block light, fluids, achievements, generated music, a chat console with commands, and touch controls. The 'Create world' screen turns a reference picture and a text description into a world — locally in the browser (the picture read as a top-down map or as a mood, the text by keywords) or with InApp AI (client.ai, title feature \"voxel-world\") — via a compact WorldSpec recipe. Worlds autosave to 'My worlds'. The agent sees and drives the game through its debug surface (state, lookingAt, console commands). Covers any 'Minecraft clone', survival / crafting / mining game, block-building sandbox or 'generate a world from a picture' request; by far the largest feature module. Co-op multiplayer for up to 8 players, like Minecraft's 'Open to LAN': a player opens their world to the network (by invite code or in the public list, guest game mode, 'commands for everyone' switch), others join from the 'Network game' screen; the host grants operator, kicks and bans. Peer-to-peer over WebRTC (the SDK transport @idosgames/core/realtime, rooms and signaling on the engine's Multiplayer module; TURN relay from the engine when configured): each live dimension is simulated by one player and players may be in different dimensions at once; everyone's own inventory and progress stay theirs; when the host leaves or its tab dies the world moves to another player without stopping. Needs the title's Multiplayer section enabled (Host topology). Not included yet: AI-driven villagers and a dedicated server.",
403
+ "id": "craft",
404
+ "name": "Craft",
405
+ "type": "feature",
406
+ "engine": "dom",
407
+ "summary": "Craft screen for any game: trade-up recipes by rarity or collection, a contract of owned items, auto-fill, price options and the result popup.",
408
+ "description": "A ready craft screen (Unity Alikhan/Craft) for ANY game, built on the @idosgames/react/ui kit and client.craft. The screen lists the title's recipes as cards, lowest rarity first: what goes in (N items of a rarity or a collection) and what can come out. A recipe opens as a popup — the contract: the fitting items the player owns (worn equipment does not count), tap to add, 'Auto' fills from the most plentiful, the price options, and 'Craft'. The server rolls the result (only items with a roll Weight > 0 are promised) and the reward popup shows it flying into the inventory. 'Not enough coins' offers to open the shop (ctx.features.open('store')). Registers the 'craft' feature; its badge counts recipes the player can run now. Ships title-seed.json: 3 Common → Rare for coins and 3 Rare → Legendary for gems.",
137
409
  "provides": [
138
- "first-person voxel world: mine, place and break blocks",
139
- "survival and creative modes (health, hunger, air, XP, death and respawn)",
140
- "crafting, smelting, tool and armor tiers",
141
- "enchanting, anvil, smithing, potions, beacon",
142
- "farming, animals, taming and riding, fishing, boats",
143
- "villages, trading villagers, raids",
144
- "dozens of hostile and neutral mobs, bosses (dragon, ash lord)",
145
- "three dimensions: overworld, Inferno (Nether-like), Beyond (End-like)",
146
- "biomes, caves and structures (temples, mansions, fortresses, trial chambers, ruins)",
147
- "redstone: wire, repeaters, comparators, pistons, observers, hoppers, rails and minecarts",
148
- "weather, day/night cycle, block light and fluid simulation",
149
- "achievements and procedurally generated music",
150
- "chat console with commands (/give, /tp, /locate, /summon, …)",
151
- "touch controls for mobile",
152
- "world generation from a picture + description (WorldSpec recipe)",
153
- "AI world generation via client.ai (feature \"voxel-world\")",
154
- "AI builds objects from pictures out of coloured blocks (a plane, a car… — models of shapes)",
155
- "AI recreates landscapes from pictures (terrain sketch, rivers, biomes)",
156
- "co-op multiplayer up to 8 players (P2P over WebRTC, @idosgames/core/realtime)",
157
- "open the world to the network: invite code or public list, guest game mode, operators, kick and ban",
158
- "players in different dimensions at once; host migration without stopping the world",
159
- "autosave and 'My worlds' (IndexedDB)",
160
- "own player-facing names for a re-skinnable commercial game (Minecraft names as aliases)",
161
- "3D block rendering (Three.js)"
410
+ "craft screen from the title's recipes",
411
+ "trade-up by rarity or collection",
412
+ "contract popup with owned items",
413
+ "auto-fill of the contract",
414
+ "price options",
415
+ "craft result with reward animation",
416
+ "craft badge for runnable recipes",
417
+ "demo recipes"
162
418
  ],
163
419
  "tags": [
164
- "voxel",
165
- "sandbox",
166
- "survival",
420
+ "craft",
167
421
  "crafting",
168
- "minecraft",
169
- "3d",
170
- "first-person",
171
- "open-world",
172
- "redstone",
173
- "mobile",
174
- "three",
175
- "ai",
176
- "world-generation",
177
- "multiplayer",
178
- "co-op"
422
+ "trade-up",
423
+ "items",
424
+ "ui",
425
+ "screen",
426
+ "economy"
179
427
  ],
180
- "media": {
181
- "image": "https://cloud.idosgames.com/drive/modules/voxelcraft/cover.png",
182
- "video": "https://cloud.idosgames.com/drive/modules/voxelcraft/demo.mp4"
183
- },
184
- "demoUrl": "https://cloud.idosgames.com/drive/modules/voxelcraft/demo/",
185
428
  "author": {
186
429
  "name": "iDos Games",
187
430
  "url": "https://idosgames.com"
188
431
  },
189
- "version": "0.4.0",
432
+ "version": "0.1.0",
190
433
  "dependencies": {
191
- "@idosgames/core": "0.19.0",
192
- "@idosgames/module-sdk": "0.5.0",
193
- "three": "0.185.1"
434
+ "@idosgames/core": "0.19.1",
435
+ "@idosgames/module-sdk": "0.7.0",
436
+ "@idosgames/react": "0.3.0",
437
+ "react": "19.2.7"
194
438
  },
195
- "fileCount": 537,
196
- "contentHash": "1648a7174756f00cb7952db0fd5fb4f556793acc190238e18c393cc4d607de0a"
439
+ "fileCount": 6,
440
+ "contentHash": "552ef22ea9a8d06c8306a72caa5dc8b86165a197c6a7fa7cb41a4fb39bf55df5"
197
441
  },
198
442
  {
199
- "id": "showcase",
200
- "name": "Showcase",
201
- "type": "template",
443
+ "id": "marketplace",
444
+ "name": "Marketplace",
445
+ "type": "feature",
202
446
  "engine": "dom",
203
- "genre": "casual",
204
- "sharedUi": {
205
- "drawsOwn": [
206
- "account",
207
- "menu"
208
- ]
209
- },
210
- "summary": "The lobby a new title starts from: balances, the profile and the game's screens (shop, heroes, leaders, rewards, …) as tabs and 'More', plus a tiny mini-game.",
211
- "description": "The minimal complete app a new title starts from when no other template fits the idea. It is a LOBBY: every screen is another catalog module registered as a feature of the game (ctx.features) — store-ui, inventory-ui, leaderboard-ui, rewards-ui and the other *-ui modules — and the lobby lays out whatever is installed: tabs at the bottom with 'More' on a phone, a centred tab pill on a tablet, a side rail on a desktop, badges on every tab. Its own content is only a 15-second tap mini-game that submits a score to the title's leaderboard and reports rounds to quests. The header shows the balances (reward icons fly into them) and the player's profile. Remove a screen module from src/modules.ts and its tab disappears; add one and it appears. Ships title-seed.json with the currencies and items the screens share; each screen module brings its own section.",
447
+ "summary": "Marketplace screen for any game: player listings and auctions, selling, bids, direct trades, claims and history.",
448
+ "description": "A ready player marketplace (Unity Alikhan/Marketplace) for ANY game, built on the @idosgames/react/ui kit and client.marketplace. Tabs: the market (items grouped with their cheapest price), my lots, my bids, direct trades, things to claim and history. Everything detailed is a popup: an item's offers (cheapest listing first, then auctions ending soonest), one offer (buy, bid with the engine's minimum next bid, cancel your own), selling (pick an item — only tradable, never a worn one — then listing or auction, amount, price in a currency tradable between players, duration and the commission), and incoming trades (accept / decline). The server holds the escrow and settles every trade. Registers the 'marketplace' feature; its badge counts things to claim and trades waiting. Ships title-seed.json: listings and auctions for currencies with a 5% commission.",
212
449
  "provides": [
213
- "lobby for a game made of screen modules",
214
- "bottom tabs with More on phones, tab pill on tablets, side rail on desktops",
215
- "badges on tabs",
216
- "balance counters that reward icons fly into",
217
- "player profile button",
218
- "tap mini-game that submits a leaderboard score",
219
- "demo currencies and items"
450
+ "player marketplace screen",
451
+ "listings and auctions",
452
+ "sell popup with price and duration",
453
+ "bids with the minimum next bid",
454
+ "direct trades",
455
+ "claims and history",
456
+ "marketplace badge",
457
+ "demo marketplace rules"
220
458
  ],
221
459
  "tags": [
222
- "starter",
223
- "showcase",
224
- "lobby",
225
- "menu",
226
- "tabs",
227
- "mini-game",
228
- "casual"
460
+ "marketplace",
461
+ "trading",
462
+ "auction",
463
+ "listing",
464
+ "p2p",
465
+ "ui",
466
+ "screen",
467
+ "economy"
229
468
  ],
230
469
  "author": {
231
470
  "name": "iDos Games",
@@ -233,101 +472,80 @@
233
472
  },
234
473
  "version": "0.1.0",
235
474
  "dependencies": {
236
- "@idosgames/core": "0.19.0",
237
- "@idosgames/module-sdk": "0.5.0",
475
+ "@idosgames/core": "0.19.1",
476
+ "@idosgames/module-sdk": "0.7.0",
238
477
  "@idosgames/react": "0.3.0",
239
478
  "react": "19.2.7"
240
479
  },
241
- "fileCount": 10,
242
- "contentHash": "72b9c79dc24f916da62550f6e69e37fc5d72e92a00db853f6f0ec6332b97372d"
480
+ "fileCount": 6,
481
+ "contentHash": "1996992148c6539aacebc78427829df8c778879e3a89d7ca5d948f081c2bd4e0"
243
482
  },
244
483
  {
245
- "id": "game-hud",
246
- "name": "Game HUD",
484
+ "id": "deals",
485
+ "name": "Offers",
247
486
  "type": "feature",
248
487
  "engine": "dom",
249
- "sharedUi": {
250
- "provides": [
251
- "currency-bar",
252
- "wallet",
253
- "status",
254
- "account",
255
- "menu"
256
- ]
257
- },
258
- "summary": "Shared game HUD: one currency bar, wallet button, status line and account chip across every mode.",
259
- "description": "The shared chrome for a game made of several modules. It takes every shared-UI role (currency-bar, wallet, status, account), so templates mixed into the same game hide their own balances, wallet and status line automatically — without editing them. Stays on screen in every mode (a HUD panel with activeOnly: false), clears the status on each mode switch, and is ordinary editable React: restyle or replace it like any other module. Installed automatically when a project starts from two or more templates.",
488
+ "summary": "Special offers for any game: a new deal pops up by itself; single offers, step chains and pick-one gifts with a milestone bar.",
489
+ "description": "Special offers (Unity Alikhan/DealOffer) for ANY game, built on the @idosgames/react/ui kit and client.dealOffer. An always-on watcher pops a newly started deal up by itself once (and records the impression with recordShow); the 'Offers' screen lists every active deal with its timer and everything it can give. A deal opens as a popup shaped by its node graph: one big offer, a chain of steps (each unlocks the next, the server decides status), or cards to pick one from; free steps, currency prices, store-only steps and the milestone bar with its rewards. Registers the 'deals' feature; its badge counts free steps and milestone rewards waiting. Ships title-seed.json: a three-step starter pack with a bonus and a free pick-one welcome gift.",
260
490
  "provides": [
261
- "one shared currency balance bar for every mode",
262
- "one crypto wallet button (deposit / withdraw) for the whole game",
263
- "shared status line / toast messages across modes",
264
- "player ID with copy and a log-out button",
265
- "consistent HUD when mixing several game templates"
491
+ "special offers screen",
492
+ "auto-popup of a new deal",
493
+ "single, chain and pick-one offers",
494
+ "offer milestones",
495
+ "deals badge",
496
+ "demo offers"
266
497
  ],
267
498
  "tags": [
268
- "hud",
499
+ "offers",
500
+ "deals",
501
+ "starter-pack",
502
+ "monetization",
503
+ "popup",
269
504
  "ui",
270
- "shared",
271
- "wallet",
272
- "currency",
273
- "status",
274
- "chrome"
505
+ "screen",
506
+ "economy"
275
507
  ],
276
508
  "author": {
277
509
  "name": "iDos Games",
278
510
  "url": "https://idosgames.com"
279
511
  },
280
512
  "version": "0.1.0",
281
- "events": {
282
- "listens": [
283
- {
284
- "topic": "host:mode-changed@1",
285
- "why": "clears the previous mode's status message when the player switches modes"
286
- }
287
- ]
288
- },
289
513
  "dependencies": {
290
- "@idosgames/core": "0.19.0",
291
- "@idosgames/module-sdk": "0.5.0",
514
+ "@idosgames/core": "0.19.1",
515
+ "@idosgames/module-sdk": "0.7.0",
292
516
  "@idosgames/react": "0.3.0",
293
- "@idosgames/wallet": "0.5.1",
294
- "@tanstack/react-query": "5.101.2",
295
- "react": "19.2.7",
296
- "viem": "2.55.2",
297
- "wagmi": "3.7.2"
517
+ "react": "19.2.7"
298
518
  },
299
- "fileCount": 10,
300
- "contentHash": "08e902f30f360b5638c6432dd938b2b1cc120cc2bc9fbab9dde4ca926b914a5c"
519
+ "fileCount": 6,
520
+ "contentHash": "f4633cc8068e4679f7321ca9353fd633271d877e8e003b73c237a7dcfb5f7e71"
301
521
  },
302
522
  {
303
- "id": "workshop",
304
- "name": "Workshop",
523
+ "id": "events",
524
+ "name": "Events",
305
525
  "type": "feature",
306
526
  "engine": "dom",
307
- "summary": "Workshop: players and the publisher share content (maps, levels, skins, models) — free, for in-game resources, or unlocked by holding items.",
308
- "description": "A ready catalog of user-generated content for ANY game. Players publish what they made (a world, a level, a skin, any file the title allows), set how others get it — free, a price in in-game resources (several options at once, the author receives it minus commission), or 'hold N of this item / currency to unlock' (nothing is charged; while held or once) — and others browse, filter, acquire, open, like, favorite, follow authors and report. The publisher configures content types, formats, limits, commission and moderation in the Workshop section of the title config, curates featured collections and publishes official content from the dashboard. A game plugs its own content in by registering a handler with ctx.content.registerType({ type, label, listLocal, capture, open, modeId }) — the Workshop never imports the game. VoxelCraft registers 'voxelcraft.world'.",
527
+ "summary": "Limited-time events for any game: event tabs with a timer, a token bar, a milestone track, claim all and a VIP second prize.",
528
+ "description": "A ready events screen (Unity Core/Window LimitedTimeEvent) for ANY game, built on the @idosgames/react/ui kit and client.timedEvent. Every active event the server resolves (scheduled, cyclic or chained) is a tab: its name and timer, the token bar toward the next prize and the milestone track in threshold order. A milestone pays its reward and, when the reward has premium tiers, a VIP second prize; a pass bought later tops up the milestones already claimed. 'Claim all' takes everything waiting in one call. How the tokens are earned (the event's token sources with their daily caps) is a popup; 'Get VIP' opens the VIP system (ctx.features.open('premium', { premiumID })) and shows only when it is installed and has a pass. Registers the 'events' feature; its badge counts milestones and VIP top-ups waiting. Tokens come from the game: a round of play is a CustomAction the game grants with client.timedEvent.grantTokens (the mini-game module does it for every active event that lists the action). Ships title-seed.json: a weekly 'Star festival' with five milestones and a VIP prize on each.",
309
529
  "provides": [
310
- "player-made content catalog (maps, levels, skins, models, any file type the title allows)",
311
- "publish a map or level made in the game",
312
- "sell content for in-game resources with author royalties minus commission",
313
- "free content sharing",
314
- "unlock content by holding an item or currency without spending it",
315
- "likes, favorites and following content creators",
316
- "report content and auto-hide after reports",
317
- "publisher featured collections and official content",
318
- "download and open shared content in the game"
530
+ "events screen with a tab per active event",
531
+ "event timer and token progress bar",
532
+ "milestone track with rewards",
533
+ "VIP second prize and top-up after purchase",
534
+ "claim all milestones",
535
+ "how-to-earn popup with daily caps",
536
+ "hand-off to the VIP system",
537
+ "events badge",
538
+ "demo weekly event"
319
539
  ],
320
540
  "tags": [
321
- "workshop",
322
- "ugc",
323
- "user-generated-content",
324
- "maps",
325
- "levels",
326
- "mods",
327
- "sharing",
328
- "marketplace",
329
- "creators",
330
- "social"
541
+ "events",
542
+ "live-ops",
543
+ "limited-time",
544
+ "milestones",
545
+ "battle-pass",
546
+ "vip",
547
+ "ui",
548
+ "screen"
331
549
  ],
332
550
  "author": {
333
551
  "name": "iDos Games",
@@ -335,40 +553,36 @@
335
553
  },
336
554
  "version": "0.1.0",
337
555
  "dependencies": {
338
- "@idosgames/core": "0.19.0",
339
- "@idosgames/module-sdk": "0.5.0",
556
+ "@idosgames/core": "0.19.1",
557
+ "@idosgames/module-sdk": "0.7.0",
340
558
  "@idosgames/react": "0.3.0",
341
559
  "react": "19.2.7"
342
560
  },
343
- "fileCount": 4,
344
- "contentHash": "01b9b8439ce44320e7ea8a1aa0a679b3773c291c784a5999c9eab7114c80339d"
561
+ "fileCount": 6,
562
+ "contentHash": "a45709a4e04f56860341a73b92f49d71d6c44a10d2be944d001680d3e8c43af9"
345
563
  },
346
564
  {
347
- "id": "store-ui",
348
- "name": "Shop",
565
+ "id": "coop-events",
566
+ "name": "Team event",
349
567
  "type": "feature",
350
568
  "engine": "dom",
351
- "summary": "Shop screen for any game: the title's storefront with stores as tabs, offer cards, purchase confirmation and the reward animation.",
352
- "description": "A ready shop for ANY game, built on the @idosgames/react/ui kit. It draws the storefront the server resolves for the player (client.store.getStorefront — rotation, limits, timers and badges are the server's), several stores as tabs, the first section of a store as a carousel and the rest as grids, a free daily gift that shines, sold-out and not-yet-available states with countdowns, a confirmation popup (a bottom sheet on phones) and the 'You got' animation where rewards fly to the balance counters. Registers itself as the 'store' feature of the game (ctx.features): the showcase lobby shows it as a tab, the shared HUD's ☰ lists it, and any module can open it with ctx.features.open('store'). Its badge counts free offers waiting. Ships title-seed.json: a demo store with a daily gift, items and currency packs.",
569
+ "summary": "Team events for any game: join a group, each member spins the wheel to build their own object, the team shares a grand prize.",
570
+ "description": "A ready team event screen (engine CoopEvent) for ANY game, built on the @idosgames/react/ui kit and client.coopEvent. Not in a group: the running team events of the title with their timers and team prize, 'Join a team' (the server matches partners, helpers fill the gaps). In a group: every member with their object and its progress, 'Spin' (once or five at a time, free or for currency) to build your own object, the object's reward when it is done, the team prize when every object is done, and leaving the team. The group lives in one shared document on the server — the screen re-reads it after every action. Registers the 'coop-events' feature; its badge counts the object reward and the team prize waiting. Ships title-seed.json: a weekly team build event.",
353
571
  "provides": [
354
- "shop screen from the title storefront",
355
- "several stores as tabs",
356
- "offer carousel and grids with countdowns",
357
- "free daily gift offer",
358
- "purchase confirmation popup",
359
- "reward animation with icons flying to balances",
360
- "shop badge for free offers",
361
- "demo store settings"
572
+ "team event screen",
573
+ "join a team (matchmaking by the server)",
574
+ "spin to build your object",
575
+ "object reward and team prize",
576
+ "badge for rewards waiting"
362
577
  ],
363
578
  "tags": [
364
- "shop",
365
- "store",
366
- "storefront",
367
- "purchase",
368
- "offers",
579
+ "coop",
580
+ "team",
581
+ "group",
582
+ "events",
583
+ "social",
369
584
  "ui",
370
- "screen",
371
- "economy"
585
+ "screen"
372
586
  ],
373
587
  "author": {
374
588
  "name": "iDos Games",
@@ -376,43 +590,40 @@
376
590
  },
377
591
  "version": "0.1.0",
378
592
  "dependencies": {
379
- "@idosgames/core": "0.19.0",
380
- "@idosgames/module-sdk": "0.5.0",
593
+ "@idosgames/core": "0.19.1",
594
+ "@idosgames/module-sdk": "0.7.0",
381
595
  "@idosgames/react": "0.3.0",
382
596
  "react": "19.2.7"
383
597
  },
384
- "fileCount": 7,
385
- "contentHash": "f9ef650d747113ee2ad1347cfe8b2d7e8b7d3b2ccfcaf0c1dedbfcdb4d509359"
598
+ "fileCount": 6,
599
+ "contentHash": "a8a8cda19becde2ed4fc12f338866442c3175a8e8ad0650110ca7057896541ab"
386
600
  },
387
601
  {
388
- "id": "character-ui",
389
- "name": "Heroes",
602
+ "id": "season",
603
+ "name": "Season",
390
604
  "type": "feature",
391
605
  "engine": "dom",
392
- "summary": "Heroes screen for any game: roster, ranks and stats with their costs, equipment slots with 'Equip best', item levels and skins.",
393
- "description": "A ready heroes screen (the Hero button of the Unity SDK) for ANY game, built on the @idosgames/react/ui kit and client.character. The screen is the selected hero's equipment hub: portrait, class and rarity, rank and server-computed Power, 'Rank up' with its price, gear slots (locked ones show the rank they open at), 'Equip best' when better gear fits, and the gear the player owns by class. Everything detailed is a popup: the hero list (select, unlock for currency), the stats (level/cap bars, upgrade prices, requirements, and 'where this number comes from' — base, stat levels, rank, gear flat and percent bonuses), a slot's fitting gear, a piece of gear (equip / take off / level up) and skins (wear, buy). Prices and caps follow the title's curves (rank ladder, stat cost curve, StatMaxLevelCurve, item Upgrade); the server re-checks everything. Registers the 'character' feature; the inventory hands equipment to it with ctx.features.open('character', { itemInstanceID }). Its badge counts heroes to unlock or rank up and better gear. Ships title-seed.json: three heroes (Knight free, Archer and Mage for gems) with stats, ranks and slots.",
606
+ "summary": "Seasons for any game: the active season with its timer, a status bar, a tier ladder with a reward each, claim all and a VIP second prize.",
607
+ "description": "A ready season screen (Unity Core/Window MilestoneRewards) for ANY game, built on the @idosgames/react/ui kit and client.season. Every season chain of the title is a tab showing its active season: name and timer, the player's tier, the status bar toward the next tier and the tier ladder. Each tier pays its reward once ('Claim all' takes every reached tier in one call); a tier with premium tiers pays a VIP second prize when the pass is active at the moment of the claim. 'Get VIP' opens the VIP system (ctx.features.open('premium', { premiumID })) and shows only when it is installed and has a pass. The server decides the tier — including status tokens that arrive as rewards of other systems. Registers the 'season' feature; its badge counts tier rewards waiting and it reloads when status tokens are granted. Status comes from the game: a chain open to clients takes client.season.grantStatusTokens (the mini-game module grants status for every round). Ships title-seed.json: two alternating 28-day seasons with five tiers and a VIP prize on each.",
394
608
  "provides": [
395
- "hero roster with unlock for currency",
396
- "rank up with price by the rank ladder",
397
- "stat upgrades with costs, caps and requirements",
398
- "stat breakdown popup by source",
399
- "equipment slots and equip / take off",
400
- "equip best gear automatically",
401
- "item level upgrades",
402
- "character skins",
403
- "demo heroes"
404
- ],
405
- "tags": [
406
- "heroes",
407
- "characters",
408
- "rpg",
409
- "stats",
410
- "equipment",
411
- "gear",
412
- "skins",
609
+ "season screen with a tab per chain",
610
+ "season timer and status bar",
611
+ "tier ladder with rewards",
612
+ "claim all reached tiers",
613
+ "VIP second prize on tiers",
614
+ "hand-off to the VIP system",
615
+ "season badge",
616
+ "demo seasons"
617
+ ],
618
+ "tags": [
619
+ "season",
620
+ "battle-pass",
621
+ "tiers",
622
+ "progression",
623
+ "live-ops",
624
+ "vip",
413
625
  "ui",
414
- "screen",
415
- "economy"
626
+ "screen"
416
627
  ],
417
628
  "author": {
418
629
  "name": "iDos Games",
@@ -420,38 +631,39 @@
420
631
  },
421
632
  "version": "0.1.0",
422
633
  "dependencies": {
423
- "@idosgames/core": "0.19.0",
424
- "@idosgames/module-sdk": "0.5.0",
634
+ "@idosgames/core": "0.19.1",
635
+ "@idosgames/module-sdk": "0.7.0",
425
636
  "@idosgames/react": "0.3.0",
426
637
  "react": "19.2.7"
427
638
  },
428
- "fileCount": 7,
429
- "contentHash": "25261212eb2e582d0b2cd403ac1fe6406f2b76a5681d7cda1b99708ae136e25f"
639
+ "fileCount": 6,
640
+ "contentHash": "71faf793fef491d7e27dd6e3a5e7072d5e32159f60bff658bae3d68f2bdfd74c"
430
641
  },
431
642
  {
432
- "id": "inventory-ui",
433
- "name": "Inventory",
643
+ "id": "friends",
644
+ "name": "Friends",
434
645
  "type": "feature",
435
646
  "engine": "dom",
436
- "summary": "Inventory screen for any game: owned items by rarity with category tabs, item cards, chests opened with an animation.",
437
- "description": "A ready inventory for ANY game, built on the @idosgames/react/ui kit. It shows what the player owns from the SDK's cached inventory (no request of its own): category tabs (equipment, consumables, other), rarity frames, counts and levels, and an item card popup with the description. Lootboxes: a Chests tab lists the title's lootboxes with every way to open them, and an item that is a chest's key gets an 'Open' button — the box shakes while the server rolls it, bursts, and the rewards fly out. Equipment hands off to the heroes screen (ctx.features.open('character', { itemInstanceID })) when character-ui is installed. Registers the 'inventory' feature; its badge counts chests the player can open with the items they hold.",
647
+ "inBase": true,
648
+ "summary": "Friends for any game: the friends list, requests, suggestions and the notification inbox, with a player card and add-by-ID in popups.",
649
+ "description": "A ready friends screen (Unity Runtime/UI/Friends) for ANY game, built on the @idosgames/react/ui kit and client.social. Tabs: friends, requests (incoming with accept / decline, and the ones you sent), suggestions (players active in this game lately) and news — the notification inbox (attacks, raids, new friends, sales, follows, likes, comments), opened as seen. The player's own ID sits on top with a copy button. Everything detailed is a popup: adding a friend by ID, the player card (level, power; message — opens the chat feature when chat is installed; remove friend; block) and the confirmations. When the title takes friends from idosgames.com only, requests, suggestions and 'Add' disappear and platform friends cannot be removed in the game. Registers the 'friends' feature; its badge counts requests waiting and unread news. No title settings needed.",
438
650
  "provides": [
439
- "inventory screen with rarity and categories",
440
- "item details popup",
441
- "lootbox list and opening animation",
442
- "open a chest with a key item",
443
- "hand-off of equipment to the heroes screen",
444
- "badge for openable chests"
651
+ "friends list",
652
+ "incoming and sent friend requests",
653
+ "friend suggestions",
654
+ "notification inbox",
655
+ "add a friend by ID",
656
+ "player card with message, remove and block",
657
+ "friends badge"
445
658
  ],
446
659
  "tags": [
447
- "inventory",
448
- "items",
449
- "lootbox",
450
- "chest",
451
- "rarity",
660
+ "friends",
661
+ "social",
662
+ "requests",
663
+ "inbox",
664
+ "notifications",
452
665
  "ui",
453
- "screen",
454
- "economy"
666
+ "screen"
455
667
  ],
456
668
  "author": {
457
669
  "name": "iDos Games",
@@ -459,40 +671,39 @@
459
671
  },
460
672
  "version": "0.1.0",
461
673
  "dependencies": {
462
- "@idosgames/core": "0.19.0",
463
- "@idosgames/module-sdk": "0.5.0",
674
+ "@idosgames/core": "0.19.1",
675
+ "@idosgames/module-sdk": "0.7.0",
464
676
  "@idosgames/react": "0.3.0",
465
677
  "react": "19.2.7"
466
678
  },
467
- "fileCount": 7,
468
- "contentHash": "da8d010169e57e032afbdd0805d206b7f0cd39e0662f00a18b4bb2f7d7da7c63"
679
+ "fileCount": 6,
680
+ "contentHash": "24e30cf8e6717be3fa368830a3b5fdee5a5b8f823a890051274ef1900e570bc9"
469
681
  },
470
682
  {
471
- "id": "leaderboard-ui",
472
- "name": "Leaderboards",
683
+ "id": "chat",
684
+ "name": "Chat",
473
685
  "type": "feature",
474
686
  "engine": "dom",
475
- "summary": "Leaderboards screen for any game: boards as tabs, top players and my rank, rank rewards, score milestones and the reward of the last round.",
476
- "description": "A ready leaderboards screen for ANY game, built on the @idosgames/react/ui kit. The title's enabled leaderboards are tabs; each shows a card with the player's score, rank and the countdown to the end of the round, and the top list with the player highlighted and medals for the top three. Rank rewards and score milestones open as popups (claim a milestone there). When a round ends, the reward for the place the player took pops up by itself with a Claim button (like LeaderboardCycleRewardPopup in the Unity SDK). A game that has something to play for the score registers a 'play' feature and a Play button appears on the card. Registers the 'leaderboard' feature; its badge counts boards with a reward waiting. Ships title-seed.json: a weekly best-score leaderboard with rank rewards.",
687
+ "summary": "Chat for any game: channels as tabs, private chats, a feed with earlier messages, slow mode, and report / ignore / write privately in a popup.",
688
+ "description": "A ready player chat (Unity V2/Runtime/UI/Chat) for ANY game, built on the @idosgames/react/ui kit and client.chat. The title's channels are tabs (names are localization keys) plus 'Private' — 1-on-1 chats (with friends when the title says so). The feed loads its history, pages back to earlier messages, shows the server's copy of what was sent (moderation may mask a word) and counts down the slow mode; a channel the player may not write to shows the server's reason. ONE poll covers every room and runs only while the screen is open, at the interval the server sets; rooms are marked read when the player leaves them. Popups: a message's actions (write privately, report with a reason, ignore the player) and the channel list to join or leave opt-in channels. Registers the 'chat' feature; features.open('chat', { userID }) opens a private chat (the friends card uses it). Its badge is the unread count, read once per session — a closed chat costs nothing. Ships title-seed.json: a world channel, an opt-in trade channel, private chats between friends.",
477
689
  "provides": [
478
- "leaderboard screen with several boards as tabs",
479
- "top players and my rank",
480
- "round countdown",
481
- "rank rewards popup",
482
- "score milestones with claiming",
483
- "auto popup for the reward of the finished round",
484
- "badge for waiting rewards",
485
- "demo leaderboard settings"
690
+ "chat channels as tabs",
691
+ "private chats",
692
+ "message feed with earlier messages",
693
+ "slow mode countdown",
694
+ "report, ignore and write privately",
695
+ "join and leave channels",
696
+ "chat badge",
697
+ "demo channels"
486
698
  ],
487
699
  "tags": [
488
- "leaderboard",
489
- "ranking",
490
- "top",
491
- "milestones",
492
- "rank-rewards",
700
+ "chat",
701
+ "social",
702
+ "messages",
703
+ "dm",
704
+ "moderation",
493
705
  "ui",
494
- "screen",
495
- "events"
706
+ "screen"
496
707
  ],
497
708
  "author": {
498
709
  "name": "iDos Games",
@@ -500,40 +711,39 @@
500
711
  },
501
712
  "version": "0.1.0",
502
713
  "dependencies": {
503
- "@idosgames/core": "0.19.0",
504
- "@idosgames/module-sdk": "0.5.0",
714
+ "@idosgames/core": "0.19.1",
715
+ "@idosgames/module-sdk": "0.7.0",
505
716
  "@idosgames/react": "0.3.0",
506
717
  "react": "19.2.7"
507
718
  },
508
- "fileCount": 7,
509
- "contentHash": "8a49ee014e841fdc2e342f03b66fbd4172e2e09a07618cd72214b7ff8f0ecb57"
719
+ "fileCount": 6,
720
+ "contentHash": "10eb1b49d043a7002a4c51b8d9aefac3112679599b97881a8102992cb7e103a1"
510
721
  },
511
722
  {
512
- "id": "rewards-ui",
513
- "name": "Rewards",
723
+ "id": "invite",
724
+ "name": "Invite",
514
725
  "type": "feature",
515
726
  "engine": "dom",
516
- "summary": "Rewards screen for any game: a daily login calendar that greets the player, quests by cycle with details and the quest points track.",
517
- "description": "A ready rewards screen for ANY game, built on the @idosgames/react/ui kit. A daily login calendar (collected / today / locked cards, the last day a big milestone) that pops up by itself once per session while a reward is waiting (like DailyBonusAutoOpener in the Unity project), and the title's quests: cycles as tabs (daily, weekly, achievements), progress bars, a quest details popup with every goal, 'Claim all' for finished quests, and the quest points track with chests to claim along it. Registers the 'rewards' feature; its badge counts the daily bonus and finished quests. Ships title-seed.json: a 7-day calendar and four daily quests.",
727
+ "inBase": true,
728
+ "summary": "Invite friends for any game: your code and link to share, friends who came by it, rewards for them, and entering a friend's code in a popup.",
729
+ "description": "A ready invite-a-friend screen (Unity V2/Runtime/UI/Referral) for ANY game, built on the @idosgames/react/ui kit and client.referral. The player's own short code (minted by the server when the screen opens) with 'Copy' and 'Share link' (the system share sheet, else the clipboard), how many friends came by it and the reward ladder for them (claim one or all). Entering a friend's code is a popup: it shows the newcomer's gift, reads the code the way the server does (8 letters, separators and case ignored) and pays the gift once. A player bound at login by an invite link sees 'You joined by a friend's code'. Registers the 'invite' feature — always shown in the lobby; while the title has invites off (Referral.IsEnabled, off by default) the screen says so and makes no request. Its badge counts invite rewards ready. Ships title-seed.json: a gift for the newcomer and rewards for 1, 3 and 5 friends.",
518
730
  "provides": [
519
- "daily login rewards calendar",
520
- "daily bonus popup on entry",
521
- "quests by cycle with progress",
522
- "quest details popup",
523
- "claim all finished quests",
524
- "quest points track with milestone chests",
525
- "badge for waiting rewards",
526
- "demo daily calendar and quests"
731
+ "own invite code and link",
732
+ "share or copy the invite",
733
+ "friends who came by your code",
734
+ "invite reward ladder with claim all",
735
+ "enter a friend's code popup",
736
+ "invite badge",
737
+ "demo referral rewards"
527
738
  ],
528
739
  "tags": [
529
- "daily-rewards",
530
- "calendar",
531
- "quests",
532
- "missions",
533
- "achievements",
740
+ "referral",
741
+ "invite",
742
+ "friends",
743
+ "growth",
744
+ "social",
534
745
  "ui",
535
- "screen",
536
- "events"
746
+ "screen"
537
747
  ],
538
748
  "author": {
539
749
  "name": "iDos Games",
@@ -541,39 +751,40 @@
541
751
  },
542
752
  "version": "0.1.0",
543
753
  "dependencies": {
544
- "@idosgames/core": "0.19.0",
545
- "@idosgames/module-sdk": "0.5.0",
754
+ "@idosgames/core": "0.19.1",
755
+ "@idosgames/module-sdk": "0.7.0",
546
756
  "@idosgames/react": "0.3.0",
547
757
  "react": "19.2.7"
548
758
  },
549
- "fileCount": 7,
550
- "contentHash": "d1668715eb73258f9b6e9f3b24159cf369fac3954d1ccf74bab6c3c5fe674944"
759
+ "fileCount": 6,
760
+ "contentHash": "9e550203e022c98c4f8292d4f484bed6dae6abd259fff5cd8d0c4ec972371e6e"
551
761
  },
552
762
  {
553
- "id": "craft-ui",
554
- "name": "Craft",
763
+ "id": "mailbox",
764
+ "name": "Mailbox",
555
765
  "type": "feature",
556
766
  "engine": "dom",
557
- "summary": "Craft screen for any game: trade-up recipes by rarity or collection, a contract of owned items, auto-fill, price options and the result popup.",
558
- "description": "A ready craft screen (Unity Alikhan/Craft) for ANY game, built on the @idosgames/react/ui kit and client.craft. The screen lists the title's recipes as cards, lowest rarity first: what goes in (N items of a rarity or a collection) and what can come out. A recipe opens as a popup — the contract: the fitting items the player owns (worn equipment does not count), tap to add, 'Auto' fills from the most plentiful, the price options, and 'Craft'. The server rolls the result (only items with a roll Weight > 0 are promised) and the reward popup shows it flying into the inventory. 'Not enough coins' offers to open the shop (ctx.features.open('store')). Registers the 'craft' feature; its badge counts recipes the player can run now. Ships title-seed.json: 3 Common → Rare for coins and 3 Rare → Legendary for gems.",
767
+ "inBase": true,
768
+ "summary": "Mailbox for any game: letters with rewards, publisher broadcasts, gifts from friends, resource transfers and missed rewards of other systems — with 'Claim all'.",
769
+ "description": "A ready mailbox screen for ANY game, built on the @idosgames/react/ui kit and client.mailbox. Tabs by category (all, rewards, gifts, system); a letter opens with its text in the player's language, the sender, a banner, the rewards and a button to the screen or page the letter links to. 'Claim' per letter and 'Claim all' in one server operation; rewards of other systems the player has not taken yet (leaderboard cycle, team event prize, invite rewards) are shown on top and claimed right here. 'Send gifts': a free daily gift to friends ('to everyone' in one tap) and a transfer of own coins or items to one friend — declined or expired transfers come back. 'Delete read' cleans up. The lobby badge counts unread letters and rewards waiting. The server owns everything: limits, friendship, expiry, what can be transferred. Opens straight on a friend with ctx.features.open('mailbox', { friendUserID, mode: 'gift' | 'transfer' }) — the friends system does that from a friend's card. Registers the 'mailbox' feature, hidden until the title turns the mailbox on. Ships title-seed.json: the mailbox on, a welcome template, a daily coin gift and coin/potion transfers.",
559
770
  "provides": [
560
- "craft screen from the title's recipes",
561
- "trade-up by rarity or collection",
562
- "contract popup with owned items",
563
- "auto-fill of the contract",
564
- "price options",
565
- "craft result with reward animation",
566
- "craft badge for runnable recipes",
567
- "demo recipes"
771
+ "mailbox screen",
772
+ "letters with rewards and claim all",
773
+ "publisher broadcasts in the inbox",
774
+ "gifts to friends",
775
+ "resource transfers between friends",
776
+ "missed rewards of other systems",
777
+ "mailbox badge"
568
778
  ],
569
779
  "tags": [
570
- "craft",
571
- "crafting",
572
- "trade-up",
573
- "items",
780
+ "mailbox",
781
+ "mail",
782
+ "inbox",
783
+ "gifts",
784
+ "rewards",
785
+ "social",
574
786
  "ui",
575
- "screen",
576
- "economy"
787
+ "screen"
577
788
  ],
578
789
  "author": {
579
790
  "name": "iDos Games",
@@ -581,40 +792,37 @@
581
792
  },
582
793
  "version": "0.1.0",
583
794
  "dependencies": {
584
- "@idosgames/core": "0.19.0",
585
- "@idosgames/module-sdk": "0.5.0",
795
+ "@idosgames/core": "0.19.1",
796
+ "@idosgames/module-sdk": "0.7.0",
586
797
  "@idosgames/react": "0.3.0",
587
798
  "react": "19.2.7"
588
799
  },
589
- "fileCount": 7,
590
- "contentHash": "258ad0cd09a83c498f719c1da59e77654eed3bd1ff42c23d49088c457bedc5de"
800
+ "fileCount": 6,
801
+ "contentHash": "b5f960cc3809c920a30dfe655c0531fea691236f418d59107daaffa8a9bbcb66"
591
802
  },
592
803
  {
593
- "id": "marketplace-ui",
594
- "name": "Marketplace",
804
+ "id": "pvp",
805
+ "name": "Arena",
595
806
  "type": "feature",
596
807
  "engine": "dom",
597
- "summary": "Marketplace screen for any game: player listings and auctions, selling, bids, direct trades, claims and history.",
598
- "description": "A ready player marketplace (Unity Alikhan/Marketplace) for ANY game, built on the @idosgames/react/ui kit and client.marketplace. Tabs: the market (items grouped with their cheapest price), my lots, my bids, direct trades, things to claim and history. Everything detailed is a popup: an item's offers (cheapest listing first, then auctions ending soonest), one offer (buy, bid with the engine's minimum next bid, cancel your own), selling (pick an item — only tradable, never a worn one — then listing or auction, amount, price in a currency tradable between players, duration and the commission), and incoming trades (accept / decline). The server holds the escrow and settles every trade. Registers the 'marketplace' feature; its badge counts things to claim and trades waiting. Ships title-seed.json: listings and auctions for currencies with a 5% commission.",
808
+ "summary": "PvP duels for any game: open duels to join, your duels, creating a duel for coins, a zone strategy and the fight replayed round by round.",
809
+ "description": "A ready PvP arena (Unity Alikhan/PVP/Lobby) for ANY game, built on the @idosgames/react/ui kit, client.match and client.character. Tabs: open duels (join with one of your heroes) and your duels (waiting — cancel returns the entry; finished — won / lost / draw). Popups: a new duel (rule, hero by power, entry within the rule's bounds and what the winner takes after the burn), the battle strategy (attack and defence zone — head, body, legs — per round, saved as the default) and the result, replayed round by round (whose blow, where, hit / critical / block / dodge, damage, HP left). The server fights the battle instantly from the heroes' stats; a draw returns the entries. Without a hero the screen offers the Heroes feature. Registers the 'pvp' feature. Ships title-seed.json: a coin duel (10–500, 10% burned) fought by the demo heroes' Attack and Health.",
599
810
  "provides": [
600
- "player marketplace screen",
601
- "listings and auctions",
602
- "sell popup with price and duration",
603
- "bids with the minimum next bid",
604
- "direct trades",
605
- "claims and history",
606
- "marketplace badge",
607
- "demo marketplace rules"
811
+ "open duels to join",
812
+ "my duels with cancel",
813
+ "create a duel with an entry",
814
+ "zone battle strategy",
815
+ "fight result replayed round by round",
816
+ "demo duel rule"
608
817
  ],
609
818
  "tags": [
610
- "marketplace",
611
- "trading",
612
- "auction",
613
- "listing",
614
- "p2p",
819
+ "pvp",
820
+ "duel",
821
+ "arena",
822
+ "battle",
823
+ "matchmaking",
615
824
  "ui",
616
- "screen",
617
- "economy"
825
+ "screen"
618
826
  ],
619
827
  "author": {
620
828
  "name": "iDos Games",
@@ -622,38 +830,39 @@
622
830
  },
623
831
  "version": "0.1.0",
624
832
  "dependencies": {
625
- "@idosgames/core": "0.19.0",
626
- "@idosgames/module-sdk": "0.5.0",
833
+ "@idosgames/core": "0.19.1",
834
+ "@idosgames/module-sdk": "0.7.0",
627
835
  "@idosgames/react": "0.3.0",
628
836
  "react": "19.2.7"
629
837
  },
630
- "fileCount": 7,
631
- "contentHash": "991caf4844f3f3e56e846769c94999c10056178016c2c3c74ca0dd6109be6e7d"
838
+ "fileCount": 6,
839
+ "contentHash": "bafe16c7215f36a5ef659c24f879c07b02fdb5d7e7cedc1cdc4ef996e687879c"
632
840
  },
633
841
  {
634
- "id": "deal-offer-ui",
635
- "name": "Offers",
842
+ "id": "multiplayer",
843
+ "name": "Multiplayer",
636
844
  "type": "feature",
637
845
  "engine": "dom",
638
- "summary": "Special offers for any game: a new deal pops up by itself; single offers, step chains and pick-one gifts with a milestone bar.",
639
- "description": "Special offers (Unity Alikhan/DealOffer) for ANY game, built on the @idosgames/react/ui kit and client.dealOffer. An always-on watcher pops a newly started deal up by itself once (and records the impression with recordShow); the 'Offers' screen lists every active deal with its timer and everything it can give. A deal opens as a popup shaped by its node graph: one big offer, a chain of steps (each unlocks the next, the server decides status), or cards to pick one from; free steps, currency prices, store-only steps and the milestone bar with its rewards. Registers the 'deals' feature; its badge counts free steps and milestone rewards waiting. Ships title-seed.json: a three-step starter pack with a bonus and a free pick-one welcome gift.",
846
+ "summary": "The rooms system for any game: open rooms of the app's online games, public or private rooms by invite, members, ready and chat — the host takes the whole room into a game.",
847
+ "description": "A ready multiplayer lobby (engine Multiplayer) for ANY game, built on the @idosgames/react/ui kit, client.multiplayer and RealtimeSession (@idosgames/core/realtime). It OWNS the player's room and its WebRTC session: the rooms of the games this app plays online (each room remembers its game), 'Create a room' for one of them (name, 2/4/8 players, public or private with an invite code, the game's own room settings), joining by invite, members (host, ready, offline), 'Ready', the room chat (server relay, when the game has no chat of its own), removing a member and leaving. The host's 'Play' takes the whole room into the game: every device switches to the game's mode and the game gets the room in its start() — games never create, list or join rooms themselves. A game plays online by registering in ctx.multiplayer (registerGame: topology, chat mode, room size, joinInProgress for late joiners, room settings, start(room)); the lobby then draws 'With friends' next to its 'Play'. Opened with { mode } the screen shows one game's rooms, with { mode, create: true } straight on 'Create'. Registers the 'multiplayer' feature, shown while multiplayer is on for the title and the app has a game that plays online. Ships title-seed.json: multiplayer on, up to 8 players per room.",
640
848
  "provides": [
641
- "special offers screen",
642
- "auto-popup of a new deal",
643
- "single, chain and pick-one offers",
644
- "offer milestones",
645
- "deals badge",
646
- "demo offers"
849
+ "multiplayer rooms lobby",
850
+ "rooms of one game",
851
+ "public and private rooms by invite",
852
+ "room settings of the game",
853
+ "room members with ready and host",
854
+ "room chat",
855
+ "host starts the game for the whole room",
856
+ "late joiners into a running game"
647
857
  ],
648
858
  "tags": [
649
- "offers",
650
- "deals",
651
- "starter-pack",
652
- "monetization",
653
- "popup",
859
+ "multiplayer",
860
+ "rooms",
861
+ "lobby",
862
+ "realtime",
863
+ "social",
654
864
  "ui",
655
- "screen",
656
- "economy"
865
+ "screen"
657
866
  ],
658
867
  "author": {
659
868
  "name": "iDos Games",
@@ -661,39 +870,37 @@
661
870
  },
662
871
  "version": "0.1.0",
663
872
  "dependencies": {
664
- "@idosgames/core": "0.19.0",
665
- "@idosgames/module-sdk": "0.5.0",
873
+ "@idosgames/core": "0.19.1",
874
+ "@idosgames/module-sdk": "0.7.0",
666
875
  "@idosgames/react": "0.3.0",
667
876
  "react": "19.2.7"
668
877
  },
669
878
  "fileCount": 7,
670
- "contentHash": "08d3eb3ffb85c9e17738e943e5d82329189e9783c950237dd074874bcc4d6ed3"
879
+ "contentHash": "b318338a4342f30fd665899803aa10ce32764cc1afb3b709b297e5bf329cdeb7"
671
880
  },
672
881
  {
673
- "id": "events-ui",
674
- "name": "Events",
882
+ "id": "profile",
883
+ "name": "Profile",
675
884
  "type": "feature",
676
885
  "engine": "dom",
677
- "summary": "Limited-time events for any game: event tabs with a timer, a token bar, a milestone track, claim all and a VIP second prize.",
678
- "description": "A ready events screen (Unity Core/Window LimitedTimeEvent) for ANY game, built on the @idosgames/react/ui kit and client.timedEvent. Every active event the server resolves (scheduled, cyclic or chained) is a tab: its name and timer, the token bar toward the next prize and the milestone track in threshold order. A milestone pays its reward and, when the reward has premium tiers, a VIP second prize; a pass bought later tops up the milestones already claimed. 'Claim all' takes everything waiting in one call. How the tokens are earned (the event's token sources with their daily caps) and the VIP pass (its benefits and prices in currencies) are popups. Registers the 'events' feature; its badge counts milestones and VIP top-ups waiting. Tokens come from the game: a round of play is a CustomAction the game grants with client.timedEvent.grantTokens (the showcase mini-game does it for every active event that lists the action). Ships title-seed.json: a weekly 'Star festival' with five milestones and a VIP prize on each.",
886
+ "inBase": true,
887
+ "summary": "Profile and settings for any game: name and ID, sound, volume and motion, language, tutorials, log out and account deletion.",
888
+ "description": "A ready profile screen (Unity Alikhan/Username, UI/HUD/Settings, Runtime/UI/Consent, Localization) for ANY game, built on the @idosgames/react/ui kit. The player's name (rename in a popup with the server's rules: 3–24 characters, trimmed) and ID with copy; settings: sound on/off, volume and 'fewer animations' — the kit's player prefs, kept on this device and applied to every screen at once — the game's language (the title's languages, when there are two or more). Buttons: Tutorials (when tutorials is installed), Log out (confirmed) and Delete account — a popup that unlocks only after the player types the confirmation word, then deletes this game's data for the player. Registers the 'profile' feature; the lobby's profile button opens it. No title settings needed.",
679
889
  "provides": [
680
- "events screen with a tab per active event",
681
- "event timer and token progress bar",
682
- "milestone track with rewards",
683
- "VIP second prize and top-up after purchase",
684
- "claim all milestones",
685
- "how-to-earn popup with daily caps",
686
- "VIP pass purchase popup",
687
- "events badge",
688
- "demo weekly event"
890
+ "player name and ID",
891
+ "rename popup",
892
+ "sound, volume and fewer animations",
893
+ "language picker",
894
+ "log out",
895
+ "account deletion with confirmation"
689
896
  ],
690
897
  "tags": [
691
- "events",
692
- "live-ops",
693
- "limited-time",
694
- "milestones",
695
- "battle-pass",
696
- "vip",
898
+ "profile",
899
+ "settings",
900
+ "account",
901
+ "sound",
902
+ "language",
903
+ "privacy",
697
904
  "ui",
698
905
  "screen"
699
906
  ],
@@ -703,40 +910,36 @@
703
910
  },
704
911
  "version": "0.1.0",
705
912
  "dependencies": {
706
- "@idosgames/core": "0.19.0",
707
- "@idosgames/module-sdk": "0.5.0",
913
+ "@idosgames/core": "0.19.1",
914
+ "@idosgames/module-sdk": "0.7.0",
708
915
  "@idosgames/react": "0.3.0",
709
916
  "react": "19.2.7"
710
917
  },
711
- "fileCount": 8,
712
- "contentHash": "516eb5f792f385475c2ccb9cb831ea93e9e3958fc6baf0e44275a5fa7fb2bec1"
918
+ "fileCount": 6,
919
+ "contentHash": "6749dba8bcb4b647632c9b8e05959b591040b1bac707f4c52788d32a0fdbd924"
713
920
  },
714
921
  {
715
- "id": "season-ui",
716
- "name": "Season",
922
+ "id": "tutorials",
923
+ "name": "Tutorials",
717
924
  "type": "feature",
718
925
  "engine": "dom",
719
- "summary": "Seasons for any game: the active season with its timer, a status bar, a tier ladder with a reward each, claim all and a VIP second prize.",
720
- "description": "A ready season screen (Unity Core/Window MilestoneRewards) for ANY game, built on the @idosgames/react/ui kit and client.season. Every season chain of the title is a tab showing its active season: name and timer, the player's tier, the status bar toward the next tier and the tier ladder. Each tier pays its reward once ('Claim all' takes every reached tier in one call); a tier with premium tiers pays a VIP second prize when the pass is active at the moment of the claim. The VIP pass (benefits, prices in currencies) is a popup. The server decides the tier — including status tokens that arrive as rewards of other systems. Registers the 'season' feature; its badge counts tier rewards waiting and it reloads when status tokens are granted. Status comes from the game: a chain open to clients takes client.season.grantStatusTokens (the showcase mini-game grants status for every round). Ships title-seed.json: two alternating 28-day seasons with five tiers and a VIP prize on each.",
926
+ "summary": "Onboarding for any game: hint bubbles next to marked elements, step by step, skip, a completion reward and a replay list.",
927
+ "description": "A ready onboarding overlay (Unity Runtime/UI/Tutorial, TutorialAnchorRegistry) for ANY game, built on the @idosgames/react/ui kit and client.tutorial. It shows the current step of the running flow as a hint bubble next to the element marked data-tutorial-anchor=\"{AnchorID}\" — any element of any module (lobby tabs are tab:{featureID}, the profile button lobby:profile, a game's Play button play:{modeID}, the mini-game's round play:start) — with the rest of the screen dimmed. It follows the element as the layout changes, steps aside while a popup is open, offers 'Next' only on steps the player closes (a SystemEvent step waits for the real game action), 'Skip' when the flow allows it, and the reward when the flow ends; every shown step is reported for the funnel. Flows start by themselves when the title says so. The 'Tutorials' feature lists the flows and replays the ones the title lets the player restart. Ships title-seed.json: a five-step welcome tour of the lobby with a gem reward.",
721
928
  "provides": [
722
- "season screen with a tab per chain",
723
- "season timer and status bar",
724
- "tier ladder with rewards",
725
- "claim all reached tiers",
726
- "VIP second prize on tiers",
727
- "VIP pass purchase popup",
728
- "season badge",
729
- "demo seasons"
929
+ "tutorial overlay with a highlighted element",
930
+ "hint bubble with next and skip",
931
+ "any element as an anchor via data-tutorial-anchor",
932
+ "tutorial completion reward",
933
+ "tutorials list with replay",
934
+ "demo welcome tour"
730
935
  ],
731
936
  "tags": [
732
- "season",
733
- "battle-pass",
734
- "tiers",
735
- "progression",
736
- "live-ops",
737
- "vip",
738
- "ui",
739
- "screen"
937
+ "tutorial",
938
+ "onboarding",
939
+ "ftue",
940
+ "coach-marks",
941
+ "hints",
942
+ "ui"
740
943
  ],
741
944
  "author": {
742
945
  "name": "iDos Games",
@@ -744,38 +947,43 @@
744
947
  },
745
948
  "version": "0.1.0",
746
949
  "dependencies": {
747
- "@idosgames/core": "0.19.0",
748
- "@idosgames/module-sdk": "0.5.0",
950
+ "@idosgames/core": "0.19.1",
951
+ "@idosgames/module-sdk": "0.7.0",
749
952
  "@idosgames/react": "0.3.0",
750
953
  "react": "19.2.7"
751
954
  },
752
- "fileCount": 8,
753
- "contentHash": "81f29463cedaef764861e232b709c16c5688536ccf7fffab23407496311313a8"
955
+ "fileCount": 6,
956
+ "contentHash": "e5cb4e931ff39a7eb3f4cbc32bddc836d79eb631bcd14a6fe6e567df88079718"
754
957
  },
755
958
  {
756
- "id": "friends-ui",
757
- "name": "Friends",
959
+ "id": "workshop",
960
+ "name": "Workshop",
758
961
  "type": "feature",
759
962
  "engine": "dom",
760
- "summary": "Friends for any game: the friends list, requests, suggestions and the notification inbox, with a player card and add-by-ID in popups.",
761
- "description": "A ready friends screen (Unity Runtime/UI/Friends) for ANY game, built on the @idosgames/react/ui kit and client.social. Tabs: friends, requests (incoming with accept / decline, and the ones you sent), suggestions (players active in this game lately) and news — the notification inbox (attacks, raids, new friends, sales, follows, likes, comments), opened as seen. The player's own ID sits on top with a copy button. Everything detailed is a popup: adding a friend by ID, the player card (level, power; message — opens the chat feature when chat-ui is installed; remove friend; block) and the confirmations. When the title takes friends from idosgames.com only, requests, suggestions and 'Add' disappear and platform friends cannot be removed in the game. Registers the 'friends' feature; its badge counts requests waiting and unread news. No title settings needed.",
963
+ "summary": "Workshop: players and the publisher share content (maps, levels, skins, models) — free, for in-game resources, or unlocked by holding items.",
964
+ "description": "A ready catalog of user-generated content for ANY game. Players publish what they made (a world, a level, a skin, any file the title allows), set how others get it — free, a price in in-game resources (several options at once, the author receives it minus commission), or 'hold N of this item / currency to unlock' (nothing is charged; while held or once) — and others browse, filter, acquire, open, like, favorite, follow authors and report. The publisher configures content types, formats, limits, commission and moderation in the Workshop section of the title config, curates featured collections and publishes official content from the dashboard. A game plugs its own content in by registering a handler with ctx.content.registerType({ type, label, listLocal, capture, open, modeId }) — the Workshop never imports the game. VoxelCraft registers 'voxelcraft.world'.",
762
965
  "provides": [
763
- "friends list",
764
- "incoming and sent friend requests",
765
- "friend suggestions",
766
- "notification inbox",
767
- "add a friend by ID",
768
- "player card with message, remove and block",
769
- "friends badge"
966
+ "player-made content catalog (maps, levels, skins, models, any file type the title allows)",
967
+ "publish a map or level made in the game",
968
+ "sell content for in-game resources with author royalties minus commission",
969
+ "free content sharing",
970
+ "unlock content by holding an item or currency without spending it",
971
+ "likes, favorites and following content creators",
972
+ "report content and auto-hide after reports",
973
+ "publisher featured collections and official content",
974
+ "download and open shared content in the game"
770
975
  ],
771
976
  "tags": [
772
- "friends",
773
- "social",
774
- "requests",
775
- "inbox",
776
- "notifications",
777
- "ui",
778
- "screen"
977
+ "workshop",
978
+ "ugc",
979
+ "user-generated-content",
980
+ "maps",
981
+ "levels",
982
+ "mods",
983
+ "sharing",
984
+ "marketplace",
985
+ "creators",
986
+ "social"
779
987
  ],
780
988
  "author": {
781
989
  "name": "iDos Games",
@@ -783,37 +991,32 @@
783
991
  },
784
992
  "version": "0.1.0",
785
993
  "dependencies": {
786
- "@idosgames/core": "0.19.0",
787
- "@idosgames/module-sdk": "0.5.0",
994
+ "@idosgames/core": "0.19.1",
995
+ "@idosgames/module-sdk": "0.7.0",
788
996
  "@idosgames/react": "0.3.0",
789
997
  "react": "19.2.7"
790
998
  },
791
- "fileCount": 7,
792
- "contentHash": "eaaf0ec5662490736c610ad463449c4696a00ffa2d980aae568188b74c6c600c"
999
+ "fileCount": 5,
1000
+ "contentHash": "f6c4cf4ececb9f9c0167b5c2598bdc4d471f364781ffc62cff7481e8a25751e4"
793
1001
  },
794
1002
  {
795
- "id": "chat-ui",
796
- "name": "Chat",
1003
+ "id": "ai",
1004
+ "name": "AI studio",
797
1005
  "type": "feature",
798
1006
  "engine": "dom",
799
- "summary": "Chat for any game: channels as tabs, private chats, a feed with earlier messages, slow mode, and report / ignore / write privately in a popup.",
800
- "description": "A ready player chat (Unity V2/Runtime/UI/Chat) for ANY game, built on the @idosgames/react/ui kit and client.chat. The title's channels are tabs (names are localization keys) plus 'Private' — 1-on-1 chats (with friends when the title says so). The feed loads its history, pages back to earlier messages, shows the server's copy of what was sent (moderation may mask a word) and counts down the slow mode; a channel the player may not write to shows the server's reason. ONE poll covers every room and runs only while the screen is open, at the interval the server sets; rooms are marked read when the player leaves them. Popups: a message's actions (write privately, report with a reason, ignore the player) and the channel list to join or leave opt-in channels. Registers the 'chat' feature; features.open('chat', { userID }) opens a private chat (the friends card uses it). Its badge is the unread count, read once per session — a closed chat costs nothing. Ships title-seed.json: a world channel, an opt-in trade channel, private chats between friends.",
1007
+ "summary": "AI studio for any game: the title's AI features for players — text, pictures, voice, music, video and 3D — with the price and the history.",
1008
+ "description": "A ready AI studio (engine AI, InApp AI) for ANY game, built on the @idosgames/react/ui kit and client.ai. Every AI feature the publisher opened to players (section AI, sanitized by the server: no prompts, no models), grouped by kind — text, picture, voice, music, video, 3D. The player describes what they want, pays the feature's price in in-game resources (or nothing), and the result comes back from a job the server runs (waitForGeneration): text, pictures, a player for sound and video, a download link for 3D. 'My creations' lists the player's generations. A feature tagged 'hidden' is for the game's own code (NPC lines and the like) and is not shown. Registers the 'ai' feature. The money side (publisher credits) is the engine's; see the in-app AI rules.",
801
1009
  "provides": [
802
- "chat channels as tabs",
803
- "private chats",
804
- "message feed with earlier messages",
805
- "slow mode countdown",
806
- "report, ignore and write privately",
807
- "join and leave channels",
808
- "chat badge",
809
- "demo channels"
1010
+ "AI studio screen",
1011
+ "text, image, voice, music, video and 3D generation for players",
1012
+ "feature price in in-game resources",
1013
+ "history of the player's generations"
810
1014
  ],
811
1015
  "tags": [
812
- "chat",
813
- "social",
814
- "messages",
815
- "dm",
816
- "moderation",
1016
+ "ai",
1017
+ "generation",
1018
+ "ugc",
1019
+ "creative",
817
1020
  "ui",
818
1021
  "screen"
819
1022
  ],
@@ -823,153 +1026,221 @@
823
1026
  },
824
1027
  "version": "0.1.0",
825
1028
  "dependencies": {
826
- "@idosgames/core": "0.19.0",
827
- "@idosgames/module-sdk": "0.5.0",
1029
+ "@idosgames/core": "0.19.1",
1030
+ "@idosgames/module-sdk": "0.7.0",
828
1031
  "@idosgames/react": "0.3.0",
829
1032
  "react": "19.2.7"
830
1033
  },
831
- "fileCount": 7,
832
- "contentHash": "3e02bb18c0e156cf14736377a4c0bde15149eab92138d7f0252a906377c53307"
1034
+ "fileCount": 6,
1035
+ "contentHash": "1ac6c1fb5fc8cbe94891f258339e8f27abe7bded84dccc8f4f6bbb6465e2dc35"
833
1036
  },
834
1037
  {
835
- "id": "referral-ui",
836
- "name": "Invite",
837
- "type": "feature",
838
- "engine": "dom",
839
- "summary": "Invite friends for any game: your code and link to share, friends who came by it, rewards for them, and entering a friend's code in a popup.",
840
- "description": "A ready invite-a-friend screen (Unity V2/Runtime/UI/Referral) for ANY game, built on the @idosgames/react/ui kit and client.referral. The player's own short code (minted by the server when the screen opens) with 'Copy' and 'Share link' (the system share sheet, else the clipboard), how many friends came by it and the reward ladder for them (claim one or all). Entering a friend's code is a popup: it shows the newcomer's gift, reads the code the way the server does (8 letters, separators and case ignored) and pays the gift once. A player bound at login by an invite link sees 'You joined by a friend's code'. Registers the 'invite' feature; its badge counts invite rewards ready. Ships title-seed.json: a gift for the newcomer and rewards for 1, 3 and 5 friends.",
1038
+ "id": "board-game",
1039
+ "name": "Board Game",
1040
+ "type": "template",
1041
+ "engine": "three",
1042
+ "genre": "board",
1043
+ "summary": "3D tycoon board game: roll dice, move around the board, buy and upgrade city tiles.",
1044
+ "description": "A turn-based property board game rendered in Three.js with a React overlay. Players roll dice, move around a looping board, and buy, sell and upgrade tiles to build a city and earn income. The board layout, tiles and interactions are data-driven, so the theme and economy are easy to re-skin.",
841
1045
  "provides": [
842
- "own invite code and link",
843
- "share or copy the invite",
844
- "friends who came by your code",
845
- "invite reward ladder with claim all",
846
- "enter a friend's code popup",
847
- "invite badge",
848
- "demo referral rewards"
1046
+ "turn-based dice movement around a looping board",
1047
+ "buy / sell / upgrade board tiles",
1048
+ "player-vs-player property economy",
1049
+ "3D board rendering with a React HUD overlay",
1050
+ "data-driven board layout and tile configuration"
849
1051
  ],
850
1052
  "tags": [
851
- "referral",
852
- "invite",
853
- "friends",
854
- "growth",
855
- "social",
856
- "ui",
857
- "screen"
1053
+ "board",
1054
+ "tycoon",
1055
+ "3d",
1056
+ "turn-based",
1057
+ "economy",
1058
+ "three"
858
1059
  ],
1060
+ "media": {
1061
+ "image": "https://cloud.idosgames.com/drive/modules/board-game/cover.png",
1062
+ "video": "https://cloud.idosgames.com/drive/modules/board-game/demo.mp4"
1063
+ },
1064
+ "demoUrl": "https://cloud.idosgames.com/drive/modules/board-game/demo/",
859
1065
  "author": {
860
1066
  "name": "iDos Games",
861
1067
  "url": "https://idosgames.com"
862
1068
  },
863
1069
  "version": "0.1.0",
1070
+ "events": {
1071
+ "listens": [
1072
+ {
1073
+ "topic": "idle-rpg:character-upgraded@1",
1074
+ "why": "shows an 'Idle RPG hero reached Lv N' news chip in the board HUD (optional — works without idle-rpg)"
1075
+ }
1076
+ ]
1077
+ },
864
1078
  "dependencies": {
865
- "@idosgames/core": "0.19.0",
866
- "@idosgames/module-sdk": "0.5.0",
1079
+ "@idosgames/core": "0.19.1",
1080
+ "@idosgames/module-sdk": "0.7.0",
867
1081
  "@idosgames/react": "0.3.0",
868
- "react": "19.2.7"
1082
+ "@idosgames/wallet": "0.6.0",
1083
+ "@tanstack/react-query": "5.101.2",
1084
+ "react": "19.2.7",
1085
+ "three": "0.185.1",
1086
+ "viem": "2.55.2",
1087
+ "wagmi": "3.7.2"
869
1088
  },
870
- "fileCount": 7,
871
- "contentHash": "f78e3211a36e341d0e6a338b21b82d3b0084b975a4157eaee80ebea2e814e396"
1089
+ "fileCount": 27,
1090
+ "contentHash": "d7dea73b22c207167521b0867e4137eee7dbf761c5de9a45ca154beb562e5ea5"
872
1091
  },
873
1092
  {
874
- "id": "pvp-ui",
875
- "name": "Arena",
876
- "type": "feature",
877
- "engine": "dom",
878
- "summary": "PvP duels for any game: open duels to join, your duels, creating a duel for coins, a zone strategy and the fight replayed round by round.",
879
- "description": "A ready PvP arena (Unity Alikhan/PVP/Lobby) for ANY game, built on the @idosgames/react/ui kit, client.match and client.character. Tabs: open duels (join with one of your heroes) and your duels (waiting — cancel returns the entry; finished — won / lost / draw). Popups: a new duel (rule, hero by power, entry within the rule's bounds and what the winner takes after the burn), the battle strategy (attack and defence zone — head, body, legs — per round, saved as the default) and the result, replayed round by round (whose blow, where, hit / critical / block / dodge, damage, HP left). The server fights the battle instantly from the heroes' stats; a draw returns the entries. Without a hero the screen offers the Heroes feature. Registers the 'pvp' feature. Ships title-seed.json: a coin duel (10–500, 10% burned) fought by the showcase heroes' Attack and Health.",
1093
+ "id": "idle-rpg",
1094
+ "name": "Idle RPG",
1095
+ "type": "template",
1096
+ "engine": "phaser",
1097
+ "genre": "idle-rpg",
1098
+ "summary": "Idle RPG: heroes auto-battle and earn resources over time, with upgrades and offline progress.",
1099
+ "description": "An incremental idle RPG built on Phaser. Heroes fight automatically, generate currency and loot over time, and keep progressing while the player is away. Includes an upgrade loop and offline-income accrual, so it fits any 'tap to grow / auto-battler / idle economy' request.",
880
1100
  "provides": [
881
- "open duels to join",
882
- "my duels with cancel",
883
- "create a duel with an entry",
884
- "zone battle strategy",
885
- "fight result replayed round by round",
886
- "demo duel rule"
1101
+ "auto-battling heroes",
1102
+ "idle resource generation over time",
1103
+ "offline income accrual",
1104
+ "upgrade / progression loop",
1105
+ "2D sprite rendering (Phaser)"
887
1106
  ],
888
1107
  "tags": [
889
- "pvp",
890
- "duel",
891
- "arena",
892
- "battle",
893
- "matchmaking",
894
- "ui",
895
- "screen"
1108
+ "idle",
1109
+ "rpg",
1110
+ "incremental",
1111
+ "auto-battler",
1112
+ "phaser",
1113
+ "2d"
896
1114
  ],
1115
+ "media": {
1116
+ "image": "https://cloud.idosgames.com/drive/modules/idle-rpg/cover.png",
1117
+ "video": "https://cloud.idosgames.com/drive/modules/idle-rpg/demo.mp4"
1118
+ },
1119
+ "demoUrl": "https://cloud.idosgames.com/drive/modules/idle-rpg/demo/",
897
1120
  "author": {
898
1121
  "name": "iDos Games",
899
1122
  "url": "https://idosgames.com"
900
1123
  },
901
1124
  "version": "0.1.0",
1125
+ "events": {
1126
+ "emits": [
1127
+ {
1128
+ "topic": "idle-rpg:character-upgraded@1",
1129
+ "when": "a hero's level went up (after a successful client.character.upgradeCharacterLevel)",
1130
+ "payload": {
1131
+ "characterId": "string",
1132
+ "level": "number"
1133
+ }
1134
+ }
1135
+ ]
1136
+ },
902
1137
  "dependencies": {
903
- "@idosgames/core": "0.19.0",
904
- "@idosgames/module-sdk": "0.5.0",
1138
+ "@idosgames/core": "0.19.1",
1139
+ "@idosgames/module-sdk": "0.7.0",
905
1140
  "@idosgames/react": "0.3.0",
906
- "react": "19.2.7"
1141
+ "@idosgames/wallet": "0.6.0",
1142
+ "@tanstack/react-query": "5.101.2",
1143
+ "phaser": "4.2.1",
1144
+ "react": "19.2.7",
1145
+ "viem": "2.55.2",
1146
+ "wagmi": "3.7.2"
907
1147
  },
908
- "fileCount": 7,
909
- "contentHash": "fd37397dfd33215ffcf0cf1322b0d7dccca1ebe171a0d06a07e866666346a3c3"
1148
+ "fileCount": 19,
1149
+ "contentHash": "41b86a0971beeab985e44ed77e481ce38c29df0c2fe01e34fd50159d64646e97"
910
1150
  },
911
1151
  {
912
- "id": "profile-ui",
913
- "name": "Profile",
914
- "type": "feature",
915
- "engine": "dom",
916
- "summary": "Profile and settings for any game: name and ID, sound, volume and motion, language, analytics consent, tutorials, log out and account deletion.",
917
- "description": "A ready profile screen (Unity Alikhan/Username, UI/HUD/Settings, Runtime/UI/Consent, Localization) for ANY game, built on the @idosgames/react/ui kit. The player's name (rename in a popup with the server's rules: 3–24 characters, trimmed) and ID with copy; settings: sound on/off, volume and 'fewer animations' — the kit's player prefs, kept on this device and applied to every screen at once — the game's language (the title's languages, when there are two or more) and consent to anonymous analytics (client.analytics). Buttons: Tutorials (when tutorial-ui is installed), Log out (confirmed) and Delete account — a popup that unlocks only after the player types the confirmation word, then deletes this game's data for the player. Registers the 'profile' feature; the showcase lobby's profile button opens it. No title settings needed.",
1152
+ "id": "voxelcraft",
1153
+ "name": "VoxelCraft",
1154
+ "type": "template",
1155
+ "engine": "three",
1156
+ "genre": "sandbox",
1157
+ "uses": [
1158
+ "multiplayer",
1159
+ "workshop"
1160
+ ],
1161
+ "summary": "Minecraft-like voxel survival game: mine, craft, build, farm and fight from the first night to the dragon — with worlds generated from a picture + description (with or without AI).",
1162
+ "description": "A first-person voxel game rendered in Three.js that follows Minecraft's mechanics 1:1 under its own names (every player-facing name lives in one table, so a commercial game can re-skin it; Minecraft names are accepted as aliases). Survival and creative modes: ores and tool tiers, crafting, smelting, armor, hunger, air and drowning, XP, enchanting, anvils, smithing, potions and beacons; farming, animals, taming and riding, fishing, boats and minecarts; villages with trading villagers, raids, and dozens of hostile and neutral mobs. Three dimensions — the overworld (biomes from deserts and jungles to the deep dark, caves, ocean temples, mansions, trial chambers, archaeology), the Inferno (Nether-like: fortresses, its own mobs and biomes) and the Beyond (End-like: citadel portal, the dragon boss, outer islands and cities, wings). Redstone (wire, torches, repeaters, comparators, pistons, observers, hoppers, dispensers, rails), weather, day/night, block light, fluids, achievements, generated music, a chat console with commands, and touch controls. The 'Create world' screen turns a reference picture and a text description into a world — locally in the browser (the picture read as a top-down map or as a mood, the text by keywords) or with InApp AI (client.ai, title feature \"voxel-world\") — via a compact WorldSpec recipe. Worlds autosave to 'My worlds'. The agent sees and drives the game through its debug surface (state, lookingAt, console commands). Covers any 'Minecraft clone', survival / crafting / mining game, block-building sandbox or 'generate a world from a picture' request; by far the largest feature module. Co-op multiplayer for up to 8 players through the lobby's rooms (the multiplayer module, ctx.multiplayer): the lobby shows 'With friends' next to the game's 'Play', and the pause menu's 'Play with friends' opens 'Create a room' there (public or by invite, room settings 'guest game mode' and 'commands for everyone'); the host's 'Play' takes the whole room into the host's world, late joiners included; in game the host grants operator, kicks and bans. Peer-to-peer over WebRTC (the SDK transport @idosgames/core/realtime, rooms and signaling on the engine's Multiplayer module; TURN relay from the engine when configured): each live dimension is simulated by one player and players may be in different dimensions at once; everyone's own inventory and progress stay theirs; when the host leaves or its tab dies the world moves to another player without stopping. Needs the title's Multiplayer section enabled (Host topology). Not included yet: AI-driven villagers and a dedicated server.",
918
1163
  "provides": [
919
- "player name and ID",
920
- "rename popup",
921
- "sound, volume and fewer animations",
922
- "language picker",
923
- "analytics consent",
924
- "log out",
925
- "account deletion with confirmation"
1164
+ "first-person voxel world: mine, place and break blocks",
1165
+ "survival and creative modes (health, hunger, air, XP, death and respawn)",
1166
+ "crafting, smelting, tool and armor tiers",
1167
+ "enchanting, anvil, smithing, potions, beacon",
1168
+ "farming, animals, taming and riding, fishing, boats",
1169
+ "villages, trading villagers, raids",
1170
+ "dozens of hostile and neutral mobs, bosses (dragon, ash lord)",
1171
+ "three dimensions: overworld, Inferno (Nether-like), Beyond (End-like)",
1172
+ "biomes, caves and structures (temples, mansions, fortresses, trial chambers, ruins)",
1173
+ "redstone: wire, repeaters, comparators, pistons, observers, hoppers, rails and minecarts",
1174
+ "weather, day/night cycle, block light and fluid simulation",
1175
+ "achievements and procedurally generated music",
1176
+ "chat console with commands (/give, /tp, /locate, /summon, …)",
1177
+ "touch controls for mobile",
1178
+ "world generation from a picture + description (WorldSpec recipe)",
1179
+ "AI world generation via client.ai (feature \"voxel-world\")",
1180
+ "AI builds objects from pictures out of coloured blocks (a plane, a car… — models of shapes)",
1181
+ "AI recreates landscapes from pictures (terrain sketch, rivers, biomes)",
1182
+ "co-op multiplayer up to 8 players (P2P over WebRTC) through the lobby's rooms (ctx.multiplayer), late joiners included",
1183
+ "open the world to the network: invite code or public list, guest game mode, operators, kick and ban",
1184
+ "players in different dimensions at once; host migration without stopping the world",
1185
+ "autosave and 'My worlds' (IndexedDB)",
1186
+ "own player-facing names for a re-skinnable commercial game (Minecraft names as aliases)",
1187
+ "3D block rendering (Three.js)"
926
1188
  ],
927
1189
  "tags": [
928
- "profile",
929
- "settings",
930
- "account",
931
- "sound",
932
- "language",
933
- "privacy",
934
- "ui",
935
- "screen"
1190
+ "voxel",
1191
+ "sandbox",
1192
+ "survival",
1193
+ "crafting",
1194
+ "minecraft",
1195
+ "3d",
1196
+ "first-person",
1197
+ "open-world",
1198
+ "redstone",
1199
+ "mobile",
1200
+ "three",
1201
+ "ai",
1202
+ "world-generation",
1203
+ "multiplayer",
1204
+ "co-op"
936
1205
  ],
1206
+ "media": {
1207
+ "image": "https://cloud.idosgames.com/drive/modules/voxelcraft/cover.png",
1208
+ "video": "https://cloud.idosgames.com/drive/modules/voxelcraft/demo.mp4"
1209
+ },
1210
+ "demoUrl": "https://cloud.idosgames.com/drive/modules/voxelcraft/demo/",
937
1211
  "author": {
938
1212
  "name": "iDos Games",
939
1213
  "url": "https://idosgames.com"
940
1214
  },
941
- "version": "0.1.0",
1215
+ "version": "0.4.0",
942
1216
  "dependencies": {
943
- "@idosgames/core": "0.19.0",
944
- "@idosgames/module-sdk": "0.5.0",
945
- "@idosgames/react": "0.3.0",
946
- "react": "19.2.7"
1217
+ "@idosgames/core": "0.19.1",
1218
+ "@idosgames/module-sdk": "0.7.0",
1219
+ "three": "0.185.1"
947
1220
  },
948
- "fileCount": 7,
949
- "contentHash": "d5044c75012bd4f39b2156237dd036f26d68e3ec9f25b4d5e840110871ff0fc8"
1221
+ "fileCount": 426,
1222
+ "contentHash": "94cb46dbc2c7142b5170ea524d450e401d19ac2531fe0fc2501326e8c1a34864"
950
1223
  },
951
1224
  {
952
- "id": "tutorial-ui",
953
- "name": "Tutorials",
954
- "type": "feature",
1225
+ "id": "mini-game",
1226
+ "name": "Mini-game",
1227
+ "type": "template",
955
1228
  "engine": "dom",
956
- "summary": "Onboarding for any game: hint bubbles next to marked elements, step by step, skip, a completion reward and a replay list.",
957
- "description": "A ready onboarding overlay (Unity Runtime/UI/Tutorial, TutorialAnchorRegistry) for ANY game, built on the @idosgames/react/ui kit and client.tutorial. It shows the current step of the running flow as a hint bubble next to the element marked data-tutorial-anchor=\"{AnchorID}\" — any element of any module (lobby tabs are tab:{featureID}, the profile button lobby:profile, the play button play:start) — with the rest of the screen dimmed. It follows the element as the layout changes, steps aside while a popup is open, offers 'Next' only on steps the player closes (a SystemEvent step waits for the real game action), 'Skip' when the flow allows it, and the reward when the flow ends; every shown step is reported for the funnel. Flows start by themselves when the title says so. The 'Tutorials' feature lists the flows and replays the ones the title lets the player restart. Ships title-seed.json: a five-step welcome tour of the showcase lobby with a gem reward.",
1229
+ "genre": "casual",
1230
+ "summary": "The smallest complete game: a 15-second 'catch the stars' round launched from the lobby's Play button, with a leaderboard score.",
1231
+ "description": "A tiny game of its own mode (React/DOM, no engine): tap as many stars as you can in 15 seconds, gold stars are worth 3. The score goes to the title's leaderboard, and a round counts for quests that ask for games_played, for timed events that pay for the 'play_round' action and for season chains open to clients. The platform gives it to a new title when no other game fits the idea — it shows where a game plugs into the base (sign-in → lobby → Play) and is meant to be replaced by the real game. No demo settings of its own: it plays on the base's world.",
958
1232
  "provides": [
959
- "tutorial overlay with a highlighted element",
960
- "hint bubble with next and skip",
961
- "any element as an anchor via data-tutorial-anchor",
962
- "tutorial completion reward",
963
- "tutorials list with replay",
964
- "demo welcome tour"
1233
+ "a small tap game launched from the lobby",
1234
+ "score submitted to the leaderboard",
1235
+ "rounds counted by quests, events and the season",
1236
+ "placeholder game to replace with the real one"
965
1237
  ],
966
1238
  "tags": [
967
- "tutorial",
968
- "onboarding",
969
- "ftue",
970
- "coach-marks",
971
- "hints",
972
- "ui"
1239
+ "starter",
1240
+ "mini-game",
1241
+ "casual",
1242
+ "tap",
1243
+ "leaderboard"
973
1244
  ],
974
1245
  "author": {
975
1246
  "name": "iDos Games",
@@ -977,13 +1248,13 @@
977
1248
  },
978
1249
  "version": "0.1.0",
979
1250
  "dependencies": {
980
- "@idosgames/core": "0.19.0",
981
- "@idosgames/module-sdk": "0.5.0",
1251
+ "@idosgames/core": "0.19.1",
1252
+ "@idosgames/module-sdk": "0.7.0",
982
1253
  "@idosgames/react": "0.3.0",
983
1254
  "react": "19.2.7"
984
1255
  },
985
1256
  "fileCount": 7,
986
- "contentHash": "ddd651cc2cff6692f7b98c2904c63f9e0548148b2b77d135c00be6c3039a1c56"
1257
+ "contentHash": "26089593df1b939aee3317743caeda47f82971bfd85dbd73eb9e95a9bc5e3d5c"
987
1258
  }
988
1259
  ],
989
1260
  "skills": [
@@ -1069,15 +1340,15 @@
1069
1340
  },
1070
1341
  {
1071
1342
  "name": "idosgames-compose-modules",
1072
- "description": "Merge several iDosGames modules into one game — combine genres (e.g. board-game + idle-rpg), share progress across modes, and add always-on chrome. Use this whenever a developer wants to COMBINE or MERGE multiple iDosGames templates/modules into a single title, switch between game modes, share currency/inventory across modules, or asks how the Mode Router, the nav-bar, activeOnly panels, the shared HUD (game-hud, sharedUi roles, shouldDraw), typed cross-module events (defineTopic/shape), or host-level shared state work. Builds on idosgames-getting-started (scaffolding) and idosgames-module-contract (a single module)."
1343
+ "description": "Put an iDosGames app together from the base and modules — the systems (shop, heroes, leaderboards, quests, chests, multiplayer…) as lobby tabs, one or several games behind \"Play\", progress shared across them. Use this whenever a developer wants to COMBINE or MERGE modules into a single title, add or remove a system, add a second game, switch between the lobby and game modes, share currency/inventory across modules, or asks how the lobby, \"Play\", ctx.modes, activeOnly panels, the shared-UI roles (sharedUi, shouldDraw, the \"modes\" role), typed cross-module events (defineTopic/shape) or host-level shared state work. Builds on idosgames-getting-started (scaffolding) and idosgames-module-contract (a single module)."
1073
1344
  },
1074
1345
  {
1075
1346
  "name": "idosgames-getting-started",
1076
- "description": "Start a new game or app on the iDosGames composable-module architecture: scaffold the host shell and plug in feature modules (board-game, idle-rpg, voxelcraft, …). Use this whenever a developer wants to CREATE an iDosGames project from scratch, add an iDosGames game module to a project, or asks how @idosgames/app-shell, @idosgames/module-sdk, the host shell, mountHost, or src/modules.ts fit together. Pairs with idosgames-module-contract (writing a module) and idosgames-compose-modules (merging several) and idosgames-project-structure (where code goes as the project grows). If pulling modules over MCP, use the @idosgames/mcp tools get_host_scaffold / get_module / get_manifest."
1347
+ "description": "Start a new game or app on the iDosGames composable-module architecture: scaffold the base (sign-in + the lobby on the host shell) and plug in modules — the systems (shop, heroes, leaderboards…) and the games (board-game, idle-rpg, voxelcraft, mini-game, …). Use this whenever a developer wants to CREATE an iDosGames project from scratch, add an iDosGames game module to a project, or asks how @idosgames/app-shell, @idosgames/module-sdk, the host shell, mountHost, or src/modules.ts fit together. Pairs with idosgames-module-contract (writing a module) and idosgames-compose-modules (merging several) and idosgames-project-structure (where code goes as the project grows). If pulling modules over MCP, use the @idosgames/mcp tools get_host_scaffold / get_module / get_manifest."
1077
1348
  },
1078
1349
  {
1079
1350
  "name": "idosgames-module-contract",
1080
- "description": "Write or modify an iDosGames feature module against the module contract in @idosgames/module-sdk: the Module manifest, ModuleContext, EngineScene (Three/Phaser/vanilla), UiPanel (React), route registration, and the shared controller-box bridge between an imperative scene and React panels. Use this whenever a developer authors a NEW module, edits an existing one (board-game, idle-rpg, voxelcraft, game-hud, workshop), or asks about defineModule, registerScene/registerPanel/registerRoute, activate/suspend, SceneMountContext, sharedUi / ctx.sharedUi.shouldDraw, ctx.events / defineTopic, ctx.content / ContentTypeHandler (letting the Workshop publish and open the game's content), ctx.navigate, the --idos-safe-* layout variables, or the {camelCase(id)}Module export convention."
1351
+ "description": "Write or modify an iDosGames feature module against the module contract in @idosgames/module-sdk: the Module manifest, ModuleContext, EngineScene (Three/Phaser/vanilla), UiPanel (React), route registration, and the shared controller-box bridge between an imperative scene and React panels. Use this whenever a developer authors a NEW module, edits an existing one (board-game, idle-rpg, voxelcraft, mini-game, store, character, workshop…), or asks about defineModule, registerScene/registerPanel/registerRoute, ctx.features (register / open / setBadge / setAvailable), ctx.modes, activate/suspend, SceneMountContext, sharedUi / ctx.sharedUi.shouldDraw, ctx.events / defineTopic, ctx.content / ContentTypeHandler (letting the Workshop publish and open the game's content), ctx.multiplayer / registerGame (playing online through the lobby's rooms system), ctx.navigate, the --idos-safe-* layout variables, or the {camelCase(id)}Module export convention."
1081
1352
  },
1082
1353
  {
1083
1354
  "name": "idosgames-project-structure",
@@ -1089,7 +1360,7 @@
1089
1360
  },
1090
1361
  {
1091
1362
  "name": "idosgames-ui-kit",
1092
- "description": "Build and restyle game screens with the iDosGames UI kit (@idosgames/react/ui) and the ready screen modules (*-ui): change colours, animations and sounds in ONE file (src/ui.config.ts), install a shop / heroes / inventory / leaderboard / rewards / craft / marketplace / offers / events / season / friends / chat / invite / arena / profile / tutorials screen instead of writing it, open another module's screen with ctx.features.open, register a new screen with ctx.features.register, split a dense screen into popups (Popup, ConfirmPopup, bottom sheet on a phone), play UI sounds, celebrate a reward (icons fly to the balance counters), mark elements for tutorial hints (data-tutorial-anchor), and read the player's sound / motion prefs. Use this whenever the user asks to change how the game's interface looks, sounds or animates, to add or build a game screen or menu, a popup, a reward animation, a bottom navigation, a \"More\" menu, a settings screen, or touches @idosgames/react/ui, defineUiConfig, ui.config.ts, ctx.features, FeatureScreenProps, useCelebrate, usePlayerPrefs, Popup, Tabs or ResourceList."
1363
+ "description": "Build and restyle game screens with the iDosGames UI kit (@idosgames/react/ui) and the ready system modules (store, character, inventory, …): change colours, animations and sounds in ONE file (src/ui.config.ts), install a shop / VIP / heroes / inventory / chests / boosts / leaderboard / daily rewards / quests / collections / craft / marketplace / offers / events / team event / season / friends / chat / invite / arena / multiplayer rooms / profile / tutorials / workshop / AI studio system instead of writing it, open another module's screen with ctx.features.open, register a new screen (a lobby tab) with ctx.features.register and hide it while the title has no data (setAvailable), split a dense screen into popups (Popup, ConfirmPopup, bottom sheet on a phone), play UI sounds, celebrate a reward (icons fly to the balance counters), mark elements for tutorial hints (data-tutorial-anchor), and read the player's sound / motion prefs. Use this whenever the user asks to change how the game's interface looks, sounds or animates, to add or build a game screen or menu, a popup, a reward animation, a bottom navigation, a \"More\" menu, a settings screen, or touches @idosgames/react/ui, defineUiConfig, ui.config.ts, ctx.features, FeatureScreenProps, useCelebrate, usePlayerPrefs, Popup, Tabs or ResourceList."
1093
1364
  },
1094
1365
  {
1095
1366
  "name": "item-system",
@@ -1107,6 +1378,10 @@
1107
1378
  "name": "lootbox-system",
1108
1379
  "description": "Build a lootbox / gacha / loot-crate system in a game on the iDosGames TypeScript SDK (@idosgames/core) via client.lootbox (LootboxService): load lootbox definitions (reward slots, weighted pools, price options, pity rules) and open one or many boxes for randomized rewards, including hard-pity tracking. Use this whenever the user is working in the iDosGames TS SDK or its game templates (board-game, idle-rpg) and wants loot crate / gacha / mystery box UIs, reward-pool or drop-rate config, pity-counter or bad-luck-protection systems, or otherwise touches client.lootbox, LootboxService, LootboxDefinitions, LootboxRewardSlot, LootboxPityRule, or UserLootboxState — even if they don't name the module explicitly."
1109
1380
  },
1381
+ {
1382
+ "name": "mailbox-system",
1383
+ "description": "Build a mailbox / inbox in a game on the iDosGames TypeScript SDK (@idosgames/core) via client.mailbox (MailboxService): letters with rewards from the publisher (personal letters and scheduled broadcasts), free daily gifts between friends, transfers of a player's own resources to a friend (declined or expired ones come back), and rewards of other systems the player has not claimed yet (leaderboard cycle, team event prize, invite rewards, missed season tiers). Claim one letter or \"Claim all\" in one server operation, mark read, delete, the badge counters. Use this whenever the user wants a mailbox, inbox, mail, letters, compensation / gift letters, \"send a gift to a friend\", \"claim all\", a mail badge, or touches client.mailbox, MailboxService, MailboxDefinitions, MailboxLetter, MailboxPendingReward — even if they don't name the module. The ready screen is the `mailbox` module (modules/mailbox)."
1384
+ },
1110
1385
  {
1111
1386
  "name": "marketplace-system",
1112
1387
  "description": "Build a player-to-player marketplace in a game on the iDosGames TypeScript SDK (@idosgames/core) via client.marketplace (MarketplaceService): browse offers grouped/by item, create and buy fixed-price listings, create auctions and place bids and claim settlement, create/cancel/fill buy orders, create/accept/decline/cancel direct trades (P2P gifts/swaps), read my-state (my offers, leading bids, incoming/outgoing trades, claimables), page through trade history, and claim back escrow from expired or unsettled offers. Use this whenever the user is working in the iDosGames TS SDK or its game templates (board-game, idle-rpg) and wants an auction house, player market, trading post, buy-order/limit-order board, gifting/trading between players, or otherwise touches client.marketplace, MarketplaceService, MarketplaceOfferView, MarketOfferType, MarketplaceAuctionState, or MarketplaceSettlementResponse — even if they don't name the module explicitly."
@@ -1117,7 +1392,7 @@
1117
1392
  },
1118
1393
  {
1119
1394
  "name": "multiplayer-realtime",
1120
- "description": "Build realtime peer-to-peer multiplayer in a game on the iDosGames TypeScript SDK (@idosgames/core) via client.multiplayer (MultiplayerService): create/join/leave/close rooms, list public rooms, relay WebRTC SDP offer/answer + ICE candidates between room members, long-poll for signals/chat/presence envelopes, send server-relayed chat, publish member ready/lobby state, take over a silent host (claimHost), kick/ban members; plus the ready-made WebRTC transport RealtimeSession from @idosgames/core/realtime (DataChannels, adaptive polling, host handover, TURN from the room snapshot). This is a signaling and room-lifecycle relay for WebRTC — not a gameplay/economy module. Use this whenever the user is working in the iDosGames TS SDK or its game templates and wants realtime multiplayer rooms/lobbies, WebRTC signaling, peer-to-peer connection setup, a poll loop for realtime events, in-room chat, or ready-check/lobby-state UIs, or otherwise touches client.multiplayer, MultiplayerService, MultiplayerModels, RoomSnapshotResponse, RealtimeEnvelope, EnvelopeType or RealtimeSession — even if they don't name the module explicitly."
1395
+ "description": "Build realtime peer-to-peer multiplayer in a game on the iDosGames TypeScript SDK (@idosgames/core) via client.multiplayer (MultiplayerService): create/join/leave/close rooms, list public rooms, relay WebRTC SDP offer/answer + ICE candidates between room members, long-poll for signals/chat/presence envelopes, send server-relayed chat, publish member ready/lobby state, take over a silent host (claimHost), kick/ban members; plus the ready-made WebRTC transport RealtimeSession from @idosgames/core/realtime (DataChannels, adaptive polling, host handover, TURN from the room snapshot). This is a signaling and room-lifecycle relay for WebRTC — not a gameplay/economy module. Use this whenever the user is working in the iDosGames TS SDK or its game templates and wants realtime multiplayer rooms/lobbies, WebRTC signaling, peer-to-peer connection setup, a poll loop for realtime events, in-room chat, or ready-check/lobby-state UIs, or otherwise touches client.multiplayer, MultiplayerService, MultiplayerModels, RoomSnapshotResponse, RealtimeEnvelope, EnvelopeType or RealtimeSession — even if they don't name the module explicitly. In an app with the base (lobby) a game does NOT open rooms: it registers in ctx.multiplayer (registerGame) and takes the room in start(room) — read the first section."
1121
1396
  },
1122
1397
  {
1123
1398
  "name": "premium-system",