跳转至

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 别和已有枪包撞(撞了会互相覆盖,玩家装两个就出事)

⚠️ 有些枪包作者会明确写"禁止二次分发"。自己服务器内部用可以,公开发布前先看许可证。