把饥荒用户端mod放到服务器里,正确做法不是直接复制客户端mod文件夹,而是让服务器通过SteamCMD下载同一个Workshop mod,并在modoverrides.lua和dedicated_server_mods_setup.lua里启用。 客户端订阅只解决你本地加载,服务器不启用,进服照样会提示缺失或版本不匹配。
饥荒联机版客户端mod怎么同步到服务器:核心逻辑先弄清
饥荒服务器mod和客户端mod区别在哪
先分清两件事,后面操作不容易乱。
- 客户端mod:你在Steam创意工坊点订阅后,文件通常进入
Steamsteamappsworkshopcontent322330数字ID,它主要影响你的界面、显示、本地功能。 - 服务器mod:专用服务器从SteamCMD或手动上传获得,放在服务器安装目录的
mods文件夹里,由存档配置决定是否启用。 - 多数联机mod要求两边都有,服务器负责服务端逻辑,客户端负责本地表现,只装一边,常见结果是进服报错、物品消失、UI异常。
- 行业共识认为,饥荒联机版识别mod靠Workshop ID,不靠你本地文件夹叫什么。
workshop-123456789里的数字必须和创意工坊链接一致。
| 对比项 | 客户端mod | 服务器mod |
|---|---|---|
| 下载位置 | Steam创意工坊目录 | 服务器mods目录 |
| 生效范围 | 你的本地游戏 | 整个服务器分片 |
| 配置方式 | 订阅即可 | modoverrides.lua启用 |
| 是否可强制 | 不能强制别人 | 可配置为服务器必装 |
| 常见路径 | steamappsworkshopcontent322330ID |
服务器目录modsworkshop-ID |
饥荒专用服务器添加mod教程:两个Lua文件别写错
服务器添加mod,核心就两步:让服务器下载,让存档启用,顺序反了,服务器找不到mod。
第一步:拿到Workshop ID
打开Steam创意工坊,找到mod页面,链接里通常有id=数字,这个数字就是Workshop ID,比如链接是https://steamcommunity.com/sharedfiles/filedetails/?id=123456789,ID就是123456789。
第二步:写dedicated_server_mods_setup.lua
这个文件在专用服务器安装目录的mods文件夹下,路径示例:
- Linux:
/home/dst/steamcmd/dst_server/mods/dedicated_server_mods_setup.lua - Windows:
C:steamcmdsteamappscommonDon't Starve Together Dedicated Servermodsdedicated_server_mods_setup.lua
写法:
ServerModSetup("123456789")
ServerModSetup("987654321")
-- 如果是合集,也可以写:
ServerModCollectionSetup("合集ID")
保存后重启服务器,服务器会尝试通过SteamCMD下载对应mod,下载完成后,mods目录会出现workshop-123456789这类文件夹。
第三步:写modoverrides.lua
这个文件不在服务器安装目录,而在存档目录,以主世界Master为例:
- Linux:
/home/dst/.klei/DoNotStarveTogether/Cluster_1/Master/modoverrides.lua - Windows:
C:Users你的用户名DocumentsKleiDoNotStarveTogetherCluster_1Mastermodoverrides.lua
格式:
return {
["workshop-123456789"] = {
enabled = true,
configuration_options = {
["language"] = "zh",
},
},
["workshop-987654321"] = {
enabled = true,
configuration_options = {},
},
}
如果开了洞穴,Caves分片也要放一份同样的modoverrides.lua,业内专家指出,专用服务器在Master和Caves两个分片都要写modoverrides.lua,只写主世界会导致洞穴没mod,路径通常是Cluster_1/Caves/modoverrides.lua。
第四步:重启并验证
Linux常见重启方式:
sudo systemctl restart dst.service
或者用screen进入控制台:
screen -r dst # Ctrl+C停止后,再执行启动命令 ./dontstarve_dedicated_server_nullrenderer -console -cluster Cluster_1 -shard Master ./dontstarve_dedicated_server_nullrenderer -console -cluster Cluster_1 -shard Caves
Windows则在服务器目录运行:
dontstarve_dedicated_server_nullrenderer.exe -console -cluster Cluster_1 -shard Master
验证看日志:Master/server_log.txt和Caves/server_log.txt,搜索mod名或workshop-,能看到加载信息就说明服务器识别了。
饥荒云服务器mod上传路径与本地服务器差异
云服务器优先用SteamCMD,不要乱拖文件夹
云服务器和本地服务器最大区别是网络和权限,云服务器通常没有图形界面,不能直接打开Steam创意工坊,推荐流程:
- 在本地Steam订阅mod。
- 找到本地创意工坊目录:
Steamsteamappsworkshopcontent322330123456789。 - 把整个文件夹压缩。
- 用SFTP、WinSCP或宝塔上传到服务器
mods目录。 - 解压后重命名为
workshop-123456789。 - 检查文件夹根目录有
modinfo.lua。 - 修改
modoverrides.lua并重启。
Linux权限命令示例,把dst换成你的运行用户:
chown -R dst:dst /home/dst/steamcmd/dst_server/mods chmod -R 755 /home/dst/steamcmd/dst_server/mods
如果权限不对,服务器可能读不到mod,日志里会出现permission denied或直接跳过加载。
饥荒国内服务器mod怎么上传更稳
国内云服务器访问Steam创意工坊有时慢,甚至下载超时,更稳的做法是本地下载后上传,步骤:
- 本地Steam确认mod已完全订阅。
- 进入
steamappsworkshopcontent322330,按ID找文件夹。 - 用
tar -czvf workshop-123456789.tar.gz workshop-123456789打包。 - 上传到服务器
mods目录。 - 执行
tar -xzvf workshop-123456789.tar.gz。 - 改名为
workshop-123456789。 - 在
dedicated_server_mods_setup.lua里也保留ServerModSetup("123456789"),方便后续更新。
有些面板支持在线解压,注意不要解压出一层多余目录,正确结构是mods/workshop-123456789/modinfo.lua,不是mods/workshop-123456789/workshop-123456789/modinfo.lua。
常见报错与修复思路
进服提示mod未安装或版本不匹配
按顺序查:
- 客户端是否订阅同一mod。
- 服务器
modoverrides.lua是否enabled = true。 - Master和Caves是否都写了配置。
- Workshop ID是否写错,比如少一位数字。
- mod更新后,服务器是否重启并重新下载。
- 客户端和服务器mod版本是否一致,创意工坊mod自动更新,服务器没更新就会版本错位。
服务器启动崩溃或卡加载
多数情况下是Lua语法错误,检查:
modoverrides.lua每项后面是否有逗号。- 方括号和花括号是否配对。
configuration_options里的值是否和mod配置类型一致。dedicated_server_mods_setup.lua里ID是否被引号包住。- 日志末尾通常有具体行号,直接看
server_log.txt。
手动复制客户端mod文件夹能直接用吗
特定场景可以,比如离线、国内网络下载失败、临时测试,前提是:
- 文件夹必须重命名为
workshop-数字ID。 - 根目录必须有
modinfo.lua。 modoverrides.lua里必须写同一个ID。- 权限正确,运行用户可读。
长期维护还是推荐SteamCMD,手动复制容易漏更新,mod一多就乱。
自己配还是找人代装:价格和成本怎么看
有人搜“饥荒服务器mod代装多少钱”,这个没有统一价,行业里通常按mod数量、是否合集、是否云服务器、是否要调洞穴、是否要排错来报价,简单几个mod可能几十,复杂整合包或带调试可能上百,自己配的成本主要是时间,云服务器本身按月计费,先判断自己能不能完成四步:拿ID、写下载文件、写启用文件、重启看日志,能完成就不需要代装。
Q&A:饥荒用户端mod怎么放到服务器mod里
问:直接把客户端mods文件夹拖进服务器mods能用吗?
答:临时能用,但要重命名为workshop-数字ID,根目录有modinfo.lua,并且modoverrides.lua里启用同一个ID,长期用SteamCMD或合集下载更省事。
问:为什么服务器启用了mod,客户端进服还是提示未订阅?
答:服务器启用只代表服务端加载,客户端仍需在Steam创意工坊订阅同一mod,两边ID一致、版本一致,才能正常进入。
问:饥荒联机版客户端mod怎么同步到服务器最省事?
答:用合集ID在dedicated_server_mods_setup.lua里写ServerModCollectionSetup("合集ID"),再在Master和Caves的modoverrides.lua里逐个启用,服务器下载、存档启用、客户端订阅,三个条件同时满足时mod才会正常加载。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/738628.html





