You are viewing a potentially older version of this package. View all versions.
SosoTeampro-REPOForge-1.2.1 icon

REPOForge

Plugin interop bus, lobby discrepancy handshake, and a host-authoritative shop spawn pipeline for R.E.P.O.

Date uploaded 3 days ago
Version 1.2.1
Download link SosoTeampro-REPOForge-1.2.1.zip
Downloads 3
Dependency string SosoTeampro-REPOForge-1.2.1

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

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

Preferred version: 5.4.2100

README

REPOForge

Library plugin for R.E.P.O. Other mods talk to each other through a shared bus, the lobby exchanges a fingerprint so Photon no longer dies on silent prefab drift, and shop items spawn from one host manifest.

Install is automatic. You do not copy DLLs and other mods do not need [BepInDependency].

Русский текст ниже.

Install (pick one)

Thunderstore Mod Manager / Gale / r2modman

  1. Download this zip (1.2.1).
  2. Import local mod → select the zip.
  3. Start R.E.P.O. from the manager.

If the log says Skipping [REPOForge] because a newer version exists, you have two copies. In the profile folder delete extra REPOForge directories under BepInEx/plugins/ and keep a single REPOForge.dll.

Double-click installer

If the game already has BepInEx: unzip, run Install.bat. It finds Steam REPO and copies the DLL into BepInEx\plugins\REPOForge\.

What it fixes

Plugin fights. Several shop mods postfix ShopManager.GetAllItemsFromStatsManager or prefix-skip PunManager.SpawnShopItem. Forge postfix-last merges potential-item lists and deduplicates Items/{name} prefab paths.

Discrepancy / drift. On Start() Forge auto-discovers every loaded BepInEx plugin (no attribute required on their side), hashes guid@version, and logs both fingerprints on join.

Shop spawn. Host-authoritative pipeline. Any REPOLib / StatsManager item that is not vanilla is adopted automatically: one copy on a matching shelf. Oversized meshes are promoted onto Medium/Large so they are not stuffed into small wire displays. Price-weighted selection, extra shelves, maxInShop caps.

Missing prefabs. A Harmony finalizer on PhotonNetwork.InstantiateRoomObject swallows instantiate failures and drops a cube placeholder instead of crashing (PUN's first argument is prefabName, not prefabId).

For mod authors

You do not need [BepInDependency]. If your item is registered with REPOLib / StatsManager, Forge puts one copy on a matching shop shelf the next time the host opens the shop.

Optional: Thunderstore dependency REPOForge-REPOForge and Forge.Shop.Register(...) if you want to force volume or category.

Forge.Shop.Register(new ShopIntent {
    ItemName = "Laser Gun",
    PrefabPath = "Items/Item Laser Gun",
    Weight = 6,
    MaxInShop = 1,
    Volume = ItemVolumeKind.Medium,
    Category = ShopCategoryKind.Items,
    Item = yourItem,
});

Do not Prefix-skip PunManager.SpawnShopItem or ShopManager.GetAllItemsFromStatsManager. Postfix the list if you must inject extra items.

Config

Generated on first launch: BepInEx/config/com.repoforge.core.cfg

Key Default Meaning
General.Enabled true Master switch
Compat.Handshake true Fingerprint exchange in lobby
Compat.KickOnHardMismatch false Warn only unless you opt in
Compat.PlaceholderMissingPrefabs true Don't crash on missing prefab
Shop.Pipeline true Host shop manifest
Shop.FillEmptyVolumes true Raise spawn caps to fill empty shelves
Shop.DiversifyPool true Round-robin unique items (no all-medium health)
Shop.PreferModItems true Guarantee a shelf slot for non-vanilla items
Shop.AdoptUnlistedMods false Leave off. 1.2.0 on stuffed level loot into the shop
Shop.MaxCopiesPerItem 2 At most this many of one prefab on the shelves
Shop.UseShopPriceForItemSelection false Reorder pool by price. Off: vanilla/MSI weights
Shop.ExtraShelves 0 Unused (compat)
Shop.ItemSpawnTargetAmount 0 Hard cap; ignored while FillEmptyVolumes is on
Shop.RemapSmallItemsOntoMediumVolumes true Overflow Small onto Medium

По-русски

  1. Скачайте zip 1.2.1.
  2. Thunderstore Mod Manager / Gale → Import local mod.
  3. Запустите игру из менеджера.

Если в логе Skipping [REPOForge] because a newer version exists — две копии DLL. Удалите лишние папки REPOForge в BepInEx/plugins.

Либо Install.bat — сам найдёт Steam REPO.

Чужим модам не нужен [BepInDependency].