发布渠道
三种分发方式:Steam 创意工坊(Steam 客户端)、官网插件工坊(自发行版)、 本地扩展目录(手工分发 / 内测)。
1. Steam 创意工坊
| 项 | 值 |
|---|---|
| 正式版 AppID | 5521270 |
| Playtest 版 AppID | 5227990 |
| 扫描来源 | 启动时跟随注入的 SteamAppId;未进 Steam 默认正式版 |
- 用 Steam 官方创意工坊流程上传(随包发行的
MOD导出只是便捷打包)。 - 两个 AppID 的工坊互不共享——Playtest 与正式版要各自上传一份。
- Steam 版客户端不访问官网工坊域名(渠道设计 + Steam 合规要求)。
2. 官网插件工坊(自发行版专有)
入口:设置 → 扩展工坊 → 插件工坊(PluginHubWindow)→「发布」页。 网页端也有作者中心,功能一致。
流程
- 选文件夹或插件包上传 → 服务端解析并校验
mod.json - 填展示信息 + 版本号:默认取包内
mod.json,可直接改成更高的版本号提新版本 (成功后同步回本地mod.json) - 提交审核(
data类 + 信任作者可自动上架;script类人工审) - 在「我的插件」里可改信息 / 下架 / 提新版本
约束
| 项 | 限制 |
|---|---|
| 登录 | 需要登录自发行版账号(工坊令牌 TBW1.…,随设备码登录一起下发) |
| 单包体积 | 20 MB(见 打包与体积上限) |
| 待审版本数 | 同时最多 5 个 |
| 每日提交 | 有上限(超了提示"今天提交的版本数已达上限") |
| 版本号 | x.y.z 且必须大于线上最高版本 |
| 适配代次 | mod.json 必须写 "target_app_version": "0.2";不写的包客户端拒绝安装(见 兼容与版本门禁) |
| 插件 id | 作者段不能是保留名(transbox/official/builtin/community/example/workshop/steam/system/admin/root/support/web/test/tbmod) |
常见错误码
| 错误码 | 含义 |
|---|---|
not_logged_in | 登录过期,重新登录 |
forbidden | 令牌没有上传权限(workshop:publish),重新登录一次即可 |
id_taken / item_exists | id 被占用 / 线上已有该 id——改用新版本号提新版本 |
id_mismatch | 包内 id 与线上物品 id 不一致 |
bad_package | 包校验不通过(检查 mod.json 与目录结构) |
reserved_id | 使用了保留的 id 段 |
too_large | 超过 20 MB |
quota_pending / quota_daily | 待审过多 / 今日提交达上限 |
官方插件不走工坊
官方内置插件(community_* / workshop.*)随客户端版本分发,不发布到网页工坊。
3. 本地扩展目录(手工分发)
用户把插件文件夹解压到 %APPDATA%/transbox/extensions/,然后在扩展工坊刷新。 适合内测、私有插件、不想公开的插件。
放在这里的插件来源标记为 local,同名冲突时优先级最高(local > steam > web)。
⚠️ 本地目录同样受
target_app_version门禁约束:0.1.x 时代的老插件放进去不会出现在列表里, 日志会写[registry] 拒绝识别外部插件 <id>: 缺少 target_app_version 字段。 先补上"target_app_version": "0.2"再刷新。
渠道差异一览
| Steam 工坊 | 官网插件工坊 | 本地目录 | |
|---|---|---|---|
| 谁能用 | Steam 渠道客户端 | 自发行版客户端 | 全部 |
| 上传方式 | Steam 官方流程 | 客户端发布页 / 网页作者中心 | 手动拷贝 |
| 审核 | Steam | 平台审核(data 类可自动) | 无 |
| 体积上限 | Steam 限制 | 20 MB | 无 |
| 自动更新 | Steam 客户端同步 | 客户端启动后 10s + 每 24h 同步 | 手动 |
