你能在末日后的世界中生存多久?一片被感染“僵尸”占领的土地,你需要与其他幸存者争夺有限的资源。你会与陌生人结盟,共同坚守吗?还是独行如狼,避免背叛?这就是《DayZ》——这是你的故事。
预设配置详情
DayZ
[!NOTE]
此 Egg 仅适用于 DayZ 独立版本。不适用于 Arma 2 或 Arma 3 上的 DayZ 模组。
作者/贡献者
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center">
<a href="https://github.com/redthirten">
<img src="https://avatars.githubusercontent.com/u/4533989" width="50px;" alt=""/><br /><sub><b>Red-Thirten</b></sub>
</a>
<br />
<a href="https://github.com/pelican-eggs/games-steamcmd/commits?author=redthirten" title="代码">💻</a>
<a href="https://github.com/pelican-eggs/games-steamcmd/commits?author=redthirten" title="维护">🔨</a>
</td>
<td align="center">
<a href="https://github.com/Moondarker">
<img src="https://avatars.githubusercontent.com/u/4098364" width="50px;" alt=""/><br /><sub><b>Moondarker</b></sub>
</a>
<br />
<a href="https://github.com/pelican-eggs/games-steamcmd/commits?author=Moondarker" title="代码">💻</a>
<a href="https://github.com/pelican-eggs/games-steamcmd/commits?author=Moondarker" title="贡献者">💡</a>
</td>
<td align="center">
<a href="https://github.com/Brophy">
<img src="https://avatars.githubusercontent.com/u/123881" width="50px;" alt=""/><br /><sub><b>Brophy</b></sub>
</a>
<br />
<a href="https://github.com/pelican-eggs/games-steamcmd/commits?author=Brophy" title="代码">💻</a>
<a href="https://github.com/pelican-eggs/games-steamcmd/commits?author=Brophy" title="贡献者">💡</a>
</td>
<td align="center">
<a href="https://github.com/shaynendradika">
<img src="https://avatars.githubusercontent.com/u/19285167" width="50px;" alt=""/><br /><sub><b>shaynendradika</b></sub>
</a>
<br />
<a href="https://github.com/pelican-eggs/games-steamcmd/commits?author=shaynendradika" title="代码">💻</a>
<a href="https://github.com/pelican-eggs/games-steamcmd/commits?author=shaynendradika" title="贡献者">💡</a>
</td>
</tr>
</table>
<!-- markdownlint-enable -->
<!-- prettier-ignore-end -->
游戏描述
来自 Bohemia Interactive 的官方网站:
你能在末日世界中存活多久?一片被感染"僵尸"占领的土地,你需要与其他幸存者争夺有限的资源。你会与陌生人组队共同生存,还是作为独狼避免背叛?这就是 DayZ——你的故事由你书写。
Egg 功能
- 启动时自动下载服务器更新
- 启动时自动下载、更新并加载 Steam 创意工坊模组(*参见安装/系统要求:游戏所有权)
- 也支持仅服务端模组。
- 通过比对创意工坊页面的最后更新时间,快速高效地检查模组更新。
- 自动将模组的
.bikey文件移动到/keys/目录。 - 注意:这些功能仅适用于
@workshopID#格式的模组。手动上传的模组不会自动更新。
serverDZ.cfg文件中的多项基本设置可通过服务器的"启动"选项卡轻松配置- 服务器名称、密码、禁用第三人称、时间持久化等...
- 最大玩家数可配置,并可由主机强制执行(*参见推荐的 Egg 修改)
- 可添加额外的 DayZ 启动参数以优化性能
- 兼容 WHMCS(*参见推荐的 Egg 修改)
服务器端口
默认服务器端口如下,但所有端口均可自由更改。
| 端口 | 默认值 | 协议 | 必需 | 备注 |
|---|---|---|---|---|
| 游戏端口 | 2302 | UDP | 是 | 面板中的主端口 |
| Steam 查询端口 | 27016 | UDP | 部分 | 用于服务器列表显示 |
| RCON | 2305 | UDP | 否 | 必须定义,但不强制分配给服务器 |
安装/系统要求
[!IMPORTANT]
需要有效的 Steam 账户才能安装此游戏服务器。
[!WARNING]
必须完全关闭 Steam 令牌保护,才能高效下载服务器和模组。参见启用 Steam 令牌保护运行了解非官方解决方案。
| 最低配置 | 推荐配置 | |
|---|---|---|
| 处理器 | 近期 x86/64 (AMD/Intel) 处理器。不支持 32 位或 ARM。 | 避免 CPU 绑定;可能导致问题。 |
| 内存 | 4096-5120 MiB | 8192 MiB |
| 存储 | 3072 MiB | 7168+ MiB(取决于安装的模组数量) |
| 网络 | 0.512 Mbit/s/玩家 | 1-5 Mbit/s/玩家 |
| 主机操作系统 | 大多数稳定的 Linux 发行版均可 | 使用已安装操作系统的最新内核版本可避免部分边缘情况下的安装/启动问题。 |
游戏所有权:
虽然非必需,但强烈建议用于安装此服务器的 Steam 账户拥有 DayZ 游戏,原因如下:
- 只有拥有游戏,原版任务文件才会随服务器自动更新。
- 也可以通过删除
mpmissions/目录并重新安装服务器来手动更新(不会删除其他文件)。
- 也可以通过删除
- 自动下载 Steam 创意工坊模组需要拥有游戏。
- 此为可选功能,如有需要也可手动上传模组到服务器。
- 如果不想向客户提供此功能,主机可自由将"[主机] 禁用模组下载/更新"变量设置为
1。
推荐的 Egg 修改
以下是将 Egg 导入面板后强烈建议进行的变量修改。在查看此 Egg 时,只需进入 Egg 编辑器的"变量"选项卡即可进行这些更改。
默认 Steam 用户名和密码
- 为简化服务器部署(或使用 WHMCS 时),建议将"Steam 用户名"和"Steam 密码"的默认值修改为用于托管的 Steam 账户。这样所有新安装的服务器都将使用这些凭据。切勿将这些字段设为终端用户可见,以免他们使用自己的 Steam 账户;面板会以明文形式保存他们的 Steam 凭据,这对安全和隐私极为不利。
限制最大玩家数
- 如需限制客户端服务器的最大玩家数,可修改"最大玩家数"变量的权限,使客户端仅能查看此值(无法编辑)。也可更改其默认值,或根据需要逐服务器更改该值。
启用 Steam 令牌保护运行
[!CAUTION]
以下方法强烈不推荐用于生产环境或私人使用。仅当您实在不想禁用 Steam 令牌保护且不打算频繁更新服务器/模组时使用。启用 Steam 令牌保护的用户将不会获得支持。此外,使用此方法,如果出现问题,您的账户可能面临速率限制风险。
- 创建服务器时,将变量"[主机] 跳过游戏服务器安装"和"[修复] 验证服务器文件"设置为
1。 - 正常进行安装。
- 如果安装后服务器未自动启动,请手动启动。
- 控制台最终会在以下行卡住:
Loading Steam API...OK。此时您可能会收到 Steam 令牌保护登录请求。为安全起见,请批准此请求,但这不会使您登录。接下来,获取有效的 Steam 令牌保护代码,输入到控制台并按 Enter 提交。这将使您登录。如果看到:Two-factor code:OK,则表示成功。服务器将开始首次下载。注意:可能会出现故障且不显示安装进度;请耐心等待下载和验证。- 如果有模组需要安装,您需要为每个模组重复获取并输入新 Steam 令牌保护代码的过程。
- 此时服务器应正常启动。
- 进入"启动"选项卡,禁用"[修复] 验证服务器文件"。同时,建议在需要再次更新前禁用"自动更新"启动变量。否则,您将需要在每次启动时重新输入 Steam 令牌保护代码。
registry.cn-shanghai.aliyuncs.com/pterodactyl-images/games:dayz
./{{SERVER_BINARY}} -port={{SERVER_PORT}} -profiles=profiles -bepath=./ -config=serverDZ.cfg -mod={{CLIENT_MODS}} -serverMod={{SERVERMODS}} {{STARTUP_PARAMS}}
| 变量名 | 变量 | 描述 | 默认值 | 规则 | 可查看 | 可编辑 |
|---|---|---|---|---|---|---|
| [主机] Steam 查询端口 | QUERY_PORT |
用于Steam服务器列表功能的UDP端口。有助于服务器在客户端服务器浏览器中可见。 | 27016 |
required|integer|between:1024,65536
必填 整数 介于 1024-65536 之间
|
||
| [主机] Steam 用户名 | STEAM_USER |
用于安装和更新。该账户无需拥有DayZ,但必须是有效的Steam账户(不能使用匿名登录)。出于安全考虑,建议您为专用服务器创建一个新的Steam账户。*此信息对服务器所有者不可见。* | |
required|string|not_in:anonymous
必填 字符串
|
||
| [主机] Steam 密码 | STEAM_PASS |
用于安装和更新。Steam Guard 必须完全关闭,以便服务器和模组高效下载。*此信息对服务器所有者不可见,但会以纯文本形式存储。不建议使用个人账户;最好使用虚拟账户。* | |
required|string
必填 字符串
|
||
| [主机] 禁用模组下载/更新 | DISABLE_MOD_UPDATES |
如果Steam账户未拥有DayZ基础游戏,Steam创意工坊的模组下载/更新将无法正常工作。若出现此情况,该设置可禁用此功能以避免错误。(1 开启 | 0 关闭) | 0 |
boolean
布尔
|
||
| [主机] SteamCMD 重试尝试次数 | STEAMCMD_ATTEMPTS |
在可恢复的错误发生后,SteamCMD 应重试下载服务器或模组的次数。(例如,特别大的模组下载超时) | 3 |
required|integer
必填 整数
|
||
| [主机] 跳过游戏服务器安装 | SKIP_INSTALL |
在安装脚本期间跳过通过 SteamCMD 安装游戏服务器文件。仅当您尝试使用启用了 Steam 令牌的 Steam 账户安装服务器时才应启用此选项(不推荐)。 | 0 |
boolean
布尔
|
||
| 自动更新 | UPDATE_SERVER |
启动时快速检查任何服务器或模组更新,并在必要时进行更新。 | 1 |
boolean
布尔
|
||
| 服务器名称 | SERVER_HOSTNAME |
在服务器列表中显示的服务器名称。 | DayZ Server |
required|string
必填 字符串
|
||
| 最大玩家数 | MAX_PLAYERS |
服务器允许的最大玩家数量。 | 64 |
required|integer|gt:0
必填 整数
|
||
| 服务器密码 | SERVER_PASSWORD |
加入服务器需要密码。留空则无需密码。 | |
nullable|string
可选 字符串
|
||
| 管理员密码 | ADMIN_PASSWORD |
服务器管理员登录密码。 | |
nullable|string
可选 字符串
|
||
| RCON 端口 | RCON_PORT |
被工具或Battlemetrics用于从外部管理服务器。建议RCON端口设置为游戏端口+3。例如,如果游戏端口是2302,则RCON端口应为2305。 | 2305 |
required|integer|between:1024,65536
必填 整数 介于 1024-65536 之间
|
||
| RCON 密码 | RCON_PASSWORD |
此密码用于通过RCON验证第三方访问服务器控制权限。 | |
required|string|max:20
必填 字符串 最大 20
|
||
| 模组列表文件(从DayZ启动器导出) | MOD_FILE |
导出模组列表的文件名。此文件将被解析以用于模组的安装和加载。请将您的HTML文件上传至根目录(例如 /home/container/modlist.html)。留空则禁用从模组列表加载模组。 | modlist.html |
nullable|string
可选 字符串
|
||
| 额外模组 | MODIFICATIONS |
从根目录加载的模组文件夹列表,以分号分隔。适用于加载手动上传的模组。列表中格式为"@workshopID"的模组也会包含在自动更新中(如果启用)。禁止使用大写字母、空格或以数字开头的文件夹!(例如:myMod;@123456789;@987654321;etc;) | |
nullable|string
可选 字符串
|
||
| 验证签名 | VERIFY_SIGNATURES |
确保所有客户端都拥有与服务器完全相同的模组或附加包版本。否则,客户端在连接时将被踢出。(2 开启 | 0 关闭) | 2 |
required|string|in:0,2
必填 字符串 选项: 0,2
|
||
| 强制游戏版本 | ENFORCE_BUILD |
当启用时,服务器将只允许与服务器版本相同的客户端连接。 | 1 |
boolean
布尔
|
||
| 禁用VoN | DISABLE_VON |
开启后,将禁用服务器中的网络语音(语音聊天)功能。 | 0 |
boolean
布尔
|
||
| VoN 质量 | VON_QUALITY |
网络语音编解码器质量;数值越高越好。(取值范围0-30) | 20 |
required|integer|between:0,30
必填 整数 介于 0-30 之间
|
||
| 禁用第三人称 | DISABLE_THIRD |
开启后,将在服务器上禁用第三人称视角。 | 0 |
boolean
布尔
|
||
| 禁用准星 | DISABLE_CROSSHAIR |
开启后,将在服务器上禁用准星显示。 | 0 |
boolean
布尔
|
||
| 禁用个人光源 | DISABLE_PERSONAL_LIGHT |
开启后,将在服务器上的夜间时段禁用所有客户端上方的一个个人光源。 | 1 |
boolean
布尔
|
||
| 暗夜 | LIGHTING_CONFIG |
开启后,夜晚将变得更暗(更贴近真实的夜晚,但无光源时难以视物)。 | 0 |
boolean
布尔
|
||
| 持久时间 | PERSISTENT_TIME |
实际服务器时间会保存到存储中,因此当开启时,下次服务器启动将使用已保存的时间值。 | 0 |
boolean
布尔
|
||
| 时间倍率 | TIME_MULT |
这是游戏内时间的时间倍率(例如,设为12时,游戏内一个完整的24小时周期会加快12倍,使其在“现实生活”中持续2小时)。(数值范围:0-24) | 12 |
required|integer|between:0,24
必填 整数 介于 0-24 之间
|
||
| 夜晚倍数 | NIGHT_MULT |
这是一个额外的倍率,用于加快或减慢游戏中的夜晚时间。它会与"时间倍率"变量相乘,得出夜晚时间的最终倍率。(数值范围:0.1-64.0) | 1 |
required|numeric|between:0.1,64
必填 数字
|
||
| [修复] 将模组文件名改为小写 | MODS_LOWERCASE |
每个设置为加载的模组,其文件夹和文件名都将转换为小写(以防止错误)。建议在从Windows机器复制模组到服务器后,或当模组似乎无法加载时,在服务器启动时启用此功能一次。 | 0 |
boolean
布尔
|
||
| [修复] 验证服务器文件 | VALIDATE_SERVER |
当自动更新开启时,验证所有服务器文件。注意:这将显著增加服务器启动时间,因此建议仅在需要时启用此功能。 | 0 |
boolean
布尔
|
||
| [高级] 仅服务端模组 | SERVERMODS |
与“-serverMods”启动选项配合使用的模组文件夹。这些模组仅在服务器端运行,如果“验证签名”已开启,则客户端无需安装。列表中任何以“@workshopID”形式存在的模组也将包含在自动更新中(如果启用)。禁止使用大写字母、空格或以数字开头的文件夹!每个文件夹后必须跟一个分号(例如:@123456789;@987654321;等)。 | |
nullable|string
可选 字符串
|
||
| [高级] 额外启动参数 | STARTUP_PARAMS |
有关此字段的有效标志,请参阅 https://community.bistudio.com/wiki/DayZ:Server_Configuration#Launch_Parameters 以获取更多信息。 | -dologs -adminlog -netlog -freezecheck |
nullable|string
可选 字符串
|
||
| [高级] 服务端核心 | SERVER_BINARY |
当前无法更改。保留此项是为了日后引入其他具有不同可执行文件名称的分支时使用。 | DayZServer |
required|string|in:DayZServer
必填 字符串 选项: DayZServer
|
||
| [高级] DayZ 专用服务器应用 ID | STEAMCMD_APPID |
用于安装和更新。通常无需更改。223350 对应稳定版分支,1042420 对应实验版分支。切换分支可能需要删除所有服务器文件并重新安装。 | 223350 |
required|integer|in:223350,1042420
必填 整数 选项: 223350,1042420
|
registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian
/bin/bash
#!/bin/bash
## File: Pterodactyl DayZ Egg - egg-pterodactyl-day-z.json
## Author: David Wolfe (Red-Thirten)
## Date: 2024/07/04
## License: MIT License
## Image to install with is 'registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian'
export HOME=/mnt/server
CONFIG_URL="https://raw.githubusercontent.com/pelican-eggs/games-steamcmd/main/dayz/config/serverDZ.cfg"
MISSIONS_GITHUB_PACKAGE="BohemiaInteractive/DayZ-Central-Economy"
## Download and install SteamCMD
cd /tmp
mkdir -p $HOME/steamcmd $HOME/steamapps
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C $HOME/steamcmd
cd $HOME/steamcmd
# SteamCMD fails otherwise for some reason, even running as root.
# This is changed at the end of the install process anyways.
chown -R root:root /mnt
if [ "$SKIP_INSTALL" -eq 1 ]; then
# This is for the minority of hosts who want to install this server with Steam Guard enabled.
# Please read the README for instructions on how to do this properly!
echo -e '"Skip Game Server Install" variable is set to enabled!'
echo -e "\tOnly SteamCMD will be installed..."
./steamcmd.sh +quit
else
# Install/Verify game server using SteamCMD
./steamcmd.sh +force_install_dir $HOME "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +app_update ${STEAMCMD_APPID} $( [[ -z ${STEAMCMD_BETAID} ]] || printf %s "-beta ${STEAMCMD_BETAID}" ) $( [[ -z ${STEAMCMD_BETAPASS} ]] || printf %s "-betapassword ${STEAMCMD_BETAPASS}" ) ${INSTALL_FLAGS} validate +quit
fi
echo -e ""
# Set up 32 and 64 bit libraries
mkdir -p $HOME/.steam/sdk{32,64}
cp -v linux32/steamclient.so $HOME/.steam/sdk32/steamclient.so
cp -v linux64/steamclient.so $HOME/.steam/sdk64/steamclient.so
## DayZ Setup
cd $HOME
# Check for successful server binary installation
if [ ! -f DayZServer ] && [ "$SKIP_INSTALL" -ne 1 ]; then
echo -e "
[ERROR] SteamCMD failed to install the DayZ Dedicated Server!"
echo -e "\tTry reinstalling the server again.
"
exit 1
fi
# Download default serverDZ.cfg if it is missing or empty (occurs when Steam account *owns* the DayZ game)
if [ ! -f serverDZ.cfg ] || [ ! -s serverDZ.cfg ]; then
echo -e "'serverDZ.cfg' is missing or empty. Downloading default config file..."
curl -LO ${CONFIG_URL}
if [ ! -f serverDZ.cfg ]; then
echo -e "
[ERROR] Failed to download default server config file!"
exit 1
fi
chmod 644 serverDZ.cfg
fi
# Add required 'steamQueryPort' parameter to the end of serverDZ.cfg (if it's missing)
if ! grep -q "steamQueryPort" serverDZ.cfg; then
echo -e "Adding additional required parameters to the end of 'serverDZ.cfg'..."
cat >> serverDZ.cfg << EOL
steamQueryPort = ${QUERY_PORT};
EOL
fi
# Download vanilla mission files if they are missing (occurs when Steam account *does not own* the DayZ game)
if { [ ! -d "mpmissions" ] || [ -z "$(ls -A mpmissions 2>/dev/null)" ]; } && [ "$SKIP_INSTALL" -ne 1 ]; then
echo -e "[WARNING] The Steam account used to install this server does not own the DayZ game!"
echo -e "\tVanilla mission files will have to be MANUALLY updated in the future if they update! (See Egg's README for instructions)"
echo -e "\tDownloading and installing vanilla mission files..."
mkdir -p $HOME/mpmissions
cd $HOME/mpmissions
LATEST_JSON=$(curl --silent "https://api.github.com/repos/${MISSIONS_GITHUB_PACKAGE}/releases/latest")
DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r .tarball_url)
curl -Lo mpmissions.tar.gz ${DOWNLOAD_URL}
if [ ! -f mpmissions.tar.gz ]; then
echo -e "
[ERROR] Failed to download vanilla mission files!"
exit 1
fi
tar -xzvf mpmissions.tar.gz --strip-components=1 --wildcards '*/dayzOffline.chernarusplus/*' '*/dayzOffline.enoch/*'
rm -f mpmissions.tar.gz
fi
# Check for BattlEye RCon configuration
mkdir -p $HOME/battleye
cd $HOME/battleye
if [ ! -f beserver_x64.cfg ]; then
echo -e "Creating BattlEye RCon Configuration..."
cat > beserver_x64.cfg << EOF
RConPort ${RCON_PORT}
RConPassword ${RCON_PASSWORD}
RestrictRCon 0
EOF
fi
echo -e "
DayZ Dedicated Server successfully installed!
"
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": "https://eggs.pterodactyl.top/eggs/44/download/egg-dayz.json"
},
"exported_at": "2024-07-04T17:23:00-07:00",
"name": "DayZ",
"author": "red_thirten@yahoo.com",
"description": "你能在末日后的世界中生存多久?一片被感染“僵尸”占领的土地,你需要与其他幸存者争夺有限的资源。你会与陌生人结盟,共同坚守吗?还是独行如狼,避免背叛?这就是《DayZ》——这是你的故事。",
"features": [
"steam_disk_space"
],
"docker_images": {
"registry.cn-shanghai.aliyuncs.com/pterodactyl-images/games:dayz": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/games:dayz"
},
"file_denylist": [],
"startup": "./{{SERVER_BINARY}} -port={{SERVER_PORT}} -profiles=profiles -bepath=./ -config=serverDZ.cfg -mod={{CLIENT_MODS}} -serverMod={{SERVERMODS}} {{STARTUP_PARAMS}}",
"config": {
"files": "{\r\n \"serverDZ.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"hostname =\": \"hostname = \\\"{{env.SERVER_HOSTNAME}}\\\";\",\r\n \"password =\": \"password = \\\"{{env.SERVER_PASSWORD}}\\\";\",\r\n \"passwordAdmin =\": \"passwordAdmin = \\\"{{env.ADMIN_PASSWORD}}\\\";\",\r\n \"maxPlayers\": \"maxPlayers = {{env.MAX_PLAYERS}};\",\r\n \"verifySignatures\": \"verifySignatures = {{env.VERIFY_SIGNATURES}};\",\r\n \"forceSameBuild\": \"forceSameBuild = {{env.ENFORCE_BUILD}};\",\r\n \"disableVoN\": \"disableVoN = {{env.DISABLE_VON}};\",\r\n \"vonCodecQuality\": \"vonCodecQuality = {{env.VON_QUALITY}};\",\r\n \"disable3rdPerson\": \"disable3rdPerson = {{env.DISABLE_THIRD}};\",\r\n \"disableCrosshair\": \"disableCrosshair = {{env.DISABLE_CROSSHAIR}};\",\r\n \"disablePersonalLight\": \"disablePersonalLight = {{env.DISABLE_PERSONAL_LIGHT}};\",\r\n \"lightingConfig\": \"lightingConfig = {{env.LIGHTING_CONFIG}};\",\r\n \"serverTimeAcceleration\": \"serverTimeAcceleration = {{env.TIME_MULT}};\",\r\n \"serverNightTimeAcceleration\": \"serverNightTimeAcceleration = {{env.NIGHT_MULT}};\",\r\n \"serverTimePersistent\": \"serverTimePersistent = {{env.PERSISTENT_TIME}};\",\r\n \"steamQueryPort\": \"steamQueryPort = {{env.QUERY_PORT}};\"\r\n }\r\n },\r\n \"battleye/beserver_x64.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"RConPort\": \"RConPort {{env.RCON_PORT}}\",\r\n \"RConPassword\": \"RConPassword {{env.RCON_PASSWORD}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Mission read.\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!/bin/bash\r\n\r\n## File: Pterodactyl DayZ Egg - egg-pterodactyl-day-z.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2024/07/04\r\n## License: MIT License\r\n## Image to install with is 'registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian'\r\n\r\nexport HOME=/mnt/server\r\nCONFIG_URL=\"https://raw.githubusercontent.com/pelican-eggs/games-steamcmd/main/dayz/config/serverDZ.cfg\"\r\nMISSIONS_GITHUB_PACKAGE=\"BohemiaInteractive/DayZ-Central-Economy\"\r\n\r\n## Download and install SteamCMD\r\ncd /tmp\r\nmkdir -p $HOME/steamcmd $HOME/steamapps\r\ncurl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C $HOME/steamcmd\r\ncd $HOME/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root /mnt\r\n\r\nif [ \"$SKIP_INSTALL\" -eq 1 ]; then\r\n # This is for the minority of hosts who want to install this server with Steam Guard enabled.\r\n # Please read the README for instructions on how to do this properly!\r\n echo -e '\"Skip Game Server Install\" variable is set to enabled!'\r\n echo -e \"\\tOnly SteamCMD will be installed...\"\r\n ./steamcmd.sh +quit\r\nelse\r\n # Install/Verify game server using SteamCMD\r\n ./steamcmd.sh +force_install_dir $HOME \"+login \\\"${STEAM_USER}\\\" \\\"${STEAM_PASS}\\\"\" +app_update ${STEAMCMD_APPID} $( [[ -z ${STEAMCMD_BETAID} ]] || printf %s \"-beta ${STEAMCMD_BETAID}\" ) $( [[ -z ${STEAMCMD_BETAPASS} ]] || printf %s \"-betapassword ${STEAMCMD_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\nfi\r\necho -e \"\"\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p $HOME/.steam/sdk{32,64}\r\ncp -v linux32/steamclient.so $HOME/.steam/sdk32/steamclient.so\r\ncp -v linux64/steamclient.so $HOME/.steam/sdk64/steamclient.so\r\n\r\n## DayZ Setup\r\ncd $HOME\r\n\r\n# Check for successful server binary installation\r\nif [ ! -f DayZServer ] && [ \"$SKIP_INSTALL\" -ne 1 ]; then\r\n echo -e \"\\n\\n[ERROR] SteamCMD failed to install the DayZ Dedicated Server!\"\r\n echo -e \"\\tTry reinstalling the server again.\\n\"\r\n exit 1\r\nfi\r\n\r\n# Download default serverDZ.cfg if it is missing or empty (occurs when Steam account *owns* the DayZ game)\r\nif [ ! -f serverDZ.cfg ] || [ ! -s serverDZ.cfg ]; then\r\n echo -e \"'serverDZ.cfg' is missing or empty. Downloading default config file...\"\r\n curl -LO ${CONFIG_URL}\r\n if [ ! -f serverDZ.cfg ]; then\r\n echo -e \"\\n\\n[ERROR] Failed to download default server config file!\"\r\n exit 1\r\n fi\r\n chmod 644 serverDZ.cfg\r\nfi\r\n\r\n# Add required 'steamQueryPort' parameter to the end of serverDZ.cfg (if it's missing)\r\nif ! grep -q \"steamQueryPort\" serverDZ.cfg; then\r\n echo -e \"Adding additional required parameters to the end of 'serverDZ.cfg'...\"\r\n cat >> serverDZ.cfg << EOL\r\n\r\n\r\nsteamQueryPort = ${QUERY_PORT};\r\nEOL\r\nfi\r\n\r\n# Download vanilla mission files if they are missing (occurs when Steam account *does not own* the DayZ game)\r\nif { [ ! -d \"mpmissions\" ] || [ -z \"$(ls -A mpmissions 2>/dev/null)\" ]; } && [ \"$SKIP_INSTALL\" -ne 1 ]; then\r\n echo -e \"[WARNING] The Steam account used to install this server does not own the DayZ game!\"\r\n echo -e \"\\tVanilla mission files will have to be MANUALLY updated in the future if they update! (See Egg's README for instructions)\"\r\n echo -e \"\\tDownloading and installing vanilla mission files...\"\r\n mkdir -p $HOME/mpmissions\r\n cd $HOME/mpmissions\r\n LATEST_JSON=$(curl --silent \"https://api.github.com/repos/${MISSIONS_GITHUB_PACKAGE}/releases/latest\")\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r .tarball_url)\r\n curl -Lo mpmissions.tar.gz ${DOWNLOAD_URL}\r\n if [ ! -f mpmissions.tar.gz ]; then\r\n echo -e \"\\n\\n[ERROR] Failed to download vanilla mission files!\"\r\n exit 1\r\n fi\r\n tar -xzvf mpmissions.tar.gz --strip-components=1 --wildcards '*/dayzOffline.chernarusplus/*' '*/dayzOffline.enoch/*'\r\n rm -f mpmissions.tar.gz\r\nfi\r\n\r\n# Check for BattlEye RCon configuration\r\nmkdir -p $HOME/battleye\r\ncd $HOME/battleye\r\nif [ ! -f beserver_x64.cfg ]; then\r\n echo -e \"Creating BattlEye RCon Configuration...\"\r\n cat > beserver_x64.cfg << EOF\r\nRConPort ${RCON_PORT}\r\nRConPassword ${RCON_PASSWORD}\r\nRestrictRCon 0\r\nEOF\r\nfi\r\n\r\necho -e \"\\nDayZ Dedicated Server successfully installed!\\n\"",
"container": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian",
"entrypoint": "/bin/bash"
}
},
"variables": [
{
"name": "[主机] Steam 查询端口",
"description": "用于Steam服务器列表功能的UDP端口。有助于服务器在客户端服务器浏览器中可见。",
"env_variable": "QUERY_PORT",
"default_value": "27016",
"user_viewable": true,
"user_editable": false,
"rules": "required|integer|between:1024,65536",
"field_type": "text"
},
{
"name": "[主机] Steam 用户名",
"description": "用于安装和更新。该账户无需拥有DayZ,但必须是有效的Steam账户(不能使用匿名登录)。出于安全考虑,建议您为专用服务器创建一个新的Steam账户。*此信息对服务器所有者不可见。*",
"env_variable": "STEAM_USER",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|not_in:anonymous",
"field_type": "text"
},
{
"name": "[主机] Steam 密码",
"description": "用于安装和更新。Steam Guard 必须完全关闭,以便服务器和模组高效下载。*此信息对服务器所有者不可见,但会以纯文本形式存储。不建议使用个人账户;最好使用虚拟账户。*",
"env_variable": "STEAM_PASS",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "required|string",
"field_type": "text"
},
{
"name": "[主机] 禁用模组下载/更新",
"description": "如果Steam账户未拥有DayZ基础游戏,Steam创意工坊的模组下载/更新将无法正常工作。若出现此情况,该设置可禁用此功能以避免错误。(1 开启 | 0 关闭)",
"env_variable": "DISABLE_MOD_UPDATES",
"default_value": "0",
"user_viewable": false,
"user_editable": false,
"rules": "boolean",
"field_type": "text"
},
{
"name": "[主机] SteamCMD 重试尝试次数",
"description": "在可恢复的错误发生后,SteamCMD 应重试下载服务器或模组的次数。(例如,特别大的模组下载超时)",
"env_variable": "STEAMCMD_ATTEMPTS",
"default_value": "3",
"user_viewable": false,
"user_editable": false,
"rules": "required|integer",
"field_type": "text"
},
{
"name": "[主机] 跳过游戏服务器安装",
"description": "在安装脚本期间跳过通过 SteamCMD 安装游戏服务器文件。仅当您尝试使用启用了 Steam 令牌的 Steam 账户安装服务器时才应启用此选项(不推荐)。",
"env_variable": "SKIP_INSTALL",
"default_value": "0",
"user_viewable": false,
"user_editable": false,
"rules": "boolean",
"field_type": "text"
},
{
"name": "自动更新",
"description": "启动时快速检查任何服务器或模组更新,并在必要时进行更新。",
"env_variable": "UPDATE_SERVER",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"field_type": "text"
},
{
"name": "服务器名称",
"description": "在服务器列表中显示的服务器名称。",
"env_variable": "SERVER_HOSTNAME",
"default_value": "DayZ Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string",
"field_type": "text"
},
{
"name": "最大玩家数",
"description": "服务器允许的最大玩家数量。",
"env_variable": "MAX_PLAYERS",
"default_value": "64",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|gt:0",
"field_type": "text"
},
{
"name": "服务器密码",
"description": "加入服务器需要密码。留空则无需密码。",
"env_variable": "SERVER_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "管理员密码",
"description": "服务器管理员登录密码。",
"env_variable": "ADMIN_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "RCON 端口",
"description": "被工具或Battlemetrics用于从外部管理服务器。建议RCON端口设置为游戏端口+3。例如,如果游戏端口是2302,则RCON端口应为2305。",
"env_variable": "RCON_PORT",
"default_value": "2305",
"user_viewable": true,
"user_editable": false,
"rules": "required|integer|between:1024,65536",
"field_type": "text"
},
{
"name": "RCON 密码",
"description": "此密码用于通过RCON验证第三方访问服务器控制权限。",
"env_variable": "RCON_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20",
"field_type": "text"
},
{
"name": "模组列表文件(从DayZ启动器导出)",
"description": "导出模组列表的文件名。此文件将被解析以用于模组的安装和加载。请将您的HTML文件上传至根目录(例如 /home/container/modlist.html)。留空则禁用从模组列表加载模组。",
"env_variable": "MOD_FILE",
"default_value": "modlist.html",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "额外模组",
"description": "从根目录加载的模组文件夹列表,以分号分隔。适用于加载手动上传的模组。列表中格式为\"@workshopID\"的模组也会包含在自动更新中(如果启用)。禁止使用大写字母、空格或以数字开头的文件夹!(例如:myMod;@123456789;@987654321;etc;)",
"env_variable": "MODIFICATIONS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "验证签名",
"description": "确保所有客户端都拥有与服务器完全相同的模组或附加包版本。否则,客户端在连接时将被踢出。(2 开启 | 0 关闭)",
"env_variable": "VERIFY_SIGNATURES",
"default_value": "2",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:0,2",
"field_type": "text"
},
{
"name": "强制游戏版本",
"description": "当启用时,服务器将只允许与服务器版本相同的客户端连接。",
"env_variable": "ENFORCE_BUILD",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"field_type": "text"
},
{
"name": "禁用VoN",
"description": "开启后,将禁用服务器中的网络语音(语音聊天)功能。",
"env_variable": "DISABLE_VON",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"field_type": "text"
},
{
"name": "VoN 质量",
"description": "网络语音编解码器质量;数值越高越好。(取值范围0-30)",
"env_variable": "VON_QUALITY",
"default_value": "20",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|between:0,30",
"field_type": "text"
},
{
"name": "禁用第三人称",
"description": "开启后,将在服务器上禁用第三人称视角。",
"env_variable": "DISABLE_THIRD",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"field_type": "text"
},
{
"name": "禁用准星",
"description": "开启后,将在服务器上禁用准星显示。",
"env_variable": "DISABLE_CROSSHAIR",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"field_type": "text"
},
{
"name": "禁用个人光源",
"description": "开启后,将在服务器上的夜间时段禁用所有客户端上方的一个个人光源。",
"env_variable": "DISABLE_PERSONAL_LIGHT",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"field_type": "text"
},
{
"name": "暗夜",
"description": "开启后,夜晚将变得更暗(更贴近真实的夜晚,但无光源时难以视物)。",
"env_variable": "LIGHTING_CONFIG",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"field_type": "text"
},
{
"name": "持久时间",
"description": "实际服务器时间会保存到存储中,因此当开启时,下次服务器启动将使用已保存的时间值。",
"env_variable": "PERSISTENT_TIME",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"field_type": "text"
},
{
"name": "时间倍率",
"description": "这是游戏内时间的时间倍率(例如,设为12时,游戏内一个完整的24小时周期会加快12倍,使其在“现实生活”中持续2小时)。(数值范围:0-24)",
"env_variable": "TIME_MULT",
"default_value": "12",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|between:0,24",
"field_type": "text"
},
{
"name": "夜晚倍数",
"description": "这是一个额外的倍率,用于加快或减慢游戏中的夜晚时间。它会与\"时间倍率\"变量相乘,得出夜晚时间的最终倍率。(数值范围:0.1-64.0)",
"env_variable": "NIGHT_MULT",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|between:0.1,64",
"field_type": "text"
},
{
"name": "[修复] 将模组文件名改为小写",
"description": "每个设置为加载的模组,其文件夹和文件名都将转换为小写(以防止错误)。建议在从Windows机器复制模组到服务器后,或当模组似乎无法加载时,在服务器启动时启用此功能一次。",
"env_variable": "MODS_LOWERCASE",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"field_type": "text"
},
{
"name": "[修复] 验证服务器文件",
"description": "当自动更新开启时,验证所有服务器文件。注意:这将显著增加服务器启动时间,因此建议仅在需要时启用此功能。",
"env_variable": "VALIDATE_SERVER",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"field_type": "text"
},
{
"name": "[高级] 仅服务端模组",
"description": "与“-serverMods”启动选项配合使用的模组文件夹。这些模组仅在服务器端运行,如果“验证签名”已开启,则客户端无需安装。列表中任何以“@workshopID”形式存在的模组也将包含在自动更新中(如果启用)。禁止使用大写字母、空格或以数字开头的文件夹!每个文件夹后必须跟一个分号(例如:@123456789;@987654321;等)。",
"env_variable": "SERVERMODS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "[高级] 额外启动参数",
"description": "有关此字段的有效标志,请参阅 https://community.bistudio.com/wiki/DayZ:Server_Configuration#Launch_Parameters 以获取更多信息。",
"env_variable": "STARTUP_PARAMS",
"default_value": "-dologs -adminlog -netlog -freezecheck",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "[高级] 服务端核心",
"description": "当前无法更改。保留此项是为了日后引入其他具有不同可执行文件名称的分支时使用。",
"env_variable": "SERVER_BINARY",
"default_value": "DayZServer",
"user_viewable": true,
"user_editable": false,
"rules": "required|string|in:DayZServer",
"field_type": "text"
},
{
"name": "[高级] DayZ 专用服务器应用 ID",
"description": "用于安装和更新。通常无需更改。223350 对应稳定版分支,1042420 对应实验版分支。切换分支可能需要删除所有服务器文件并重新安装。",
"env_variable": "STEAMCMD_APPID",
"default_value": "223350",
"user_viewable": true,
"user_editable": false,
"rules": "required|integer|in:223350,1042420",
"field_type": "text"
}
]
}附属文件
暂无附属文件
提交历史
Fork 关系
查看关系图暂无 Fork,成为第一个 Fork 的人吧!