# 2026-02-13 - EU-Utility Major Update ## UI Fixes Applied - **Removed decorative lines** from header (user complaint about "weird lines") - **Added scroll area** to sidebar - prevents expanding out of screen - **Added drag functionality** - click and drag header to move window - **Removed ALL emojis** from all plugins (replaced with text only) ## New Features Implemented ### 1. Resizable Window - Removed `FramelessWindowHint` - Window now fully resizable with minimum size 600x400 - Shows in taskbar properly ### 2. Plugin Index Bug Fix - **Fixed**: Clicking Spotify opened TP Runner instead - Root cause: Plugin index tracking was incorrect - Solution: Track buttons in list, store correct index in UserRole data ### 3. Skill Scanner v2.0 (Complete Rewrite) **OCR Features:** - Screenshot capture of skills window - EasyOCR/Pytesseract fallback - Parses skill names, ranks, points **Log Watching:** - Real-time chat.log monitoring - Automatic skill gain detection - Patterns: "Aim has improved by 5.2 points", "You gained 10 points in Rifle" - Automatically adds gains to total values - Real-time gain display in UI ### 4. Profession Scanner (NEW PLUGIN) - OCR scan of professions window - Tracks profession ranks (Elite, Champion, etc.) - Progress percentage with visual bars - 21st plugin added to EU-Utility ### 5. Customizable Dashboard - Click "Customize" to select widgets - Available widgets: - PED Balance - Skills Tracked - Inventory Items - Current DPP - Today's Skill Gains - Professions Count - Active Missions - Codex Progress - Globals/HOFs - Session Time - Auto-refresh every 5 seconds - Reads data from all plugin JSON files ### 6. Core Services (NOT Plugins!) Following user's requirement - OCR and Log are core services, not plugins. **Log Reader (`core/log_reader.py`):** - Real-time chat.log monitoring in background thread - Event parsing: skill_gains, loot, globals, damage, heals, missions, etc. - Publisher/subscriber pattern for plugins - Auto-detects EU log file location - Cache of recent 1000 lines **OCR Service (`core/ocr_service.py`):** - Multi-backend support: EasyOCR → Tesseract → PaddleOCR - Auto-fallback if primary backend unavailable - Screen capture (full or region) - Returns structured results with bounding boxes - `quick_ocr()` convenience function **PluginAPI Integration:** - `api.ocr_capture(region)` - All plugins can use OCR - `api.read_log(lines, filter)` - All plugins can read log - Services auto-initialized on app startup - Registered with PluginAPI for universal access ## Commits Made - `5b127cf` - UI fixes (drag, scroll, no emojis) - `72c3c13` - Resizable window, OCR scanners, customizable dashboard - `bcd4574` - All plugins disabled by default with enable/disable UI - `7f6547f` - Fixed box-in-box UI, added Settings button to header - `8ee0e56` - Fixed window taskbar visibility - `f6c4971` - Core OCR and Log services with API integration ## Total Plugins: 21 ## Core Services: 2 (OCR, Log Reader)