MichaelKineticSystems-FIFO_Shared_Upgrades icon

FIFO Shared Upgrades

Shares every player upgrade with the whole team using a thread-safe FIFO queue. Any player can take an upgrade and it applies to everyone.

Last updated 3 hours ago
Total downloads 71
Total rating 1 
Categories Client-side Server-side
Dependency string MichaelKineticSystems-FIFO_Shared_Upgrades-1.0.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2305

README

FIFO Shared Upgrades for R.E.P.O.

A BepInEx/Harmony mod for R.E.P.O. that shares every player upgrade with the whole team.

How it works

  • A thread-safe FIFO queue collects every upgrade taken by any player.
  • The queue is drained on the Unity main thread every frame, guaranteeing ordered, race-free application.
  • Each upgrade is broadcast to all connected players using a Photon RaiseEvent, so the whole crew receives the same benefit.
  • Late-joining players are caught up by syncing the current highest level of each upgrade.

Features

  • Any player can grab an upgrade — it immediately applies to everyone.
  • Host-only mode by default (only the host needs the mod).
  • Supports vanilla and modded upgrades as long as they appear in StatsManager.
  • Configurable late-join sync and frame-processing limit.

Installation

  1. Install BepInEx 5.x (Mono) for R.E.P.O.
  2. Build this project or copy the compiled REPO_FifoSharedUpgrades.dll into REPO/BepInEx/plugins/REPO_FifoSharedUpgrades/.
  3. Launch the game.

Building

dotnet build -c Release

Thunderstore Packaging

  1. Generate or replace icon.png (256x256).
    python make-icon.py
    
  2. Build and package:
    .\pack.ps1
    
  3. Upload the generated FIFO_Shared_Upgrades-1.0.0.zip to Thunderstore.

The package layout is:

manifest.json
README.md
CHANGELOG.md
icon.png
BepInEx/plugins/FIFO_Shared_Upgrades/REPO_FifoSharedUpgrades.dll

Configuration

Generated in REPO/BepInEx/config/com.cascade.REPO_FifoSharedUpgrades.cfg:

Setting Default Description
EnableMod true Turn the mod on/off.
HostOnlyMode true Only the host needs the mod.
SyncLateJoin true Give late joiners the team's upgrades.
MaxQueuePerFrame 32 Maximum events to process per frame.

Notes

  • The mod uses reflection to stay compatible across game and modded-upgrade updates.
  • If you disable HostOnlyMode, all clients must run the mod for sync to work correctly.