暂停我的服务器

创作者: DeathMonger
已更新:2026-09-12 01:42:30
23KB

关于此 MOD

暂停服务器托管的游戏:当所有在线玩家都请求暂停时(通过ESC菜单,或使用可在打开地图或面板时暂停的模组),世界便会暂停;管理员也可以用快捷键为所有人暂停整个服务器。

暂停我的服务器

暂停服务器托管的英灵神殿游戏。

原版游戏只有在你自行托管世界且没有其他人连接时才会暂停。在专用服务器上,菜单永远不会暂停任何东西:时间照常流逝,袭击照常触发,你的熔炉照常完成工作,你正在打的野猪也照常继续啃你。这个模组为你提供了两种暂停服务器的方法。

所有请求暂停的人都会暂停游戏

当 每位在线玩家 有人请求暂停,世界就会暂停,和单人模式完全一样。打开ESC菜单就是发出请求的方式;模组也可以代你发出请求(见下文):

  • 每个客户端都会卡死(怪物、船只、物理效果、制作系统,你看到的一切都会卡住)。
  • 服务器冻结了世界时钟,因此昼夜、天气、植物生长、发酵桶、蜂箱和重生计时器也会停止。
  • 突袭和其他随机事件已开启。
  • 睡眠时间跳过正在进行中。

独自在服务器上时,只有你一个人:打开菜单,世界就会暂停。和朋友一起时,你们中最后一个人打开菜单的瞬间,游戏才会暂停。任何人关闭菜单都会立即恢复游戏,新玩家加入时也是如此(如果你的菜单还开着,你会看到一条小提示)。

虽然你已请求暂停,但由于其他玩家仍在游戏,游戏会继续运行,此时标签显示为 已取消暂停 鲜红色,带有 1/3 想暂停 在下面,所以你请求却未得到的停顿从不会沉默。

对于托管(非专用)游戏,原版行为保持不变,即主机在独自一人时已经会暂停;当有客人在线时,主机的请求与其他人的请求一样被计算。

其他模组可能会请求暂停

任何调用英灵神殿自带的 游戏.暂停() 和 游戏.取消暂停() 参与其中,既不引用此模组,也没有可调用的API。该请求像菜单请求一样发送到服务器,计入“所有人都已请求”,如果被拒绝则会出现红色警告。我们的两个模组会这样做:The Greatest Map在打开大地图时暂停,Grab Materials在打开物品栏面板时暂停。

对于想要显示自身状态的模组, 游戏.是否已暂停() 诚实的答案是:只有当游戏真的卡死时,有没有安装这个模组都是如此。没有其他可查询的东西。

需要注意一点,这也是原版游戏本身就有的机制:游戏只维护一个暂停标志,而不是计数。如果两个模组同时请求暂停,而其中一个调用了 游戏.取消暂停(),双方的请求都会被丢弃。一个为面板暂停的模组应在其面板打开期间重新声明。

管理员暂停

一个 管理员 (列在服务器管理员名单中)按下暂停键,默认是键盘上的 暂停 按键,为所有人暂停整个服务器,无论他们在什么菜单中:

  • 每个客户端都会卡死,无论其菜单是否打开。
  • 暂停期间加入的玩家会在生成后立即被冻结。
  • 暂停保持到 任何 管理员再次按下按键。非管理员按下时则会收到通知。
  • 标签显示“已被<admin>暂停”,之后所有人都会收到“游戏已被<admin>恢复”的消息。
  • 安全网:当最后一名玩家离开时,会自动触发管理员暂停,这样下一位登录的玩家就不会因为无人在线恢复而被冻结。

控制台命令(F5): 暂停 像按键一样切换管理员暂停,并且 状态 打印状态。在专用服务器自身的控制台上 暂停 直接切换,这是在无管理员在线时的退出方式。

管理员暂停是为专用服务器设计的。在托管(非专用)游戏中,主机会和其他人一起冻结,暂停期间加入的玩家可能需要等到暂停解除。

屏幕标签

游戏暂停时会持续显示一个标签,单人游戏中也是如此:“已暂停”或“由<admin>暂停”。当有人请求暂停而游戏仍在运行时,标签会变为亮红色并显示“未暂停”,第二行以较小字体显示“1/3人想要暂停”。它会先等待半秒,因此与服务器之间的往返通信不会导致红色闪烁,并且在开场和过场动画期间保持静默。文本、位置(顶部或底部)和大小均可配置,每种模式都可以单独关闭。

告诉监控器或仪表板

服务器会持续更新一个小型JSON文件,这样游戏外部无需抓取日志就能看到暂停状态:

BepInEx/config/PauseMyServer.state.json {"paused":true,"by":"Genius","wanting":1,"players":2, "since":"2026-09-23T17:45:12.482Z","written":"2026-09-23T17:46:02.114Z", "heartbeat":5,"version":"1.5.0"}
场地 含义
已暂停 世界现在是否已被冻结。
由 持有者:管理员名称、玩家名称,或 所有人未暂停时为空。
渴望 有多少玩家请求过暂停。
玩家 有多少人在线。
自 当 已暂停 最后翻转时间,UTC。
书面 此文件上次写入时的UTC时间。
心跳 没有变化时两次重写之间的秒数。
版本 写入它的模组版本。

按年龄阅读,而不只是按内容。 文件在每次更改时都会重写,并且无论怎样每隔几秒也会再次重写,因此 书面 告诉你模组还活着。这就是整个信任模型:新鲜意味着存活,过期意味着忽略它。允许三次心跳丢失后再判定为死亡,并将文件缺失视为“未运行”,这也是世界关闭时有意为之的结果。

写入是原子的,先写入临时文件再替换,因此读取方永远不会读到写了一半的文件。只有服务端会写入,客户端从不写入,并且 发布状态文件 下方 服务器 关闭它。

安装

安装到 服务器以及每个客户端 (Gale、r2modman 或 Thunderstore Mod Manager,或者拖放 PauseMyServer.dll 进入 BepInEx/插件)。确保所有地方版本一致。

  • 未安装模组的服务器:客户端永远不会暂停,与原版一致。一切正常。
  • 没有安装该模组的客户端:该玩家无法请求暂停,因此只要他们在线,游戏就永远不会暂停,除非管理员暂停;他们也不会被管理员暂停所冻结。

适用于 Windows 和 Linux 专用服务器。需要 Valheim 的 BepInExPack。

配置

BepInEx/config/DeathMonger.PauseMyServer.cfg (客户端):

章节 设置 默认 含义
通用 模组已启用 真 主开关;禁用所有补丁而不移除 DLL。需要重启。
通用 显示消息 真 游戏因非关闭菜单的原因恢复时,左上角HUD显示的消息。
管理员 暂停键 暂停 仅限管理员:切换全服暂停。在聊天、控制台或文本框中输入时忽略。
服务器 发布状态文件 真 保留 暂停我的服务器状态.json 最新的显示器或仪表盘。仅限服务器。
暂停提示 显示暂停消息 真 暂停时显示屏幕常驻标签。
暂停消息 文本 已暂停 标签文本。
暂停消息 管理文本 被{0}暂停 管理员暂停时的标签文本;{0}是管理员的名称。
暂停消息 位置 底部 居中于屏幕顶部或底部。
暂停提示 字体大小 40 标签尺寸以1920x1080为基准;随屏幕缩放。
暂停消息 显示未暂停警告 真 请求暂停但游戏仍在运行时的红色标签。
暂停信息 已取消暂停文本 已取消暂停 警告的第一行。
暂停提示 未暂停计数文本 {0}/{1} 想暂停 警告的第二行,字号较小:{0} 已请求暂停,{1} 在线。留空则不显示第二行。

标签设置的更改会在标签下次出现时生效,无需重启。服务器也无需配置。

工作原理

服务器拥有唯一决定权。客户端只会发送请求:“我的菜单已打开”、“我的菜单已关闭”、“切换管理员暂停”。服务器每帧都会判断世界是否应该暂停,判断依据要么是所有在线玩家都希望暂停,要么是管理员设置了暂停,并在状态发生变化时向所有人广播该状态,以及有多少玩家希望暂停。客户端只有在服务器确认后才会冻结,因此没有安装该模组的服务器不会出现客户端已冻结而世界仍在继续运行的情况。玩家生成时会请求当前状态,这也是管理员暂停期间加入的玩家也会被冻结的原因。

客户端侧,少量小型 Harmony 补丁:后缀补丁作用于 游戏.暂停 和 取消暂停 追踪菜单,后缀开启 游戏已暂停 报告“已暂停”,一旦服务器确认且要么菜单仍处于打开状态,要么该暂停为管理员暂停,并在末尾附加 玩家.生成时 请求该状态。原版的自身 游戏.更新暂停 然后将时间缩放设置为零,这与单人模式使用的是同一条代码路径。关闭菜单会立即在本地恢复,无需等待往返通信。

服务器端,三个前缀保存着服务器自身运行而客户端冻结时所对应的世界部分: ZNet.更新时间 (世界时钟), 随机事件系统.固定更新 (突袭)和 环境管理器.更新时间跳过 (沉睡中)。服务器自身的帧时间被刻意保持运行:在时间缩放为零时,服务器会停止发送玩家列表和世界数据,加入的玩家将永远无法加载进来。玩家附近的一切都由该玩家的客户端拥有并模拟,因此冻结客户端就会冻结其余部分。

冻结时,客户端仍会回应服务器的保活 ping(Valheim 的接收循环不依赖帧时间),因此没有人会被断开连接。

标签绘制在模组自身的覆盖画布上,位于菜单上方,使用游戏自带HUD消息的字体。当游戏报告自身已暂停时,该标签就会显示,其中包括单人房主暂停的情况。

兼容性

  • 不触碰 无法暂停,所以那些允许你在调试模式下暂停的模组仍然有效。
  • 改变……的模组 时间缩放 它们本身(加速或慢动作模组)可能会与冻结效果冲突。
  • 暂停时服务器上的自动保存仍会继续运行,这没有影响。
  • 1.1.0 和 1.2.0 无论哪个版本先更新都能互相兼容;旧版客户端只是看不到红色标签里的计数。

来源

github.com/gbahns/ValheimMods

Valheim: 英灵神殿 的热门 MOD

探索适用于 Valheim: 英灵神殿 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 Valheim: 英灵神殿 的全部潜力 — 今天就探索这些顶级 MOD!