Leaderboard
- Anti-cheese hard gates (Wave≥5 COMP, 100chars+30s WPM/Acc, Wave≥3 COOP)
- Big dynamic headline ("COMPETITIVE SURVIVAL") above active board
- Per-tab info text incl. COMPETITIVE-mode requirement
- LAB/CRT panel + animated scan lines, chromatic-glitch on tab switch
- Pagination: top 100 fetched, 12/page, PgUp/PgDn/wheel/arrow controls
- Game-Over "★ SCORE SUBMITTED" badge
- Diagnostic overlay (F12) + lb_debug.log for Steam-side debug
COOP
- Mech bypassing shield → fixed (take_tower_damage skips is_shielded)
- Tower upgrade Lv1-3 now baseline in COOP (no LAB unlock needed)
- BUILDER material discrepancy: client wave-bonus *5 → *2 (matches host)
- Mech crate no longer spawns during intro tutorial
Stats
- ERROR RATE gauge now shows actual error rate (was showing inverse = duplicate of accuracy)
- BACK typing priority pass (so A/W/S/D nav doesn't eat letters mid-BACK)
- Keyboard heatmap detects QWERTZ via OS layout (not just game language)
Pause / Settings
- BACK now typeable in in-game pause Settings dialog
- Pause menu items highlight green when typed prefix matches
- Settings: WASD navigation parallel to arrows (W/S=up/down, A/D=adjust)
- Settings buffer reset on nav (prevents leftover BACK chars)
ZEN Library
- 2nd-launch "no books" bug → 3 fixes (cache load preserves stale data, empty fetch doesn't wipe cache, _refresh_books no longer early-returns + leaves stale count)
- WASD navigation (S=sync shortcut removed in favor of S=down)
Multiplayer Menu
- Host/Join screen: BACK footer label added (typeable + clickable)
Boss Aphorisms
- "NO APHORISM FOUND" fix: removed double load_next_aphorism in _ready() + cross-language pool fallback in AphorismLoader
- Critical: CSV import changed from csv_translation to keep — was the root cause for shipped builds (CSV wasn't packaged)
Build Menu (MEDIUM)
- Animation uses real-time delta → opens correctly when Engine.time_scale = 0
Infrastructure
- New CrashReporter autoload: writes clean-exit flag, on missing flag posts last 30 log lines to Discord webhook
- Parser error in pause_manager.gd settings-BACK block fixed (explicit types)
- 2 GDScript warnings cleaned (_combo, smoke_owner)
