REPO_JP-RoomInfoOverlay icon

RoomInfoOverlay

Debug overlay that displays room/module/player/inventory/economy/director/shop/extraction/photon/environment/map/details/internal values on screen.検証用オーバーレイとして部屋/モジュール/プレイヤー/インベントリ/経済/ディレクター/ショップ/納品/Photon/環境/マップ/詳細/内部値を画面表示

By REPO_JP
Last updated 2 months ago
Total downloads 469
Total rating 7 
Categories Mods Tools Client-side
Dependency string REPO_JP-RoomInfoOverlay-1.0.0
Dependants 0 other packages depend on this package

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

RoomInfoOverlay

A debug overlay that prints many internal runtime values on screen for troubleshooting and reverse-engineering.

Features

  • On-screen overlay with anchor, padding, font, colors, and background alpha
  • Section-based output with per-section enable toggles
  • Performance-focused update model:
    • Disabled sections are not fetched
    • Enabled sections are refreshed sequentially (round-robin) to spread load
    • Cached section text is concatenated into a snapshot for drawing
  • Supported sections (configurable)
    • Module, Room, Player, Inventory, Economy/Run, GameDirector, ShopManager, Extraction/Cart, Photon, Environment, Map, Details, Debug
    • DeepDump: Player, Inventory, GameDirector, ShopManager, ExtractionCart, Photon, Economy
    • DeepScan: Economy keyword scan

How it works

  • Uses Unity OnGUI for rendering
    • Builds GUIStyle inside OnGUI and reuses it via a computed style key
    • Measures text with CalcSize per line and caches panel size by a measurement key
  • Uses reflection for internal/private fields
    • Caches FieldInfo for frequently accessed internal fields (Module, RoomVolumeCheck, PlayerAvatar, PlayerHealth, RunManager)
    • Finds singleton-like objects by type name and common static member names (instance/Instance/Singleton/etc.)
  • Implements sequential refresh
    • Maintains an active section order based on config hash
    • Updates only N sections per tick (SectionsPerTick), round-robin
    • Stores each section output in a dictionary cache and rebuilds snapshot text from the cache
  • DeepDump / keyword scan
    • DeepDump traverses object graphs with recursion depth, member count limits, and optional private/field/property inclusion
    • Keyword scan performs a breadth-first traversal and prints matching member names/values

Configuration

All settings are in BepInEx config.

A General

  • EnableMod
  • UpdateIntervalSeconds
  • ShowSectionHeaders
  • SectionsPerTick

B Appearance

  • Anchor (TopLeft/TopRight/BottomLeft/BottomRight/Center/CenterTop)
  • OffsetX / OffsetY
  • FontSize / LineSpacing
  • PaddingX / PaddingY
  • TextColorR/G/B/A
  • BackgroundColorR/G/B
  • BackgroundAlpha

B2 Deep

  • MaxListEntries
  • SortDictionaries

C Contents

  • Per-section toggles for each displayed line group
  • DeepDump toggles for each DeepDump section
  • Economy scan/deep-dump toggles

D DeepDump

  • MaxDepth
  • MaxMembersPerObject
  • IncludePrivate
  • IncludeFields
  • IncludeProperties
  • MaxStringLength
  • EconomyKeywords
  • EconomyMaxTypes

Notes / Caveats

  • Intended for debugging. Enabling many sections, especially DeepDump/Scan, can be expensive
  • Some values may show as "Unknown" when fields/properties are unavailable in a specific game version
  • Photon info is obtained via reflection (Photon.Pun.PhotonNetwork) and may be unavailable if assemblies/types differ

RoomInfoOverlay

内部値の調査やデバッグ向けに、ゲーム実行中の各種情報を画面上に表示するオーバーレイです。

機能

  • 表示位置、余白、フォント、色、背景透明度などを設定可能
  • セクション単位で表示項目をON/OFF可能
  • 軽量化のための更新方式
    • OFFのセクションは取得処理を行わない
    • ONのセクションをラウンドロビンで順次更新して負荷を分散
    • 各セクションの文字列をキャッシュし、描画時は結合だけで表示
  • 対応セクション(設定で切替)
    • Module, Room, Player, Inventory, Economy/Run, GameDirector, ShopManager, Extraction/Cart, Photon, Environment, Map, Details, Debug
    • DeepDump: Player, Inventory, GameDirector, ShopManager, ExtractionCart, Photon, Economy
    • DeepScan: Economy キーワードスキャン

実装概要

  • 描画は Unity の OnGUI
    • GUIStyle は OnGUI 内で生成し、キー計算で再利用
    • 行ごとに CalcSize してパネルサイズを算出し、キーでキャッシュ
  • 内部値はリフレクションで取得
    • 頻出フィールドは FieldInfo をキャッシュ(Module/RoomVolumeCheck/PlayerAvatar/PlayerHealth/RunManager)
    • 型名でシングルトンを探索し instance/Instance/Singleton などの静的メンバーを参照
  • 順次更新
    • 設定の有効状態からアクティブセクション順を構築
    • 1tickあたり N セクションだけ更新(SectionsPerTick)
    • セクションごとの結果は辞書キャッシュし、スナップショット文字列を再生成
  • DeepDump / キーワードスキャン
    • DeepDump は再帰深度、メンバー数、private/field/property などを制御してオブジェクトを辿る
    • キーワードスキャンはBFSで探索して一致したメンバー名/値を出力

設定

BepInEx の設定ファイルで変更します。

A General

  • EnableMod
  • UpdateIntervalSeconds
  • ShowSectionHeaders
  • SectionsPerTick

B Appearance

  • Anchor(TopLeft/TopRight/BottomLeft/BottomRight/Center/CenterTop)
  • OffsetX / OffsetY
  • FontSize / LineSpacing
  • PaddingX / PaddingY
  • TextColorR/G/B/A
  • BackgroundColorR/G/B
  • BackgroundAlpha

B2 Deep

  • MaxListEntries
  • SortDictionaries

C Contents

  • 各セクションの表示トグル
  • DeepDump/Scan の各トグル

D DeepDump

  • MaxDepth
  • MaxMembersPerObject
  • IncludePrivate
  • IncludeFields
  • IncludeProperties
  • MaxStringLength
  • EconomyKeywords
  • EconomyMaxTypes

注意

  • デバッグ用途です。DeepDump/Scan や多数セクションONは重くなります
  • ゲーム側の型/フィールド差異により "Unknown" 表示になる場合があります
  • Photon情報は Photon.Pun.PhotonNetwork をリフレクションで参照するため、環境により取得できない場合があります