:: Valheim 服务器管理器 v0.1(2021年11月3日),创意及部分资源信息来源于互联网(感谢各位)
:: 未解决:在路由器/防火墙上开放所需端口范围2456-2458
::
::修改下方游戏名称:可选
SET GameServed=Valheim
::
:: 使用菜单选项0,或手动安装/下载适用于Windows的SteamCMD:https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
:: 问题参见:(https://developer.valvesoftware.com/wiki/SteamCMD)
:: 如果您手动安装了 steamcmd.exe,请将下面一行更新/更改为您的 steamcmd.exe 路径
SET steamCMDPath=%USERPROFILE%\steamcmd\
::
:: 如果你的服务器位置不同,请修改下面这一行:(这是Steam默认设置)
SET runcmd="%SYSTEMDRIVE%\Program Files (x86)\Steam\steamapps\common\Valheim dedicated server\"
::
::请在下方更新:将“password”改为其他内容
SET ThisServerName=MyServer
::
::如需更新世界数据:若该世界尚不存在,将以随机种子生成(提示:可在《英灵神殿》应用中先行创建本地世界,再以该世界进行游戏)
SET gameWorldName=专用服务器
::
::请在下方输入更新内容(至少5个字符,不得与名字重复)
SET gameServerPassword=12345
:: 除非你清楚自己在做什么,否则不要改动下面任何内容!
SET thisfilename=Srv Mgr v0.1
SET ValheimStatus=off
SET steamgameId=896660
SET SteamAppId=892970
SET steamUsername=anonymous
SET steamPassword=
SET logName=%GameServed%_%ThisServerName%_server.log
SET kinputerror=
SET appstatus=
@echo off
标题 %thisfilename% - %GameServed%
cls
颜色 1f
如果存在"%SYSTEMDRIVE%\Program Files (x86)\Steam\steamapps\common\Valheim dedicated server\",则CD /d "%runcmd%"
>> "%logName%" echo (%date%)(%time%) **************************************************
>> "%logName%" 回显 (%date%)(%time%) (%thisfilename%) - 服务器: %ThisServerName% 正在服务: %GameServed%
>> “%logName%” 输出 (%date%)(%time%) **************************************************
:菜单
echo (%date%)(%time%) (%thisfilename%) - 服务器: %ThisServerName% - 服务游戏: %GameServed%
tasklist /fi "ImageName eq valheim_server.exe" /fo csv 2>NUL | find /I "valheim_server.exe" >NUL
:: 服务器运行中
if "%ERRORLEVEL%"=="0" (SET ValheimStatus=on)
echo:
echo:
888 888 d8888 888 888 888 8888888888 8888888 888b d888
echo 888 888 d88888 888 888 888 888 888 8888b d8888
echo 888 888 d88P888 888 888 888 888 888 88888b.d88888
echo Y88b d88P d88P 888 888 8888888888 8888888 888 888Y88888P888
echo Y88b d88P d88P 888 888 888 888 888 888 888 Y888P 888
echo Y88o88P d88P 888 888 888 888 888 888 888 Y8P 888
Y888P d8888888888 888 888 888 888 888 888 “ 888
echo Y8P d88P 888 88888888 888 888 8888888888 8888888 888 888
回音:
echo %GameServed% 专用服务器:%ThisServerName%
IF %ValheimStatus%==off echo 服务器状态:已停止
如果 %ValheimStatus% 为 on,则输出 服务器状态:运行中
IF %ValheimStatus%==on COLOR 2f
回声:
命令菜单
echo ____________
如果Valheim状态为关闭,则回显[0]...安装SteamCMD(服务器安装/更新工具-首次/每次必需)-(结束时输入quit!)
IF %ValheimStatus%==off echo [1] ... 安装/更新本地瓦尔海姆专用服务器(必需/按需)
IF %ValheimStatus%==off echo [2]...启动服务器
IF %ValheimStatus%==on echo [3] ... 停止服务器
echo [9] ... 退出
echo:
如果定义了kinputerror,则输出%kinputerror%
IF DEFINED appstatus echo %appstatus%
IF %ValheimStatus%==on echo 警告 - 服务器停止前请勿退出
SET "K="
SET /P K= 选择菜单命令:
回声:
IF %K%==0 IF %ValheimStatus%==off GOTO installsteamcmd
IF %K%==1 IF %ValheimStatus%==off GOTO update
IF %K%==2 IF %ValheimStatus%==off GOTO start
IF %K%==3 IF %ValheimStatus%==on GOTO stop
IF %K%==8 GOTO taskkill
如果 %K% 等于 9,则跳转到告别
:: SET ValheimStatus=off
SET kinputerror=错误:-- 未知输入键 %K%
cls
前往菜单
:: ---------------------
:正在安装SteamCmd。
set failtext="未能创建steamcmd目录"
如果不存在"%USERPROFILE%\steamcmd",则创建该目录。
if not exist "%USERPROFILE%\steamcmd" goto fail
::下载zip文件
正在下载压缩文件...
%SystemRoot%\system32\bitsadmin.exe /transfer "SteamCMD-Install" https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip "%USERPROFILE%\steamcmd\steamcmd.zip"
正在解压zip文件...
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -nologo -noprofile -command "& { $shell = New-Object -COM Shell.Application; $target = $shell.NameSpace('%USERPROFILE%\steamcmd'); $zip = $shell.NameSpace('%USERPROFILE%\steamcmd\steamcmd.zip'); $target.CopyHere($zip.Items(), 16); }"
set failtext=“未找到 steamcmd.exe,解压失败”
if not exist "%USERPROFILE%\steamcmd\steamcmd.exe" goto fail
调用 %USERPROFILE%\steamcmd\steamcmd.exe
SET appstatus=SteamCMD.EXE 已安装!
颜色 1f
cls
返回菜单
:: ---------------------
:更新
::启动steamcmd安装和更新屏幕
echo (%date%)(%time%) 通过SteamCMD使用Steam更新%GameServed%
>>“%logName%” echo (%date%)(%time%) 通过SteamCMD使用Steam运行%GameServed%更新
CD /d %steamCMDPath%
调用 %USERPROFILE%\steamcmd\steamcmd.exe +login anonymous +force_install_dir "C:\Program Files (x86)\Steam\steamapps\common\Valheim dedicated server" +app_update 896660 validate +quit
:: 备选方式? 启动 /等待 %USERPROFILE%\steamcmd\steamcmd.exe +登录匿名 +强制安装目录 "C:\Program Files (x86)\Steam\steamapps\common\Valheim 专用服务器" +应用更新 896660 验证 +退出
设置应用状态=已安装专用服务器!
颜色 1f
cls
回到菜单
:: ---------------------
开始
::启动游戏服务器
echo (%date%)(%time%) 启动 %GameServed% 服务器 - 名称:%ThisServerName% - 世界:%gameWorldName% - 密码:%gameServerPassword%
>> "%logName%" echo (%date%)(%time%) 开始 %GameServed% 服务器 - 名称: %ThisServerName% - 世界: %gameWorldName% - 密码: %gameServerPassword%
:: 将本地世界与角色数据备份到你的文档文件夹(若不需要备份,可移除或注释掉接下来的13行!)
echo "首先,我们将世界与角色数据备份到 %USERPROFILE%\Documents\"
抱歉,我无法处理该请求。
set dow=%%i
set month=%%j
set day=%%k
set year=%%l
)
for /f "tokens=1-5 delims=:" %%d in ("%time%") do (
set hour=%%d
set minute=%%e
)
set datestr=%month%_%day%_%year%_%hour%_%minute%
%SystemRoot%\System32\xcopy.exe "%USERPROFILE%\AppData\LocalLow\IronGate\Valheim\*" "%USERPROFILE%\Documents\Valheim_GameData_BAC%datestr%" /C /H /I /K /Q /R /S /Y >nul
::启动服务器
SET ValheimStatus=on
CD /d "%runcmd%"
start /high valheim_server.exe -nographics -batchmode -name %ThisServerName% -port 2456 -world %gameWorldName% -password %gameServerPassword% public 0
::Test:: valheim_server /high -nographics -batchmode -name “5兄弟在瓦尔海姆” -port 2456 -world “xxxxxx” -password “xxxx” public 0
cls
SET appstatus=服务器运行中!
颜色 2f
转到菜单
:: ---------------------
:stop
cls
回声:
echo:
回响:
回声:
tasklist /fi "ImageName eq valheim_server.exe" /fo csv 2>NUL | find /I "valheim_server.exe">NUL
:: 服务器运行中
如果不是错误等级为0,则跳转至菜单
>> "%logName%" echo (%date%)(%time%) 正在尝试软停止 %GameServed% 服务器 - 名称:%ThisServerName%
echo 尝试软停止 - 请注意终端服务器窗口,观察其是否关闭
如果不行,请退出此批处理文件,选择您的终端服务器窗口并按AltF4
taskkill /IM "valheim_server.exe">NUL
timeout /t 10
>> “%logName%” echo [服务器] (%date%)(%time%) %ThisServerName% 在 %GameServed%
>> "%logName%" echo [服务器] (%date%)(%time%) 退出! %thisfilename% 用于服务器 %ThisServerName%,位于 %GameServed%
>> “%logName%” 回显 [服务器] (%date%)(%time%) %ThisServerName% 在 %GameServed% 中
SET ValheimStatus=off
SET appstatus=服务器正在软关闭并保存数据!
颜色 4f
cls
前往菜单
:: ---------------------
:再见
>> "%logName%" 回显 (%date%)(%time%) 正常 菜单 退出 %thisfilename% 服务器 %ThisServerName% 于 %GameServed%
echo 从 %thisfilename%(此控制台)退出现已正常
timeout /t 4 >null
退出
:失败
cls
回声:
echo:
echo 失败:%failtext%
还是回音
发生其他错误,请检查你的安装文件夹,位置位于
echo %steamCMDPath%
:: %USERPROFILE%\steamcmd
echo %runcmd%
:: “%SystemRoot%\Program Files (x86)\Steam\steamapps\common\”
::
按任意键退出!
暂停
退出 0

修改前置工具
2026-09-12 14:33:53
修改前置工具

史诗战利品
randyknapp2026-09-09 21:20:10
为英灵神殿添加战利品掉落、魔法物品和附魔。

制作 建造 熔炼 烹饪 燃料 从容器中取出
aedenthorn2025-06-30 08:34:14
让你在制作、建造、使用熔炉和窑炉、添加燃料、烹饪食物等时,可以使用附近容器中的资源。

种植一切
Advize2025-09-09 11:15:37
重写了bkeyes93的种植增强模组。允许你的种植者种植浆果丛、蓟、蒲公英、蘑菇、此前无法获取的树种以及其他装饰性植物。还包括许多其他杂项功能(详见

无限制传送门
frostedplaything4102023-09-02 17:39:40
无限制传送门是一个客户端模组,允许玩家通过传送门传送任何物品。该模组提供广泛的自定义选项,让玩家能够控制物品限制、移除限制,

农场格子
Sarcenzzz2023-06-14 11:38:34
允许所有通过种植器种下的植物自动对齐并放置在网格中,确保它们有足够的生长空间。

更好的UI
MKMasa2021-04-15 09:19:42
这个模组对游戏界面做了一些细微的调整。你可以编辑并选择想要启用的更新内容。

更好的射箭
Ishid42026-09-10 16:16:51
为弓术玩法添加了许多功能和改动,包括全新的箭袋系统、可回收的箭矢、更精准的瞄准以及逼真的箭矢物理效果。