英
描述
一款供1-10名玩家游玩的残酷探索与生存游戏,设定在受维京文化启发的程序生成炼狱中,包含插件框架BepInEx
17 浏览
2 下载
2026-06-30
更新于 2 天前
预设配置详情
Valheim BepInEx
作者与贡献者
| 名称 | Github 个人主页 | 请我喝杯咖啡 |
|---|---|---|
| gOOvER | https://github.com/gOOvER |
Valheim
一款适合1-10名玩家的残酷探索与生存游戏,设定在受维京文化启发的程序生成炼狱中。通过战斗、建造和征服,谱写一段配得上奥丁庇佑的传奇!
https://store.steampowered.com/app/892970/Valheim/
BepInEx
BepInEx 是一个用于 Unity 模组开发的通用框架。BepInEx 包含的工具和库能够:
- 在游戏启动时加载自定义代码(以下简称插件);
- 在不修改原始游戏文件的情况下,修补游戏内方法、类甚至整个程序集;
- 配置插件并将游戏日志输出到所需位置(如控制台或文件);
- 管理插件依赖关系。
BepInEx 目前是 GitHub 上最受欢迎的 Unity 模组工具之一。
此整合包已预先配置好,可直接用于 Valheim 模组开发。
具体来说,与基础版 BepInEx 相比,变更如下:
- 添加了预配置的 BepInEx.cfg,并启用了控制台。
- 为游戏当前版本添加了未剥离的 Unity + Mono BCL DLL。更多信息请参见此问题评论。
- 更新了 Doorstop 配置和 BepInEx,以便无需覆盖游戏 DLL 即可加载未剥离的 DLL。
- 添加了在 Linux 机器上运行游戏和专用服务器所需的脚本。
自动下载模组
可以通过输入来自 https://valheim.thunderstore.io/ 的模组包“依赖字符串”来自动下载模组。
服务器端口
| 端口 | 默认值 |
|---|---|
| 游戏 | 2456 |
| 查询 | 2457 |
更新说明
由于此孵化器的最新更新已从启动命令中移除了 DOORSTOP_CORLIB_OVERRIDE_PATH=./unstripped_corlib;。如果您的服务器已在运行,请手动更新启动命令。
registry.cn-shanghai.aliyuncs.com/pterodactyl-images/games:valheim
export DOORSTOP_ENABLED=1; export DOORSTOP_TARGET_ASSEMBLY=./BepInEx/core/BepInEx.Preloader.dll; export LD_LIBRARY_PATH="./doorstop_libs:./linux64:$LD_LIBRARY_PATH"; export LD_PRELOAD="libdoorstop_x64.so:$LD_PRELOAD"; export LD_LIBRARY_PATH="./linux64:$LD_LIBRARY_PATH"; export SteamAppId=892970; ./valheim_server.x86_64 -nographics -batchmode -name "{{SERVER_NAME}}" -port {{SERVER_PORT}} -world "{{WORLD}}" -password "{{PASSWORD}}" -public {{PUBLIC_SERVER}} -saveinterval {{BACKUP_INTERVAL}} -backups {{BACKUP_COUNT}} -backupshort {{BACKUP_SHORTTIME}} -backuplong {{BACKUP_LONGTIME}} $( [[ {{ENABLE_CROSSPLAY}} -eq 1 ]] && echo " -crossplay ") > >(sed -uE "{{CONSOLE_FILTER}}")
| 变量名 | 变量 | 描述 | 默认值 | 规则 | 可查看 | 可编辑 |
|---|---|---|---|---|---|---|
| 自动更新 | AUTO_UPDATE |
1 |
boolean
布尔
|
|||
| 备份数量 | BACKUP_COUNT |
设置将保留的自动备份数量。第一个是“短”备份时长,其余的是“长”备份时长。使用默认值时,表示保留1个2小时前的备份,以及3个间隔12小时的备份。默认值:4。 | 4 |
required|numeric|min:0
必填 数字 最小 0
|
||
| 备份间隔 | BACKUP_INTERVAL |
更改世界保存的频率(秒)。默认值:1800(30分钟)。 | 1800 |
required|numeric|min:0
必填 数字 最小 0
|
||
| 长期备份 | BACKUP_LONGTIME |
设置连续自动备份之间的间隔时间(秒)。默认值:43200(12小时)。 | 43200 |
required|numeric|min:0
必填 数字 最小 0
|
||
| 短期备份 | BACKUP_SHORTTIME |
设置首次自动备份之间的间隔(秒)。默认值:7200(2小时)。 | 7200 |
required|numeric|min:0
必填 数字 最小 0
|
||
| [系统] BepInEx 网址 | BEPINEX_URL |
https://thunderstore.io/api/experimental/package/denikson/BepInExPack_Valheim/ |
required|url
必填 URL
|
|||
| [系统] 控制台过滤器 | CONSOLE_FILTER |
从控制台中移除不需要的输出。 | /^\(Filename:.*Line:[[:space:]]+[[:digit:]]+\)$/d; /^([[:space:]]+)?$/d |
string
字符串
|
||
| 启用跨平台联机 | ENABLE_CROSSPLAY |
启用跨平台游戏支持 | 0 |
boolean
布尔
|
||
| [系统] LD Library Path | LD_LIBRARY_PATH |
需要加载服务器库。 | ./linux64 |
required|string
必填 字符串
|
||
| 服务器密码 | PASSWORD |
服务器密码。 | secret |
required|string|min:5|max:20
必填 字符串 最大 20 最小 5
|
||
| 公共服务器 | PUBLIC_SERVER |
1 |
boolean
布尔
|
|||
| 服务器名称 | SERVER_NAME |
出现在服务器列表中的名称。 | My Server |
required|string|max:60
必填 字符串 最大 60
|
||
| [系统] 应用 ID | SRCDS_APPID |
Valheim 自动更新的 Steam 应用 ID。 | 896660 |
nullable|numeric
可选 数字
|
||
| 测试版分支 | SRCDS_BETAID |
|
max:30
最大 30
|
|||
| 测试版密码 | SRCDS_BETAPASS |
|
max:30
最大 30
|
|||
| 模组包 | V_MODPACK |
输入要自动安装的整合包的依赖字符串名称。 注意:如果整合包更新,您需要使用新的依赖字符串更新此变量。这样做是为了允许使用旧版本。 更改此设置需要重新安装服务器。 | |
string|nullable
可选 字符串
|
||
| 世界名称 | WORLD |
在多个已保存的世界之间切换时加载的世界名称。 | Dedicated |
required|string|max:20
必填 字符串 最大 20
|
镜像
registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian
入口
bash
#!/bin/bash
# Valheim Installation Script
#
# Server Files: /mnt/server
# Image to install with is 'debian:buster-slim'
apt -y update
apt -y --no-install-recommends --no-install-suggests install wget
## just in case someone removed the defaults.
if [ "${STEAM_USER}" == "" ]; then
echo -e "steam user is not set.
"
echo -e "Using anonymous user.
"
# ------------------------------
# Steam user defaults
# ------------------------------
: "${STEAM_USER:=anonymous}"
: "${STEAM_PASS:=}"
: "${STEAM_AUTH:=}"
else
echo -e "user set to ${STEAM_USER}"
fi
## download and install steamcmd
cd /tmp
mkdir -p /mnt/server/steamcmd
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
cd /mnt/server/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
export HOME=/mnt/server
## install game using steamcmd
./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit
## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so
## set up 64 bit libraries
mkdir -p /mnt/server/.steam/sdk64
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so
echo "-------------------------------------------------------"
echo "installing BepInEx and Selected ModPacks..."
echo "-------------------------------------------------------"
if ! api_response=$(curl -sfSL -H "accept: application/json" "$BEPINEX_URL"); then
fatal "Error: could not retrieve BepInEx release info from Thunderstore.io API"
fi
download_url=$(jq -r ".latest.download_url" <<< "$api_response" )
version_number=$(jq -r ".latest.version_number" <<< "$api_response" )
if [ ! -z "$V_MODPACK" ]
then
#Modpack Name dashes to slashes for URL
V_MODPACK=$(echo "$V_MODPACK" | sed 's/-/\//g')
#Extract dependencies from ModPack JSON data
V_MODPACK_DEPENDENCIES=$(curl -sfSL -H "accept: application/json" "https://thunderstore.io/api/experimental/package/${V_MODPACK}" | jq -r '.dependencies[]')
fi
cd /mnt/server
#echo $download_url
wget --content-disposition $download_url
unzip -o denikson-BepInExPack_Valheim-${version_number}.zip
cp -r /mnt/server/BepInExPack_Valheim/* /mnt/server
if [ ! -z "$V_MODPACK" ]
then
#Delete Old Mods
rm -rf /mnt/server/BepInEx/plugins/*
#Download and extract the modpack dlls files
for V_MODPACK_DEPENDENCY in $V_MODPACK_DEPENDENCIES; do
#ignore bepinex
if [[ "$V_MODPACK_DEPENDENCY" == *"denikson-BepInExPack_Valheim"* ]]; then
continue # Skip this dependency
fi
#replace dashes with slashes for url
V_MODPACK_DEPENDENCY_WITH_SLASH=$(echo "$V_MODPACK_DEPENDENCY" | sed 's/-/\//g')
#download dependencies
wget -O "$V_MODPACK_DEPENDENCY.zip" "https://thunderstore.io/package/download/$V_MODPACK_DEPENDENCY_WITH_SLASH"
#Set the destination directory and ensure it exists
destination_directory="/mnt/server/BepInEx/plugins"
if [ ! -d "$destination_directory" ]; then
mkdir -p "$destination_directory"
fi
#Extract DLL files from the ZIP and delete the zip file
unzip -j "$V_MODPACK_DEPENDENCY.zip" "*.dll" -d "$destination_directory"
#Cleanup
rm $V_MODPACK_DEPENDENCY.zip
done
fi
##cleanup
echo "-------------------------------------------------------"
echo "cleanup files..."
echo "-------------------------------------------------------"
rm -fR BepInExPack_Valheim
rm -fR icon.png
rm -fR denikson-BepInExPack_Valheim-*
rm -fR manifest.json
rm -fR README.m
#rm -fR start_*
echo "-------------------------------------------------------"
echo "Installation completed"
echo "-------------------------------------------------------"
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": "https://eggs.pterodactyl.top/eggs/134/download/egg-valheim-bepinex.json"
},
"exported_at": "2026-01-03T15:22:52+00:00",
"name": "Valheim BepINex",
"author": "eggs@goover.dev",
"description": "一款供1-10名玩家游玩的残酷探索与生存游戏,设定在受维京文化启发的程序生成炼狱中,包含插件框架BepInEx",
"features": [
"steam_disk_space"
],
"docker_images": {
"registry.cn-shanghai.aliyuncs.com/pterodactyl-images/games:valheim": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/games:valheim"
},
"file_denylist": [],
"startup": "export DOORSTOP_ENABLED=1; export DOORSTOP_TARGET_ASSEMBLY=./BepInEx/core/BepInEx.Preloader.dll; export LD_LIBRARY_PATH=\"./doorstop_libs:./linux64:$LD_LIBRARY_PATH\"; export LD_PRELOAD=\"libdoorstop_x64.so:$LD_PRELOAD\"; export LD_LIBRARY_PATH=\"./linux64:$LD_LIBRARY_PATH\"; export SteamAppId=892970; ./valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" -public {{PUBLIC_SERVER}} -saveinterval {{BACKUP_INTERVAL}} -backups {{BACKUP_COUNT}} -backupshort {{BACKUP_SHORTTIME}} -backuplong {{BACKUP_LONGTIME}} $( [[ {{ENABLE_CROSSPLAY}} -eq 1 ]] && echo \" -crossplay \") > >(sed -uE \"{{CONSOLE_FILTER}}\")",
"config": {
"files": "{}",
"startup": "{\n \"done\": \"Game server connected\"\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!/bin/bash\r\n# Valheim Installation Script\r\n#\r\n# Server Files: /mnt/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install wget\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n # ------------------------------\r\n # Steam user defaults\r\n # ------------------------------\r\n : \"${STEAM_USER:=anonymous}\"\r\n : \"${STEAM_PASS:=}\"\r\n : \"${STEAM_AUTH:=}\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd /tmp\r\nmkdir -p /mnt/server/steamcmd\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 /mnt/server/steamcmd\r\ncd /mnt/server/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\nexport HOME=/mnt/server\r\n\r\n## install game using steamcmd\r\n./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p /mnt/server/.steam/sdk32\r\ncp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p /mnt/server/.steam/sdk64\r\ncp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"installing BepInEx and Selected ModPacks...\"\r\necho \"-------------------------------------------------------\"\r\nif ! api_response=$(curl -sfSL -H \"accept: application/json\" \"$BEPINEX_URL\"); then\r\n fatal \"Error: could not retrieve BepInEx release info from Thunderstore.io API\"\r\nfi\r\n\r\ndownload_url=$(jq -r \".latest.download_url\" <<< \"$api_response\" )\r\nversion_number=$(jq -r \".latest.version_number\" <<< \"$api_response\" )\r\n\r\nif [ ! -z \"$V_MODPACK\" ]\r\nthen\r\n#Modpack Name dashes to slashes for URL\r\nV_MODPACK=$(echo \"$V_MODPACK\" | sed 's/-/\\//g')\r\n\r\n#Extract dependencies from ModPack JSON data\r\nV_MODPACK_DEPENDENCIES=$(curl -sfSL -H \"accept: application/json\" \"https://thunderstore.io/api/experimental/package/${V_MODPACK}\" | jq -r '.dependencies[]')\r\nfi\r\n\r\ncd /mnt/server\r\n#echo $download_url\r\nwget --content-disposition $download_url\r\nunzip -o denikson-BepInExPack_Valheim-${version_number}.zip\r\ncp -r /mnt/server/BepInExPack_Valheim/* /mnt/server\r\n\r\nif [ ! -z \"$V_MODPACK\" ]\r\nthen\r\n#Delete Old Mods\r\nrm -rf /mnt/server/BepInEx/plugins/*\r\n\r\n#Download and extract the modpack dlls files\r\nfor V_MODPACK_DEPENDENCY in $V_MODPACK_DEPENDENCIES; do\r\n #ignore bepinex\r\n if [[ \"$V_MODPACK_DEPENDENCY\" == *\"denikson-BepInExPack_Valheim\"* ]]; then\r\n continue # Skip this dependency\r\n fi\r\n \r\n #replace dashes with slashes for url\r\n V_MODPACK_DEPENDENCY_WITH_SLASH=$(echo \"$V_MODPACK_DEPENDENCY\" | sed 's/-/\\//g')\r\n \r\n #download dependencies\r\n wget -O \"$V_MODPACK_DEPENDENCY.zip\" \"https://thunderstore.io/package/download/$V_MODPACK_DEPENDENCY_WITH_SLASH\"\r\n\r\n #Set the destination directory and ensure it exists\r\n destination_directory=\"/mnt/server/BepInEx/plugins\"\r\n if [ ! -d \"$destination_directory\" ]; then\r\n mkdir -p \"$destination_directory\"\r\n fi\r\n\r\n #Extract DLL files from the ZIP and delete the zip file\r\n unzip -j \"$V_MODPACK_DEPENDENCY.zip\" \"*.dll\" -d \"$destination_directory\"\r\n \r\n #Cleanup\r\n rm $V_MODPACK_DEPENDENCY.zip\r\ndone\r\nfi\r\n\r\n##cleanup\r\necho \"-------------------------------------------------------\"\r\necho \"cleanup files...\"\r\necho \"-------------------------------------------------------\"\r\nrm -fR BepInExPack_Valheim\r\nrm -fR icon.png\r\nrm -fR denikson-BepInExPack_Valheim-*\r\nrm -fR manifest.json\r\nrm -fR README.m\r\n\r\n#rm -fR start_*\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"",
"container": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "自动更新",
"description": "",
"env_variable": "AUTO_UPDATE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"field_type": "text"
},
{
"name": "备份数量",
"description": "设置将保留的自动备份数量。第一个是“短”备份时长,其余的是“长”备份时长。使用默认值时,表示保留1个2小时前的备份,以及3个间隔12小时的备份。默认值:4。",
"env_variable": "BACKUP_COUNT",
"default_value": "4",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|min:0",
"field_type": "text"
},
{
"name": "备份间隔",
"description": "更改世界保存的频率(秒)。默认值:1800(30分钟)。",
"env_variable": "BACKUP_INTERVAL",
"default_value": "1800",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|min:0",
"field_type": "text"
},
{
"name": "长期备份",
"description": "设置连续自动备份之间的间隔时间(秒)。默认值:43200(12小时)。",
"env_variable": "BACKUP_LONGTIME",
"default_value": "43200",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|min:0",
"field_type": "text"
},
{
"name": "短期备份",
"description": "设置首次自动备份之间的间隔(秒)。默认值:7200(2小时)。",
"env_variable": "BACKUP_SHORTTIME",
"default_value": "7200",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|min:0",
"field_type": "text"
},
{
"name": "[系统] BepInEx 网址",
"description": "",
"env_variable": "BEPINEX_URL",
"default_value": "https://thunderstore.io/api/experimental/package/denikson/BepInExPack_Valheim/",
"user_viewable": false,
"user_editable": false,
"rules": "required|url",
"field_type": "text"
},
{
"name": "[系统] 控制台过滤器",
"description": "从控制台中移除不需要的输出。",
"env_variable": "CONSOLE_FILTER",
"default_value": "/^\\(Filename:.*Line:[[:space:]]+[[:digit:]]+\\)$/d; /^([[:space:]]+)?$/d",
"user_viewable": false,
"user_editable": false,
"rules": "string",
"field_type": "text"
},
{
"name": "启用跨平台联机",
"description": "启用跨平台游戏支持",
"env_variable": "ENABLE_CROSSPLAY",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"field_type": "text"
},
{
"name": "[系统] LD Library Path",
"description": "需要加载服务器库。",
"env_variable": "LD_LIBRARY_PATH",
"default_value": "./linux64",
"user_viewable": false,
"user_editable": false,
"rules": "required|string",
"field_type": "text"
},
{
"name": "服务器密码",
"description": "服务器密码。",
"env_variable": "PASSWORD",
"default_value": "secret",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|min:5|max:20",
"field_type": "text"
},
{
"name": "公共服务器",
"description": "",
"env_variable": "PUBLIC_SERVER",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"field_type": "text"
},
{
"name": "服务器名称",
"description": "出现在服务器列表中的名称。",
"env_variable": "SERVER_NAME",
"default_value": "My Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:60",
"field_type": "text"
},
{
"name": "[系统] 应用 ID",
"description": "Valheim 自动更新的 Steam 应用 ID。",
"env_variable": "SRCDS_APPID",
"default_value": "896660",
"user_viewable": true,
"user_editable": false,
"rules": "nullable|numeric",
"field_type": "text"
},
{
"name": "测试版分支",
"description": "",
"env_variable": "SRCDS_BETAID",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "max:30",
"field_type": "text"
},
{
"name": "测试版密码",
"description": "",
"env_variable": "SRCDS_BETAPASS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "max:30",
"field_type": "text"
},
{
"name": "模组包",
"description": "输入要自动安装的整合包的依赖字符串名称。 \n注意:如果整合包更新,您需要使用新的依赖字符串更新此变量。这样做是为了允许使用旧版本。 \n更改此设置需要重新安装服务器。",
"env_variable": "V_MODPACK",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "世界名称",
"description": "在多个已保存的世界之间切换时加载的世界名称。",
"env_variable": "WORLD",
"default_value": "Dedicated",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20",
"field_type": "text"
}
]
}附属文件
暂无附属文件
Fork 关系
查看关系图暂无 Fork,成为第一个 Fork 的人吧!
统计
17
浏览
2
下载
0
星标
0
复刻
作者
飒
飒爽师叔
UID: 1
279 预设
·
2026-06