前言:虽然是winserver的教程,但理论上本教程linux和windows系统的服务器都能用
1.下载steamcmd并安装dst服务端
为什么windows server也使用steamcmd呢,因为占用小啊,很多学生党买服务器都是买的学生机,1c2g的配置就别想跑steam了,老老实实和用linux的朋友一起下steamcmd。再说,1c2g的服务器没有特殊需求用什么windows server?
点击链接下载https://developer.valvesoftware.com/wiki/SteamCMD:zh-cn
随便解压到某个路径,然后打开steamcmd,等待部署更新,结束后会出现“Steam>”等待用户输入命令
然后依次输入以下命令(#后是注释说明不用输入)。
login anonymous #使用匿名登录(可以用自己的账号,但更麻烦)
force_install_dir ./dst #设置安装目录为当前文件夹中的dst文件夹
app_update 343050 validate #安装或者升级Don't Starve Together Dedicated Server并等待, 343050即其应用ID
quit #退出
然后我们再也用不到它了233
2.服务端基本配置
进入klei账号页面https://accounts.klei.com/account/game/list
Steam登录后,点击饥荒联机版的游戏服务器,添加新服务器,配置服务器
依次填写信息后,点击下载设置,下载好的压缩包里,其实我们真正需要的是cluster.ini和cluster_token.txt。前者是服务端配置文件,也就是你填写的内容,后者则是服务器票据,打开服务端时会检测票据,如果没有的话服务端将不会启动。
3.服务端具体配置
在C:steamcmddstbin路径下,也就是服务端安装路径下新建一个批处理文件,填写以下命令
@echo off
start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Master
start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Caves
这两条命令分别表示开启主世界和洞穴世界服务端,所以运行这个批处理文件会出现两个窗口。此时因为检测不到服务器票据,服务端不会启动并停留在报错信息上,这时手动强行关闭命令提示行窗口,将之前解压的cluster.ini文件和cluster_token.txt文件放到路径C:UsersAdministratorDocumentsKleiDoNotStarveTogetherMyDediServer也就是快速访问的文档里的klei文件夹下,其中MyDediServer是存档名,在上面的批处理文件里可以改成任意自己喜欢的名字。
接下来配置Mod,网上很多教程都是简单粗暴地复制文件,实际上并不需要,我们在C:steamcmdmy_dstmods下找到名叫dedicated_server_mods_setup.lua的文件,打开编辑(这里使用的编辑器叫notepad++,十分推荐)
按如图格式手动填写代码配置mod,其中数字代表mod的id,id是mod的创意工坊id
网址中id=后面的数字就是应该填进去的。
然而这里我并不推荐这种方法,原因有两点:
- mod很多的情况下配置起来非常费力
- 配置好后服务端存档文件可能因为缺少modoverrides.lua文件导致加载失败
- 即使不缺少modoverrides.lua文件,此方法配置的mod默认为关闭状态,也得手动修改启用mod
推荐方法:
在自己的电脑里新建一个p2p的多人游戏房间并添加启用mod,此时这个存档会自己生成modoverrides.lua文件,把它复制到服务器里,对照modoverrides.lua文件里的mod id按前面提到过的格式填写入服务端的dedicated_server_mods_setup.lua文件里,然后启动服务端。因为此方法默认不启用mod,并且有可能发生缺少modoverrides.lua文件导致mod加载失败的情况,所以我们直接将此文件复制进master和caves文件夹里,重启服务端即可。
4.附录
各配置文件的作用
cluster.ini:主机的配置文件
Masterserver.ini:地上服务器配置文件
Masterworldgenoverride.lua:地上地图配置文件,风霜雨雪动植物等等
Mastermodoverride.lua:地上MOD配置文件,哪些被启用及具体参数
Cavesserver.ini:洞穴服务器配置文件
Cavesworldgenoverride.lua:洞穴地图配置文件,风霜雨雪动植物等等
Cavesmodoverride.lua:洞穴MOD配置文件,哪些被启用及具体参数
服务端配置文件cluster.ini说明
[GAMEPLAY]
game_mode = endless ;游戏模式,可选项有三个 survival(生存)、wilderness(荒野)、endless (无尽)
max_players = 6 ;游戏最大玩家数
pvp = false ;是否启用玩家伤害
pause_when_empty = true ;当服务器内没人时暂停时间
[NETWORK]
cluster_name = 服务器名称
cluster_description = 服务器简介
cluster_password = 服务器密码
cluster_intention = cooperative ;服务器风格,类型有四种 交际、合作、竞争、疯狂
autosaver_enabled = true ;是否启用自动存档
enable_vote_kick = false ;是否启用投票踢人
[MISC]
console_enabled = true ;是否启用控制台
[SHARD]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
cluster_key = DontStarveTogetherDedicatedServer
服务端控制台常用命令
c_save() #保存游戏
c_shutdown() #保存并关闭服务器
c_rollback(n) #回滚到前n次保存,默认为1
c_listallplayers() #列出当前所有连接的玩家
AllPlayers[n]:PushEvent('respawnfromghost') #复活第n个玩家
参考链接:
https://developer.valvesoftware.com/wiki/SteamCMD:zh-cn
https://www.jianshu.com/p/440d64cd3ac4
https://www.jianshu.com/p/7df7beef3754