NEW FEATURES:
1. Plugin Dependency Declaration (BasePlugin):
- Added 'dependencies' class attribute
- Format: {'pip': ['package1', 'package2'], 'optional': {...}}
- Plugins can declare required pip packages
2. Plugin Dependency Manager (core/plugin_dependency_manager.py):
- Checks if declared dependencies are installed
- Installs missing packages via pip
- Tracks installation status
- Shows progress dialog during installation
3. Settings Dialog Integration:
- When enabling a plugin with dependencies, shows dialog
- Lists missing dependencies
- Asks user if they want to install
- Shows progress bar during installation
- Handles installation failures gracefully
4. Example: Game Reader Test plugin:
- Declares dependencies: pillow, numpy
- Optional: easyocr, pytesseract, paddleocr
- When enabled, prompts to install if missing
WORKFLOW:
1. User enables a plugin in Settings → Plugins
2. System checks if plugin has dependencies
3. If dependencies missing, shows dialog
4. User clicks Yes to install
5. Progress dialog shows installation progress
6. Plugin loads after dependencies installed
This eliminates manual pip install steps for plugins!
|
||
|---|---|---|
| .github/workflows | ||
| assets | ||
| benchmarks | ||
| core | ||
| data/plugins | ||
| docs | ||
| plugins | ||
| tests | ||
| .gitignore | ||
| BUG_FIX_REPORT.md | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| FEATURE_IMPLEMENTATION_SUMMARY.md | ||
| README.md | ||
| RELEASE_NOTES_v2.1.0.md | ||
| SECURITY_AUDIT_REPORT.md | ||
| SECURITY_FIXES_APPLIED.md | ||
| code_review_report.py | ||
| pytest.ini | ||
| requirements.txt | ||
| test_bugs.py | ||
README.md
EU-Utility 🎮
A versatile Entropia Universe utility suite with a modular plugin system
EU-Utility is a powerful overlay utility designed specifically for Entropia Universe players. It provides quick access to calculators, trackers, search tools, and integrations without leaving the game.
✨ Features
- 🎮 Global Hotkey Overlay - Quick access with customizable keyboard shortcuts
- 🔌 Modular Plugin System - 25+ built-in plugins, create your own
- 🔍 Universal Search - Search Entropia Nexus for items, mobs, locations instantly
- 🧮 Smart Calculators - DPP, crafting, enhancer calculations
- 📊 Comprehensive Trackers - Loot, skills, missions, codex, globals, and more
- 🎵 Media Integration - Spotify control without alt-tabbing
- 📷 OCR Game Scanner - Read in-game text directly
- 📈 Real-time Data - Live market data via Nexus API
📋 Table of Contents
🚀 Installation
Prerequisites
- Python 3.11 or higher
- Windows 10/11 (full support) or Linux (limited support)
- Entropia Universe (optional, for game integration features)
Step 1: Download
git clone https://github.com/ImpulsiveFPS/EU-Utility.git
cd EU-Utility
Step 2: Install Dependencies
pip install -r requirements.txt
Step 3: Launch
python -m core.main
💡 Tip: The floating icon will appear on your screen. Double-click it to open the main overlay.
📷 OCR Requirements (Optional)
For Game Reader and Skill Scanner plugins that use OCR (text recognition), you need to install one of these OCR engines:
Option 1: EasyOCR (Recommended - Auto-installs)
pip install easyocr
EasyOCR downloads models automatically on first use. No additional setup needed.
Option 2: Tesseract (Alternative)
- Download Tesseract installer: https://github.com/UB-Mannheim/tesseract/wiki
- Install to
C:\Program Files\Tesseract-OCR\ - Add to PATH or install Python wrapper:
pip install pytesseract
Option 3: PaddleOCR (Advanced)
pip install paddleocr
ℹ️ Note: If no OCR engine is installed, the Game Reader plugin will show "OCR not available" but the rest of EU-Utility will work fine.
🏁 Quick Start
First Launch
- Start EU-Utility - Run
python -m core.main - Floating Icon Appears - A small icon appears on your screen
- Double-click to open the main overlay
- Use hotkeys for instant access (see below)
The Floating Icon
The floating icon is your quick access point to EU-Utility:
| Action | Result |
|---|---|
| Double-click | Toggle main overlay |
| Right-click | Context menu |
| Drag | Move to preferred position |
Main Overlay
The overlay is a semi-transparent window that stays on top:
- 📑 Plugin tabs on the left - Switch between plugins
- 📋 Plugin content in the center - The active plugin's interface
- ⚡ Quick actions at the bottom - Common shortcuts
⌨️ Hotkeys
Global hotkeys work even when EU-Utility is hidden:
| Hotkey | Action | Plugin |
|---|---|---|
Ctrl + Shift + U |
Toggle main overlay | Global |
Ctrl + Shift + H |
Hide all overlays | Global |
Ctrl + Shift + F |
Universal Search | Search |
Ctrl + Shift + N |
Nexus Search | Search |
Ctrl + Shift + C |
Calculator | Utility |
Ctrl + Shift + D |
DPP Calculator | Calculator |
Ctrl + Shift + E |
Enhancer Calc | Calculator |
Ctrl + Shift + B |
Crafting Calc | Calculator |
Ctrl + Shift + L |
Loot Tracker | Tracker |
Ctrl + Shift + S |
Skill Scanner | Tracker |
Ctrl + Shift + X |
Codex Tracker | Tracker |
Ctrl + Shift + R |
Game Reader (OCR) | Scanner |
Ctrl + Shift + M |
Spotify Controller | Media |
Ctrl + Shift + Home |
Dashboard | Overview |
Ctrl + Shift + , |
Settings | Configuration |
📝 Customize hotkeys in Settings → Hotkeys
🔌 Plugins
EU-Utility comes with 25 built-in plugins organized by category:
🏠 Dashboard & Utility
| Plugin | Description | Hotkey |
|---|---|---|
| Dashboard | Customizable start page with avatar stats | Ctrl+Shift+Home |
| Calculator | Standard calculator | Ctrl+Shift+C |
| Settings | Configure EU-Utility preferences | Ctrl+Shift+, |
| Plugin Store | Community plugin marketplace | - |
🔍 Search & Information
| Plugin | Description | Hotkey |
|---|---|---|
| Universal Search | Search all Nexus entities (items, mobs, locations) | Ctrl+Shift+F |
| Nexus Search | Search items and market data | Ctrl+Shift+N |
| TP Runner | Teleporter locations and route planner | - |
🧮 Calculators
| Plugin | Description | Hotkey |
|---|---|---|
| DPP Calculator | Damage Per PEC and weapon efficiency | Ctrl+Shift+D |
| Crafting Calc | Blueprint calculator with success rates | Ctrl+Shift+B |
| Enhancer Calc | Enhancer break rates and costs | Ctrl+Shift+E |
📊 Trackers
| Plugin | Description | Hotkey |
|---|---|---|
| Loot Tracker | Track hunting loot with ROI analysis | Ctrl+Shift+L |
| Skill Scanner | OCR-based skill tracking | Ctrl+Shift+S |
| Codex Tracker | Creature challenge progress | Ctrl+Shift+X |
| Mission Tracker | Mission and objective tracking | - |
| Global Tracker | Track globals, HOFs, and ATHs | - |
| Mining Helper | Mining claims and hotspot tracking | - |
| Auction Tracker | Price and markup tracking | - |
| Inventory Manager | TT value and item management | - |
| Profession Scanner | Profession rank tracking | - |
🎮 Game Integration
| Plugin | Description | Hotkey |
|---|---|---|
| Game Reader | OCR for in-game menus and text | Ctrl+Shift+R |
| Chat Logger | Log, search, and filter chat | - |
| Event Bus Example | Demonstrates event system | - |
🎵 External Integration
| Plugin | Description | Hotkey |
|---|---|---|
| Spotify Controller | Control Spotify playback | Ctrl+Shift+M |
📚 Documentation
Comprehensive documentation is available in the docs/ folder:
| Document | Description |
|---|---|
| User Manual | Complete user guide |
| Plugin Development Guide | Create custom plugins |
| API Reference | Core services API |
| Troubleshooting | Common issues & solutions |
| Nexus API Reference | Nexus integration |
| Security Hardening | Security best practices |
| Plugin Development | Quick-start guide |
| Nexus Usage Examples | API usage samples |
| Nexus Linktree | Nexus resource links |
| Task Service | Background tasks |
🔧 Plugin Development
Create your own plugins to extend EU-Utility:
from plugins.base_plugin import BasePlugin
from PyQt6.QtWidgets import QWidget, QVBoxLayout, QLabel
class MyPlugin(BasePlugin):
"""My first EU-Utility plugin."""
name = "My Plugin"
version = "1.0.0"
author = "Your Name"
description = "What my plugin does"
hotkey = "ctrl+shift+y"
def initialize(self):
self.log_info("My Plugin initialized!")
def get_ui(self):
widget = QWidget()
layout = QVBoxLayout(widget)
layout.addWidget(QLabel("Hello from My Plugin!"))
return widget
See Plugin Development Guide for complete documentation.
🤝 Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
Quick Start for Contributors
# Fork and clone
git clone https://github.com/YOUR_USERNAME/EU-Utility.git
cd EU-Utility
# Create branch
git checkout -b feature/my-feature
# Make changes and test
python -m pytest
# Commit and push
git commit -m "Add my feature"
git push origin feature/my-feature
# Open Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Entropia Nexus - For the comprehensive API and game data
- MindArk - Creators of Entropia Universe
- Community Contributors - Plugin developers and testers
📞 Support
- Documentation: Check the
docs/folder - Issues: Open a GitHub issue
- Discussions: Join our community Discord
Made with ❤️ by ImpulsiveFPS + Entropia Nexus
EU-Utility is an unofficial tool and is not affiliated with MindArk PE AB.
