08. 打包、安装与分发¶
8.1 打包成 zip¶
唯一铁律:zip 的根目录下直接就是 data/、assets/、gunpack.meta.json——不能多套一层文件夹。
# 在枪包根目录(含 gunpack.meta.json 的那一层)执行
cd mypack
zip -r ../mypack.zip . -x '.*' -x '__MACOSX*' -x '*/.*'
# 检查层级:第一层应该直接是 data/ assets/ gunpack.meta.json
unzip -l ../mypack.zip | head -20
正确输出大致是:
Length Date Time Name
0 2026-09-26 10:00 data/
0 2026-09-26 10:00 assets/
34 2026-09-26 10:00 gunpack.meta.json
如果看到的是 mypack/data/、mypack/assets/,说明多套了一层,TaCZ 读不到。
💡 也可以不打 zip,直接放文件夹——TaCZ 两种都支持。zip 更适合分发。
8.2 安装到哪里¶
| 环境 | 路径 | 说明 |
|---|---|---|
| 客户端(单人/多人) | .minecraft/tacz/mypack.zip 或 .minecraft/tacz/mypack/ |
单人只装这里就够 |
| 服务端 | <服务器根目录>/tacz/ |
多人必须装;与客户端版本一致 |
| 整合包 | overrides/tacz/ |
打包整合包时按此路径放 |
| 服务器面板 | 面板文件管理里找 tacz/ 目录上传 |
宝塔/MCSM 等都一样 |
为什么服务端也要装? 枪包数据(伤害、射速、弹药)需要在服务端参与逻辑;客户端负责表现。缺一边会出现:
| 缺哪边 | 现象 |
|---|---|
| 只装客户端 | 进服被拒 / 枪拿不出来 / 服务端没有这把枪 |
| 只装服务端 | 客户端看不到枪 / 白模 / 无音效 |
8.3 自动同步(推荐给服务器)¶
用 AutoModPack 之类的模组把枪包一起下发:
// automodpack-server.json 的同步清单里加上
"tacz/**"
再把枪包放在服务器的 tacz/ 下,客户端首次进服就会自动下载——避免"玩家版本不一致"引发的玄学问题。
8.4 更新流程(重要)¶
① 改本地枪包 → ② 自测(单人纯净环境先试) → ③ 覆盖服务端 tacz/ → ④ 重启服务端
→ ⑤ 覆盖客户端(或让 AutoModPack 自动更新) → ⑥ 让玩家重进游戏
| 注意 | 说明 |
|---|---|
| 两边同步 | 服务端和客户端同一次更新;不要出现"服务端新版 + 客户端旧版" |
| 版本号 | gunpack_info.json 的 version 记得 +1,方便排查 |
| 改数值也影响 | 哪怕只改 damage 一个字段,服务端不更新就等于没改 |
| 玩家缓存 | 客户端改了枪包必须重进游戏;部分情况需要删 tacz 缓存 |
| 回滚 | 更新前备份旧的 zip/文件夹,出问题 1 分钟回滚 |
8.5 发布与许可¶
| 事项 | 建议 |
|---|---|
| 许可 | TaCZ 本体与多数枪包是 GPL-3.0;二次分发/修改要遵守(保留许可、标注来源) |
| 素材版权 | 模型/贴图/音效若是别人的,别直接打包发布(尤其商业素材) |
| 平台 | CurseForge / Modrinth 发布时,标注适用 MC 版本与 TaCZ 版本区间 |
| 说明文档 | 写清"依赖 TaCZ 本体""客户端+服务端都要装""支持版本范围" |
| 命名 | 枪包 id/namespace 别和已有枪包撞(撞了会互相覆盖,玩家装两个就出事) |
⚠️ 有些枪包作者会明确写"禁止二次分发"。自己服务器内部用可以,公开发布前先看许可证。