保存与维护
FPSMatch 将地图数据放在游戏目录下的 fpsmatch/<世界存档名>/,全局数据位置由 fpsmatch/config.json 中的 globalDataPath 决定,默认位于 fpsmatch/global/。
地图区域、队伍、能力和玩家比赛数据由对应保存条目写入世界目录。地图设置还会使用地图自己的配置文件。实际子目录名称由注册该数据类型的模组决定,因此备份时应保留整个世界对应目录,而不是只挑某个 JSON 文件。
哪些操作会自动保存
地图创建、地图区域修改、出生点修改、配置导入以及多种能力命令会在成功后调用框架保存。设置命令的 set、reset 修改当前内存值,使用 settings save 将其写回配置文件。
需要统一写出所有已注册数据时执行:
/fpsm save
异步或自动保存发生时,不应在服务器运行中直接用外部程序覆盖相同文件。
重载的含义
/fpsm reload
该命令发布 FPSMatch 重载事件,具体数据和扩展如何响应取决于注册的读取器。它不是 Minecraft /reload 的别名,也不会重新加载 Java 模组或新增游戏类型。
单张地图的设置可以单独从文件载入:
/fpsm map modify cs training settings load
这会用文件内容替换当前设置值。若刚通过命令修改但尚未保存,重新加载会舍弃那些内存修改。
世界存档与配置来源
地图配置导入会扫描 fpsmatch 下其他世界对应的目录,并读取结构匹配的地图与 .cfg 文件。它不会跨世界搬运建筑。世界本身仍需要通过 Minecraft 世界管理、结构工具或其他建图流程迁移。
服务器更换世界文件夹名称后,会得到不同的 FPSMatch 世界数据目录。希望沿用旧地图配置时,可以保留原目录供配置导入发现,或由服务器管理员在停服状态下管理完整存档。
版本变化
玩法模组更新后,可能增加设置、能力或商店结构。旧地图能够加载哪些内容由当前 Codec 和迁移逻辑决定。配置导入要求目标的全部设置能从来源解析,并要求商店结构兼容;无法匹配的旧数据不会被强行套用。
地图制作者应把稳定地图 ID 当作存档身份。仅修改 displayName 来改变玩家看到的名称,避免为了展示改名而产生两份地图数据。