0. 文件夹

- ~

|- ~/steamcmd # 装的是steamcmd_linux.tar.gz以及其解压出来的东西

|- ~/DST # 装的是DST服务器可执行文件、世界存档、世界模板

|- ~/DST/start-server.sh # 这个对应是1.start_server.sh的内容,负责启动服务器

|- ~/DST/server # 这个是steam下载的 dedicated_DST_Server

|- ~/DST/server/mods # 这个是要下载的mod,以及mod的保存位置,因为steam更新游戏会导致server文件夹重置,我没有用该文件夹,里面的dedicated_server_mods_setup.lua 就是2.dedicated_server_mods_setup.lua的内容

|- ~/DST/template/ # 这个是世界的模板,当初生成世界以及mod应用总是失败,故搞了个世界模板,当世界生成和mod应用失败但是找不到原因,就直接干了世界,重新生成

|- ~/DST/template/dedicated_server_mods_setup.lua # 内容同样是2.dedicated_server_mods_setup.lua,这个文件的内容也是 ~/DST/server/mods/dedicated_server_mods_setup.lua的内容,我做了备份,但是指定使用该文件下载mod

|- ~/DST/template/content/322330 这个文件夹是mod存放位置,可以在windows开一个世界,测试mod正常无冲突,然后把windows的mod复制到该文件夹内。服务器下载mod也是通过创意工坊,大概率会因为网络问题下载不下来,梯子我试了也不太好使,可能我梯子不行

|- ~/DST/template/World 这个文件夹是 Keli Account - 游戏服务器 按步骤填写后下载得到的压缩文件,解压后得到的内容 Cave、Master、cluster.ini、cluster-token.ini(如果需要在线游玩就重要,科雷会验证该文件内容是否通过,在线游玩会有礼包)

|- ~/DST/game 这个文件夹是存档文件的位置

|- ~/DST/game/Agreements 这个文件夹是同意的协议

|- ~/DST/game/DoNotStarveTogether 这个文件夹是世界存档,里面可能有多个世界存档,一个文件夹就是一个存档

|- ~/DST/game/DoNotStarveTogether/World 这个文件夹是名字叫World的世界的存档,就是~/DST/template/World里面的复制进去的(游戏开始后不要复制,不然会覆盖存档),可以在每次玩完游戏后,把这个文件压缩一份,当作游戏备份,可以回档。有次所有人物都死了,然后没有人发现,让世界重置了

|- ~/DST/game/DoNotStarveTogether/World/Master 这个是地上世界的内容和配置

|- ~/DST/game/DoNotStarveTogether/World/Master/modoverrides.lua 这个是地上世界的mod和配置,一般和地下(洞穴)的mod配置保持一致,内容见4. modoverrides.lua

|- ~/DST/game/DoNotStarveTogether/World/Caves 这个是洞穴世界的内容和配置

|- ~/DST/game/DoNotStarveTogether/World/Caves/modoverrides.lua 这个是洞穴世界的mod和配置,一般和地上(主世界)的mod配置保持一致,内容见4. modoverrides.lua

文件夹图片,见末尾 4. modoverrides.lua

1. start-server.sh

该内容是服务器启动脚本

#!/bin/bash

steamcmd_dir="$HOME/steamcmd"                        # SteamCMD 安装目录
install_dir="$HOME/DST/server" # 服务器安装目录
cluster_name="World" # 集群名称(你的World文件夹)
dontstarve_dir="$HOME/DST/game" # 游戏存档目录
mod_dir="mods"
mod_setup_file="dedicated_server_mods_setup.lua"
template_dir="$HOME/DST/template" 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 "$dontstarve_dir/DoNotStarveTogether/$cluster_name/cluster.ini"
check_for_file "$dontstarve_dir/DoNotStarveTogether/$cluster_name/cluster_token.txt"
check_for_file "$dontstarve_dir/DoNotStarveTogether/$cluster_name/Master/server.ini"
check_for_file "$dontstarve_dir/DoNotStarveTogether/$cluster_name/Caves/server.ini" # 安装DST服务器文件
#"./steamcmd.sh" +force_install_dir "$install_dir" +login anonymous +app_update 343050 validate +quit # 检查安装目录
check_for_file "$install_dir/bin64" cd "$install_dir/bin64" || fail # 启动主世界和洞穴世界
run_shared=(./dontstarve_dedicated_server_nullrenderer_x64)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$) # 启动洞穴世界
"${run_shared[@]}"\
-persistent_storage_root "$dontstarve_dir"\
-ugc_directory "$template_dir/$mods" \
-modsetupfile "$template_dir/dedicated_server_mods_setup.lua" \
-shard Caves | sed 's/^/Caves: /' & # 启动主世界
"${run_shared[@]}"\
-persistent_storage_root "$dontstarve_dir"\
-ugc_directory "$template_dir/$mods" \
-modsetupfile "$template_dir/dedicated_server_mods_setup.lua" \
-shard Master | sed 's/^/Master: /'

2. dedicated_server_mods_setup.lua

该内容是应该下载的mod

--There are two functions that will install mods, ServerModSetup and ServerModCollectionSetup. Put the calls to the functions in this file and they will be executed on boot.

--ServerModSetup takes a string of a specific mod's Workshop id. It will download and install the mod to your mod directory on boot.
--The Workshop id can be found at the end of the url to the mod's Workshop page.
--Example: http://steamcommunity.com/sharedfiles/filedetails/?id=350811795
--ServerModSetup("350811795") --ServerModCollectionSetup takes a string of a specific mod's Workshop id. It will download all the mods in the collection and install them to the mod directory on boot.
--The Workshop id can be found at the end of the url to the collection's Workshop page.
--Example: http://steamcommunity.com/sharedfiles/filedetails/?id=379114180
--ServerModCollectionSetup("379114180")\ ServerModSetup("831523966") -- 999堆叠
ServerModSetup("1172839635") -- Better Ice Box
ServerModSetup("661253977") -- 灵魂携带物品 - Don't Drop Everything
ServerModSetup("375850593") -- Extra Equip Slots
ServerModSetup("378160973") -- Global Positions
ServerModSetup("1595934840") -- 扶我起来
ServerModSetup("2189004162") -- Insight
ServerModSetup("1207269058") -- 简易血条DST
ServerModSetup("1595631294") -- 智能小木牌
ServerModSetup("362175979") -- Wormhole Marks [DST]
ServerModSetup("2115943953") -- Auto Stack Pro
ServerModSetup("2700454470") -- 妖刀姬
ServerModSetup("1998081438") -- 掉落堆叠(Drop & Stack)
ServerModSetup("2097358269") -- 成熟的箱子
ServerModSetup("2477889104") -- Beefalo Status Bar
ServerModSetup("3007715893") -- 更多物品堆叠
ServerModSetup("3293480002") -- Auto Watering 自动浇水

3. cluster.ini

该内容是世界配置

[GAMEPLAY]
# 游戏模式
game_mode = survival
# 最多服务器容纳人数
max_players = 6
# 是否可以PVP
pvp = false
# 当服务器没有玩家是否暂停世界
pause_when_empty = true [NETWORK]
# 服务器描述,在浏览世界页面,点击世界后显示的描述,该选项不影响服务器,主要是世界重名后查找哪个才是自己需要加入的世界
cluster_description = no description
# 游戏世界名称,在浏览世界的时候显示的名字
cluster_name = world name
# 世界密码,密码错误无法加入世界
cluster_password = 123456
# 存档语言:中文
cluster_language = chinese [MISC]
# 控制台是否启用,就是进入游戏后,按esc下面哪个按钮能否唤出命令行
console_enabled = true [SHARD]
# 忘记了
shard_enabled = true
# 这个我填的是主机的ip
bind_ip = 127.0.0.1
# 这个我填的也是主机的ip
master_ip = 127.0.0.1
# 地上世界的端口,地上世界被称为主世界
master_port = 10889
# 表示需要从klei申请dedicated_DST_server_key,文件名:cluster_token.txt
cluster_key = supersecretkey

4. modoverrides.lua

该内容是世界的mod配置

return {
["workshop-1172839635"]={ configuration_options={ icebox_freeze="-5" }, enabled=true },
["workshop-1207269058"]={ configuration_options={ }, enabled=true },
["workshop-1595631294"]={
configuration_options={
BundleItems=false,
ChangeSkin=true,
Digornot=false,
DragonflyChest=false,
Icebox=false,
SaltBox=false
},
enabled=true
},
["workshop-1595934840"]={
configuration_options={
base_hp=1,
ghost_button=true,
ghost_delay=360,
hunger_kills=true,
language="chs",
no_death_announcement=false,
rip_cmd=true,
wes_mult=0.5,
wilson_extra_hp=0.6,
wilson_speed_mult=0.5
},
enabled=true
},
["workshop-2115943953"]={
configuration_options={ auto_stack=true, auto_stack_range=10, auto_stack_target=true },
enabled=true
},
["workshop-2189004162"]={
configuration_options={
DEBUG_ENABLED=false,
DEBUG_SHOW_DISABLED=false,
DEBUG_SHOW_NOTIMPLEMENTED=false,
DEBUG_SHOW_PREFAB=false,
alt_only_information=false,
appeasement_value="undefined",
armor="undefined",
attack_range_type="undefined",
battlesong_range="both",
blink_range=true,
boss_indicator=true,
bottle_indicator=true,
crash_reporter=false,
danger_announcements="undefined",
death_indicator=false,
display_attack_range="undefined",
display_cawnival="undefined",
display_compostvalue="undefined",
display_crafting_lookup_button=true,
display_fertilizer="undefined",
display_finiteuses=true,
display_food="undefined",
display_gyminfo="undefined",
display_harvestable=true,
display_health="undefined",
display_hunger="undefined",
display_insight_menu_button=true,
display_mob_attack_damage="undefined",
display_oceanfishing="undefined",
display_perishable="undefined",
display_pickable=true,
display_plant_stressors="undefined",
display_pollination="undefined",
display_sanity="undefined",
display_sanity_interactions="undefined",
display_sanityaura="undefined",
display_shared_stats="undefined",
display_shelter_info="undefined",
display_simplefishing="undefined",
display_spawner_information="undefined",
display_tackle_information="undefined",
display_timers="undefined",
display_unwrappable="undefined",
display_upgradeable="undefined",
display_weather="undefined",
display_weighable="undefined",
display_world_events="undefined",
display_worldmigrator="undefined",
display_yotb_appraisal="undefined",
display_yotb_winners="undefined",
domestication_information="undefined",
experimental_highlighting=true,
extended_info_indicator=true,
follower_info="undefined",
followtext_insight_font_size=28,
food_effects=true,
food_memory="undefined",
food_order="interface",
food_style="long",
food_units=true,
fuel_highlighting=false,
fuel_highlighting_color="RED",
fuel_verbosity="undefined",
growth_verbosity="undefined",
herd_information="undefined",
highlighting=true,
highlighting_color="GREEN",
hover_range_indicator=true,
hoverer_insight_font_size=30,
hunt_indicator="undefined",
info_preload="undefined",
info_style="text",
insight_font="UIFONT",
inventorybar_insight_font_size=25,
item_worth="undefined",
itemtile_display="percentages",
klaus_sack_info="undefined",
klaus_sack_markers="undefined",
language="automatic",
lightningrod_range=1,
miniboss_indicator=true,
naughtiness_verbosity="undefined",
nightmareclock_display="undefined",
notable_indicator=true,
orchestrina_indicator="undefined",
pipspook_indicator=true,
refresh_delay="undefined",
repair_values="undefined",
sinkhole_marks=2,
soil_moisture=2,
soil_nutrients="undefined",
soil_nutrients_needs_hat="undefined",
stewer_chef="undefined",
suspicious_marble_indicator=false,
temperature_units="game",
text_coloring=true,
time_style="gametime",
tumbleweed_info="undefined",
weapon_damage="undefined",
weather_detail="undefined",
wortox_soul_range=true,
wx78_scanner_info="undefined",
["信息控制"]=0,
["指示器"]=0,
["杂项"]=0,
["格式"]=0,
["调试"]=0,
["食物相关"]=0
},
enabled=true
},
["workshop-2700454470"]={ configuration_options={ ChineseLanguage=0, q=0 }, enabled=true },
["workshop-362175979"]={ configuration_options={ ["Draw over FoW"]="enabled" }, enabled=true },
["workshop-375850593"]={ configuration_options={ }, enabled=true },
["workshop-378160973"]={
configuration_options={
ENABLEPINGS=true,
FIREOPTIONS=2,
OVERRIDEMODE=false,
SHAREMINIMAPPROGRESS=true,
SHOWFIREICONS=true,
SHOWPLAYERICONS=true,
SHOWPLAYERSOPTIONS=2
},
enabled=true
},
["workshop-661253977"]={
configuration_options={ amudiao=false, baodiao=0, kong=0, nillots=1, rendiao=0, zbdiao=false },
enabled=true
},
["workshop-831523966"]={ configuration_options={ soul_stack=20, stack_size=99 }, enabled=true },
["workshop-1998081438"]={ configuration_options={ StackMode=true, StackRadius=10 }, enabled=true },
["workshop-2097358269"]={
configuration_options={
allcontainers=0,
collectAll=0,
collectChestSlot=0,
collect_items_dist0=1,
collect_items_dist1=6,
dragonflychest=1,
icebox=1,
is_collect_all=1,
is_collect_drop=1,
is_collect_lootdropper=1,
is_collect_open=1,
is_collect_periodicspawner=1,
is_collect_take=1,
iscollectone=1,
minisign_dist=1.5,
minisignnofire=1,
renameSpecialMinisign=1,
saltbox=1,
treasurechest=1,
["其他设置"]=false,
["收集时机"]=false,
["收集种类限制"]=false,
["特殊木牌"]=false,
["箱子种类"]=false,
["距离设置 (4 == 一块地皮)"]=false
},
enabled=true
},
["workshop-2477889104"]={
configuration_options={
BADGE_BG_BRIGHTNESS=60,
BADGE_BG_OPACITY=100,
COLOR_DOMESTICATION_DEFAULT="WHITE",
COLOR_DOMESTICATION_ORNERY="ORANGE",
COLOR_DOMESTICATION_PUDGY="PURPLE",
COLOR_DOMESTICATION_RIDER="BLUE",
COLOR_OBEDIENCE="RED",
COLOR_TIMER="GREEN",
ClientConfig=false,
EnableSounds=false,
GapModifier=0,
HEALTH_BADGE_CLEAR_BG=false,
HungerThreshold=10,
OffsetX=0,
OffsetXFine=0,
OffsetXMult=1,
OffsetY=0,
OffsetYFine=0,
OffsetYMult=1,
SEPARATOR_BADGE_COLORS=1,
SEPARATOR_BADGE_SETTINGS=1,
SEPARATOR_GENERAL=1,
SEPARATOR_POSITIONING_X=1,
SEPARATOR_POSITIONING_Y=1,
Scale=1,
ShowByDefault=true,
Theme="TheForge",
ToggleKey="KEY_T"
},
enabled=true
},
["workshop-3007715893"]={
configuration_options={
[""]=0,
STACK_OTHER_OBJECTS=true,
STACK_SIZE=99,
STACK_SIZE1=100,
aip_leaf_note=false,
ancienttree_stuff=true,
bird=true,
blank_certificate=false,
blueprint=false,
boat_stuff=true,
chestupgrade_stacksize=true,
crow=true,
deer_antler=true,
dengxian=false,
eyeturret=true,
fish=true,
foliageath=false,
glommerwings=true,
heap_of_foods=false,
horn=true,
lavae_egg=true,
lg_choufish_inv=false,
miao_packbox=false,
mole=true,
mooneye=true,
moonrockidol=true,
myth_lotusleaf=false,
rabbit=true,
reskin_tool=false,
security_pulse_cage=true,
shadowheart=true,
shell=true,
sketch=false,
spider=true,
tallbirdegg=false,
tropical=false,
wally=true,
winona=true
},
enabled=true
},
["workshop-3293480002"]={ configuration_options={ }, enabled=true },
}
  1. 文件夹图片

5. 参考

  1. Dedicated Server Quick Setup Guide - Linux
  2. 这个是mod下不下来,论坛里有人给出的传送门(13楼),但是我没有用这个方法。https://tieba.baidu.com/p/9251408506
  3. 如果之前可以玩,但是后来搜不到游戏服务器,则可能是游戏更新了,尝试把 start_server.sh的33行前面的#删除掉,然后再启动,改行是用来验证并更新饥荒服务器程序的
  4. 如果提示服务器正在运行旧版本模组。服务器所有者必须更新模组,才能让新的玩家加入。,windows更新下mod,然后上传到~/DST/template/content/322330即可,可以直接覆盖

Ubuntu 部署饥荒联机版服务器 Linux DST_Dedicate_Server的更多相关文章

  1. 【Python】部署上手App后端服务器 - Linux环境搭建安装Python、Tornado、SQLAlchemy

    基于阿里云服务器端环境搭建 文章目录 基于阿里云服务器端环境搭建 配置开发环境 安装 Python 3.8.2 安装 Tornado 安装 MySQL 安装 mysqlclient 安装 SQLAlc ...

  2. 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署

    阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...

  3. 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署

    阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...

  4. 阿里云服务器Linux CentOS安装配置(五)jetty配置、部署

    阿里云服务器Linux CentOS安装配置(五)jetty配置.部署 1.官网下载jetty:wget http://repo1.maven.org/maven2/org/eclipse/jetty ...

  5. Ubuntu 发行版的 Linux 操作系统

    Ubuntu 发行版的 Linux 操作系统.. ------------------------------------- ------------------------------------- ...

  6. 腾讯云服务器linux Ubuntu操作系统搭建ftp服务器vsftpd

    腾讯云服务器linux Ubuntu操作系统安装ftp服务器vsftpd 操作系统: Ubuntu Server 16.04.1 LTS 64位 下面我将系统重装, 一步一步从头开始,安装FTP服务器 ...

  7. Ubuntu 15.04 编译UE4 for Linux版

    源 起 Unreal Engine 4 是全球最先进的Realtime Illumination & Physical 引擎: 长期以来,UE4都只有Windows版和Mac版,今年终于向Li ...

  8. ubuntu设置root密码及 Xftp连接linux(ubuntu)时提示ssh服务器拒绝了密码,请再试一次

    原文:ubuntu设置root密码及 Xftp连接linux(ubuntu)时提示ssh服务器拒绝了密码,请再试一次 alt+f2,在弹出的运行窗口中输入:gnome-terminal sudo pa ...

  9. 《完美应用Ubuntu》第3版 何晓龙 著

    系统篇 用好Ubuntu掌握这些就够了 第1章 Ubuntu的进化 1.1 GNU/Linux的历史和文化 1.1.1 GNU/Linux是Linux的全称 1.1.2 Linux的诞生 1.2 Li ...

  10. 绿色版的Linux.NET——“Jws.Mono”

    Linux.NET环境的搭建,不仅是一项比较耗时的事情,同时也是一项略显复杂繁琐的事情.特别是对于近期的几个Mono版本,由于官方所提供的源码包中出现代码文件的缺失,这总让我们的付出变得徒劳.另外一方 ...

随机推荐

  1. 东方通TongWeb7.0.4.9M4部署SuperMap iServer 11.2.1

    一.软件版本 操作系统: CentOS Linux release 7.5.1804 (Core) JDK:11.0.18 东方通:TongWeb7.0.4.9M4 SuperMap iServer: ...

  2. js 吸顶以及一些获取文档高度等小方法

    1.返回html文档元素document.documentElement 2.文档的高度document.body.clientHeight 3.html文档可视高度==页面可见区域的高度docume ...

  3. Fake JSON Server

    Fake JSON Server https://github.com/ttu/dotnet-fake-json-server Fake JSON Server 是 Fake REST API,可以作 ...

  4. Docker目录汇总

    Docker目录汇总 Docker资料分享 Docker 教程 | 菜鸟教程 Docker入门级简易手册 Docker - 从入门到实践 Kubernetes中文手册 Kubernetes 指南 我的 ...

  5. OpenLens 6.3.0 无法查案日志和进入 Pod Shell 解决方法

    原因 OpenLens 6.3.0开始移除了Pod的查看日志和进入Pod Shell按钮,无法查看日志和进入Pod操作. 解决办法 OpenLens 6.3.0开始这两个功能以插件形式提供,需下载op ...

  6. mysql命令行创建数据库并设置字符集

    CREATE DATABASE test1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

  7. DevNow x Notion

    前言 Notion 应该是目前用户量比较大的一个在线笔记软件,它的文档系统也非常完善,支持多种文档格式,如 Markdown.富文本.表格.公式等. 早期我也用过一段时间,后来有点不习惯,就换到了 O ...

  8. Qt视频监控系统一个诡异问题的解决思路(做梦都想不到)

    一.前言 由于Qt版本众多,几百个版本之间存在不兼容的情况,为此如果要兼容很多版本,没有取巧的办法和特殊的捷径,必须自己亲自安装各个版本编译运行并测试,大问题一般不会有,除非缺少模块,小问题还是不断有 ...

  9. Qt开发经验小技巧221-225

    在对表格数据模型操作的时候,经常遇到一种场景就是,删除某条记录后,希望重新选中某一行.QTableView.QTableWidget本身就支持多选全选等操作,比如批量删除可以多选. //拿到表格数据模 ...

  10. 基于Redis有序集合实现滑动窗口限流

    滑动窗口算法是一种基于时间窗口的限流算法,它将时间划分为若干个固定大小的窗口,每个窗口内记录了该时间段内的请求次数.通过动态地滑动窗口,可以动态调整限流的速率,以应对不同的流量变化. 整个限流可以概括 ...