Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
BetterReviveExperience
Host-only inventory and held-item protection with configurable extraction, truck, cart, shop, and held-head revives.
| Date uploaded | 2 weeks ago |
| Version | 0.3.5 |
| Download link | Cursor-BetterReviveExperience-0.3.5.zip |
| Downloads | 1117 |
| Dependency string | Cursor-BetterReviveExperience-0.3.5 |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2305README
BetterReviveExperience
⚠️ 兼容性警告 / Compatibility Warning
请勿同时启用其他提供自动复活、死亡背包保留、手持物品防掉落或自动回收功能的模组。对于 GameTools 等多功能模组,请关闭其中与 BRE 重叠的选项。
Do not enable other mods that provide automatic revives, keep-inventory-on-death, held-item drop protection, or automatic item recovery. For multi-purpose mods such as GameTools, disable the options that overlap with BRE.
中文
BetterReviveExperience 是一款仅需房主安装的 R.E.P.O. 复活与物品保护模组,加入房间的其他玩家无需安装。
安装
- 使用 r2modman 或 Thunderstore Mod Manager 安装。
- 依赖
BepInExPack和REPOConfig。 - 在
Mods → BetterReviveExperience中修改设置,修改后建议重启游戏。
功能
- 死亡后保留原版背包栏物品。
- 可收纳物品(Phase Bridge、无人机、武器等)因受击或翻滚脱手时自动回到原版背包;死亡时也会优先回收。
- 手持物品时切换到已占用的背包格,会交换物品而不是将手中物品扔到地上。
- 支持提取点、卡车、推车、商店和房主持死亡玩家的头按键复活。
- 可设置复活条件、团队费用、复活血量和快捷键。
设置
| 设置 | 默认值 | 作用 |
|---|---|---|
KeepItemsOnDeath |
开启 | 死亡后保留背包栏物品 |
ProtectHeldItems |
开启 | 受击或翻滚时回收可收纳的手持物品 |
SwapHeldItemOnOccupiedSlot |
开启 | 切换到已占用格时交换物品 |
ReturnHeldItemOnDeath |
开启 | 死亡时回收手持的可收纳物品 |
Mode |
ExtractionOrTruck |
设置提取点和卡车复活规则 |
Cost |
0 |
每次复活扣除的团队货币,范围 0–100000,步进 1000 |
HealthPercent |
25 |
复活后的血量百分比 |
EnableHeldHeadRevive |
开启 | 房主持死亡玩家的头按键复活 |
HeldHeadReviveKey |
H |
可选 H、R、Y 或 F |
EnableCartRevive |
开启 | 死亡玩家的头进入推车后复活 |
EnableShopRevive |
开启 | 在商店死亡后复活 |
DebugLogging |
开启 | 输出详细诊断日志 |
Mode 可选:
Disabled:关闭提取点和卡车自动复活。ExtractionMachineActivated:死亡玩家的头进入提取点,并在机器激活后复活。ExtractionOrTruck:死亡玩家的头进入提取点或卡车区域后立即复活。
注意
- 请在游戏原生设置中开启
Item Unequip Auto Hold,否则从背包取出的物品会在短暂计时后掉落。 - 扩展背包格不受支持;使用扩展背包模组时,请在原版前三格中至少留一个空格。
- 原版前三格全满时,死亡时手持的物品会放到死亡玩家的头附近。
- 团队货币不足时不会复活,也不会扣费。
- 团灭、开新局或重置存档时不保证保留物品。
English
BetterReviveExperience is a host-only revive and item-protection mod for R.E.P.O. Other players joining the lobby do not need to install it.
Installation
- Install with r2modman or Thunderstore Mod Manager.
- Requires
BepInExPackandREPOConfig. - Change settings under
Mods → BetterReviveExperience; restarting the game afterward is recommended.
Features
- Keep vanilla inventory-slot items after death.
- Return storable items such as Phase Bridge, drones, and weapons to vanilla inventory after an impact or tumble, and recover them on death.
- Swap the held item into an occupied inventory slot instead of dropping it.
- Revive through extraction points, the truck, carts, the shop, or the host's held-head hotkey.
- Configure revive conditions, team cost, revive health, and hotkey.
Settings
| Setting | Default | Purpose |
|---|---|---|
KeepItemsOnDeath |
On | Keep inventory-slot items after death |
ProtectHeldItems |
On | Recover storable held items after an impact or tumble |
SwapHeldItemOnOccupiedSlot |
On | Swap items when selecting an occupied slot |
ReturnHeldItemOnDeath |
On | Recover a storable item held at death |
Mode |
ExtractionOrTruck |
Set extraction-point and truck revive rules |
Cost |
0 |
Team currency per revive, 0–100000 in steps of 1000 |
HealthPercent |
25 |
Health percentage after revive |
EnableHeldHeadRevive |
On | Let the host revive the held death head |
HeldHeadReviveKey |
H |
Choose H, R, Y, or F |
EnableCartRevive |
On | Revive when a death head enters a cart |
EnableShopRevive |
On | Revive after dying in the shop |
DebugLogging |
On | Write detailed diagnostic logs |
Mode options:
Disabled: disable automatic extraction-point and truck revives.ExtractionMachineActivated: revive after the death head enters an extraction point and the machine is activated.ExtractionOrTruck: revive immediately when the death head enters an extraction point or truck area.
Notes
- Enable the native
Item Unequip Auto Holdgame setting, or inventory items will drop after the temporary grab timer expires. - Expanded inventory slots are not supported. Keep at least one of the first three vanilla slots free when using a bag-expansion mod.
- If all three vanilla slots are full, the item held at death is placed near the death head.
- A revive is not performed or charged when team currency is insufficient.
- Items are not guaranteed to persist through a team wipe, new run, or save reset.
CHANGELOG
Changelog
0.3.5
- Fix occupied-slot swaps never being queued because the outgoing item has already entered its native
Unequippingstate beforeRPC_CompleteUnequipreaches the host.
0.3.4
- Add host-side inventory swapping: pressing an occupied vanilla slot while holding another storable item stores the old item in the vacated slot.
- Add
SwapHeldItemOnOccupiedSlot, enabled by default. - Cancel a pending swap safely if the item is destroyed, taken by another player, equipped elsewhere, or the target slot is no longer free.
0.3.3
- Only treat verified impact and tumble RPCs as forced drops; ignore equip, weapon, enemy-grab, and overcharge release traffic.
- Ignore stale remote grabber fields and record only the latest active holder of a storable item.
- Warn when the game's native item-unequip auto-hold setting is disabled, which otherwise releases an item after the temporary hold expires.
0.3.2
- Return a storable held item to its original vanilla inventory slot after a hit or tumble, falling back to another free vanilla slot.
- Stop the native
ItemEquippable.ForceGrab()timer before recovery so an item taken from inventory does not reattach to the hand. - Keep the item in the local player's hand when all three vanilla slots are occupied; retain the nearby fallback for remote players.
0.3.1
- Fix single-player forced-drop protection by intercepting the direct
PhysGrabber.ReleaseObjectRPCpath used by impacts and tumbles. - Treat every native inventory-storable
ItemEquippableas protectable, including Phase Bridge and drones. - Add host recovery when an unmodded remote client has already processed a forced release.
0.3.0
- Add host-only protection and recovery for any held item that can enter a vanilla inventory slot.
- Track the last actual holder without changing manual release behavior.
- Return the storable item held at death to a free vanilla inventory slot, or place it near the death head when all three slots are occupied.
- Document the boundary with bag-expansion mods: expanded slots are not read or written.
0.2.11
- Re-upload the refreshed Thunderstore icon as a new immutable package version.
0.2.10
- Replace the Thunderstore icon with the new BetterReviveExperience branding.
0.2.9
- Simplify the held-head revive key list to H, R, Y, and F.
0.2.8
- Replace free-text held-head hotkey input with a fixed REPOConfig key list.
- Replace the cost range with fixed 1,000-currency increments from 0 to 100,000.
- Enable detailed debug logging by default for this development build.
0.2.7
- Add configurable
Revive.HeldHeadReviveKey; the default remains H. - Use the game's public run-currency wrappers for revive charges and refunds.
- Validate the currency wrappers during startup API compatibility checks.
0.2.6
- Add a REPOConfig
Debug.DebugLoggingtoggle for detailed runtime diagnostics. - Keep routine revive and error messages visible while hiding high-frequency probes by default.
- Document inventory-retention boundaries, tested dependency versions, GameTools interaction, and useful issue-report logs.
- Add independently configurable held-head H-key, cart, and shop revive triggers.
- Enable cart, shop, and host H-key revives by default.
- Apply the configured team cost and revive health to every BRE revive trigger.
- Use the immediate native death-head revive path without safety-spawn relocation or position confirmation.
- Detect and warn about overlapping revive mods that can issue duplicate revive RPCs.
- Require both Photon MasterClient authority and the game's host/single-player authority before every BRE state-changing path.
0.2.5
- Require the death head to remain continuously in a valid revive area for one second.
- Stop forcing room-volume recalculation every frame and use the game's cached area state.
- Move revived players to extraction/truck safety spawns through the native
PlayerAvatar.SpawnRPC. - Verify the resulting position and retry the safe spawn up to five times.
- Apply the configured revive health exactly in both single-player and multiplayer.
- Add soft GameTools compatibility ordering and a warning for overlapping automatic revive options.
0.2.4
- Wait for the death-head trigger setup to finish before issuing a revive.
- Use the game's native
PlayerDeathHead.Revive()path for extraction-point revives. - Keep the native truck revive path for truck-area revives.
0.2.3
- Keep Harmony patches installed when the loader disposes the plugin component after startup.
- Fix all runtime callbacks being removed immediately after successful patch registration.
0.2.2
- Replace automatic patch discovery with explicit Harmony registrations for every game method.
- Add one-time live-game probes for
PlayerAvatar.UpdateandPlayerDeathHead.Update. - Distinguish a patch registered at startup from a patch actually invoked during a session.
0.2.1
- Refresh the death head's room-volume check immediately before evaluating truck and extraction revive triggers.
- Add explicit diagnostics for death RPCs and death-head creation, so a failed revive can be located at the exact game event.
0.2.0
- Rebuilt revive handling around the game's native
PlayerDeathHead.Updateflow. - Rebuilt inventory retention around the host-targeted
RPC_CompleteUnequipflow. - Removed the polling scanner, plugin coroutine, and custom runtime driver.
- Added exact host health synchronization after the vanilla revive RPC completes.
- Preserved the three revive modes, shared cost, timeout refund, and REPOConfig settings.
- Added a startup list of every Harmony target for compatibility diagnostics.
0.1.2
- Changed death-head discovery to use the authoritative player list and each player's bound death head.
- Added explicit room-volume checks for extraction and truck detection.
- Added staged diagnostics for host state, death RPCs, death heads, inventory unequip, area detection, and revive RPCs.
- Drive the revive controller from a dedicated persistent Unity runtime object and wait for
GameManagerinitialization before scanning.
0.1.1
- Reworked inventory retention to run entirely on the host.
- Clients no longer need BetterReviveExperience installed.
- Added disabled, activated machine, and combined extraction/truck revive modes.
- Added shared currency cost and configurable revive health.
- Set the default revive cost to 0 with a configurable 0–100,000 range.
- Added per-player death tracking and host-side item state correction.
- Added revive timeout refunds and scene transition cleanup.
- Added game API compatibility validation logs.
- Added in-game configuration through REPOConfig.
- Fixed Harmony patches not being discovered when the parameterless PatchAll call resolved the wrong assembly.
- Added host-side death-head scanning and direct
deadSetfallback so revive and inventory protection do not depend on a death event patch firing.