You are viewing a potentially older version of this package. View all versions.
matsu-RepoDeathCounter-1.4.0 icon

RepoDeathCounter

Per-save death counter shown in the truck. Fixed deaths not being recorded; shop deaths never count, and GAME OVER resets only the active save's tally.

By matsu
Date uploaded 2 weeks ago
Version 1.4.0
Download link matsu-RepoDeathCounter-1.4.0.zip
Downloads 25
Dependency string matsu-RepoDeathCounter-1.4.0

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

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.
  • 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.
  • 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.0 also send a direct, owner-verified death report to the host.
  • The overlay only appears in the truck lobby. Toggle it with the Display / ShowOverlay config 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 it always says No deaths recorded yet, confirm that the host has Matsu.RepoDeathCounter.dll as an actual .dll under BepInEx/plugins. Files renamed to .dll.DISABLED or .dll.OFF are intentionally ignored by BepInEx.
  • After launching, BepInEx/LogOutput.log should contain REPO Death Counter 1.4.0 loaded, two Patched PlayerAvatar... lines, and one Patched RunManager.ResetProgress... line. No extra dependency is required.

Config

BepInEx/config/matsu.repo.deathcounter.cfg → [Display]

  • ShowOverlay (default true)
  • Corner — TopRight (default) / TopLeft / BottomRight / BottomLeft
  • FontSize, TitleFontSize — text sizes
  • TextColorHex, TitleColorHex — hex RGB colors (e.g. FFFFFF)
  • SortMode — DeathsAscending (fewest on top, default) / DeathsDescending / NameAscending / NameDescending
  • ShowTotal (default true) — adds a "Total" line summing everyone's deaths
  • HighlightSelf (default true) — draws your own row in a different color
  • SelfColorHex (default FFD700, gold) — your row's color when HighlightSelf is on

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. 用の、プレイヤーごとの「死亡回数カウンター」。レベル間のトラック内に表示されます。

特徴

  • 各プレイヤーの死亡回数を、トラック・ロビーの右上に一覧表示します。
  • ホスト権威&同期: ホストが全員の死亡を集計し、全クライアントへ配信。全員がリアルタイムで同じ数字を見られます。
  • 途中参加対応: ラン途中で参加した人(LateJoinNow など)にも、現在の集計が自動で同期されます。
  • セーブデータごとに集計: セーブスロットごとに別の死亡数を保持します。該当セーブをロードすると復元され、新規作成したセーブは0から開始、GAME OVERではそのセーブだけをリセットします。
  • キーは Steam ID。改名や再参加をしても、正しいプレイヤーにカウントが紐づきます。
  • ショップでの死亡は常に除外: 設定ではなくMOD側で必ず除外します。

注意

  • 必要な依存MODは BepInEx のみです。REPOLibなどは不要です。
  • 共有カウントにはロビーのホストがMODを導入してください。表示する各クライアントも導入を推奨します。1.4.0のクライアントは、自分の死亡を所有者検証付きでホストへ直接通知します。
  • オーバーレイはトラック・ロビーでのみ表示。Display / ShowOverlay 設定でオン/オフできます。
  • 死亡データはゲーム本体のセーブとは別ファイル(persistentDataPath 配下)に保存され、バニラのセーブ整合性には一切触れません。

動かない場合

  • 見出しが出ない、または常に No deaths recorded yet と出る場合は、ホストの BepInEx/plugins 配下に Matsu.RepoDeathCounter.dll が実際の .dll として置かれているか確認してください。 .dll.DISABLED や .dll.OFF にリネームされたファイルは BepInEx が意図的に読み込みません。
  • 起動後の BepInEx/LogOutput.log に REPO Death Counter 1.4.0 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 / NameDescending
  • ShowTotal(既定 true)— 全員の死亡数合計を「Total」として一番下に表示
  • HighlightSelf(既定 true)— 自分の行だけ色を変えて分かりやすく表示
  • SelfColorHex(既定 FFD700, ゴールド)— HighlightSelf 有効時の自分の行の色

バグ報告・要望

不具合報告や機能要望はこちらのフォームからお願いします: 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 PlayerDeath path and sent to the host using an owner-verified avatar ViewID. The authenticated PlayerDeathRPC path 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 ResetProgress call 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 ShopManager singleton 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 a ShopManager is 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 with Display / 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 via Display / 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.