@blazium-games/skills 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blazium-games/skills",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Agent skills for the Blazium Games platform.",
5
5
  "repository": "https://github.com/blazium-games/games_skill",
6
6
  "license": "MIT",
@@ -21,7 +21,7 @@ Summarize store page traffic for one game.
21
21
  ## 1. Fetch
22
22
 
23
23
  1. Resolve the game with `list_games` if the user did not give a `uid`.
24
- 2. Call `get_game_analytics` with `uid` (or read `blazium-games://games/{uid}/analytics`).
24
+ 2. Call `get_game_analytics` with `uid` and, when the user names a build, `build` (or read `blazium-games://games/{uid}/analytics`).
25
25
 
26
26
  ## 2. Interpret
27
27
 
@@ -37,6 +37,7 @@ Summarize store page traffic for one game.
37
37
  | `downloads.by_source[]` | `website`, `asset_library` (Godot or Blazium editor), `api`, `mcp_player`, `mcp_dev` |
38
38
  | `downloads.by_access[]` | `anonymous`, `owner`, `free`, `purchase`, `grant`, `key`, `bundle` |
39
39
  | `downloads.by_outcome[]` | Every attempt, including refusals such as `sign_in_required` and `payment_required` |
40
+ | `events[]` | Registered funnel events: `name`, `count`, `unique_devices`, and `daily`. This is not visitor or download analytics |
40
41
 
41
42
  Analytics are aggregate. Individual visitors are not identifiable through the MCP.
42
43
 
@@ -98,16 +98,7 @@ Ask before adding them if the game has no privacy policy or the user needs playe
98
98
 
99
99
  ## 4. Custom events (optional)
100
100
 
101
- ```http
102
- POST https://api.blazium.online/api/v1/public/events
103
- X-App-Id: <game uid>
104
- X-Build-Id: <build_id>
105
- Content-Type: application/json
106
-
107
- { "events": [ { "event": "level_complete", "anonymous": true, "device_uid": "<random per install>" } ] }
108
- ```
109
-
110
- Up to 100 events per request (more returns `4130`); the response is `202`. Use a random per-install id, not hardware identifiers.
101
+ Register the name first with `set_funnels`. Then record it from the signed-in client, a game server key, or a scripted lobby. Unknown names are refused. See https://docs.blazium.games/docs/progress. The six standard events stay on the public route above.
111
102
 
112
103
  ## 5. Symbols
113
104
 
@@ -84,6 +84,7 @@ If OAuth is not possible (headless CI, remote agents), use an API key instead. S
84
84
  | Add crash reporting to a game | `blazium-games-crash-reporting` |
85
85
  | Investigate a crash | `blazium-games-debug-crash` |
86
86
  | Read visitor analytics | `blazium-games-analytics` |
87
+ | Set achievements, stats, funnels, or presence writers | `get_achievements`, `set_achievements`, `get_stats`, `set_stats`, `get_funnels`, `set_funnels`, `get_presence_writers`, `set_presence_writers` ([tools](./references/tools.md)) |
87
88
  | Rotate MCP or deploy keys | `blazium-games-keys` |
88
89
  | Moderate a game's chat channel (guests, bans, mutes) | `get_game_chat`, then `set_chat_guests`, `ban_chat_user`, or `suspend_chat_user` only when the human asks ([tools](./references/tools.md)) |
89
90
  | Find, review, or play games as a player, or get a chat token | `blazium-games-player` |
@@ -10,7 +10,18 @@ All tools call the Blazium Games API on behalf of the connected user. `uid` acce
10
10
  | `get_game` | `uid` | | One game's settings and store page fields |
11
11
  | `create_game` | `name` (required), `tagline`, `description`, `visibility`, `asset_type`, `vanity_name`, `adult`, `indexable`, `parent` | account, write | Create a store page. Tools, mods and plugins need a `parent` before they can go public. Needs developer mode on the account (`4105`) |
12
12
  | `update_game` | `uid` (required), `name`, `tagline`, `description`, `visibility`, `asset_type`, `adult`, `indexable`, `parent` | write | Update a store page; only passed fields change. An empty `parent` object clears it |
13
- | `get_game_analytics` | `uid` | | Visitor analytics: views, unique visitors, countries, actions, downloads, and browser plays |
13
+ | `get_game_analytics` | `uid`, optional `build` | | Visitor analytics plus registered funnel events: count, unique devices, and a daily series |
14
+ | `get_achievements` | `uid` | | Achievement definitions and writers |
15
+ | `set_achievements` | `uid`, `achievements` | mcp:catalog.write | Replaces the achievement list |
16
+ | `get_stats` | `uid` | | Integer stats, op, and writers |
17
+ | `set_stats` | `uid`, `stats` | mcp:catalog.write | Replaces the stat list |
18
+ | `get_funnels` | `uid` | | Registered analytics events and writers |
19
+ | `set_funnels` | `uid`, `funnels` | mcp:catalog.write | Replaces the funnel list |
20
+ | `get_presence_writers` | `uid` | | Who may set the short presence status |
21
+ | `set_presence_writers` | `uid`, `writers` | mcp:catalog.write | Replaces that list |
22
+ | `list_server_keys` | `uid` | | Game server key prefixes and roles. No secrets |
23
+ | `request_server_key` | `uid`, `role` | | Returns a game_server or private_server secret once |
24
+ | `revoke_server_key` | `uid`, `key_id` | | Revokes one game server key |
14
25
  | `get_web_player` | `uid` | | Browser player settings |
15
26
  | `set_web_player` | `uid` | `enabled`, `full_build_id`, `demo_build_id` | Choose the full build and an optional demo. Needs mcp:build.write |
16
27
  | `list_game_crashes` | `uid` | | Recent crash reports |
@@ -6,3 +6,10 @@ description: Publish a Luau lobby pack with chauffeur and check it on the Script
6
6
  # Lobby packs
7
7
 
8
8
  `chauffeur lobby publish --dir <path>` packs `.lua` files, refuses any other script, and uploads through the uploader. `chauffeur lobby list` and `chauffeur lobby status` show the stored packs and the checksum the next lobby loads. The game editor Scripted lobby tab shows the same history. The page does not upload the pack.
9
+
10
+ A seated pack can call these on `lobby`. The host performs them. The pack never sees the host token.
11
+
12
+ - `unlock_achievement(user, slug)` and `set_stat(user, slug, value)` write progress when that definition lists `scripted_lobby`.
13
+ - `record_event(user, name, fields)` stores one registered funnel event. Slug, event, and status strings that are too long are refused before the call. `fields` is at most 4 KiB.
14
+ - `analytics(name)` reads count, unique devices, and the daily totals for one event that lists `scripted_lobby`. An optional build filter uses the same shape. It does not return visitor or download numbers.
15
+ - `set_presence(user, status)` only notifies that player's lobby connection. The host signs the notice. The launcher applies it.