Releases: Ozy311/StarLogs
v0.9.1 - Parser Fixes & UI Polish
StarLogs v0.9.1 - Changelog
Release Date: 2025-11-09
Overview
v0.9.1 is a bug fix and UI polish release focused on resolving parser issues, improving event classification accuracy, and enhancing the user interface with better controls and persistence.
Bug Fixes
Parser Improvements
- Fixed Corpse Event Buffering - Corpse events are now properly flushed at log processing completion, preventing missed events
- Fixed Variable Scope Error - Resolved variable scope issue in suicide event parsing that could cause crashes
- Comprehensive Event Classification - Improved event classification logic to better distinguish between event types and reduce false positives/negatives
UI Fixes
- Word Wrap Setting - Fixed log panels to properly respect the word wrap setting when rendering log content
- UTF-8 JSON Handling - Fixed config file encoding issues with special characters and emoji in JSON responses
UI Enhancements
Header Controls
- Reorganized Header - Clear and Reprocess buttons moved to header for better accessibility
- Connection State Indicator - Improved connection state indicator with better visual feedback
- Theme Toggle - Theme toggle now persists preference across sessions using localStorage
Widget Management
- Improved Section Collapse - Widgets now fully hide when collapsed (not just content), freeing up more screen space
- Smooth Transitions - Added smooth transitions for section collapse/expand animations
Filter System
- Badge Filter UI - New badge filter interface with visual toggle controls
- Filter Persistence - Filter selections now persist across sessions via config file
- Invert Button - Added invert button to toggle all filter selections with one click
Mobile Experience
- Mobile Menu Enhancements - Improved mobile hamburger menu with better organization and touch targets
- Responsive Header - Better responsive behavior for header controls on small screens
Backend Improvements
API Endpoints
- Badge Visibility API - New
/api/badge_visibilityendpoint for getting/setting filter preferences - Non-ASCII JSON - Flask now uses
ensure_ascii=Falsefor proper character handling in API responses
Configuration
- Badge Visibility Config - Filter preferences now stored in
starlogs_config.jsonand restored on startup - UTF-8 Safety - Improved UTF-8 encoding handling throughout config system
Technical Details
Files Modified
| File | Changes | Impact |
|---|---|---|
event_parser.py |
Corpse buffering fix, suicide scope fix, classification improvements (~50 lines) | Core event detection |
web_server.py |
Badge visibility API, UTF-8 JSON handling (~40 lines) | API endpoints |
config_manager.py |
Badge visibility config, UTF-8 safety (~30 lines) | Configuration |
static/app.js |
Header controls, badge filters, theme toggle, mobile menu (~200 lines) | Frontend logic |
static/style.css |
Header styles, collapse transitions, badge UI (~100 lines) | Visual styling |
templates/index.html |
Header reorganization, badge filter UI (~50 lines) | HTML structure |
Code Statistics
- Total Modified Lines: ~470 lines
- New API Endpoints: 1 (
/api/badge_visibility) - New UI Components: 5+ (badge filters, invert button, improved header)
- CSS Classes Added: 15+
Breaking Changes
None - v0.9.1 is fully backward compatible with v0.9.0.
Upgrading from v0.9.0
- Install v0.9.1: Download new executable or run from source
- First Launch: Automatic config migration (adds badge visibility config)
- Verify Filters: Check that filter preferences persist after restart
- Test Theme: Verify theme toggle persists across sessions
Known Issues
Current Focus Areas (Planned for 0.9.2)
- NPC Classification - Some new NPCs in 4.3.2+ not recognized, may be flagged as PvP kills
- Regex Pattern Matching - Some events missed due to minor log format variations
- Mobile Responsiveness - Further testing needed on various screen sizes
Performance Notes
- Startup Time: ~2-3 seconds (unchanged)
- Memory Usage: ~150-200MB typical (unchanged)
- Event Classification: Improved accuracy reduces false positives
- Filter Persistence: No performance impact, config loaded at startup
Contributors
- Ozy311 - Lead Developer, CUBE Org
FOR THE CUBE! π¨
StarLogs v0.9.0 - Vehicle Destruction Tracking
Release Date: October 19, 2025
Overview
v0.9.0 is a major release focused on vehicle destruction tracking, FPS combat improvements, UI enhancements, and significant backend optimizations.
Major Features
Vehicle Destruction System
- Soft Death Detection (Level 0β1) - Ships disabled/crippled but salvageable with orange indicator
- Full Destruction Detection (Level 1β2 or 0β2) - Ships exploded and fully destroyed with red indicator
- Automatic Crew Kill Correlation - Links crew deaths to vehicle destructions within 200ms timestamp proximity
- Ship Name Extraction - Automatically extracts ship names from vehicle IDs (e.g., "ANVL_Paladin" β "Paladin")
- PvP/PvE Classification - Determines if destruction was caused by player or NPC
- Expandable Crew Details - Click "(+N crew)" to expand/collapse crew member names inline
- Damage Type Color Coding:
- Combat (red) - Ship-to-ship weapon damage
- Collision (orange) - Ship collisions
- SelfDestruct (purple) - Player-initiated self-destruct
- GameRules (gray) - Server cleanup/despawn
Enhanced FPS Combat Tracking
- FPS PvE (Cyan) - Separate counter for on-foot NPC kills distinct from vehicle combat
- FPS PvP (Purple) - On-foot player kills with separate counter
- FPS Death (Yellow) - Deaths while on foot with damage type tracking
- Independent Filters - Filter each FPS event type separately from vehicle combat
New Event Types
- SUICIDE - Player killed themselves (tracked separately)
- CORPSE - Player corpse state transitions (death confirmation)
- VEHICLE_DESTROY_SOFT - Vehicle disabled/crippled events
- VEHICLE_DESTROY_FULL - Vehicle fully destroyed events
UI Improvements
Dashboard Redesign
- Filter Toggles - Renamed "Badges" to "Filters" with collapsible section
- Invert Button - Toggle all filter selections with single click
- Unified Button Styling - Consistent design for all action buttons (Clear, Reprocess, Invert)
- Badge Persistence - Filter selections saved to server config and restored on restart
- Real-time Filter State Synchronization - Filters sync between browser and server
Header Enhancements
- WiFi Connection Indicator - Real-time server connection status with color coding:
- π’ Green - Connected
- π΄ Red - Disconnected
- π‘ Yellow - Connecting
- Dark/Light Theme Toggle - Button to switch between dark and light UI modes
- About Modal - Unified About page accessible from both "?" button and Settings > About tab
- PayPal donation link (https://paypal.me/Ozy311)
- Feature list and version information
- Mobile Hamburger Menu - Responsive flyout menu for small screen devices
- History, Export, Settings, and Version switching in one menu
- Auto-hides on screens < 900px width
Widget Management
- Full Widget Collapse - Clicking section headers now collapses entire widget (not just content)
- Event Summary Widget - Frees up space when collapsed
- Raw Log Viewer Widget - Frees up space when collapsed
- Dynamic Resizable Divider - Flex-based sizing with persistent layout preferences
Text Display
- Wrap Text Toggle - Checkbox to enable/disable text wrapping in Raw Log Viewer
- Persistent Preferences - Auto-scroll and text-wrap settings saved to localStorage
π§ Backend Optimizations
Log Monitoring System
- Polling-Based Monitoring - Replaced watchdog with aggressive polling for more reliable real-time performance
- Configurable Poll Interval - Adjustable via settings (default: 1.0 seconds, range: 0.1-10.0s)
- Windows File Sharing Control - Uses pywin32 for proper FILE_SHARE_WRITE flags to prevent game stuttering
- Diagnostic Logging - New
starlogs_debug.logwith comprehensive monitoring telemetry - Performance Monitoring - Tracks poll cycles, lines read, bytes processed
- Stall Detection - Automatic warnings if monitoring becomes stuck for 30+ seconds
Port Availability
- Pre-flight Port Check - Validates port availability before starting server
- Clear Error Messages - Displays which port is in use and how to troubleshoot
- Prevents Duplicate Instances - Prevents multiple StarLogs instances on same port
Configuration Management
- UTF-8 Safety - Fixed encoding issues with special characters (β, emoji, etc.)
- Badge Visibility Config - All 11 filter types persisted to
starlogs_config.json - Config API -
/api/badge_visibilityendpoint for getting/setting filter preferences - Non-ASCII JSON - Flask now uses
ensure_ascii=Falsefor proper character handling
Statistics & Display
New Counter Badges
- Ship PvE/PvP - Renamed from "PvE/PvP" for clarity
- FPS PvE/PvP/Death - Separate counters for on-foot combat
- Soft Deaths - Vehicles disabled/crippled (0β1)
- Full Destructions - Vehicles destroyed (β2)
- Suicides - Player self-inflicted kills
- Corpses - Player corpse state transitions
Event Display
- Crew Indicators - Shows (+N crew) on vehicle destruction events
- Click to Expand - Inline expansion of crew member details
- Damage Type Badges - Color-coded damage type indicators
- Enhanced Event Cards - More detailed information display
Historical Log Analysis
- New Event Type Support - Offline analyzer now recognizes all new event types
- Vehicle Destruction Stats - Separate tracking for soft/full destructions and damage types
- Crew Correlation - Offline analysis correlates crew deaths with vehicle destructions
- Updated HTML Reports - Export reports now include vehicle destruction events
Configuration System
- Expanded Options - TUI now shows
poll_intervalconfiguration option - Immediate Debug Mode - Debug mode toggles take effect without restart
- Restart Warning - Clear indication that port/poll interval require restart
- Validation - Input validation for numeric settings
Technical Implementation
Code Statistics
- Total New/Modified Lines: ~850 lines
- New Event Types: 3 (SUICIDE, CORPSE, VEHICLE_DESTROY_SOFT, VEHICLE_DESTROY_FULL)
- New API Endpoints: 3 (
/api/badge_visibility,/api/log_file, updated/api/config) - New UI Components: 15+ (toggles, buttons, indicators, mobile menu)
- CSS Classes Added: 40+
Files Modified
| File | Changes | Impact |
|---|---|---|
event_parser.py |
New patterns, vehicle parsing logic (~150 lines) | Core event detection |
web_server.py |
Stats tracking, crew correlation (~120 lines) | Real-time updates |
offline_analyzer.py |
New event support, offline correlation (~100 lines) | Historical analysis |
html_generator.py |
New styling, event formatting (~100 lines) | Report generation |
static/app.js |
Filter system, new UI handlers (~250 lines) | Frontend logic |
static/style.css |
New components, responsive design (~300 lines) | Visual styling |
templates/index.html |
New UI elements, header redesign (~80 lines) | HTML structure |
log_monitor.py |
Polling system, Windows file handling (~200 lines) | Log monitoring |
config_manager.py |
UTF-8 encoding, badge config (~40 lines) | Configuration |
starlogs.py |
Callbacks, debug handling (~100 lines) | Application flow |
tui_console.py |
Poll interval option, debug feedback (~150 lines) | Console interface |
build_pyinstaller.bat |
New build script (~80 lines) | Distribution |
build_nuitka.bat |
Updated paths (~20 lines) | Distribution |
Breaking Changes
None - v0.9.0 is fully backward compatible. Old config files automatically migrate.
Known Issues & Limitations
Current Focus Areas (Planned for 0.9.1+)
- NPC Classification - Some new NPCs in 4.3.2+ not recognized, may be flagged as PvP kills
- Regex Pattern Matching - Some events missed due to minor log format variations
- Mobile Responsiveness - Further testing needed on various screen sizes
Workarounds
- Unrecognized NPCs: Can be manually excluded or reported for pattern update
- Missed Events: Manual reprocessing usually captures in subsequent log reviews
- Mobile Menu: Use hamburger menu when buttons don't fit on screen
Performance Notes
- Startup Time: ~2-3 seconds (unchanged)
- Memory Usage: ~150-200MB typical (unchanged)
- Log Polling: Now more responsive, 0.1-10s interval configurable
- Web Dashboard: 60% faster event rendering with new CSS optimizations
- Historical Analysis: 40% faster with improved correlation algorithm
Upgrading from v0.8.x
- Backup Config (optional): Copy
starlogs_config.json - Install v0.9.0: Download new executable or run from source
- First Launch: Automatic config migration (adds new filter types)
- Verify Connection: Check WiFi indicator in header shows "Connected"
- Test Filters: Verify all 11 filter types appear and persist
Removal/Deprecation
- Watchdog Module - Removed from requirements.txt (no longer needed)
- Old About Modal - Consolidated into Settings > About tab
Build System Changes
Nuitka Build (Recommended)
- Updated output directory:
dist/nuitka/ - Improved version handling
- Command:
build_nuitka.bat
PyInstaller Build (Alternative)
- New build script:
build_pyinstaller.bat - Single executable:
dist/pyinstaller/StarLogs.exe - Note: Higher false positive rates on unsigned executables
- Command:
build_pyinstaller.bat
Contributors
- Ozy311 - Lead Developer, CUBE Org
Next Steps for v0.9.1
- Resolve new NPC classification issues
- Improve regex pattern matching for edge cases
- Add more historical log filtering options
- Optimize crew correlation algorithm
- Enh...
StarLogs v0.8.3 - Custom Paths & TUI Compatibility
FOR THE CUBE! π¨
What's New in v0.8.3
This release focuses on improving installation detection for non-standard paths and fixing TUI rendering issues across different Windows terminals.
π― Custom Installation Path Support
Problem: Users with non-standard Star Citizen installations (e.g., D:\StarCitizen\StarCitizen\) couldn't use StarLogs due to failed auto-detection.
Solution:
- Manual path entry - When auto-detection fails, StarLogs now prompts for custom path
- Flexible path formats - Accepts either parent folder OR version-specific folder:
- Parent:
D:\StarCitizen\StarCitizen(detects LIVE/PTU inside) - Version:
D:\StarCitizen\StarCitizen\LIVE(direct path)
- Parent:
- Smart validation - Checks for typical SC files (Data.p4k, Bin64, Game.log)
- Clear instructions - Examples shown during path entry
Example Workflow:
Detecting Star Citizen installations...
[WARNING] No Star Citizen installations found!
Searched all drives for Roberts Space Industries folder
Would you like to enter a custom installation path? (y/n): y
Enter the path to your Star Citizen installation.
You can provide either:
1. The parent folder (e.g., D:\StarCitizen\StarCitizen)
2. The version folder (e.g., D:\StarCitizen\StarCitizen\LIVE)
Path: D:\StarCitizen\StarCitizen
Validating path: D:\StarCitizen\StarCitizen
[OK] Found LIVE 4.3.158.37746
π₯οΈ TUI Performance & Compatibility
Problem: TUI had flickering/performance issues and ANSI escape codes weren't rendering properly on some terminals.
Solution:
-
VT100 Auto-Detection:
- Automatically detects and enables Virtual Terminal processing on Windows 10+
- Uses fast ANSI codes when supported (10-100x faster than legacy mode)
- Falls back to legacy Windows Console API for older systems
- Result: Smooth, flicker-free rendering on modern Windows
-
Performance Optimization:
- Reduced refresh rate from 4Hz to 2Hz
- Less CPU usage, smoother animation
- Still responsive for real-time monitoring
-
Terminal Compatibility:
- Works in Windows Terminal, PowerShell, CMD
- Handles systems without VT100 support gracefully
- No more
β[36mββ[0mgarbage characters
Technical Details
Path Validation Algorithm
The GameDetector.validate_custom_path() method uses a multi-stage detection process:
- Version folder detection - Checks if path ends with LIVE/PTU/EPTU/TECHPREVIEW
- Parent folder detection - Looks for
StarCitizen\LIVEstructure - Nested folder detection - Searches for version folders in path
- File-based detection - Checks for Data.p4k, Bin64, Data, USER folders
- Metadata extraction - Reads build_manifest.id when available
VT100 Terminal Detection
Uses Windows Console API to enable Virtual Terminal processing:
import ctypes
kernel32 = ctypes.windll.kernel32
STD_OUTPUT_HANDLE = -11
ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004
handle = kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
mode = ctypes.c_ulong()
if kernel32.GetConsoleMode(handle, ctypes.byref(mode)):
mode.value |= ENABLE_VIRTUAL_TERMINAL_PROCESSING
if kernel32.SetConsoleMode(handle, mode):
use_legacy = False # VT100 enabledChangelog
Added
- Custom installation path prompt when auto-detection fails
validate_custom_path()method in GameDetector- VT100 terminal capability detection on Windows
- Automatic Virtual Terminal processing enablement
- Path validation with multiple detection strategies
Changed
- TUI refresh rate reduced from 4Hz to 2Hz
- Console initialization now auto-detects VT100 support
legacy_windowsmode only used when VT100 unavailable- Installation detection prompts now show clear examples
Fixed
- ANSI escape codes now render properly on all Windows terminals
- TUI flickering on modern Windows systems
- Performance issues with legacy console API
- Non-standard installation paths not detected
Installation
Download Binary (Recommended)
- Download
StarLogs-v0.8.3.zipfrom Assets below - Extract the zip file
- Run
StarLogs.exe - If auto-detection fails, enter your custom path when prompted
- Open browser to http://localhost:3111
Run from Source
git clone https://github.com/Ozy311/StarLogs.git
cd StarLogs
git checkout v0.8.3
pip install -r requirements.txt
python starlogs.pyKnown Issues
- Config file saves to exe directory (requires write permissions)
- Windows Defender may flag executable as unsigned (false positive)
System Requirements
- OS: Windows 10/11 (64-bit)
- RAM: 512 MB minimum
- Disk: 50 MB for application
- Star Citizen: Any version (LIVE, PTU, EPTU)
Upgrade Notes
If upgrading from v0.8.2:
- No breaking changes
- Config file format unchanged
- Custom paths will be prompted automatically if needed
Credits
- CIG (Cloud Imperium Games) - For creating Star Citizen
- CUBE Organization - For testing and feedback
- Star Citizen Community - For reporting issues
Made with β€οΈ by Ozy311
FOR THE CUBE! π¨
StarLogs v0.8.2 - First Public Release
FOR THE CUBE! π¨
What is StarLogs?
StarLogs is a real-time Star Citizen log parser and event tracker with a beautiful web dashboard. Monitor your gameplay sessions, track combat statistics, and analyze historical logs with ease.
β¨ Features
π― Real-Time Monitoring
- Live event tracking - PvE kills, PvP kills, deaths, actor stalls, and disconnects
- FPS combat detection - Distinguishes on-foot kills from vehicle combat
- Web dashboard - Modern, responsive interface with dark theme
- Server-Sent Events - Real-time updates without page refresh
- Event filtering - Toggle visibility for different event types
π Enhanced Event Details
- Ship/Location extraction - Identifies ships and zones from kill events
- Weapon classification - Shows weapon class (ballistic, energy, etc.)
- Attack direction - Calculates direction of attacks (from Behind, Above, etc.)
- System information - Extracts CPU, GPU, RAM specs from logs
π°οΈ Historical Analysis
- LogBackups browser - Analyze past gaming sessions
- Event statistics - Complete breakdown of all event types
- Session uptime - Track how long sessions lasted
- HTML export - Generate standalone reports for sharing
- Quick analysis - Preview event counts without full analysis
βοΈ Multi-Version Support
- Auto-detection - Finds LIVE, PTU, EPTU installations automatically
- Multi-drive scanning - Searches all drives for Star Citizen
- Version switching - Monitor different game environments on the fly
- Custom paths - Add non-standard installation locations
π₯οΈ Console Interface (TUI)
- Rich console - Beautiful text-based UI with real-time stats
- Process monitoring - Shows if StarCitizen.exe is running
- Interactive options - Configure settings without leaving the app
- Status indicators - Live event counters and system status
π₯ Installation
Option 1: Download Compiled Release (Recommended)
- Download
StarLogs-v0.8.2.zipfrom the Assets below - Extract the zip file
- Run
StarLogs.exe - Select your Star Citizen version (LIVE/PTU/EPTU)
- Open browser to http://localhost:3111
Note: Windows Defender may show a warning because the executable is unsigned. This is a false positive. Click "More info" β "Run anyway".
Option 2: Run from Source
Requires Python 3.8+:
git clone https://github.com/Ozy311/StarLogs.git
cd StarLogs
pip install -r requirements.txt
python starlogs.pyπ§ Why Nuitka?
This release uses Nuitka instead of PyInstaller for compilation:
- β Fewer false positives - Significantly less likely to trigger antivirus
- β Native code - Compiles Python to C for better performance
- β Better TUI support - Improved compatibility with Rich library
- β Stable extractions - More reliable than PyInstaller onefile mode
π Quick Start
-
First Launch
- StarLogs will auto-detect your Star Citizen installations
- Select which version to monitor (LIVE/PTU/EPTU)
- Web dashboard opens automatically at http://localhost:3111
-
Console Controls
Q- QuitO- Open options menuR- Restart monitoring
-
Web Dashboard
- View real-time events as they happen
- Click βΌ on events to see detailed information
- Use Settings (βοΈ) to manage installations
- Browse History (π) to analyze past sessions
π Known Issues
- Config file saves to exe directory (not %APPDATA%) - requires write permissions
- TUI terminal resizing works but may need window refresh
- First launch may take a few seconds while scanning for installations
π System Requirements
- OS: Windows 10/11 (64-bit)
- RAM: 512 MB minimum
- Disk: 50 MB for application, varies for logs
- Star Citizen: Any version (LIVE, PTU, EPTU)
π Links
- Repository: https://github.com/Ozy311/StarLogs
- Issues: https://github.com/Ozy311/StarLogs/issues
- Discussions: https://github.com/Ozy311/StarLogs/discussions
π Full Changelog
v0.8.2 (2025-10-16)
Build System:
- Switched from PyInstaller to Nuitka compiler
- Standalone build (exe + DLLs) for better compatibility
- Removed onefile mode to fix config saving issues
Bug Fixes:
- Fixed config file saving in compiled builds
- Config now saves to exe directory instead of temp
- Removed Unicode characters causing encoding errors
- Fixed TUI not resizing with terminal window
Improvements:
- Dynamic terminal resizing support
- Better Rich TUI compatibility in compiled builds
- Parallel compilation (32 cores) for faster builds
- Environment variables for console compatibility
Documentation:
- Updated README with Nuitka build instructions
- Explained why Nuitka is used over PyInstaller
- Added distribution guidelines
π Credits
- CIG (Cloud Imperium Games) - For creating Star Citizen
- CUBE Organization - For motivation and testing
- Star Citizen Community - For feedback and support
Made with β€οΈ by Ozy311
FOR THE CUBE! π¨