RoomInfoOverlay
Debug overlay that displays room/module/player/inventory/economy/director/shop/extraction/photon/environment/map/details/internal values on screen.検証用オーバーレイとして部屋/モジュール/プレイヤー/インベントリ/経済/ディレクター/ショップ/納品/Photon/環境/マップ/詳細/内部値を画面表示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 をリフレクションで参照するため、環境により取得できない場合があります
