演示
管理器是一个中文界面的 Windows 程序。选好世界,点一下就能同时启动地面和洞穴两个服务器;关服时它会先存档再退出,不会丢进度。存档页列出每份存档对应的天数和季节,回档前自动整份备份,回档后还会核对地面和洞穴是不是都加载了正确的存档。
服务器跑起来以后,朋友可以在浏览器里打开实时地图,看到整个世界的地形、建筑、Boss 和每个人的位置,不进游戏也能在网页上给游戏里的人发消息。游戏聊天里还有一个 AI 队友,问它“这个怎么做”“这个怪多少血”,它会先查从游戏里导出的数据和维基再回答;Boss 出现、季节快结束、有人血量很低时,它也会在聊天里提醒大家。
另外还有几个只在服务器上运行的小模组:自动给灭火器和发电机补燃料,自动打理农场,开关青蛙雨,还有一个会自己从冰箱里取食材、挑合适的菜去做饭的“大厨机器人”。家里网络闪断导致洞穴进不去,或者服务器崩溃时,看门狗会先在游戏里提醒,再安全地存档重启;如果崩溃时有人在线,会先征求大家的同意。
它怎么工作
饥荒的专用服务器没有远程控制接口,只有两个黑色的命令行窗口。管理器的办法是“假装键盘”:通过 Windows 的控制台接口,把命令一个字一个字地输入服务器窗口,再去读服务器写出的日志,找到自己事先留下的随机记号,就知道命令执行的结果。所以不管服务器是谁打开的,管理器都能管;关掉管理器,服务器也照样运行。
地图和 AI 队友用的数据,来自一个只在服务器上运行的小模组。它每隔一段时间把地形、建筑和玩家状态写成文件,地图服务读这些文件来画图。交给 AI 的不是原始数字,而是程序先算好的结论,比如“还有 3 天进入冬天”,这样 AI 就不会自己推算出错。
这条规矩是吃过亏才定下来的。早期的 AI 队友会自己推算“几天后满月”,算错了还和朋友争辩,提醒也发得太频繁,后来才改成由程序算好再交给它,同时提高了提醒的门槛。还有一次,服务器加了一个自制模组之后,所有人一进服就崩溃。查了很久才发现,游戏会根据服务器的模组列表给每个物体多加一个网络变量,本地模组不在玩家那边的列表里,两边的数据就错位了,解决办法是把服务器专用的模组标成“仅客户端模组”。从那以后,所有改动我都先在复制出来的测试世界里验证,改之前先完整备份存档,等朋友不玩的时候再上线。
下载和使用
代码包是 MIT 许可证。包内不含游戏服务端、贴图、游戏脚本、数值数据、玩家存档或任何 Key;这些都需要你自己从合法安装的游戏和服务器生成。
- 准备 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 - 解压代码包解压到不含中文和空格的目录,例如
D:\DST_Server。不要覆盖你已有的服务端目录。 - 安装饥荒专用服务器双击
1_install_server.bat。脚本会下载 SteamCMD,再安装专用服务器(app 343050,约 4~5GB)。它不会覆盖已有的dedicated_server_mods_setup.lua。 - 用游戏客户端创建世界打开《饥荒联机版》→ 创建游戏 → 设置世界(建议开启洞穴)→ 生成后退出。存档会出现在
文档\Klei\DoNotStarveTogether\<数字目录>\Cluster_1。 - 申请服务器令牌登录 Klei 账号 → 游戏 → 饥荒联机版 → 游戏服务器 → 添加新服务器,复制令牌;在
Cluster_1文件夹里新建cluster_token.txt,粘贴保存。这个文件不要发给别人。 - 填写 config.json把
config.example.json复制为config.json,最少改:
如果文档目录被 OneDrive 挪走,填写"default_cluster": "Cluster_1"klei_root;如果自动检测不到账号目录,填写conf_dir,例如DoNotStarveTogether/123456789。程序不会用任何人的账号目录兜底。 - 打开管理器双击
4_服务器管理器.bat,或运行python manager\dst_manager.pyw。顶部选择世界,点“▶ 启动”。关服请用“■ 关闭”,它会先存档再退出。 - 让朋友加入默认走 Klei 官方联网,朋友在“浏览游戏”里搜索服务器名即可。管理器的“玩家”“存档 / 回档”“备份”“日志”页可以完成日常管理。回档前会自动整份备份。
- (可选)安装模组把
server\mods\里的五个模组放进服务端模组目录,在世界的modoverrides.lua里启用。本地模组必须设置client_only_mod=true,否则客户端加入时会崩溃。需要创意工坊模组时,把 ID 写进dedicated_server_mods_setup.lua的ServerModSetup("ID")。 - (可选)启动实时地图安装 numpy、scipy、Pillow,在世界里启用
livemap模组,运行一次python livemap\extract_assets.py从自己的服务端解出地图素材;在config.json里把livemap.enabled设为true,再双击5_实时地图.bat。网页默认只监听127.0.0.1:8737,不要直接暴露公网。 - (可选)配置 AI 队友把
livemap\config.example.json复制为livemap\config.json,填写 DeepSeek Key、网页聊天口令和家的坐标。Key 只保存在这个文件里。不填 Key 也能用固定提醒,只是不能问答。然后重启地图服务。 - (可选)接入 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 许可证)。我自己服务器上的地图和聊天页面只给朋友用,不在这里公开。