役次元 Yokonex Hub 开发文档

#快速开始

三条路,看你是谁。


#我是玩家,想用起来

  1. ycygmae.app 下载 GameHub 客户端并安装。
  2. 打开客户端,在「配置」页填役次元连接码(App 里复制的那串)。
  3. 在「蓝牙」页连上你的设备。
  4. 到「插件市场」找你玩的游戏,点「用客户端安装」。
  5. 按插件自带的教程装好游戏侧的 Mod,启动游戏。

设备没反应?看常见问题 - 插件装了但没反应


#我是插件开发者

#第一步:搞清楚数据怎么流

   你的插件                     本机 GameHub 客户端                 设备
┌──────────────┐   HTTP/WS   ┌────────────────────┐   IM/蓝牙   ┌────────┐
│ 读游戏状态    │ ─────────▶ │ 127.0.0.1:43002    │ ─────────▶ │ EMS    │
│ 翻译成事件    │            │ 冷却 / 波形 / 分发  │            │ 飞机杯  │
└──────────────┘            └────────────────────┘            └────────┘

你只负责一件事:如实描述「刚刚发生了什么」。 强度多大、用哪个波形、发给哪台设备,全部由客户端按用户配置决定。

#第二步:五分钟做出能跑的插件

一个插件最少只要两个文件:

my-plugin.zip
├─ manifest.json     ← 必须在压缩包根目录
└─ USAGE.md          ← 给玩家看的教程
{
  "name": "My Game Link",
  "author": "你的名字",
  "version": "1.0.0",
  "yokonex": {
    "source": "mygame",
    "displayName": "我的游戏",
    "adapter": "BepInEx 插件",
    "tutorial": "USAGE.md",
    "events": [
      { "name": "玩家受伤", "eventKey": "mygame.player_hurt", "commandId": "player-hurt" }
    ]
  }
}

发一个事件就这么一行:

curl -X POST http://127.0.0.1:43002/v1/events \
  -H 'content-type: application/json' \
  -d '{"source":"mygame","eventKey":"mygame.player_hurt","commandId":"player-hurt","occurredAt":"2026-09-10T04:00:00Z"}'

设备就动了。剩下的全是「怎么从游戏里可靠地拿到这个事件」。

#第三步:本地自检

node scripts/check-plugin.mjs my-plugin.zip

这个命令调用的就是服务端那份校验代码。 这里过了上传就一定过, 这里报什么错服务器就报什么错 —— 不用靠反复上传试探规则。

#第四步:发版

node scripts/publish-plugin.mjs my-plugin.zip --user 你的用户名

它会自动算 SHA-256、自动判断走直传还是分片、自动报告结果。

上传成功后状态是 pending,审核通过才会出现在市场里。

#接下来读什么

你想知道 看这里
manifest 每个字段什么意思 插件开发指南
事件协议的完整规范 本机网关协议
事件冷却该设多少 网关协议 - 三道闸门
包超过 100MB 大文件上传
所有接口的参数 API 参考
报错了 常见问题


#三条必须知道的规矩

无论你做什么,这三条都适用:

  1. 设备接的是人的身体。 事件必须做冷却和限流,否则尸潮里设备会被刷成常通。
  2. 带内核反作弊的游戏不要读内存。 只能画面/音频识别,否则封号。
  3. 强度按官方建议来。 役次元官方建议电击强度 15~40,不要图刺激往上拉。