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.
AddExtractionButton
Host-only extraction confirmation using a networked vanilla clown. Clients do not need the mod.
By DJ_DarkLucky
| Date uploaded | 2 months ago |
| Version | 0.2.0 |
| Download link | DJ_DarkLucky-AddExtractionButton-0.2.0.zip |
| Downloads | 11184 |
| Dependency string | DJ_DarkLucky-AddExtractionButton-0.2.0 |
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
Add Extraction Button
Adds a manual confirmation step to extraction in R.E.P.O. When an extraction point opens, a vanilla networked clown appears beside the platform. Press its nose to submit the extraction.
Multiplayer
Install the mod on the host. Clients do not need the mod: they can see and use the clown through the game's existing networking.
How to use
- Open an extraction point and load valuables normally.
- Before the quota is met, pressing the nose plays the vanilla denial response. The consumed clown remains visible during a brief anti-spam delay and is then refreshed in place so it can be pressed again safely.
- Once the quota is met or exceeded, press the nose to start the normal extraction sequence.
Simultaneous or repeated network presses on the same clown produce only one host-side action.
There is no timeout. A completed quota remains held until someone presses the nose.
The extraction clown has zero value, so its initial spawn and replacements do not affect haul value or quota accounting.
The confirmation gate is enabled only after all critical Harmony patches pass compatibility checks. If a startup or runtime check fails, the mod safely releases its gate and vanilla automatic extraction remains active.
Before spawning, the host measures the clown's real bounds, checks floor support across its footprint, and rejects positions that overlap level geometry, players, or other objects. The vanilla network object is created directly at that final collision-tested pose, so current players and late joiners do not see an intermediate-position jump.
The network proxy is owned by the host, and its zero value is buffered for late joiners. Before a new host creates a proxy, the mod checks for a marked proxy left by the previous host and avoids spawning a duplicate.
If no fully supported collision-free position is available, the proxy disappears, loses ownership, cannot be replaced after a denied press, or the vanilla denial feedback cannot be sent, the current extraction fails open. This fallback is tied to an actual failure; normal confirmation still has no timeout.
Configuration
The configuration file is created after the first launch at:
BepInEx/config/DJDarkLucky.AddExtractionButton.cfg
Logging.DebugLogging is disabled by default. Normal logging contains only
plugin startup, extraction activation, warnings, and errors. Enable the option
and restart the game to include detailed extraction discovery, clown spawn,
interaction, replacement, and network diagnostics.
Requirements
- BepInEx 5
- R.E.P.O. (tested with version 0.4.4.3)
REPOLib is not required.
Known limitation
An unmodded client may briefly see their grab beam attach to the clown. The host keeps the actual object fixed in place.
Feedback and author
CHANGELOG
Changelog
0.2.0 - 2026-07-19
- Added an optional debug logging mode while keeping routine player logs limited to startup, extraction activation, warnings, and errors.
- Made the extraction clown economically neutral so its initial spawn and replacements cannot affect haul value or quota accounting.
- Added strict startup verification for every critical Harmony callback. An incomplete patch set at startup or before gate activation now disables the mod safely and leaves vanilla extraction active.
- Hardened the network lifecycle with actor-owned proxy cleanup, buffered late-join position state, stale-proxy detection during host migration, and guarded Harmony callbacks.
- Added failure-only fail-open handling. If an armed proxy disappears, loses ownership, cannot be replaced, or hits a runtime compatibility error, vanilla extraction is restored for the current activation without waiting for a timeout.
- Made host-side confirmation one-shot so simultaneous or repeated nose RPCs cannot submit extraction more than once.
- Added a short denied-press cooldown that produces one vanilla denial and one seamless replacement instead of a burst of network replacements. The consumed clown remains visible until the replacement is ready.
- A failure to send the vanilla extraction-denied feedback now fails open instead of leaving the confirmation gate armed in an uncertain state.
- The clown is now measured before networking starts, checked for full floor support and surrounding collisions, and instantiated directly at its final pose so unmodded clients do not see a provisional-position jump.
- Brief placement failures while the extraction tube is still retracting are treated as debug-only retries and become player-facing errors only if safe placement remains unavailable.
0.1.0 - 2026-07-14
- Added host-only manual extraction confirmation using a vanilla networked Valuable Clown.
- Made the clown visible and interactive for unmodded clients.
- Held automatic submission after the quota is reached until the clown's nose is pressed.
- Added vanilla denial feedback for presses made before the quota is reached.
- Added unlimited safe retries by replacing the clown after denied presses and suppressing explosions only for the extraction clown.
- Added host-authoritative position locking and platform-relative floor placement outside the storage area.
- Added fail-open behavior when the initial network clown cannot be created.