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.
RepoDeathCounter
Per-save truck death counter: every current player starts at 0, F8 toggles a translucent UI, and MVP scores appear only with RepoLevelMVP. Shop deaths do not count.
By matsu
| Date uploaded | a week ago |
| Version | 1.4.6 |
| Download link | matsu-RepoDeathCounter-1.4.6.zip |
| Downloads | 1127 |
| Dependency string | matsu-RepoDeathCounter-1.4.6 |
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
REPO Death Counter
A simple per-player death counter for R.E.P.O., shown in the truck between levels.
Features
- Shows how many times each player has died, listed in the top-right of the truck lobby.
- Current players appear with
0before their first death; saved deaths remain visible after a player leaves. - Host-authoritative & synced: the host counts every death and broadcasts the tally to all clients, so everyone sees the same numbers in real time.
- Late-join friendly: players who join mid-run (e.g. via LateJoinNow) receive the current tally automatically.
- Large-lobby ready: there is no six-player cap in counting or synchronization. The redesigned scoreboard automatically uses multiple columns and cycles pages only when the full lobby cannot fit.
- Lightweight truck UI: a compact retained scoreboard uses shared text columns and refreshes only when the tally, awards, or visible page change, leaving the cash and health HUD unobstructed.
- The panel is moderately translucent. Press F8 to show/hide it for this session; the key and opacity are configurable.
- Optional MVP integration: RepoLevelMVP awards appear in the same panel only when that mod is installed. DeathCounter alone does not create MVP UI. RepoLevelMVP is not required for death counting.
- Per-save tally: each save slot has its own count. Loading that save restores its count; a newly created save starts at zero, and GAME OVER clears only the active save's tally.
- Keyed by Steam ID, so counts stay attached to the right player even after name changes or rejoining.
- Shop deaths never count. This is enforced by the mod, not a toggle.
Notes
- BepInEx is the only dependency. There is no REPOLib or other required framework.
- The lobby host must install the mod for a shared tally. Everyone who wants to see the overlay should install it too; clients running 1.4.6 also send a direct, owner-verified death report to the host.
- Version 1.4.6 checks the truck panel twice per second, refreshes the current-player roster once per second, and rebuilds text only when data or the visible page changes.
- The overlay only appears in the truck lobby. Use F8 or the
Display / ShowOverlayconfig option. - Death data is stored separately from the game's own save files (under the game's persistentDataPath), so it never touches vanilla save integrity.
Troubleshooting
- If the header never appears or everyone stays at
0after a death, confirm that the host hasMatsu.RepoDeathCounter.dllas an actual.dllunderBepInEx/plugins. Files renamed to.dll.DISABLEDor.dll.OFFare intentionally ignored by BepInEx. - After launching,
BepInEx/LogOutput.logshould containREPO Death Counter 1.4.6 loaded, twoPatched PlayerAvatar...lines, and onePatched RunManager.ResetProgress...line. No extra dependency is required.
Config
BepInEx/config/matsu.repo.deathcounter.cfg → [Display]
ShowOverlay(defaulttrue)Corner— TopRight (default) / TopLeft / BottomRight / BottomLeftFontSize,TitleFontSize— text sizesTextColorHex,TitleColorHex— hex RGB colors (e.g.FFFFFF)SortMode— DeathsAscending (fewest on top, default) / DeathsDescending / NameAscending / NameDescendingShowTotal(defaulttrue) — shows a total-deaths badge in the scoreboard headerHighlightSelf(defaulttrue) — draws your own row in a different colorSelfColorHex(defaultFFD700, gold) — your row's color whenHighlightSelfis onBackgroundOpacity(default0.82, clamped to0.55–0.95)ToggleKey(defaultF8) — show/hide the overlay for the current session
Bug reports & requests
Found a bug or have a feature request? Please use this form: https://docs.google.com/forms/d/e/1FAIpQLSfl7f-oNiwjXjd7mUkfQoqBIhbJhQhhfV-ZmovjJVQ9orwuYQ/viewform
REPO Death Counter(日本語)
R.E.P.O. 用の、プレイヤーごとの「死亡回数カウンター」。レベル間のトラック内に表示されます。
特徴
- 各プレイヤーの死亡回数を、トラック・ロビーの右上に一覧表示します。
- 現在参加中のプレイヤーは、まだ死んでいなくても
0と表示します。退出者のセーブ済み死亡数は残ります。 - ホスト権威&同期: ホストが全員の死亡を集計し、全クライアントへ配信。全員がリアルタイムで同じ数字を見られます。
- 途中参加対応: ラン途中で参加した人(LateJoinNow など)にも、現在の集計が自動で同期されます。
- 大人数ロビー対応: 集計・同期に6人の上限はありません。新しいスコアボードは人数に応じて複数列になり、全員が画面に収まらない場合だけ自動でページを切り替えます。
- トラック内で軽量なUI: 複数人の名前・死亡数を少数の共通テキストで描画し、死亡数・表彰・表示ページが変わったときだけ更新します。既定の右上表示ではゲームの所持金・体力表示を避けます。
- 背景はやや半透明です。F8 キーでセッション中の表示を切り替えられ、キーと不透明度は設定できます。
- MVPとの任意連携: RepoLevelMVPを導入している場合だけ、その結果を同じパネルに表示します。DeathCounter単体ではMVP用UIを作りません。死亡数の集計にMVP MODは必要ありません。
- セーブデータごとに集計: セーブスロットごとに別の死亡数を保持します。該当セーブをロードすると復元され、新規作成したセーブは0から開始、GAME OVERではそのセーブだけをリセットします。
- キーは Steam ID。改名や再参加をしても、正しいプレイヤーにカウントが紐づきます。
- ショップでの死亡は常に除外: 設定ではなくMOD側で必ず除外します。
注意
- 必要な依存MODは BepInEx のみです。REPOLibなどは不要です。
- 共有カウントにはロビーのホストがMODを導入してください。表示する各クライアントも導入を推奨します。1.4.6のクライアントは、自分の死亡を所有者検証付きでホストへ直接通知します。
- 1.4.6ではトラックの表示確認を毎秒2回、参加者一覧の更新を毎秒1回とし、データや表示ページに変化があるときだけ文字を描き直します。
- オーバーレイはトラック・ロビーでのみ表示。F8または
Display / ShowOverlay設定でオン/オフできます。 - 死亡データはゲーム本体のセーブとは別ファイル(persistentDataPath 配下)に保存され、バニラのセーブ整合性には一切触れません。
動かない場合
- 見出しが出ない、または死亡後も全員が
0のままの場合は、ホストのBepInEx/plugins配下にMatsu.RepoDeathCounter.dllが実際の.dllとして置かれているか確認してください。.dll.DISABLEDや.dll.OFFにリネームされたファイルは BepInEx が意図的に読み込みません。 - 起動後の
BepInEx/LogOutput.logにREPO Death Counter 1.4.6 loaded、Patched PlayerAvatar...の2行、Patched RunManager.ResetProgress...の1行が出れば読み込み成功です。追加の依存MODは不要です。
設定
BepInEx/config/matsu.repo.deathcounter.cfg → [Display]
ShowOverlay(既定true)Corner— TopRight(既定)/ TopLeft / BottomRight / BottomLeft(表示コーナー)FontSize,TitleFontSize— 文字サイズTextColorHex,TitleColorHex— 文字色(16進RGB, 例FFFFFF)SortMode— DeathsAscending(デス少ない順で上・既定)/ DeathsDescending / NameAscending / NameDescendingShowTotal(既定true)— 全員の死亡数合計をスコアボード上部のバッジに表示HighlightSelf(既定true)— 自分の行だけ色を変えて分かりやすく表示SelfColorHex(既定FFD700, ゴールド)—HighlightSelf有効時の自分の行の色BackgroundOpacity(既定0.82、範囲0.55~0.95)— 背景の不透明度ToggleKey(既定F8)— セッション中の表示オン/オフ
バグ報告・要望
不具合報告や機能要望はこちらのフォームからお願いします: https://docs.google.com/forms/d/e/1FAIpQLSfl7f-oNiwjXjd7mUkfQoqBIhbJhQhhfV-ZmovjJVQ9orwuYQ/viewform
CHANGELOG
Changelog
1.4.6 candidate
- The MVP award strip is now created only when RepoLevelMVP is actually loaded. DeathCounter alone creates only the death scoreboard and ignores award-bridge calls.
- The optional shared scoreboard still works when both mods are present.
- Current players appear with 0 deaths before anyone dies. These placeholders are display-only; save files still store the actual per-save death history.
- Made the truck panel moderately translucent and added a configurable F8 hotkey for showing or hiding it during the session.
- Expanded the optional MVP strip to show total points, top scoring categories, runners-up, and the OOPS setback score. The DeathCounter-only layout stays compact.
- Isolated roster, award, and total text fonts and refreshed their glyph meshes after data changes to prevent transient missing letters and numbers. Checked English/Japanese names and a synthetic 32-player paged view in game.
- Death recording, per-save storage, and BepInEx-only dependency are unchanged.
1.4.5 candidate
- Reduced idle truck UI polling to twice per second. Death recording, save loading, reset, synchronization, and RepoLevelMVP awards now advance a UI revision, so the compact panel does not walk the whole player list on every idle check.
- Refreshed the shared award text after player names change so dynamic font atlas updates do not momentarily leave the MVP strip empty.
- Kept the shared retained Canvas. The older 1.4.1 IMGUI path measured substantially slower in the isolated native truck benchmark.
- Preserved the bug-report/request survey link in the English and Japanese descriptions.
1.4.4 candidate
- Added an optional, assembly-independent results bridge for RepoLevelMVP. When that mod is installed, its last-level MVP and second award appear inside the existing compact truck scoreboard, rather than creating a second scoreboard Canvas.
- Kept the awards strip to one extra text mesh, with its own layout space and safe handling of player names containing markup characters. Native 720p/1080p truck layouts were inspected with empty, 3-player, 12-player, and 32-player synthetic death lists.
- Death counting, save behavior, and the BepInEx-only dependency are unchanged.
1.4.3
- Replaced the per-player Unity UI graphics with a compact two-column text layout. Player names and death counts now use only two text meshes per column, while preserving self highlighting, totals, sorting, and automatic paging for large lobbies.
- In an isolated copy of the full installed mod profile, the native 12-player truck overlay averaged about 135 FPS visible versus 144 FPS hidden at both 720p and 1080p. The 1.4.2 overlay had averaged 120 FPS visible versus 143 FPS hidden at 1080p. This reduces the overlay's measurable cost, though other mods can still affect frame rate.
- Visually checked empty, 12-player (including a long name), and 32-player paged layouts in the native truck at 720p and 1080p. Death recording, per-save storage, and networking rules are unchanged.
1.4.2
- Fixed severe slowdown in the pre-level truck. The scoreboard now uses a retained Unity UI canvas, updating only when deaths, names, display settings, resolution, or the visible page change instead of sorting and redrawing every label on every IMGUI layout/repaint event.
- Moved the default scoreboard below the truck's cash HUD, and fixed the empty-state header layout. Checked the empty, 12-player, and 32-player paged views in the native game.
- The scoreboard and synchronization runtime now survive REPO's initial scene switch even if its BepInEx manager is discarded during native startup.
1.4.1
- Added large-lobby support with dynamically sized synchronization data instead of any six-player assumption. Large snapshots and per-player totals are preserved for every connected player.
- Rebuilt the truck overlay as a compact scoreboard with a dark panel, alternating player rows, count badges, self highlighting, responsive multi-column layout, and automatic paging for lobbies too large to fit on one screen.
- Fixed deaths never appearing: deaths are now recorded from the dying player's own
PlayerDeathpath and sent to the host using an owner-verified avatar ViewID. The authenticatedPlayerDeathRPCpath remains as a deduplicated host fallback, so one death is counted once. - Counts remain per save slot. Loading a save restores that save's own tally; a new save starts at
zero. Only the Arena GAME OVER path clears the active save's tally—REPO's unrelated
pre-load
ResetProgresscall cannot erase another save's data. - Shop deaths never count. The check now uses only REPO's current shop-level state and shop flag.
It no longer mistakes the persistent
ShopManagersingleton for proof that the current level is a shop—a bug that could suppress every later normal death and leave the display stuck at zero. - Removed the per-player most-common-death-cause / "Nemesis" display and its unnecessary cause tracking. Existing save files remain readable; their old extra cause columns are simply ignored.
- The package requires only BepInEx. The lobby host needs the mod for the shared tally; clients need it to see the overlay and get the new direct-report reliability path.
1.3.2
- Fixed: death counts survived a save wipe / starting a fresh campaign in the same save slot. The reset
logic only watched for the save FILE NAME changing, but a total-party-wipe (Arena failure) or starting a
new campaign reuses the same save slot with fresh contents — so old counts silently carried over. Now
hooks the game's own
RunManager.ResetProgress(its single choke point for "this save's progress is now zero") directly, so death counts reset in lockstep with everything else the save wipes. - Fixed: some shop deaths still counted despite
IgnoreShopDeaths. Shop detection relied solely on the current level being registered as a shop level, which doesn't always hold. Now also checks whether aShopManageris actually active in the scene, independent of level registration.
1.3.1
- Shop death exclusion: deaths that occur while in the shop no longer count (toggle via
Counting / IgnoreShopDeaths, default on). - Improved death-cause detection: enemies that kill via impact or tumble (e.g. body-slam, dash)
are now attributed correctly instead of always showing "Environment". Works in singleplayer and
for all players in multiplayer. New cause categories:
Fall(fell to death),Player(killed by another player's physics throw), and enemy name for impact kills. - Far fewer false "Environment" deaths:
- Networked damage (explosions, mod abilities) is now tracked too, and traced back to the enemy that caused it.
- The contact window was widened (3.5s -> 8s) so being grabbed/dragged before dying still counts as that enemy's kill.
- New host-side fallback: if a death would still read "Environment", it's attributed to the nearest live enemy at the death spot - this also fixes causes for players running an older version of this mod. True environment deaths (pits, crushers) still show "Environment".
1.3.0
- Nemesis tracking: each player's row now shows the enemy that has killed them the most (e.g.
Player: 5 ☠ Huntsman). Non-enemy deaths (falls, etc.) count as "Environment". Toggle withDisplay / ShowNemesis. Causes are synced to all clients and saved per run like the counts.
1.2.0
- Added a Total line at the bottom of the overlay, summing every player's deaths (toggle with
Display / ShowTotal). - Your own row is now highlighted in a distinct color by default, so you can find your count at a
glance (
Display / HighlightSelf, color viaDisplay / SelfColorHex, default gold). - README now includes a bug reports & feature requests section with a link to the shared feedback form.
1.1.0
- The overlay is now customizable via config (
BepInEx/config/matsu.repo.deathcounter.cfg,[Display]):- Corner — anchor the overlay to any screen corner (default top-right).
- FontSize / TitleFontSize — text sizes.
- TextColorHex / TitleColorHex — text colors as hex RGB.
- SortMode — list order: fewest deaths on top (default), most on top, or by name (A–Z / Z–A).
1.0.2
- Re-inspected and hardened the Photon integration for a stable public release.
- Added defensive guards around the on-screen overlay and the per-frame update loop, so a reflection or state error can never spam the log or interfere with anything else.
1.0.1
- Fixed a serious bug where the mod registered its Photon callbacks at plugin load (during the connection handshake). This could make the multiplayer lobby hang and the invite button fail to appear. Photon callbacks are now registered only while you are actually inside a room, and removed again on leaving — the connection handshake is never touched.
1.0.0
- Initial release. Per-player death counter shown in the truck lobby. Host-authoritative, synced to all clients (including late joiners) via lightweight Photon events, and persisted per save slot (keyed by Steam ID) so counts survive across sessions.