RFFPlus
Standalone merged mod: ReverseFriendlyFire reflect (host) + TeammatesIgnoreBullets immunity, now also enforced on the host-authoritative damage path. Hot-reloadable via config. No Hikaria_Core / The Archive needed.
| Date uploaded | 3 days ago |
| Version | 1.0.3 |
| Download link | HawChow-RFFPlus-1.0.3.zip |
| Downloads | 26 |
| Dependency string | HawChow-RFFPlus-1.0.3 |
This mod requires the following mods to function
BepInEx-BepInExPack_GTFO
BepInEx pack for GTFO. Preconfigured and includes Unity Base DLLs.
Preferred version: 3.2.3README
RFFPlus — ReverseFriendlyFire Plus (Standalone)
合并版独立插件:反伤(主机权威)+ 玩家子弹免伤(任何端),全部参数支持 config 配置文件热重载。
本插件不依赖
Hikaria_Core与The_Archive_UNSTABLE_TEST_ONLY(两者的旧版本已从 Thunderstore 下架,导致原 MOD 无法安装)——本插件只依赖 BepInExPack_GTFO 本体,开箱即用。
功能
免伤模式(任何端生效)
- 玩家(含哨戒炮)的子弹不再对玩家造成伤害
- 带来源过滤:只有伤害来源是「玩家」才拦截,敌人伤害完全不受影响
- 哨戒炮开火期间无条件拦截,炮台友伤 100% 覆盖
- 主机安装时保护全队:在主机权威的伤害结算路径上生效(
Dam_PlayerDamageBase/Local.ReceiveBulletDamage), 且不依赖反伤开关——只要「启用玩家子弹免伤」打开,队友与主机本人被玩家子弹命中都不掉血 - 客机安装时保护自己的开火(沿用命中解析点
Dam_PlayerDamageLimb.BulletDamage拦截)
反伤模式(主机权威)
- 队友被友方子弹打中时:实际承伤 = 原始伤害 × 友伤倍率;开枪者被反噬 = 原始伤害 × 反伤倍率
- 「反伤致死」可开关:反噬足以耗尽血量时直接击倒开枪者
- 哨戒炮的友伤归属到「放置者」
- 该模式与 1.0.2 行为完全一致(含
友伤倍率仍在反伤开关之内)
配置(热重载)
配置文件:BepInEx/config/RFFPlus.cfg
游戏运行中直接用记事本改这个文件并保存,立即生效,无需重启游戏(内置 FileSystemWatcher + 防抖自动 Reload)。
| 分区 | 配置项 | 默认 | 说明 |
|---|---|---|---|
| 免伤模式 (任何端生效) | 启用玩家子弹免伤 | true | 关掉后恢复原版友伤 |
| 反伤模式 (主机生效) | 启用友伤反伤 | true | 反伤总开关(关闭后仍可单独使用免伤模式) |
| 反伤模式 (主机生效) | 友伤倍率 | 0 | 被队友打到的承伤倍率,0=不掉血(仅在反伤开关打开时参与计算) |
| 反伤模式 (主机生效) | 反伤倍率 | 1 | 开枪者被反噬的倍率 |
| 反伤模式 (主机生效) | 反伤致死 | true | 反伤耗尽血量时直接击倒开枪者 |
| 诊断 (排查用) | 输出诊断日志 | false | 记录 [RFFPlus][diag] 拦截点与结论;默认关闭,排查时临时打开 |
想"只关友伤、不要反噬":把「启用友伤反伤」设为
false、保持「启用玩家子弹免伤」为true即可 —— 这是 1.0.3 修好的组合(1.0.2 下该组合不生效)。
安装
把 BepInEx/plugins/RFFPlus/RFFPlus.dll 放进 GTFO 游戏目录(或 r2modman 的 profile)的 BepInEx/plugins/RFFPlus/ 下即可。
排查日志
需要定位"为什么队友还是掉血"时,把 [诊断 (排查用)] 输出诊断日志 改成 true(默认关闭,避免刷屏),然后看 BepInEx/LogOutput.log:
[RFFPlus][diag] receive point=base|local verdict=immunity-blocked ...→ 主机权威路径拦截成功[RFFPlus][diag] receive ... verdict=immunity-blocked:sentry→ 哨戒炮友伤被拦[RFFPlus][diag] receive ... verdict=passthrough:not-player→ 敌人子弹(放行,符合预期)[RFFPlus][diag] receive ... verdict=passthrough:immunity-off→ 免伤开关关闭(等同原版)[RFFPlus][diag] receive ... verdict=reflect-applied reflected=…→ 反伤模式生效[RFFPlus][diag] limb verdict=immunity-blocked master=False→ 客机侧保护自己的开火
致谢 / 参考
本插件在以下优秀 MOD 的思路上重构而来,感谢原作者:
- Hikaria (Mamizu1028) — ReverseFriendlyFire 反伤逻辑参考(伤害缩放 + 主机 SendSetHealth/SendSetDead 反噬 + 哨戒炮归属放置者)
- Localia — TeammatesIgnoreBullets 客机免伤思路参考(Dam_PlayerDamageLimb.BulletDamage 拦截点)
- AuriRex — The Archive 框架(理解 GTFO IL2CPP 伤害链路的参考)
- BepInEx 团队与 GTFO 模组社区
与原版的差异
| 项 | 原 RFF 1.2.0 | RFFPlus 1.0.3 |
|---|---|---|
| 依赖 | Hikaria_Core 0.0.7(已下架)+ The Archive fork(UNSTABLE) | 仅 BepInExPack_GTFO |
| 主机免伤 | 无(只做反伤) | 有(主机权威路径拦截,独立于反伤开关) |
| 客机免伤 | 无 | 有(带来源过滤,敌人伤害零误伤) |
| 哨戒炮免伤 | 依赖来源判定 | 开火期无条件拦截(命中解析点 + 权威路径) |
| 敌人子弹安全性 | 来源无条件强转 PlayerAgent,存在崩溃隐患 | TryCast 判型,敌人子弹零风险 |
| 热重载 | The Archive 设置界面 | 任意文本编辑器改 cfg 即时生效 |
| 诊断日志 | 无 | [RFFPlus][diag] 可开关(1.0.3 新增) |
反馈与开黑
- 问题反馈与功能建议:https://qingju.me
- 玩家开黑语音频道:小黑盒语音
- 频道直链:https://chat.xiaoheihe.cn/in1wpsjd
CHANGELOG
更新日志
1.0.3 — 2026-10-16
修复:主机无法关闭队友友伤。
- 根因:免伤模式此前只挂在「命中解析点」
Dam_PlayerDamageLimb.BulletDamage上;而主机权威的伤害投递路径Dam_PlayerDamageBase/Dam_PlayerDamageLocal.ReceiveBulletDamage里只跑反伤逻辑,且反伤逻辑被启用友伤反伤开关挡住。于是主机端在关闭反伤开关时,玩家子弹造成的队友伤害完全没有拦截 (友伤倍率=0也随之失效,哨戒炮的「无条件拦截」在免伤路径同样缺失)。 - 修复:免伤现在同时作用于主机权威投递路径,且在
启用友伤反伤=false时独立生效—— 主机安装即对全队生效(受害者承伤直接置 0),不再依赖反伤开关。 - 修复:哨戒炮友伤在免伤模式下同样拦截(命中解析点与权威路径两处),归属其放置者。
- 行为保持:
启用友伤反伤=true时,受害者承伤 = 原始伤害 × 友伤倍率、开枪者被反噬 = 原始伤害 × 反伤倍率、 「反伤致死」生效——与 1.0.2 完全一致;敌人伤害零影响。 - 新增:诊断日志开关
[诊断 (排查用)] 输出诊断日志(默认关闭,标记[RFFPlus][diag]), 记录每次子弹伤害命中的拦截点(limb / base / local)、来源是否为玩家、是否哨戒炮、本机是否主机,以及免伤/反伤的处理结论。排查时临时打开。 - 说明:原版 ReverseFriendlyFire 的权威路径处理是无开关的(
SNet.IsMaster之后必定按「友伤倍率」缩放,所以友伤倍率=0就能关掉全部队友子弹伤害); 1.0.2 在它外面套了一层启用友伤反伤前置判断,才导致关掉反伤就整条失效。1.0.3 恢复原版的覆盖范围,并保留独立的免伤开关。
1.0.2 — 2026-10-15
- 修正 README「频道直链」被全角括号吞进 URL 的排版问题:改为独立一行直链。
- 图标与插件本体不变。
1.0.1 — 2026-10-15
- 更新 MOD 图标(Thunderstore 列表 logo)。
- README 增加开黑语音频道入口:https://chat.xiaoheihe.cn/in1wpsjd
- 插件本体(
RFFPlus.dll)与配置项、依赖、功能行为未做任何改动。
1.0.0 — 2026-10-11
- 首次发布:合并版独立插件 —— 反伤(主机权威)+ 玩家子弹免伤(客机可用)。
- 全部参数支持 config 热重载(
BepInEx/config/RFFPlus.cfg),改完保存即时生效,无需重启游戏。 - 仅依赖 BepInExPack_GTFO,不依赖 Hikaria_Core 与 The_Archive。