
LastWords
Players get one chance to publish last words after each death.LastWords / 遗言
《致命公司》(Lethal Company) 的 BepInEx 5 模组。玩家每次死亡后会获得一次发表遗言的机会,复活后次数重置。
当前版本:0.5.4
- 官方发布页:https://thunderstore.io/c/lethal-company/p/QingJinShi/LastWords/
- Thunderstore Team:
QingJinShi - 开发者 / 公开署名:
青金石
功能
- 每帧追踪本地玩家的存活状态,死亡后弹出遗言输入框。
- 每次死亡只能发送或放弃一次;反复打开界面不会得到额外机会。
- 只有至少一名其他队员仍然存活时才允许发表遗言;最后一名玩家死亡时不会弹窗,输入期间全员阵亡也会取消发送。
- 默认
Auto模式:- 飞船已安装且 Signal Translator 可用时,始终调用原版飞船广播;输入可以超过 10 字符,但真正广播的内容只取前 10 个可见字符;
- 没有设备或设备仍在冷却时,自动使用 LastWords 的可靠命名消息通道发送完整内容,消息格式为
[DECEASED] 玩家名: 遗言。
- Signal Translator 仍使用游戏原生 RPC,未安装模组的玩家也能看到;LastWords 网络回退要求房间内所有玩家安装同一版本的模组。
- 网络回退由主机验证死者身份与存活队友,再可靠广播给全员;接收端使用模组自己的置顶 Canvas 显示,不受原版聊天 HUD 限制。
- 遗言界面采用暗红色“最终通讯”样式,发送与沉默按钮居中对称;接收横幅以红色显示由主机确认的死者姓名和遗言。
- 发送时会立即把遗言写入发送者本机聊天记录;同时由模组自己的置顶 Canvas 显示 8 秒发送横幅,不再依赖单人全灭后会被隐藏的原版聊天 HUD。
- 支持中文输入;换行会被压成空格,富文本尖括号会被转义。
Signal Translator 自身有冷却时间。若你希望每条遗言都即时、可靠显示,请在配置中将
BroadcastMode改成Chat。
构建
前置条件:
- 本机安装《致命公司》。
- 安装 BepInEx 5,并至少启动游戏一次。
- 安装 .NET SDK 10(项目本身仍输出
netstandard2.1,供 Unity/BepInEx 加载)。
配置并构建:
Copy-Item Config.Build.user.props.template Config.Build.user.props
# 编辑 Config.Build.user.props 中的 GameDirectory
dotnet build LastWords.slnx -c Release
构建结果位于:
src/LastWords/bin/Release/netstandard2.1/LastWords.dll
将 DLL 放进:
<游戏目录>/BepInEx/plugins/LastWords/LastWords.dll
也可以在 Config.Build.user.props 中把 DeployToGame 改为 true,之后每次构建都会自动复制 DLL。
BepInEx 5.4.23.5 / Unity 2022 启动入口
保持 BepInEx 的安全默认入口:
[Preloader.Entrypoint]
Assembly = UnityEngine.CoreModule.dll
Type = Application
Method = .cctor
不要把 Type 改成 MonoBehaviour。该入口会让包括汉化模组在内的所有插件过早初始化;若插件在 Awake 中载入 Unity 贴图,可能导致 UnityPlayer.dll 原生崩溃。LastWords 0.5.2 使用局部的游戏循环补丁解决 v81 不派发早期插件 Update 的问题,不再需要修改全局启动时机。
配置
首次运行后会生成:
BepInEx/config/cn.lastwords.lethalcompany.cfg
BroadcastMode = Auto:短消息在真实 Signal Translator 可用时优先使用原版飞船广播,其余使用 LastWords 网络通道(默认)。BroadcastMode = SignalTranslator:只使用真实的飞船广播;允许按MaximumMessageLength输入,但实际广播只显示前 10 个字符;必须购买 Signal Translator。BroadcastMode = Chat:始终使用 LastWords 网络消息;所有玩家必须安装模组。MaximumMessageLength = 50:遗言输入的最大长度,安全范围 1–200;Signal Translator 仍只广播前 10 个字符。OpenDelaySeconds = 0.75:死亡到弹窗出现的延迟。AllowWhenAllPlayersDeadForTesting = false:仅用于单人开发测试;设为true可临时绕过全灭限制,正式游玩应保持false。
联机说明
Signal Translator 模式复用游戏原生 HUDManager.UseSignalTranslatorServerRpc。只有飞船实际购买并生成了 Signal Translator 时,未安装 LastWords 的客户端才能接收这条原版广播,并且仍受原版 10 个可见字符限制。没有设备或消息过长时,模组使用 Netcode 命名消息,不创建自定义 NetworkObject,也不需要 Netcode weaver,但所有玩家必须安装相同版本的 LastWords 才能接收回退消息;模组不会自动解锁或伪造 Signal Translator。
“每次死亡一次”的限制在发表者客户端执行,目标是正常联机体验,并非反作弊机制。主机若需要强制校验次数,后续可以增加全员必装的服务端权威网络协议。
作者、版权与转载
LastWords 由 青金石 独立开发。允许玩家下载官方原版用于个人、非商业游玩,也允许制作截图、评测、教程、游戏视频和直播;禁止未经书面许可转载或重新打包 DLL、发布修改版、出售模组、删除署名或冒充作者。
完整条款见 LICENSE.md,真伪与官方发布信息见 NOTICE.md。分享时请优先分享官方发布页链接,不要直接重新上传压缩包。