Syn8leo

2026 年 10 月开始 · 项目 · 约 6 分钟读完

饥荒服务器管理器和运维工具

给《饥荒联机版》专用服务器配的一套 Windows 工具:中文图形管理器、存档备份与回档、实时网页地图、AI 队友聊天助手、掉线和崩溃自动重启,以及几个自制服务器模组。

演示

管理器是一个中文界面的 Windows 程序。选好世界,点一下就能同时启动地面和洞穴两个服务器;关服时它会先存档再退出,不会丢进度。存档页列出每份存档对应的天数和季节,回档前自动整份备份,回档后还会核对地面和洞穴是不是都加载了正确的存档。

饥荒服务器管理器的概览页:上方是世界选择和启动、关闭、重启按钮,下面显示世界信息、运行状态和快捷操作
管理器的概览页(用演示世界截图)

服务器跑起来以后,朋友可以在浏览器里打开实时地图,看到整个世界的地形、建筑、Boss 和每个人的位置,不进游戏也能在网页上给游戏里的人发消息。游戏聊天里还有一个 AI 队友,问它“这个怎么做”“这个怪多少血”,它会先查从游戏里导出的数据和维基再回答;Boss 出现、季节快结束、有人血量很低时,它也会在聊天里提醒大家。

网页实时地图:整张世界地图,标出洞口、Boss 和各种地标,右侧是在线玩家和网页聊天面板
网页实时地图(玩家位置和聊天记录已去掉)。地形贴图从本机安装的游戏里生成,不随代码分发。

另外还有几个只在服务器上运行的小模组:自动给灭火器和发电机补燃料,自动打理农场,开关青蛙雨,还有一个会自己从冰箱里取食材、挑合适的菜去做饭的“大厨机器人”。家里网络闪断导致洞穴进不去,或者服务器崩溃时,看门狗会先在游戏里提醒,再安全地存档重启;如果崩溃时有人在线,会先征求大家的同意。

它怎么工作

饥荒的专用服务器没有远程控制接口,只有两个黑色的命令行窗口。管理器的办法是“假装键盘”:通过 Windows 的控制台接口,把命令一个字一个字地输入服务器窗口,再去读服务器写出的日志,找到自己事先留下的随机记号,就知道命令执行的结果。所以不管服务器是谁打开的,管理器都能管;关掉管理器,服务器也照样运行。

地图和 AI 队友用的数据,来自一个只在服务器上运行的小模组。它每隔一段时间把地形、建筑和玩家状态写成文件,地图服务读这些文件来画图。交给 AI 的不是原始数字,而是程序先算好的结论,比如“还有 3 天进入冬天”,这样 AI 就不会自己推算出错。

这条规矩是吃过亏才定下来的。早期的 AI 队友会自己推算“几天后满月”,算错了还和朋友争辩,提醒也发得太频繁,后来才改成由程序算好再交给它,同时提高了提醒的门槛。还有一次,服务器加了一个自制模组之后,所有人一进服就崩溃。查了很久才发现,游戏会根据服务器的模组列表给每个物体多加一个网络变量,本地模组不在玩家那边的列表里,两边的数据就错位了,解决办法是把服务器专用的模组标成“仅客户端模组”。从那以后,所有改动我都先在复制出来的测试世界里验证,改之前先完整备份存档,等朋友不玩的时候再上线。

下载和使用

下载 dst-server-tools.zip
148 KB · 更新于 2026-10-29
SHA-256:3a232325cfd4e9ecfa104479d77b9a7319da361771cdae1c51ff09f14f9831eb

代码包是 MIT 许可证。包内不含游戏服务端、贴图、游戏脚本、数值数据、玩家存档或任何 Key;这些都需要你自己从合法安装的游戏和服务器生成。

  1. 准备 Windows 和 Python需要 Windows 10/11 64 位。到 python.org 安装 Python 3.10 或更新版本,安装时勾选“Add python.exe to PATH”。管理器和 AI 助手只用标准库;实时地图还需要:
    python -m venv .venv
    .venv\Scripts\activate
    pip install -r requirements.txt
  2. 解压代码包解压到不含中文和空格的目录,例如 D:\DST_Server。不要覆盖你已有的服务端目录。
  3. 安装饥荒专用服务器双击 1_install_server.bat。脚本会下载 SteamCMD,再安装专用服务器(app 343050,约 4~5GB)。它不会覆盖已有的 dedicated_server_mods_setup.lua。
  4. 用游戏客户端创建世界打开《饥荒联机版》→ 创建游戏 → 设置世界(建议开启洞穴)→ 生成后退出。存档会出现在 文档\Klei\DoNotStarveTogether\<数字目录>\Cluster_1。
  5. 申请服务器令牌登录 Klei 账号 → 游戏 → 饥荒联机版 → 游戏服务器 → 添加新服务器,复制令牌;在 Cluster_1 文件夹里新建 cluster_token.txt,粘贴保存。这个文件不要发给别人。
  6. 填写 config.json把 config.example.json 复制为 config.json,最少改:
    "default_cluster": "Cluster_1"
    如果文档目录被 OneDrive 挪走,填写 klei_root;如果自动检测不到账号目录,填写 conf_dir,例如 DoNotStarveTogether/123456789。程序不会用任何人的账号目录兜底。
  7. 打开管理器双击 4_服务器管理器.bat,或运行 python manager\dst_manager.pyw。顶部选择世界,点“▶ 启动”。关服请用“■ 关闭”,它会先存档再退出。
  8. 让朋友加入默认走 Klei 官方联网,朋友在“浏览游戏”里搜索服务器名即可。管理器的“玩家”“存档 / 回档”“备份”“日志”页可以完成日常管理。回档前会自动整份备份。
  9. (可选)安装模组把 server\mods\ 里的五个模组放进服务端模组目录,在世界的 modoverrides.lua 里启用。本地模组必须设置 client_only_mod=true,否则客户端加入时会崩溃。需要创意工坊模组时,把 ID 写进 dedicated_server_mods_setup.lua 的 ServerModSetup("ID")。
  10. (可选)启动实时地图安装 numpy、scipy、Pillow,在世界里启用 livemap 模组,运行一次 python livemap\extract_assets.py 从自己的服务端解出地图素材;在 config.json 里把 livemap.enabled 设为 true,再双击 5_实时地图.bat。网页默认只监听 127.0.0.1:8737,不要直接暴露公网。
  11. (可选)配置 AI 队友把 livemap\config.example.json 复制为 livemap\config.json,填写 DeepSeek Key、网页聊天口令和家的坐标。Key 只保存在这个文件里。不填 Key 也能用固定提醒,只是不能问答。然后重启地图服务。
  12. (可选)接入 AI 助手命令行安装 Node.js 18 以上和 Claude Code,运行 setx DEEPSEEK_API_KEY "你的key",把 ai_helper\CLAUDE.example.md 复制为 CLAUDE.md,按自己的玩家名和坐标修改;再把 启动AI助手.example.bat 复制为 启动AI助手.bat。权限文件只允许它调用 dst.py,禁止改服务器、重启和回档。

常见问题

没有云服务器也能开服给朋友玩吗?

能。默认使用游戏自带的联网方式,世界会出现在服务器列表里,朋友搜名字就能加入。

管理器要一直开着吗?

不用。服务器是独立的窗口,关掉管理器不影响它们。下次打开时,管理器会自动识别正在运行的服务器。

为什么不建议直接关掉服务器窗口?

用管理器关服会先存档再退出,最安全。强行结束进程可能丢掉最近的进度,服务器列表里还会残留一个打不开的房间,大约 20 分钟后才消失。

回档会不会把存档弄坏?

回档会删除目标之后的存档,所以管理器在回档前会先存一次档并整份备份。发现回错了,可以从备份完整恢复。

AI 队友要花钱吗?

需要用你自己申请的大模型 API Key,按用量计费。每条回复只消耗很少的 token,日常聊天花费很低。Key 只保存在你自己电脑的配置文件里。

能在 Mac 或 Linux 上用吗?

管理器不行,它依赖 Windows 的控制台接口。网页地图服务本身是跨平台的 Python 程序。

模组会影响没装模组的玩家吗?

不会。这几个模组只在服务器上运行,玩家不用另外安装任何东西。

《饥荒联机版》是 Klei Entertainment 的作品,本项目与 Klei 没有官方关系。游戏的贴图、脚本和数据不会随本项目分发。网页地图使用开源的 Leaflet(BSD-2 许可证)。我自己服务器上的地图和聊天页面只给朋友用,不在这里公开。