饥荒联机版:多人联机服务器搭建 下篇 | 搞懂 配置文件
hufang360
编辑于 2022年01月11日 21:12
收录于文集
共14篇

书接上文,环境搭建好后,接下来时开服前的配置。

有别于其它游戏,饥荒联机版(以下简称“dst”)并不需要公网ip,服务器起来后,会在饥荒联机大厅进行注册,之后玩家启动dst,搜索服务器,进行加入,然后就可以一起玩耍了。

1、获取 令牌:

饥荒联机大厅进行注册,需要这个,英文名字叫 “Cluster Token”。

1.1、在自己的电脑上启动 饥荒联机版(下文简称 dst)

1.2、主界面按 ~键,调出控制台,然后输入以下指令,并敲下Enter键,以生成令牌:

代码块
Shell
自动换行
复制代码
TheNet:GenerateClusterToken()
复制成功

~键,波浪号键一般位于键盘左上角,在ESC键的下方,tab键的上方,数字键1的左边;

1.3、令牌保存在“cluster_token.txt”的文本文件中,可以在个人文档下找到,例如:

%userprofile%\Documents\Klei\DoNotStarveTogether\

我的路径是下面这个,其中 132274880 可能是用户id什么的,每个人可能不相同:

C:\Users\hf\Documents\Klei\DoNotStarveTogether\132274880\cluster_token.txt

2、生成世界

2.1、启动 dst;

2.2、创建游戏 --> 创建新世界 --> 生成世界,期间各种选择,根据个人喜好选择,记得填写密码哦。

如果什么都不懂 可以参考下面的截图:

2.3、模组,要玩模组的话,在这要勾选启用了,如下图这样,注意只勾 服务器模组 下面的就可以了。

饥荒模组分 本地模组 和 服务器模组,服务器端只安装服务器模组就好了。

2.4、生成世界后,点击“断开联线”退出世界

世界也是在我的文档下面,例如

%userprofile%\Documents\Klei\DoNotStarveTogether\

我的是:

C:\Users\hf\Documents\Klei\DoNotStarveTogether\132274880\

名为 Cluster_1、Cluster_2 之类的文件夹,一个文件夹即一个世界,每多生成一个世界,Cluster后面的数字会加1,所以我刚才创建的世界在 Cluster_2 文件里。

拷贝 Cluster_2 文件夹 到桌面,并命名为S1。

3、拷贝 模组文件

找到 模组配置文件,例如 我模组配置文件是这个路径,将这个文件拷贝到桌面:

C:\Users\hf\Documents\Klei\DoNotStarveTogether\132274880\Cluster_2\Master\modoverrides.lua

用文本编辑器打开内容是这样的,workshop-后面的数字先留意一下,后面有用:

代码块
application/typescript
自动换行
复制代码
return {
  ["workshop-2287303119"]={configuration_options={[""]=0, T_crop=true, chestB=-1, chestG=-1, chestR=-1, display_hp=-1, food_estimation=-1, food_order=0, food_style=0, lang="Auto", show_food_units=-1, show_uses=-1 },enabled=true},
  ["workshop-378160973"]={configuration_options={ENABLEPINGS=true, FIREOPTIONS=2, OVERRIDEMODE=false, SHAREMINIMAPPROGRESS=true, SHOWFIREICONS=true, SHOWPLAYERICONS=true, SHOWPLAYERSOPTIONS=2 },enabled=true},
  ["workshop-829529625"]={configuration_options={uses=10000000, uses2=10000000 }, enabled=true}
}
复制成功

前往模组目录,我的是:

C:\Program Files (x86)\Steam\steamapps\workshop\content\322330\

配置文件中显示了“workshop-2287303119”,则需要将 “2287303119”这个文件夹拷到桌面(一会上传到服务器mods目录下)。

如果你启用了多个mod,则需要挨个拷贝,拷贝完后将 目录名改为 “workshop-2287303119”这种格式。

4、上传文件

4.1、将第一步获得的 cluster_token.txt 文件拷贝到刚才的 S1 目录下。

4.2、将整个 S1文件夹 上传至 服务器的 “/root/dst/klei/DoNotStarveTogether”目录下:

4.3、将模组配置文件 和 模组文件 上传至 服务器的“/root/dst/dst_client/mods/”目录下:

5、启动 服务器

先生成脚本,方便之后开服。

这是个人的文件放置安排:

代码块
Shell
自动换行
复制代码
[root@tx ]# tree ~/dst/
./dst/
├── dst_client
│   ├── bin
│   ├── bin64
│   ├── data
│   ├── linux64
│   ├── mods
│   │   ├── workshop-2287303119
│   │   ├── workshop-378160973
│   │   ├── workshop-829529625
│   │   ├── dedicated_server_mods_setup.lua
│   ├── steamapps
├── klei
│   ├── Agreements
│   └── DoNotStarveTogether
│       ├── S1
│           ├── Caves
│           │   ├── server.ini
│           └── Master
│               ├── server.ini
│       └── S2
│           ├── Caves
│           │   ├── server.ini
│           └── Master
│               ├── server.ini
├── updateDST.sh
└── startDST.sh
复制成功

5.1、准备开服脚本

startDST.sh(开服脚本):

代码块
Shell
自动换行
复制代码
cd ~/dst/
touch ./startDST.sh
vi ./startDST.sh
复制成功

粘贴下面内容:

代码块
Shell
自动换行
复制代码
#!/bin/bash
steamcmd_dir="/root/steamcmd"
install_dir="/root/dst/dst_client"
doc_dir="/root/dst/klei"
cluster_name="S1"

cd "$install_dir/bin"
run_shared=(./dontstarve_dedicated_server_nullrenderer)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)
run_shared+=(-persistent_storage_root "$doc_dir" )

#不想开启洞穴就把&和后面的都去掉
"${run_shared[@]}" -shard Master | sed 's/^/Master: /' &
"${run_shared[@]}" -shard Caves  | sed 's/^/Caves:  /'
复制成功

这里的S1,对应了前面的操作,如果你有多个世界,可以改成 S2、S3这种,同时对应地,修改此脚本。

updateDST.sh(更新脚本):

代码块
Shell
自动换行
复制代码
cd ~/dst/
touch ./updateDST.sh
vi ./updateDST.sh
复制成功

粘贴下面内容:

代码块
Shell
自动换行
复制代码
#!/bin/bash
# 获得本sh所在目录
sh_path=$(cd `dirname $0`; pwd)

cmdDir=/root/steamcmd/
dstDir=/root/dst/dst_client/

"$cmdDir"steamcmd.sh \
    +login anonymous \
    +force_install_dir "$dstDir" \
    +app_update 343050 validate  \
    +quit
复制成功

设置这脚本为可运行

代码块
Shell
自动换行
复制代码
chmod +x ./startDST.sh
chmod +x ./updateDST.sh
复制成功

脚本创建好后之后这样使用

代码块
Shell
自动换行
复制代码
# 启动 开服程序
~/dst/startDST.sh

# 更新
~/dst/updateDST.sh
复制成功

5.2(可选)为了让服务器后台运行,先创建一个screen会话:

(本文默认你已经会screen指令了,不会则跳过这步)

代码块
Shell
自动换行
复制代码
screen -S dst
复制成功

5.3、运行开服脚本

代码块
Shell
自动换行
复制代码
~/dst/startDST.sh
复制成功

6、检查 服务器 是否开成功

6.1、启动dst;

6.2、点击 浏览游戏;

6.3、在右边输入 服务器的名字,例如 我的是“hf和他的小伙伴们”,输入“hf”,然后点旁边的“搜索按钮”:

6.4、在搜索结果中找到你的服务器,选中它,然后点击“查看模组”按钮,如果正确安装则会显示在这:

7、进入服务器

确认服务器开好无误后,就可以召唤小伙伴了,你和小伙伴进入服务器的方式都是一样的。

7.1、启动dst;

7.2、点击 浏览游戏;

7.3、输入 服务器的名字,然后点 “搜索”按钮

7.4、在服务器列表中选中服务器,然后点击“进入”按钮

7.5、如果你设置了密码,此时会要求输入密码,设置密码是必要的,密码可以弄简单点,毕竟服务器是公开的。

7.6、然后就可以愉快滴玩耍了~

8、关闭 服务器

在服务器界面直接按Ctrl+C 关闭服务器。

扩展

令牌,除启动dst敲指令获得外,还可以访问科雷官网下载

1、访问科雷官网,选择steam登录

https://accounts.klei.com/account/game/servers?game=DontStarveTogether

2、新建一个服务器,今天我的steam登录不了,主要是因为邮箱收不到邮件,待日后补上。

3、这里的服务器票据,这就是上文提到的令牌:

4、点击“下载设置”后将获得一个名为“MyDediServer.zip”的压缩包,文件结构如下图:

代码块
JavaScript
自动换行
复制代码
.MyDediServer
├── cluster.ini					// 服务器配置
├── cluster_token.txt		// 服务器票据
└── Master							// 主世界
    └── server.ini				// 主世界服务器配置
└── Caves								// 洞穴
    ├── server.ini				// 洞穴服务器配置
    └── worldgenoverride.lua
复制成功

列举cluster.ini部分重要设置项:

(//以及后面的内容是注释,实际配置不能写这些东西)

代码块
JavaScript
自动换行
复制代码
[GAMEPLAY]
game_mode = survival			// 游戏模式 生存=survival, 无尽=endless, 荒野=wilderness
max_players = 6						// 最大人数
pvp = false								// 是否开启pvp
pause_when_empty = true		// 服务器无人时,自动暂停
vote_kick_enabled = false	// 投票踢人

[NETWORK]
cluster_name = hf和他的小伙伴们	// 服务器名字
cluster_description = hf-S1	// 服务器介绍
cluster_intention = social	// 游戏风格 社交=social, 合作=cooperative, 竞争=competitive, 疯狂=madness
cluster_password = mima			// 服务器密码

[MISC]
max_snapshots = 6					// 最大快照数,决定了可回滚的天数
console_enabled = true		// 是否开启控制台

// 这部分一般不改
[SHARD]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
master_port = 10889
cluster_key = supersecretkey
复制成功

完整的可参考:https://dontstarve.fandom.com/zh/wiki/多人版饥荒独立服务器?variant=zh

实际上用dst创建这个更加方便,但了解还是很有必要,文件传到服务器上,改文本更方便。

“Master/server.ini” 一般默认

“Caves/server.ini”也是默认,如果你不打算开洞穴,可以将整个 Caves 文件删除。

通过 dst创建的服务器配置中,例如 “Cluster_2”可以找到“Master/leveldataoverride.lua”

有时服务器开不起来,删掉这个可能会解决问题。

有次我饥荒开服不成功,从科雷官网下载这个配置,然后稍作修改,放到服务器上就好了。