Linux(centos7)下搭建Steam饥荒服务器
下载steamcmd
#更新yum源 新机器可能花费较长时间
yum update -y
#下载相关依赖及工具
yum install -y wget libxcb glibc.i686 libcurl.i686
#创建steam文件夹
mkdir /opt/steam
cd /opt/steam
#下载解压steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -zxvf steamcmd_linux.tar.gz
解压后效果(game是后面创建的存放游戏的)
下载饥荒服务器
force_install_dir /opt/steam/game/dst是下载路径可以自定义路径
login anonymous 以匿名方式登录
app_update 343050 validate 下载/更新饥荒服务器
#在解压后的路径下执行下面命令下载饥荒服务器
./steamcmd.sh +force_install_dir /opt/steam/game/dst +login anonymous +app_update 343050 validate +quit
可以查看饥荒目录
链接libcurl-gnutls.so.4库,不然可能会报错
ln -s /usr/lib/libcurl.so.4 /opt/steam/game/dst/bin/lib32/libcurl-gnutls.so.4
配置服务器相关配置及模组
打开饥荒游戏非饥荒服务器,打开账号
点击游戏后,点击游戏服务器
为自己的服务器起一个名字之后点击添加
可以直接复制token使用,可以点击配置服务器
这里我们选择配置服务器,然后简单设置一下服务器,然后下载设置
下载后是一个压缩文件,这里面是一些饥荒服务器配置文件,一会可以做一些修改,我们先解压之后上传到服务器
我们就在刚刚安装的饥荒服务器的位置新建一个文件夹用来存档,然后把刚刚上传的文件拷贝到新建的文件夹
mkdir /opt/steam/game/dst/DoNotStarveTogether
cd /opt/steam/game/dst/DoNotStarveTogether
先来查看服务器配置文件cluster.ini
按照需求更改配置文件,我配置下面的
[GAMEPLAY]
game_mode = survival
# 游戏模式,可选 survival, endless, wilderness
max_players = 12
# 最大游戏人数,1-64人 大于64也是64
pvp = flase
# 是否可以对战,这里选择否
pause_when_empty = true
# 没有人服务器自动暂停
[NETWORK]
cluster_description = dst_test
# 游戏房间描述
cluster_name = my_dst_server
# 游戏房间名称
cluster_password = 123456
# 游戏密码,不设置就是没有密码
tick_rate = 60
# 每秒通信次数,越高游戏体验越好,但是会加大服务器负担
# 感觉网络不好的可以设置大一点
[MISC]
console_enabled = true
# 是否开启控制台
max_snapshots = 30
# 最大快照数,决定了可回滚的天数,看自己的需求
[SHARD]
shard_enabled = true
# 开启洞穴的话必须填true
bind_ip = 127.0.0.1
# 服务器监听的地址,
master_ip = 127.0.0.1
# 主世界服务器的 IP
master_port = 10889
# 监听 master 服务器的 UDP 端口
cluster_key = supersecretkey
# 游戏通讯密码,每台服务器必须相同
cluster_token.txt就是之前的token
其他的默认就可以了
饥荒的启动命令是dontstarve_dedicated_server_nullrenderer
这里我们写一个启动脚本
#! /bin/bash
steamcmd_dir="/opt/steam/"
install_dir="/opt/steam/game/dst"
cluster_name="MyDediServer" # 这个是存档目录的名称,就是/opt/steam/game/dst/DoNotStarveTogether下面的存档目录名称,可更改为不同存档名称,开启不同存档服务
dontstarve_dir="/opt/steam/game/dst/DoNotStarveTogether"
function fail()
{
echo Error: "$@" >&2
exit 1
}
function check_for_file()
{
if [ ! -e "$1" ]; then
fail "Missing file: $1"
fi
}
cd "$steamcmd_dir" || fail "Missing $steamcmd_dir directory!"
check_for_file "steamcmd.sh"
#启动游戏前检查下是否有更新,可能有点费时不想要可以直接注释
./steamcmd.sh +force_install_dir /opt/steam/game/dst +login anonymous +app_update 343050 validate +quit
check_for_file "$dontstarve_dir/$cluster_name/cluster.ini"
check_for_file "$dontstarve_dir/$cluster_name/cluster_token.txt"
check_for_file "$dontstarve_dir/$cluster_name/Master/server.ini"
check_for_file "$dontstarve_dir/$cluster_name/Caves/server.ini"
check_for_file "$install_dir/bin"
cd "$install_dir/bin" || fail
run_shared=(./dontstarve_dedicated_server_nullrenderer)
run_shared+=(-console)
run_shared+=(--persistent_storage_root /opt/steam/game/dst)
run_shared+=(--conf_dir DoNotStarveTogether)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)
"${run_shared[@]}" -shard Caves | sed 's/^/Caves: /' &
"${run_shared[@]}" -shard Master | sed 's/^/Master: /'
用vim创建一个启动脚本,把上面的脚本放进去然后chmod 755 给个权限
vim start_dst.sh
chmod 755 start_dst.sh
./start_dst.sh 启动饥荒服务器
出现上面的界面即启动成功,在饥荒里面搜索我们的服务器my_dst_server
这里启动的是纯净档没有模组的,需要添加模组继续往下看
我们先本地开启一个饥荒,然后创建游戏,然后这时候可以自己设置世界,设置mod
创建成功之后不需要进去,点击数据可以看到我们刚刚创建的存档
点开进入我们刚刚新建的档
随便进入一个文件夹把modoverrides.lua文件上传到服务器上面
第一步上传到我们存档的Caves和Master文件夹里面这样地上地下都有mod了
第二步我们需要订阅上面的模组
先打开上面的文件查看workshop的部分
编辑/opt/steam/game/dst/mods下的dedicated_server_mods_setup.lua文件按照下面的格式添加我们的mod
cat >> dedicated_server_mods_setup.lua << EOF
ServerModSetup("1216718131")
ServerModSetup("2078243581")
ServerModSetup("2287303119")
EOF
这时候我们重新启动饥荒服务器可以看见已经有模组了
纯净档 好多毛的世界 欢迎来玩