New layout structure:
1. Top row: Cache Source | Output Location (side by side)
- More vertical space allocated
- Both sections have equal width
2. Middle: Available Icons (full width)
- Takes remaining vertical space
- Expands to fill available area
3. Bottom: Action buttons
- Select All / Select None on left
- Open Output Folder in middle
- Start Extracting Icons (main action) on right
Removed:
- Export Settings box (hardcoded settings)
- EntropiaNexus.com box (already explained in top text)
- Splitter layout (now vertical flow)
Simplified, cleaner UI with all essential elements visible.
Changes:
- Removed "Include ALL version folders" checkbox (redundant with dropdown)
- Adjusted splitter sizes: left panel 420px, right panel 400px
(Available Icons list now takes less space)
- Added Light/Dark theme toggle button in header
- ☀️ Light / 🌙 Dark modes
- Toggle switches between themes
- Dark theme is default
Theme support:
- _toggle_theme() method switches between modes
- _apply_dark_theme() - dark color scheme
- _apply_light_theme() - light color scheme
Code cleanup:
- Removed _on_all_subfolders_changed() method
- Simplified _refresh_file_list() logic
Added ImpulsiveFPS icon as application icon:
- icon.ico in project root
- assets/icon.ico for organization
Icon appears in:
- Window title bar
- Header next to title (48x48)
- Taskbar
Restored all the nice icons throughout the UI:
- 📂 Cache Source, 💾 Output Location, ⚙️ Export Settings
- 🌐 EntropiaNexus.com, 📄 Available Icons, ⚠️ Important Information
- 📁 Version, 🔄 Refresh, ☑️ Include ALL, ▶️ Start Extracting
- ☑️ Select All, ⬜ Select None, 📂 Open Output Folder
- 🖼️ Format, 📐 Canvas, 📏 Size, 📤 Submit, 💡 hint, ✅ Ready
Layout improvements:
- Smaller font (10px) for paths in Cache Source and Output Location
- Reduced padding for better fit
- All emojis restored as requested
UI Cleanup:
- Removed gamepad from header
- Removed emojis from footer
- Cleaned up group box titles (no emojis in section headers)
- Tighter spacing in all boxes for better fit
- Shorter path displays with tooltips for full paths
- Reduced padding and margins throughout
Layout Improvements:
- Cache Source: Shows shortened path with tooltip for full path
- Output Location: Cleaner display with consistent styling
- All boxes now fit content without overflow
- Reduced minimum window size slightly
Icon Support:
- Added header icon placeholder (48x48)
- _load_icon() method loads icon.ico or icon.png
- Icon appears in window title bar and header
- Falls back gracefully if no icon file present
To add your icon:
Place icon.ico or icon.png in same folder as the script, or in assets/ folder
- Removed EntropiaNexus.com from footer
- Description now on two lines with clickable link to EntropiaNexus.com
- Shortened Important Information text:
"REQUIREMENT: Items must be seen in-game before they appear in the cache!
If an icon is missing, view the item in your inventory or the auction first.
Output: Documents/Entropia Universe/Icons/"
- Increased minimum heights for path labels to show full content
- Fixed box sizing for Cache Source, Output Location, and Nexus sections
Major improvements:
1. Disclaimer updated:
- "Entropia Universe Icon Extractor is a fan-made resource..."
2. Important Information moved to bottom:
- Orange header, amber text on dark background
- Larger, easier to read font (13px)
- Better line spacing
3. Improved text readability throughout:
- Larger font sizes (12-13px)
- Better contrast (lighter text on dark bg)
- Bold headers in group boxes
- Consistent spacing and padding
4. Fixed box layouts:
- All content fits properly in Cache Source and Output Location
- Better margins (12, 18, 12, 12)
- Path labels wrap properly with minimum heights
5. Added TGA Preview feature:
- Double-click any icon in the list to preview
- Shows original size and scaled preview
- Modal dialog with close button
- Tooltip on items indicates preview is available
6. Updated styling:
- Better hover effects on list items
- Improved color scheme
- Larger window default size (1150x900)
- Increased minimum window size (1000x800)
- Removed maximumHeight from notice text box (auto-sizes)
- Better spacing and margins in group boxes
- Shorter, wrapped text for paths and labels
- Fixed footer to have proper height and multi-line layout
- Better button sizing and constraints
- Files list now expands to fill available space
Footer now reads:
"Entropia Nexus is a fan-made resource and is not affiliated with MindArk PE AB. Entropia Universe is a trademark of MindArk PE AB."
Also updated header comment with same disclaimer.
Major updates to standalone_icon_extractor.py:
Settings:
- Hardcoded to 320x320 canvas size (removed upscale options)
- Output folder uses Path.home() for any Windows username
- Added explanation about output location (Documents/Entropia Universe/Icons)
UI Changes:
- Removed game controller emoji from title
- Button changed to "Start Extracting Icons" (no rocket emoji)
- Removed all emojis from UI for professional look
Attribution & Legal:
- Footer: "Developed by ImpulsiveFPS"
- Discord contact: impulsivefps
- Disclaimer: Not affiliated with Entropia Universe or Mindark PE AB
- Trademark notice for Entropia Universe
Features:
- Added EntropiaNexus.com link and button
- Added explanation that items must be seen in-game to be cached
- Added "Important Information" box explaining cache requirements
- Icon support (looks for assets/icon.ico or icon.ico)
Technical:
- Uses QSettings under ImpulsiveFPS organization
- Added set_app_icon() function for custom icon support
- Hardcoded base path: C:/ProgramData/Entropia Universe/public_users_data/cache/icon
- Added version subfolder selector dropdown
- Shows icon count per subfolder
- "All Folders" option to merge from all subfolders
- Checkbox to include ALL subfolders at once
- Files list shows folder prefix (e.g., "19.3.2.201024/icon001.tga")
- Refresh button to re-scan for subfolders
- Auto-scan now properly detects and lists version folders
New standalone tool: standalone_icon_extractor.py
A focused, single-purpose GUI tool for extracting Entropia Universe icons:
- Auto-detects cache folder including version subfolders
- Converts TGA to PNG with transparent backgrounds
- Canvas sizing options (64x64 to 512x512)
- Upscale options: None, NEAREST, HQ4x, LANCZOS
- Selective conversion (select specific files or all)
- Saves settings between sessions
- Dark theme UI
Usage:
python standalone_icon_extractor.py
Does not require Lemontropia Suite to be installed/running.
1. Auto-detection now uses rglob to find TGA files in ALL subfolders
- Properly finds icons in version subfolders like 19.3.2.201024
- Shows relative paths in the file list
2. Default settings changed:
- Default canvas: 320x320 (index 5)
- Default upscale: No Upscaling (first in list)
3. Added iconcache.dat parser module (icon_cache_parser.py)
- Attempts to extract item names from binary cache file
- Uses heuristics to find icon ID to name mappings
- New option: "❌ No Upscaling" - keeps original icon size, just centers on canvas
- Useful when you want the icon at original resolution on a larger canvas
- Tooltip updated to explain all options
- When "none" is selected, upscale parameter becomes False
- New module: modules/ai_upscaler.py
- Real-ESRGAN integration for AI-powered upscaling
- Designed specifically for low-res game textures/icons
- 4x upscale factor with neural network enhancement
- Falls back gracefully if model not available
- Updated TGA Converter UI:
- New "AI Enhanced (Real-ESRGAN)" option in upscale dropdown
- Only shown if Real-ESRGAN is installed
- AI upscaling happens before canvas placement
- Shows progress during AI model loading
Real-ESRGAN is much better than basic methods for rendered (non-pixel) icons!
To use AI upscaling:
1. pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu
2. pip install realesrgan
3. Download RealESRGAN_x4plus.pth model
4. Select "AI Enhanced" in the UI
- NEAREST: Sharp pixel edges (best for clean pixel art)
- HQ4x-style: Integer scale first, then smooth to target with edge enhancement
- LANCZOS: Very smooth (best for photorealistic textures)
- Added upscale method selector to UI
- Each method uses UnsharpMask for enhanced crispness
- Use integer scaling (2x, 3x, 4x) instead of fractional for sharp pixels
- Use NEAREST neighbor resampling (better for pixel art than Lanczos)
- Add sharpening filter after upscale
- Reduced padding to 85% so icons fill more of canvas
This produces much sharper results for game icons!
- Now checks 2 levels deep for TGA files (handles version subfolders like 19.3.2.201024)
- convert_cache_folder now uses rglob to find TGA files in all subfolders
- Will auto-detect the version folder in ProgramData
The _apply_canvas method existed but was never called in convert_tga_to_png.
Now properly applies canvas sizing in both PIL and manual conversion paths.
- Removed WebP support (PNG only now)
- Added canvas size selector: Original, 64x64, 128x128, 256x256, 280x280, 320x320, 512x512
- Icons are centered on transparent canvas
- Added 'Upscale small icons' checkbox to scale up small icons to better fill canvas
- Uses high-quality Lanczos resampling for upscaling
- Default canvas size: 320x320
- Updated TGAConverter.convert_tga_to_png() to support 'webp' format
- High quality WebP encoding (quality=95, method=6)
- Added format selector in UI (PNG or WebP)
- Convert button text updates based on selected format
- WebP is better for web uploads: smaller files, better quality
WebP advantages:
- 25-35% smaller file size than PNG
- Better quality at same file size
- Alpha channel support
- Widely supported in modern browsers
- PIL handles more TGA formats correctly
- Manual parser fixed to properly skip ID and color map fields
- Added better error messages with expected vs actual data size
- Fallback chain: PIL first, then manual parser
- Worker now accepts cache_path parameter
- _start_conversion passes the selected path to worker
- Fixes 'Cache folder not found' error during conversion
- Added: C:\ProgramData\Entropia Universe\public_users_data\cache\icon
- Now searches version subfolders (e.g., 19.3.2.201024)
- Also searches ProgramData recursively as fallback
- New module: modules/tga_converter.py
- Reads Truevision TGA format from game cache
- Converts to PNG with proper color handling (BGR->RGB)
- Auto-detects cache folder location
- Batch conversion support
- Handles alpha channels
- New dialog: ui/tga_converter_dialog.py
- Visual interface for TGA conversion
- Shows list of cached .tga files
- Progress tracking during conversion
- One-click convert all
- Added to Tools → Computer Vision → TGA Icon Converter (Ctrl+T)
This is much more efficient than extracting icons from screenshots!
The game already has the icons in cache as .tga files.
Changed default locations:
- Screenshots: Documents/Entropia Universe/Screenshots
- Icons: Documents/Entropia Universe/Icons
This provides better organization and easier access for users.
All directories are created automatically if they don't exist.
- Add Directories group to General tab
- Settings for screenshots directory
- Settings for extracted icons directory
- Browse buttons for both directories
- Values saved to QSettings
- New module: modules/inventory_scanner.py
- Detects inventory and item details windows
- Extracts item icons from inventory grid
- Reads item stats from details panel
- Parses weapon, armor, and common stats
- Handles scrolling (planned for future)
- New dialog: ui/inventory_scanner_dialog.py
- Visual interface for scanning
- Shows extracted icons in grid view
- Displays item stats in table
- Saves results to JSON
- Background worker for non-blocking scans
- Updated main_window.py:
- Added Tools → Computer Vision → Inventory Scanner (Ctrl+I)
- Integrated with existing GameVisionAI
This allows users to extract item data from Entropia Universe
for gear management and loadout configuration.
- Create new ui/settings_dialog.py with tabbed interface
- Tabs: General, Screenshot Hotkeys, Computer Vision, Advanced
- Remove old SettingsDialog from main_window.py
- Update on_settings() to use new comprehensive dialog
- Screenshot hotkey settings now in Settings (Ctrl+,)
- Computer Vision settings now in Settings dialog
- Remove persistent mss.mss() instance from AutoScreenshot
- Use context manager 'with mss.mss() as sct:' for each capture
- Fixes '_thread._local' object has no attribute 'srcdc' error
- Allows screenshots to work from hotkey callbacks in background threads
SQLite's TIMESTAMP type causes auto-conversion issues when data is in ISO format
- Changed all TIMESTAMP columns to TEXT in schema.sql
- Disabled detect_types in database.py to prevent auto-conversion
- This stores datetime as ISO strings without parsing issues
- Convert sqlite3.Row to list before accessing by index
- Add detailed debug logging for troubleshooting
- Fix fromisoformat error by checking for None values
- Add try/except around each row to skip bad data