死亡轮盘

创作者: Geckuss
已更新:2026-09-16 21:08:28
63KB

前置 MOD

使用 死亡轮盘 时将自动安装

关于此 MOD

当玩家死亡时,会为所有人触发一个随机事件。服务器端处理;玩家无需任何操作,管理员可使用 Server Devcommands 进行游戏内控制。

死亡轮盘

每一次死亡都重塑这个夜晚。 一名玩家倒下,整个服务器就会随机触发一个事件——或是馈赠,或是诅咒,又或是残酷的宇宙玩笑。

仅限服务端。在专用服务器上安装一次,所有原版客户端都能兼容。无需任何人安装任何东西,存档不会发生任何变化,未安装模组的玩家可以随时加入和离开,不留任何痕迹。

根据游戏版本构建并验证 l-1.0.12 (网络 40,世界 41),BepInEx 5.4.23.5。

来源: https://github.com/Geckuss/valheim-deathroulette

你会喜欢它的原因

  • 零客户端安装。 服务器处理一切。你的朋友无需任何操作,你也永远不用重新同步整合包。
  • 一次死亡,一个事件。 每一次死亡都不会被忽视:服务器会记录阵亡者——若能查明死因也会一并记录——并开始倒计时 3, 2, 1 在团队副本横幅槽位中,然后轮盘就会触发。一个全局冷却时间(默认30秒)可以防止一次团灭同时堆积五个事件。
  • 四种性格的63个事件。 快速增益、真实团战、狂野旅行、肉眼可见的欢乐——默认权重偏向趣味。
  • 致命却从不廉价。 伤害事件设有上限,最多只能扣减当前生命值的一部分,所以轮盘可以把你的血量压到最低,但绝不会直接杀死你。真正杀死你的是乐趣,而不是这个模组。
  • 从配置文件调整一切。 更改任意权重、禁用任意事件、翻转突袭门槛——无需重建,管理员命令即可实时重载。
  • 管理员始终掌控一切。 在游戏控制台中按需触发任何事件、查看概率、结束突袭并试听音效。

快速开始

  1. 在你的专用服务器上,请确保已安装 BepInEx 5 并 服务器开发者命令 已安装(开发者命令为可选,但推荐使用——管理员就是靠它来驱动模组的)。
  2. 丢弃 死亡轮盘.dll 进入服务器的 BepInEx/plugins/ 目录。
  3. 重启服务器即可,就这么简单。玩家不需要做任何操作。

首次运行时,模组会写入 BepInEx/config/geckuss.deathroulette.cfg ——每个事件都带有自己的权重,随时可调。

重启会让所有在线玩家掉线。

Docker(lloesche/valheim-server)

图像会从其持久化存储中重新同步插件 /config/bepinex/plugins/ 启动时绑定挂载,所以请安装该 DLL 那里 (而不只是写入活动容器层),否则它会在下次重启时静默还原:

docker cp DeathRoulette.dll valheim:/config/bepinex/plugins/Geckuss-DeathRoulette/DeathRoulette.dll docker restart valheim

事件表

全部 63个事件 及其默认权重。权重 0 禁用;更改权重无需重建。护甲套装和独立药水事件已发布 已禁用 (权重0)以便可以直接调用(服务器开除火力 <id>)而不会自行翻滚——护甲适配和女巫药剂则随机赋予它们。

类型 ——神明予以回报。 (29)

活动 编号 W 会发生什么
被遗忘的礼物 被遗忘的礼物 7 每个人都被随机赋予一种遗弃之力。
意外之财 意外之财 7 在尸体处散落一堆材料。
复苏之风 复苏之风 6 每名存活玩家恢复至满血。
被召唤至坟墓 尸体奔跑 5 死亡十五秒后——即阵亡玩家重生之后——他们会被拉回自己的坟墓。
肾上腺素 肾上腺素飙升 4 全体增益:完全治疗、耐力恢复增益,以及灰烬之地的肾上腺素。
芬里尔祝福 芬里尔祝福 0 芬里斯套装加成,可直接调用:步行速度提升,持续五分钟。
狼套装 狼群 0 狼套装加成,可直接激活:抗寒与更锋利的刀刃,持续五分钟。
根集合 根设置 0 根套装加成,可直接调用:箭矢与毒素免疫,持续五分钟。
巨魔套装 巨魔套装 0 巨魔套装加成,可直接调用:潜行锐化持续五分钟。
烟熏鲑鱼套餐 洛克斯套装 0 洛克斯套装加成,可直接召唤:获得洛克斯的毛皮,持续五分钟。
收割者套装 收割机套装 0 收割者套装加成,可直接调用:采集速度提升,持续五分钟。
狂暴 狂怒 0 狂暴套装加成,可直接使用:命中打击更重,持续45秒。
揭示之路 显露之路 4 在每个玩家的地图上标记最近的地标,并让他们面向该地标。
黎明之慈 黎明慈悲 4 时间跳到第二天早上。
已获安息 充分休息 4 全體獲得休息增益。
众神息怒 众神宽恕 4 结束当前正在进行突袭。
黄昏之悯 黄昏怜悯 4 时间跳转到下一个夜晚。
羽落术 羽落术 4 为所有人施加缓落效果持续五分钟:免疫坠落伤害。
已上课 举行课程 3 十分钟内不消耗技能。
狂暴 狂怒之怒 3 让所有人狂暴45秒:攻击更猛烈。
女巫的酿酒 女巫的酿造 3 为每个人准备一瓶药水,从模组中的所有药水中随机挑选——只生效一次(蜜酒持续完整时长),并且每个玩家拿到的都不是上次刚发过的那瓶。
巨人之力 巨人之力 3 每人五分钟的Megingjord:150负重。
装甲装配 套装加成 3 为所有人随机提供七种护甲套装加成之一:芬里斯、狂战士、狼、根须、巨魔、洛克或收割者。
轻足 轻足 0 给所有人来点轻足蜜酒,一次给足十分钟:脚步更轻,无坠落伤害。可直接调用;不会自行随机触发。
迷雾之纱 雾隐 3 为所有人开启除雾器五分钟:迷雾散开。
法师的幸运 法师幸运 0 给所有人施加次级埃特尔蜜酒,持续三分钟:埃特尔再生。可直接召唤;不会自行随机触发。
狼之视野 狼之视野 2 所有人获得狼之视野,持续五分钟:攻击命中更狠。
魔法屏障 魔法屏障 2 保护之杖的屏障包裹住了所有人。
萨满结界 萨满之盾 2 每个人身上的符灵萨满结界。
同命相怜 动物伙伴 2 每位玩家附近的一些野生动物(野猪、狼、洛克、母鸡)会当场被驯服。

无害 ——剧场、氛围、奇观。 (7)

事件 ID W 会发生什么
奥丁的冷漠 嘲讽 9 奥丁发表了评论。没有其他事情发生。
悲叹 哀嚎 7 一只尸鬼的嘲弄在所有玩家耳边回荡。令人不安,但无害。
远古预兆 首领石预兆 7 首领石激活效果在所有人脚下触发。纯粹是作秀。
幻影号码 幻影数字 6 每个玩家头顶都会出现浮动文字。纯装饰效果。
埋藏的幸运 埋葬的幸运 3 给所有人施加许愿骨,直到手动关闭或死亡:埋藏的财富在歌唱。该增益没有持续时间,因此会一直保留到死亡。
钓者的幸运 钓鱼结 2 每个人的钓鱼帽套装加成会持续生效,直到手动关闭或死亡:纯属幸运与胜利。该增益没有持续时间,因此会一直保留到死亡。
矮人恩惠 矮人盟友 2 矮人给所有人充能90秒:一道奇异而短暂的光芒。

刻薄 ——保持警惕。 (18)

事件 ID W 会发生什么
雷霆一击 雷霆一击 7 闪电击中所有玩家,造成少量伤害。
蹒跚 硬直全部 5 所有人都踉跄了一下,短暂失去了控制。
血税 血税 5 幸存者失去当前生命值的四分之一。不会致命。
派热 火葬堆 4 每名角色脚下燃起火焰,持续10秒受到灼烧和火焰伤害。
深度冰寒 深度严寒 4 对所有人造成10秒的冰冷和冰冻效果,并持续造成霜冻伤害。
焦油浸透 浸焦油 4 让所有人沾染焦油,持续10秒:移动缓慢且行动笨拙。
响亮的悲痛 响亮的悲痛 4 所有人都会吵闹一分钟:真正的噪音生物能穿墙听见,唤醒并激怒40米内的所有生物,并且每个玩家身边都会有几只生物浮出地面。
瘟疫 瘟疫 4 使所有人中毒并持续受到中毒伤害,持续20秒。
巨魔之爱 巨魔之爱 0 给所有人施加巨魔信息素,持续两分钟:巨魔会对人变得友善。可直接施放;不会自行触发。
战争迷雾 战争迷雾 3 地图对所有人隐藏五分钟。
晕船 晕船 3 朝所有人呕吐一次:食物挣脱束缚。
定身 定身 3 使所有人定身,仅一次:固定在原地。
发狂的野兽 发狂的 3 每名玩家附近的中立和驯服生物会敌对一分钟,然后再次平静下来。
冷雨 湿透 3 一场冰冷的倾盆大雨:所有人湿冷交加,脚下水花四溅。
黏糊糊 黏糊糊的 3 让所有人沾满黏液,持续20秒:减速且笨拙。

残暴 ——众神对你自有安排。 (9)

事件 ID W 会发生什么
突袭 突袭 10 真正的突袭:音乐、旗帜、刷怪点。默认受进度限制。
虫群 虫群 8 在尸体上生成少量小型生物。
墓穴守卫 墓园守卫 7 一具生物在尸体上生成以守护它。
散落 散布 7 每名幸存者都会被随机抛出一段短距离。
正确的富灵 正确_丑陋者 6 一群哥布林宝石——真正的、未驯服的弗林人——在尸体上生成。
无路可逃 无法逃脱 5 传送门将在五分钟后恢复使用。
召唤的哀悼者 召唤哀悼者 5 每位幸存者都会被传送到尸体所在的位置,无论它在何处。
已交换 交换位置 3 两名随机玩家交换位置。需要两名在线玩家。
朝圣 朝圣 1 将所有人传送到世界击败的最后一个首领的祭坛,唤醒它,并在它死亡20秒后把所有人送回。

管理员命令

管理员通过服务器开发者命令,在游戏内的开发者控制台来驱动模组。请按 F5 并在命令前加上 服务器 所以它们运行在服务器上,也就是插件所在的地方:

服务器灾难状态 # 总开关、冷却时间、谁在线以及位置 服务器灾难列表 # 每个事件及其权重 服务器灾难可能 # 原版现在允许哪些袭击,以及在哪里 服务器灾难触发雷霆一击 # 触发一个事件 服务器灾难随机 # 像有人死亡一样随机抽取(带有通常的倒计时) 服务器灾难特效 <预制体> # 试听任意特效预制体 服务器灾难停止袭击 # 结束正在进行的袭击 服务器灾难重载 # 原地重新读取配置文件 服务器灾难帮助 # 完整列表

仅限服务器内的玩家 管理员列表.txt 可以运行这些(Server Devcommands 强制要求)。该命令同时注册为 死亡轮盘 且较短的 医生. 火焰 当没有人在线时就会拒绝,因为每个效果都需要一个玩家来作用。

配置

配置文件位于 BepInEx/config/geckuss.deathroulette.cfg,首次运行时生成。

  • [常规] — 主人 启用 切换、死亡/效果播报, 冷却秒数 (默认 30), 倒计时秒数 (默认3:滚动事件触发前的3、2、1倒计时,0为立即触发), 死亡原因窗口秒数 (默认5:服务器可见的击杀在多久之后仍会被记录为死因,0=从不),详细日志记录。
  • [权重] — 每个事件ID对应一个条目(见表格); 0 禁用该事件。默认值与上表一致。
  • [突袭] — 使用原版门控 (默认开启:突袭遵循进度、生物群系和基地检查)以及 池 (留空 = 当前原版允许的任何内容)。关闭限制,放手乱来。
  • [效果] ——覆盖后面的预设列表 雷霆一击, 远古凶兆, 哀歌,加 雷霆一击伤害 和 肾上腺素增益.
  • [事件] — 朝圣召唤首领 (默认开启)将集体传送改回首领战。 悲伤持续时间 (默认60秒), 响亮的悲伤噪音功率 (默认 40 米), LoudGriefSpawnCount (默认 2)以及 响亮的悲伤生成预制体 默认 灰鳞幼龙调整所有人吵闹的持续时间、唤醒和仇恨半径的范围,以及每个玩家身边是否会额外出现生物(将数量设为0则仅保留声音)。

安全栏杆

  • 绝不会自寻短见。 血税 和 雷霆一击 将他们的伤害限制为当前生命值的一小部分(触发效果出错不会递归导致更多死亡)。
  • 每次死亡一个事件 以及全局冷却时间(默认30秒)。
  • 优雅谢绝。 无法生效的事件——没有其他人在线、没有进行中的突袭、尚未击败任何首领——会悄无声息地返回并重新随机,而不是被浪费掉。
  • 世界状态操作可逆。 全局按键(无传送门, 无地图) 的持续时间结束后会自动清除;RAID 通过原版自身的系统结束。

常见问题

  • 玩家需要这个模组吗? 不。这仅在服务端生效;原版客户端会看到全部内容。
  • 会破坏现有的存档或世界文件吗? 不。该模组不改变存档格式,也不改变协议。
  • 我触发了一个事件,但什么都没发生。 一些效果会在客户端解析名称(状态效果、预制体),而错误的名称会静默失败。请刻意触发以进行检查: 服务器 医生 火焰 雷霆一击然后 服务器动态特效预置体 <prefab> 试镜素材。如果它播报了但什么也没显示,那只是一个名称,而不是管道连接——参见 名称准确度.
  • 我该如何让一个事件更稀有或移除它? 设置其 [权重] 配置中的条目(0 禁用),然后 服务器灾难恢复重载.
  • 轮盘事件会杀死我吗? 不是直接的——参见安全护栏。它完全可以为你创造条件,使得 其他内容 杀死你。这就是重点。

兼容性与限制(请如实说明)

  • 针对 l-1.0.12 (网络40,世界41)使用BepInEx 5。当游戏或BepInEx更新时,需针对服务器当前的程序集重新编译。
  • 它只能驱动事物 库存客户 已经理解了。自定义音频、自定义视觉特效、HUD文字和屏幕震动需要客户端模组,因此有意不在本方案范围内。
  • 状态效果和预制体名称必须存在于客户端的资源中(ObjectDB / ZNetScene);服务器无法验证它们,因此错误的名称会静默失败。

工作原理(给好奇的人)

简短版:服务器会监测死亡事件,然后通过原版客户端自身的RPC来指挥它们执行操作。这一切都无需客户端模组。

  • 死亡检测。 玩家的 网络视图 由其客户拥有,因此 玩家.死亡时 从不在服务器上运行。从它内部发出的广播—— m_nview.InvokeRPC(所有人, "OnDeath") — 是一个路由 RPC;服务器将其视为在 处理路由RPC 在转达之前,将濒死玩家的 ZDOID。那里的后缀会捕获每一次死亡,名称和位置则从ZDO中获取。
  • 他们怎么死的,服务器自会揭晓。 几乎所有玩家伤害都是在濒死玩家自己的客户端上计算的,因此服务器对大多数原因都无从得知。每一次命中 服务器所有 落到玩家身上的物体——倒下的树木和岩石、推车、弩炮/炮塔、生物投射物、环境范围伤害——会穿透 伤害,所以那里的前缀记录了每位玩家的最后一个(死因)。如果随后很快传来死亡播报,公告中会指明这一点。
  • 死亡到生效时间线。 死亡线已公布,然后倒计时在团队横幅槽位中递减(倒计时秒数,默认3),然后才会进行事件掷骰、应用并公布——同样 显示消息 一直都是RPC。
  • 驱动原版客户端。 服务器操作 调用原版客户端一直会注册的 RPC: 添加状态效果, 治疗, 传送到, 添加噪声, 硬直, 伤害, 聊天消息/显示消息, 网络场景的 生成对象, 随机事件系统.按名称设置随机事件,外加ZDO级别的后端,例如 设置仇恨状态 和 设置驯服状态每个ZDO的RPC在原版中都有拥有者保护,这正是广播它们安全的原因:拥有者执行操作,其他所有人都不做任何事。
  • 效果由服务器授权,而非客户端脚本控制。 音效/视觉特效预制体通过以下方式在每个客户端上实例化 生成对象 (适合用于效果,不适合用于生物——生成N份拷贝正是该模组小心避免的重复生成陷阱)。
  • ZNet.IsDedicated() 谎言 在此版本中(硬编码 假);一切都使用真实的 服务器端().
  • 为什么指令不能骑聊天。 聊天消息以每个在线玩家一个 RPC 的形式发出,发送给该玩家自己的对等端——专用服务器没有自己的玩家,因此消息会被丢弃。公告则通过路由后的 显示消息 改为RPC(“地面在震动”那个槽位)。

名称准确度

三个名称池在不同位置解析:

  • 团队副本名称 来自游戏预制体,并因世界和版本而异。 [突袭] 卡池 默认情况下为空 = "等同于原版当前允许的内容"。要固定列表,请从运行中的服务器(启动时记录)读取世界的真实名称,并在配置中设置它们。
  • 特效预制体 在客户的 网络场景. 构建的资产清单中有1,892个真名位于 参考/效果-预制体-名称.txt.
  • 状态效果 在客户的 对象数据库这里的名称是长期使用的原版名称,但未经静态验证——请在游戏中确认。

从源代码构建

dotnet build -c Release

netstandard2.1,匹配Unity Mono上的BepInEx 5。无需公开器。构建需要以下程序集: 库/ (游戏 + BepInEx + 0Harmony + Unity),从本地安装复制(瓦尔海姆_Data/Managed)以及你服务器的 BepInEx/核心;它们被 Git 忽略,而不是被提交。

src/Plugin.cs BepInEx入口点、配置、命令文件轮询 src/DeathWatcher.cs 服务端检测死亡的Harmony补丁 src/DeathCause.cs 根据服务端可见命中尽力还原“死因” src/ServerActions.cs 服务端到原版客户端的原语 src/RouletteEvents.cs 加权事件表 src/StartupPatch.cs 启动时记录世界真实的团本名称 src/Announce.cs 两条公告(谁死了、触发了什么) src/CommandFile.cs 轮询式命令文件管理员通道 src/ConsoleCommands.cs “dr”开发者控制台命令(经由Server Devcommands) src/EffectSustain.cs 在预期持续时间内重新应用状态效果 src/EffectSpec.cs 效果预制体分层解析器

更新日志

查看 更新日志.md.

Valheim: 英灵神殿 的热门 MOD

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

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