役次元 Yokonex Hub 开发文档

#快速开始

三条路,看你是谁。


#我是玩家,想用起来

#先选一个客户端

有两个,装哪个都行 —— 它们不能同时运行(同一台设备只能由一个程序控制)。

役次元 Yokonex Hub 役次元游戏中心
在哪下 ycygame.org/download games.ycygame.org/download
设备、插件、波形、玩法 有 有
下载和启动游戏 没有 有

想玩平台上的游戏就装游戏中心 —— 它是 Hub 的超集。 只用自己已有的游戏 + 插件联动的话,装 Hub 就够。

#装

下载下来的是一个安装程序,双击进向导,一路默认就行。它装在你自己的用户目录下, 不需要管理员权限,也不会弹 UAC。

向导里有一个低调模式,默认开着:桌面图标、开始菜单、 「添加或删除程序」里都只显示 Yokonex,不显示完整名字。

第一次运行会被 SmartScreen 拦一下(「未知发布者」),点「更多信息 → 仍要运行」。 不放心的话,下载页上有整包的 SHA-256,可以先用 PowerShell 的 Get-FileHash 核对。

#用

  1. 打开客户端,第一次会让你确认一份禁忌症须知 —— 那不是免责声明,是真实的禁忌情况,请逐条读。
  2. 在「设备」页扫描并连上你的设备。
  3. 要玩联动的话,到「插件」页找你的游戏,点安装,按插件自带的教程装好游戏侧的 Mod。
  4. 装了游戏中心的话,「商店」页可以直接下载和启动游戏。

任何时候按 Ctrl + Alt + S 立刻停下全部设备,窗口不在前台也有效。

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


#我是插件开发者

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

   你的插件                     本机 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,不要图刺激往上拉。