网上关于饥荒服务器的搭建教程一大堆,但是翻了翻发现基本都是Linux/Ubuntu自搭steam服务器,WeGame的教程寥寥无几。估计大佬们都去steam了。这里将自己的搭建流程分享一哈~~
查看简略版更改服务器模组和存档可参阅覆盖法更改饥荒服务器配置(懒人专用)
官方指南(应该是官方,资料挺老的了):
Guides/Don’t Starve Together Dedicated Servers
指南是搭建steam服务器的,不是Wegame,但是配置参数一致,包含Lunix和Windows两种环境搭建服务器(部分配置已过时,如更新后配置文件由setting.ini更名为cluster.ini)。
有英语基础的可以直接查看。
没英语基础的浏览器翻译一波也可以。
当然中文版的也有(大佬貌似也没更新了):
饥荒服务器世界设置生成
饥荒联机版服务端MOD及更多设置
在WeGame商店搜索饥荒联机版专用服务器即可免费获取和下载,不需要购买饥荒游戏权限。如果搭云服的话可以用小号搭建服务器,大号在自己电脑上登录玩游戏。
开服需要获取Klei官方的验证令牌,打开饥荒联机版,点击开始游戏后在左下角有数据和账号按钮,点击数据将直接打开本地存档目录。
要获取令牌文件依次点击账户→游戏→饥荒联机版的游戏服务器→添加新服务器(输入集群名,即服务器名称)→服务器配置(貌似该页面只支持修改最大玩家数,其他的没法修改)→下载设置
这里下载的设置是一个压缩包,里面包含最简单的服务器配置,所有配置都是默认的,后面会讲怎么进行修改。
不想下载的也可直接将服务器票据复制下来,新建一个cluster_token.txt文件并保存即可,该文件用于验证Klei服务器,没有的话无法开启服务器。
此外,令牌也可在游戏内生成(需要具有管理员权限),方法:进入游戏,打开控制台,键入指令:TheNet:GenerateClusterToken(),此命令将以名称cluster_token.txt生成集群令牌。
该文件位于:/文档/Klei/DoNotStarveTogether/cluster_token.txt
在WeGame选择饥荒联机版专用服务器界面,点击注册许可证书按钮(需要使用有饥荒联机版游戏权限的账号注册),选择证书有效期并设置密码,点注册后会在WeGameApps\rail_apps\饥荒联机版专用服务器(2000039)\bin目录下生成一个certificate.txt证书文件,该文件不限制设备,如果想用没有游戏权限的小号开云服只需要将这个文件复制到云服设备的相同目录下即可。
不知道安装路径的直接右键饥荒联机版专用服务器,在弹出的选项框中点击目录即可打开安装目录。
按上述步骤下载的配置文件包含开服所需的最基本的配置,所下载的文件里面包含一个地面文件夹(Master),一个服务器配置文件(cluster.ini),和令牌(cluster_token.txt)。
(如果有安装过饥荒联机版则不用进行,这些路径和文件会自动生成)
在我的文档新建一个Klei文件夹,Klei文件夹内新建DoNotStarveTogetherRail文件夹。
可以将下载的MyDediServer复制到刚刚创建的文件夹下,路径为:\文档\Klei\DoNotStarveTogetherRail,之后启动饥荒联机版专用服务器,在服务器配置列表选择MyDediServer,输入注册许可证书时设置的证书密码,点击启用洞穴将自动生成洞穴文件夹,开启的服务器将包含洞穴。单击启动即可开启专用服务器。等待跳出的命令行窗口提示Registering master server in China lobby则表示服务器搭建成功,已经在大厅成功注册服务器了,此时你可以去大厅搜索自己的服务器了,名称为你获取令牌时设置的服务器名称。
存档(MyDediServer)根目录包含地面文件(Master)、洞穴文件(Cave)、服务器配置文件(cluster.ini)和令牌文件(cluster_token.txt)。如果没有这些文件请自行创建。
可使用任意高级文本编辑器,如Sublime Text、Notepad、vs code(Visual Studio Code)、EditPlus等,只要支持ini语言编码即可。保存前需将语言模式调整成ini(一般程序会自动检测语言)。如果出现配置文件没问题但是服务器属性不对的问题(比如修改最大玩家数位8,开服后发现配置未应用,服务器人数为默认的6或者64),一般都是编码的问题,换高级编辑器重新保存一遍即可。
下面为cluster.ini的文件配置(括号和注释记得删掉),需要注意的是修改配置文件时不能使用Windows自带的文本编辑器,否则不能正常识别,编码不同。
以下为具体参数,部分参数有默认值,非必须,可酌情添加和修改:
[GAMEPLAY]
max_players = 6(最大玩家数:1-64)
pvp = false(是否开启玩家对战(true为开启,false为关闭,下同))
pause_when_empty = true(是否无人时暂停时间:true | false)
connection_timeout =6000 (服务器在删除无响应客户端之前应等待的时间,单位/毫秒,默认为8000)
enable_autosaver =true (是否自动存档,开启后将会在每天的开始创建一个快照,在服务器重新启动后自动恢复,服务器只会在白天的开始保存,建议不要在晚上关闭服务器,或者打开控制台手动保存后再关闭,否则一天白干~~ 值:true | false)
enable_vote_kick =false (是否允许投票踢人:true | false)
[NETWORK]
lan_only_cluster = false(是否只允许本地局域网加入:true | false)
offline_cluster = false(是否离线游戏)
game_mode = endless(游戏模式:endless 无尽 | survival 生存 | wilderness荒野)
cluster_intention = cooperative(游戏风格:cooperative 合作 | social 社会 | competitive 竞争 | madness 疯狂)
cluster_password = 123(服务器密码,留空为不设置密码)
cluster_description =(服务器简介,对自己服务器的描述)
cluster_name = 长期档,寻一起玩的小伙伴~~(创建的服务器房间名称)
cluster_language = zhr(客户端语言)
[MISC]
console_enabled = true(是否允许控制台)
[SHARD]
shard_enabled = true(是否开启地下分支,即洞穴)
bind_ip = 127.0.0.1(地下服务器地址,设为0.0.0.0时可以配置地下服务器为任意一个网络服务器,配置具体IP地址可允许特定网络服务器接入。此处的127.0.0.1为环回测试地址,指向本身,如果地面和洞穴服务器都在一台电脑上,建议使用环回地址,范围为127.0.0.0-127.255.255.255,原则上除广播地址(.0)和网络地址外(.255)都可使用)
master_ip = 127.0.0.1(地上服务器IP)
master_port = 10888(地上服务器通信端口)
cluster_key = defaultPass(簇密钥 地上地下服务器通信密钥)
Master内的文件为地面服务器的配置,如果不开模组,不配做地形的话只需要有一个server.ini文件即可,其他文件会自动生成。
自动生成的文件包括:
backcup文件夹:包含之前保存的快照信息,用于回档
save文件夹:包含存档信息,需要移动存档时替换该文件即可(如果有开模组和更改地形配置的话其他文件也需要进行相应更改)
server_log.txt 服务器日志文件,包含日志信息,用于服务器启动失败时排错
server_chat_log.txt 聊天日志,包含服务器内所有玩家的聊天记录
如果需要开启Mod和更改地形,需要配置如下文件:
leveldataoverride.lua 地形文件,包含地形参数
modoverrides.lua 模组文件,包含引用的模组和模组配置
同样,注释记得删除~~
[NETWORK]
server_port = 10999 服务器间通信端口,默认11000
[SHARD]
is_master = true 是否为主服务器
[STEAM]
master_server_port = 27018 steam服务端口
authentication_port = 8768
[ACCOUNT]
encode_user_path = true
和地面服务器一致,只是地形不同。不开洞穴时不需要配置该文件夹,里面默认包含:server.ini和modoverrides.lua两个文件。
如需配置模组,增加modoverrides.lua文件。
[NETWORK]
server_port = 10998 服务器间通信端口,默认11001
[SHARD]
is_master = false 是否为主服务器
name = Caves 上方为false时需配置该项,值为Caves
id = 2512972626 洞穴id,不同世界id不能相同
[STEAM]
master_server_port = 27018
authentication_port = 8768
[ACCOUNT]
encode_user_path = true
饥荒服务器通过读取modoverrides.lua文件获取模组参数,决定开启的模组和模组的参数值。所启用的模组必须先下载到专用服务器的mods文件夹下,路径为WeGameApps\rail_apps\饥荒联机版专用服务器(2000039)\mods,否则无法启用。找不到的直接右键饥荒联机版专用服务器→目录即可打开安装目录,将模组文件复制到mods文件夹内即可。
通过配置modoverrides.lua可启用模组,模组ID可在模组详情页查看。
配置格式为:
return{
["workshop-模组ID"]={
configuration_options={
模组具体参数配置
},
enabled=true | false(启用(true)或者关闭模组(false))
}
}
configuration_options配置可在所下载的模组内的modinfo.lua内查看具体参数,如果文件内无configuration_options选项则表明该模组只能启用或者关闭,不支持详细配置。注意,每个配置需要用逗号隔开。
以下为具体例子:
启用模组ID为workshop-100010002、workshop-100010019的模组,并对 amount_of_numbers等参数进行配置,default表示使用默认配置。
return {
["workshop-100010002"]={
configuration_options={
amount_of_numbers="default",
display_mode="waving",
dmg_only="on",
show_decimal_points="no"
},
enabled=true
},
["workshop-100010019"]={
configuration_options={ M_CeShi=false, M_GongSu=false, M_XueLiang=false },
enabled=true
}
}
饥荒服务器通过读取leveldataoverride.lua文件获取地形参数,决定生物种群和资源数量。可通过配置该文件更改地形和生物种群数量。
以下为具体配置(注释记得删~~):
return {
override_enabled = true, 是否允许覆盖
unprepared = {
--食物
--值:"never", "rare", "default", "often", "always"
--依次是无,稀有,默认,较多,大量
banana = "default",--香蕉
berrybush = "default",--浆果丛
cactus = "default",--仙人掌
carrot = "default",--胡萝卜
lichen = "default",--苔藓
mushroom = "default",--蘑菇
},
misc = {
--杂项
season_start = "default", -- "default", "winter", "spring", "summer", "autumn or spring", "winter or summer", "random"
--开始季节,依次为默认,冬,春,夏,春或秋,冬或夏,随机
autumn = "default", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
--秋天长度,依次是无,极短,短,默认,长,极长,随机
winter = "default", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
--冬天长度
spring = "default", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
--春天长度
summer = "default", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
--夏天长度
boons = "default", -- "never", "rare", "default", "often", "always"
--恩惠
branching = "default", -- "never", "least", "default", "most"
--地图分支
cavelight = "default", -- "veryslow", "slow", "default", "fast", "veryfast"
--洞穴光照,依次是很慢,慢,默认,快,很快
day = "default", -- "default", "longday", "longdusk", "longnight", "noday", "nodusk", "nonight", "onlyday", "onlydusk", "onlynight"
--昼夜长短,依次是默认,长/无/仅有白天/夜晚
earthquakes = "default", -- "never", "rare", "default", "often", "always"
--地震频率
frograin = "default", -- "never", "rare", "default", "often", "always"
--青蛙雨
lightning = "default", -- "never", "rare", "default", "often", "always"
--闪电
loop = "default", -- "never", "default", "always"
--环状地形
regrowth = "default", -- "veryslow", "slow", "default", "fast", "veryfast"
--再生速度
start_location = "default", -- "caves", "default", "plus", "darkness"
--起始位置
task_set = "default", -- "classic", "default", "cave_default"
--生物群落
touchstone = "default", -- "never", "rare", "default", "often", "always"
--复活台
weather = "default", -- "never", "rare", "default", "often", "always"
--天气
wildfires = "default", -- "never", "rare", "default", "often", "always"
--野火(自燃频率)
world_size = "default", -- "small", "medium", "default", "huge"
--地图大小,依次为小、中、默认、巨大
},
animals = {
--动物
-- "never", "rare", "default", "often", "always"
alternatehunt = "default",--足迹
angrybees = "default",--杀人蜂巢穴
beefalo = "default",--牛
beefaloheat = "default",--红屁股牛
bees = "default",--蜜蜂巢穴
birds = "default",--鸟
bunnymen = "default",--兔人
butterfly = "default",--蝴蝶
buzzard = "default",--秃鹫
catcoon = "default",--浣猫
frogs = "default",--青蛙
hunt = "default",--大象
lightninggoat = "default",--电羊
moles = "default",--鼹鼠
monkey = "default",--猴子
penguins = "default",--企鹅
perd = "default",--火鸡
pigs = "default",--猪人
rabbits = "default",--兔子
rocky = "default",--石虾
slurper = "default",--啜食者
slurtles = "default",--蜗牛
tallbirds = "default",--高鸟
},
monsters = {
--怪物
-- "never", "rare", "default", "often", "always"
bats = "default",--蝙蝠
bearger = "default",--秋boss
chess = "default",--齿轮马
deciduousmonster = "default",--树精
deerclops = "default",--巨鹿
dragonfly = "default",--龙蝇
fissure = "default",--裂缝
goosemoose = "default",--春boss
houndmound = "default",--猎犬丘
hounds = "default",--猎狗
krampus = "default",--小偷
liefs = "default",--树人
lureplants = "default",--食人花
merm = "default",--鱼人
spiders = "default",--蜘蛛
tentacles = "default",--触手
walrus = "default",--海象巢穴
worms = "default",--蠕虫
},
resources = {
--资源
-- "never", "rare", "default", "often", "always"
fern = "default",--蕨类植物
flint = "default",--燧石
flower_cave = "default",--荧光花
flowers = "default",--花
grass = "default",--干草
marshbush = "default",--尖刺灌木
meteorshowers = "default",--陨石
meteorspawner = "default",--陨石坑
mushtree = "default",--蘑菇树
reeds = "default",--芦苇
rock = "default",--岩石
rock_ice = "default",--冰块
sapling = "default",--小树枝
trees = "default",--树
tumbleweed = "default",--风滚草
wormlights = "default",--发光浆果
},
}
对所有文件的位置进行一个归纳:
文档\Klei\DoNotStarveTogetherRail\MyDediServer\cluster_token.txt
文档\Klei\DoNotStarveTogetherRail\MyDediServer\cluster.ini
文档\Klei\DoNotStarveTogetherRail\MyDediServer\Master\server.ini
文档\Klei\DoNotStarveTogetherRail\MyDediServer\Master\modoverrides.lua
有这四个文件即可开启专服,其他文件都会自动生成,如果需要开启洞穴,请接着配置Caves文件夹,Caves为洞穴文件,路径与地面文件夹一致。