MedkitScatter

v0.0.1·Updated 2026-08-06

Scatters **vanilla** health packs

About this mod Author’s original text

Medkit Scatter

Scatters vanilla health packs (25 / 50 / 100 HP) around every generated level in

R.E.P.O. v0.4.4.

🖥 Host-only

Only the host needs this mod. Clients see the health packs with a completely

vanilla install — the packs are spawned as Photon room objects, so they survive the

owner leaving and are buffered for late joiners.

If a client has the mod but the host does not, nothing spawns and nothing breaks.

What it does

  • After level generation finishes, the mod counts the level's rooms and places health

packs across them.

  • At most one mod-placed health pack per room. This is not configurable — it is the

point of the mod.

  • No custom assets, no new items, no REPOLib dependency. It reuses the three vanilla

health pack items and the level designers' own loot placement points.

The formula

RoomCount = number of modules that pass the "counts" filter

TargetCount = clamp( round( RoomCount / RoomsPerMedkit ), MinMedkits, MaxMedkits )

With the defaults (RoomsPerMedkit = 4, Floor, Min = 1, no max) a level of

20 counted rooms gets 5 health packs.

Which module types count, and which may host a pack:

| Module type | Counts toward the total | May host a pack |

| --- | --- | --- |

| Normal | ✅ | ✅ |

| Passage (corridor) | ✅ | ❌ |

| Dead End | ✅ | ✅ |

| Extraction | ❌ | ❌ |

| Special | ❌ | ❌ |

| Start Room / truck | ❌ | ❌ |

Corridors count but do not host: they define how big a level feels, but loot lying in a

through-corridor reads badly.

Where a pack ends up

  • Preferably a free ValuableVolume — a spot a level designer placed by hand on a

table, shelf or floor. Spots the vanilla game already filled are skipped.

  • Otherwise a level navigation point, nudged slightly off the path node.

Either way the position is finished with a downward raycast onto real floor geometry

plus a clearance check, so packs do not float, sink through the floor, or clip into

vanilla loot.

Configuration

BepInEx/config/AitServices.MedkitScatter.cfg

General

| Key | Default | Meaning |

| --- | --- | --- |

| Enabled | true | Master switch |

| ExtendedLogging | false | Log the full plan and every spawn (at Info level, so it shows up in LogOutput.log) |

| FixedSeed | 0 | 0 = seed derived from the run; anything else = fixed layout |

| MaxSpawnFailuresPerLevel | 3 | Failed placements tolerated per level |

| MaxExceptionsPerSession | 10 | Caught exceptions before the mod switches itself off until restart |

Amount

| Key | Default | Range | Meaning |

| --- | --- | --- | --- |

| RoomsPerMedkit | 4 | 1…64 | Divisor of the formula |

| RoundingMode | Floor | Floor / Round / Ceil | How the division is rounded |

| MinMedkits | 1 | 0…64 | Lower bound |

| MaxMedkits | 0 | 0…128 | Upper bound, 0 = unlimited |

Rooms

| Key | Default | Meaning |

| --- | --- | --- |

| CountNormal | true | Count normal rooms in the denominator |

| CountPassages | true | Count corridors |

| CountDeadEnds | true | Count dead ends |

| CountExtraction | false | Count extraction rooms |

| CountSpecial | false | Count Special modules |

| SpawnInNormal | true | Allow packs in normal rooms |

| SpawnInPassages | false | Allow packs in corridors |

| SpawnInDeadEnds | true | Allow packs in dead ends |

| SpawnInSpecial | false | Allow packs in Special modules |

| PreferDistantRooms | false | Bias placement away from the start room |

Tiers

| Key | Default | Meaning |

| --- | --- | --- |

| WeightSmall | 60 | Weight of the 25 HP pack |

| WeightMedium | 30 | Weight of the 50 HP pack |

| WeightLarge | 10 | Weight of the 100 HP pack |

| GuaranteeVariety | true | With 3+ packs, guarantee one of each tier. This deliberately overrides the weights for the first three — with 5 packs the real Large share is ≥ 20 %, not 10 %. Turn it off if you want the honest ratio |

| DifficultyScaling | false | Shift weights toward larger packs as the run progresses |

| DifficultyScalingFactor | 0.15 | k in Large × (1 + k × levelsCompleted) |

Placement

| Key | Default | Meaning |

| --- | --- | --- |

| AllowedVolumeTy

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.

Dependencies

Install these first, or the mod will not work:

BepInEx-BepInExPack

File & checksum

Filename
MedkitScatter-0.0.1.zip
File size
63.6 KiB