A lightweight BepInEx library mod for R.E.P.O. that reads and caches all player character stats. Designed as a shared dependency for other mods that need access to upgrade levels.
StatsManagerThis mod does nothing on its own. It exists so that other mods (like Increase Tumble Damage) can reliably access player stat data without conflicting with each other.
Other mods can reference Character Stats.dll and call these static methods:
using static Character_Stats.Character_Stats;
// Get a specific upgrade level for a player
int launchLevel = GetUpgradeLevel(steamId, "Launch");
// Get all upgrades for a player
Dictionary<string, int> upgrades = GetAllUpgrades(steamId);
// Check if stats have been read this level
if (AreStatsReady) { ... }
// Get all tracked player Steam IDs
foreach (var id in GetTrackedPlayers()) { ... }
// Get local player's Steam ID
string? myId = GetLocalSteamId();
Health, Speed, Map Player Count, Stamina, Extra Jump, Range, Strength, Throw, Launch, Crouch Rest, Tumble Wings, Tumble Climb, Death Head
Stats are read at these points:
ReceiveSyncData — re-reads stats when network sync overwrites data (e.g., when another mod shares upgrades)Character Stats.dll into your BepInEx/plugins folder.To use Character Stats as a dependency in your mod:
Character Stats.dll in your .csproj (compile-only, not bundled):<Reference Include="Character Stats">
<HintPath>path\to\Character Stats.dll</HintPath>
<Private>false</Private>
</Reference>
[BepInDependency("headclef.CharacterStats", BepInDependency.DependencyFlags.HardDependency)]
manifest.json:"dependencies": ["headclef-CharacterStats-1.0.0"]
├── Character Stats.cs # Plugin entry point & public API
├── Patches/
│ └── StatReaderPatch.cs # Harmony hooks for reading stats
└── README.md
dotnet build
This project is licensed under the MIT License — see the LICENSE file for details.