- Fixed fcntl import error on Windows
- Added portalocker as Windows fallback
- Graceful degradation if no locking available
- Updated requirements.txt with platform-specific deps
All 10 core services implemented and integrated:
CORE SERVICES:
1. Nexus API Client - Search items, mobs, market data
2. Data Store - Plugin persistence with auto-backup
3. Notification System - Toast notifications with sounds
4. Window Manager - EU window detection and focus
5. HTTP Client - Cached HTTP with rate limiting
6. Event Bus - Typed events with pub/sub
7. Audio Service - Sound playback with volume control
8. Clipboard Manager - Copy/paste with history
9. Screenshot Service - Screen capture with auto-save
10. Task Manager - Thread pool with priorities
Each service:
- Singleton pattern
- Thread-safe
- PluginAPI integration
- BasePlugin convenience methods
Updated:
- core/main.py - Initialize all services
- core/plugin_api.py - Service registration
- plugins/base_plugin.py - Exposed methods
Core services created by swarm agents:
- core/nexus_api.py - Entropia Nexus API client
- core/data_store.py - Plugin data persistence
- core/notifications.py - Toast notification system
- core/window_manager.py - Window management utilities
- core/http_client.py - HTTP client with caching
- core/plugin_api.py - Enhanced with new services
Services integrate with PluginAPI for plugin access.
TODO: Final integration and testing.
FIXES:
- OCR now uses lazy initialization (only loads when first used)
- Fixed PaddleOCR invalid use_gpu parameter (some versions don't support it)
- Added fallback try/except for PaddleOCR without use_gpu
- App starts immediately, OCR initializes on first scan
- Prevents long startup delays from model downloading
CHANGES:
- OCRService._init_backends() only called on first use
- Removed eager initialization from main.py startup
- Better error handling for backend failures
FIXES:
- Removed margins causing 'box in a box' effect
- Removed inner container border (window has OS frame)
- Window now fills properly without nested boxes
NEW:
- Added Settings button to header (always accessible)
- Settings dialog shows all available plugins
- Check/uncheck to enable/disable
- Shows message when no plugins enabled
- Save & Apply reloads plugins immediately
CHANGES:
- All plugins now disabled by default (empty enabled list)
- Settings > Plugins tab shows all discovered plugins
- Checkboxes to enable/disable individual plugins
- Enable All / Disable All buttons
- Changes take effect immediately (no restart needed for most)
- Plugin state saved to config/plugins.json
PLUGIN MANAGER:
- is_plugin_enabled() - must be explicitly enabled
- enable_plugin() - loads and initializes plugin
- disable_plugin() - unloads plugin
- get_all_discovered_plugins() - returns all available plugins
Removed Qt.WindowType.Tool flag which was hiding app from taskbar.
App now appears in Windows taskbar and can be closed from there.
Window still stays on top with WindowStaysOnTopHint.
- Centered title with decorative lines like SKILLS window
- Orange left border (3px) on selected/active items
- Updated colors to match exact game palette:
- Teal progress bars (#4ecdc4)
- Orange window border
- Better background colors
- Category label style like ALL CATEGORIES
- Clean sidebar with proper borders
- Match EU window aesthetic more closely
ICON SYSTEM:
- Replaced emojis with actual SVG icons
- New icon_manager.py with IconManager class
- PLUGIN_ICONS mapping for all plugins
- Default gear icon for plugins without icons
- All icons are white SVG line icons
NEW ICONS (14):
grid, trending-up, package, pickaxe, award, book, dollar-sign, archive, message-square, map, navigation, shopping-bag, tool, box, zap
ICON EXTRACTOR INTEGRATION:
- New core/icon_extractor.py
- TGAReader class for reading EU TGA cache files
- IconCacheManager for extracting and caching icons
- Supports RLE compressed TGA
- Converts BGR to RGB
UI IMPROVEMENTS:
- Cleaner, more game-like layout
- Sidebar with plugin selector (200px width)
- View toggle: Grid view vs List view
- No emojis anywhere
- Better spacing and padding
- EU-UTILITY title (no emoji)
Total icons now: 32 SVG icons
Fixed: 'table' and 'tab' style entries had mismatched quotes
Changed: Closing quotes from "' to """ to match opening quotes
This was causing: SyntaxError: invalid decimal literal
BUG FIXES:
- Fixed missing 'Path' import in overlay_widgets.py
- Added 'json' and 'platform' imports
ROBUSTNESS:
- Plugin manager now catches ALL errors during plugin load
- One plugin crash won't kill the app
- Detailed error messages with stack traces
- Plugins with errors are skipped gracefully
PLUGIN API SYSTEM:
- New core/plugin_api.py - Central API registry
- BasePlugin updated with API methods:
- register_api() - Expose functions to other plugins
- call_api() - Call other plugin APIs
- ocr_capture() - Shared OCR service
- read_log() - Shared log reading
- get/set_shared_data() - Cross-plugin data
- publish_event/subscribe() - Event system
API TYPES:
- OCR - Screen capture services
- LOG - Chat/game log reading
- DATA - Shared data storage
- UTILITY - Helper functions
- SERVICE - Background services
CROSS-PLUGIN FEATURES:
- Any plugin can expose APIs
- Any plugin can consume APIs
- Shared OCR abstraction
- Shared log reading
- Event pub/sub system
- Utility functions (format_ped, calculate_dpp, etc.)
Example usage:
# Register API
self.register_api(scan_window, self.scan, APIType.OCR)
# Call API
result = self.call_api(other.plugin, scan_window)
# Use shared services
text = self.ocr_capture()
logs = self.read_log(lines=100)
For EntropiaNexus.com dev: You can now expose APIs from your plugin
that other plugins can use! 🚀
MAJOR UPDATES:
- Overlay Window completely redesigned with EU styling
- Uses exact EU color palette from game screenshots
- Dark blue/gray backgrounds matching EU UI
- Orange (#ff8c42) accent colors
- Proper EU border styling
- Shadow effects matching game windows
NEW PLUGIN:
- Dashboard - Main overview with stats, quick actions, activity feed
- Shows PED balance, skill count, items, DPP
- Quick action grid for common tasks
- Recent activity timeline
- Pro tips section
EU STYLING APPLIED:
- Header with orange EU-Utility logo
- Plugin bar with EU-styled buttons
- Proper border radius (8px main, 4px buttons)
- Tray menu styled to match
- Consistent color scheme throughout
Total plugins: 19
SWARM COMPLETE! 🚀🚀🚀
- Scan Skills window with OCR for rank + points
- Detect progress bars for decimal precision
- ESI scanner for skill gain predictions
- Track skill gains from chat messages
- Store data in JSON for analysis
- Export to CSV for graphing
- Hotkey: Ctrl+Shift+S
Dependencies:
pip install easyocr pyautogui pillow
Data stored in data/skills/ for formula analysis!
- Floating icon now matches Entropia Universe aesthetic
- Dark blue/gray background with subtle border
- Positioned at top-left (250, 10) near other game icons
- Click vs drag detection (5px threshold)
- Hover effect with lighter border
- Subtle blue glow effect
- Add draggable floating icon (⚡) in top-left corner
- Double-click floating icon to toggle overlay
- Game Reader plugin for OCR scanning
- Capture screen and extract text from game menus
- Copy captured text to clipboard
- Hotkey: Ctrl+Shift+R for quick capture
Installation for OCR:
pip install easyocr
or
pip install pytesseract
The floating icon makes EU-Utility easily accessible during gameplay!
- Frosted glass effect with transparency
- Rounded corners (20px radius)
- Header bar with search icon
- Circular plugin icon buttons at bottom
- Emoji icons instead of text labels
- Subtle shadows and highlights
- macOS-style aesthetic
- Plugins now sit on transparent background
Spotify Controller:
- Shows current track title, artist, album
- Displays position/duration time
- Progress bar updates in real-time
- Fetches info from Spotify every second
- Album art placeholder (💿)
- Volume slider with visual feedback
Calculator:
- Windows Calculator layout
- Memory buttons (MC, MR, M+, M-, MS, M~)
- Scientific functions (1/x, x², √x)
- Standard operators with proper styling
- Blue equals button like Windows
- Backspace, CE, C, % buttons
- +/- sign toggle
- Memory operations working
- Add NexusAPIClient class for API calls
- Use /api/market/exchange for item search
- Use /api/users/search for user search
- Use /api/market/prices/latest for price data
- Results shown in table with Name/Type/Price
- Click to open item on Nexus website
Thanks to EntropiaNexus for the API!
New Plugins:
- Calculator: Basic math + EU unit conversions (PED/PEC/DPP)
- Spotify Controller: Control local Spotify with media keys
Calculator Features:
- Basic calculator with +, -, ×, ÷
- PED to PEC/USD converter
- DPP (Damage Per Pec) calculator
Spotify Features:
- Play/Pause toggle
- Next/Previous track
- Volume control slider
- Global hotkey (Ctrl+Shift+M)
- Works on Windows/Linux/macOS
Updated requirements.txt with optional dependencies
- Fix mobs URL (was /creatures, now /mobs)
- Show search results in overlay list
- Better URL construction per search type
- Direct item link option
- Results displayed before opening browser