存档目录路径
d---Master
- modoverrides.lua
d---Caves
- modoverrides.lua
- cluster.ini
- adminlist.txt
- whitelist.txt
- blocklist.txt
- cluster_token.txt
- Master: 主世界数据及配置文件
1.1 Master/modoverrides.lua: 主世界插件配置脚本
- Caves: 洞穴数据及配置文件
2.1 Caves/modoverrides.lua: 洞穴插件配置脚本
- cluster.ini 存档配置文件
- adminlist.txt: 服务器管理员id文件
- whitelist.txt: 服务器白名单id文件
- blocklist.txt: 服务器黑名单id文件
- cluster_token.txt: 存档配置文件
cluster.ini文件配置
[GAMEPLAY]
game_mode = endless #游戏模式:endless:无尽, survival:生存,
max_players = 10 #最大玩家数量
pvp = false #是否允许玩家对战
pause_when_empty = true #当服务器无玩家时时间暂停
[NETWORK]
lan_only_cluster = false
cluster_intention = social
cluster_password = *** #服务器密码
cluster_description = *** #服务器介绍
cluster_name = *** #服务器名称
offline_cluster = false
cluster_language = zh
whitelist_slots = 1 #服务器白名单数量(设置几个就在whitelist.txt中添加几个ID)
[MISC]
console_enabled = true
[SHARD]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
master_port = 10888
cluster_key = defaultPass
启动脚本
#!/bin/bash
steamcmd_dir="$HOME/steamcmd" #steamcmd安装路径
install_dir="$HOME/dontstarvetogether_dedicated_server" #饥荒游戏安装路径
cluster_name="MyDediServer" #存档文件夹名称
dontstarve_dir="$HOME/.klei/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!" # TODO
check_for_file "steamcmd.sh"
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"
./steamcmd.sh +force_install_dir "$install_dir" +login anonymous +app_update 343050 validate +quit
check_for_file "$install_dir/bin"
cd "$install_dir/bin" || fail
run_shared=(./dontstarve_dedicated_server_nullrenderer)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)
run_shared+=(-shard)
"${run_shared[@]}" Caves | sed 's/^/Caves: /' &
"${run_shared[@]}" Master | sed 's/^/Master: /'