Belphegor
Persistent addon diagnostics and performance monitor for WoW Midnight 12.0.x. Runs silently in the background catching errors, FPS drops, latency spikes, memory trends, taint violations, and combat performance data, then saves everything to a file you can share for troubleshooting.
Part of the Knowledge addon suite (KnowledgeDemon, Azazel, Bartended).
Why Use This
Most error-catching addons only show errors while you're playing. Belphegor persists across sessions. Errors, FPS spikes, and combat data survive logout and /reload. When something goes wrong, just type /bel export, log out, and send the file. No screenshots needed, no trying to reproduce the problem.
Always-On Monitors (zero configuration)
These run automatically from the moment you log in:
- Error Catcher - captures all Lua errors with source addon, stack trace, timestamp, and combat state. Deduplicates by signature so repeated errors don't spam.
- FPS Monitor - tracks FPS every 2 seconds, logs drops below 20 FPS as "spikes" with timestamp and zone.
- Latency Monitor - checks world latency every 10 seconds, logs spikes above 300ms.
- Memory Trend Tracker - periodic memory snapshots to identify addons with growing memory usage (leaks).
- Combat Logger - records combat session duration, FPS performance, event frequency, and top CPU consumers per fight. Uses targeted combat events by default (safe mode, zero taint).
- Taint Watcher - catches taint (protected function call) violations that cause "action blocked" errors.
Diagnostic Modes
Belphegor has two diagnostic modes for its combat logger and event sampler:
Safe Mode (default) - registers 28 specific combat-relevant events. Covers 95%+ of combat event volume. Zero taint. NPC dialogue, vendors, and mounting work normally for any session length.
Deep Diagnostics - registers ALL game events (RegisterAllEvents). Captures everything including events outside the combat list. Warning: causes taint accumulation over time, which can break NPC interaction, vendor windows, and mounting after extended play. Intended for short debugging sessions only. Toggle with /bel deepdiag, requires /reload to apply.
Commands
Always-On Logs
| Command |
Description |
/bel or /bel help |
Show all commands |
/bel status |
Dashboard: quick overview of all monitors |
/bel errors |
Error log (deduplicated) |
/bel errors full |
Error log with stack traces |
/bel errors clear |
Clear error history |
/bel spikes |
FPS spike log |
/bel latency |
Latency spike log |
/bel leaks |
Memory trend data |
/bel combats |
Combat session history |
/bel taint |
Taint violation log |
On-Demand Tools
| Command |
Description |
/bel system |
System/environment info |
/bel memory |
Memory usage top 20 addons |
/bel memory full |
Memory usage all addons |
/bel cpu |
CPU profiling (requires scriptProfile CVar) |
/bel cpu delta |
CPU usage over 10-second window |
/bel events |
Event frequency sampling (5 seconds) |
/bel events combat |
Event frequency during combat |
/bel audit |
Event registration audit |
/bel timers |
Active ticker dump |
/bel tickertest |
Ticker leak detection (15 second test) |
/bel fps |
FPS sampling (30 seconds) |
/bel fps combat |
FPS sampling during next combat |
/bel gc |
Garbage collection churn (10 seconds) |
/bel gc force |
Force GC and measure clean baseline |
/bel visibility |
Developer visibility checklist |
/bel suggest |
Performance setting recommendations |
/bel all |
Full diagnostic report |
/bel all combat |
Full report including combat data |
Alerts
| Command |
Description |
/bel mute |
Toggle ALL chat alerts |
/bel mute fps |
Toggle FPS spike alerts |
/bel mute errors |
Toggle error alerts |
/bel mute combat |
Toggle combat perf alerts |
/bel mute taint |
Toggle taint alerts |
Data & Settings
| Command |
Description |
/bel export |
Save all session data to file |
/bel reset |
Clear all saved data |
/bel deepdiag |
Toggle deep diagnostics (RegisterAllEvents) |
How to Send Diagnostic Data
If you're experiencing issues with any Knowledge addon (KnowledgeDemon, Azazel, Bartended) or need performance help:
- Play normally. Belphegor runs in the background automatically
- When you encounter the problem, type
/bel export in chat
- Log out of WoW (or
/reload)
- Find the file at:
WTF/Account/<YOUR_ACCOUNT>/SavedVariables/Belphegor.lua
- Upload that file to the Knowledge Discord in the support channel
That single file contains all errors (with stack traces and source addon), FPS history, latency data, combat logs, and taint violations from your session. Tag DogGodFrogLog for support.
Installation
Download and extract into your Interface/AddOns/ folder. No configuration needed. All monitors start automatically on login.
Credits
Created by DogGodFrogLog / Sunya (Tichondrius)