Skip to content

Releases: Ozy311/StarLogs

v0.9.1 - Parser Fixes & UI Polish

09 Nov 08:50

Choose a tag to compare

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_visibility endpoint for getting/setting filter preferences
  • Non-ASCII JSON - Flask now uses ensure_ascii=False for proper character handling in API responses

Configuration

  • Badge Visibility Config - Filter preferences now stored in starlogs_config.json and 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

  1. Install v0.9.1: Download new executable or run from source
  2. First Launch: Automatic config migration (adds badge visibility config)
  3. Verify Filters: Check that filter preferences persist after restart
  4. Test Theme: Verify theme toggle persists across sessions

Known Issues

Current Focus Areas (Planned for 0.9.2)

  1. NPC Classification - Some new NPCs in 4.3.2+ not recognized, may be flagged as PvP kills
  2. Regex Pattern Matching - Some events missed due to minor log format variations
  3. 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

20 Oct 23:46
c0779f3

Choose a tag to compare

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
  • 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.log with 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_visibility endpoint for getting/setting filter preferences
  • Non-ASCII JSON - Flask now uses ensure_ascii=False for 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_interval configuration 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+)

  1. NPC Classification - Some new NPCs in 4.3.2+ not recognized, may be flagged as PvP kills
  2. Regex Pattern Matching - Some events missed due to minor log format variations
  3. 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

  1. Backup Config (optional): Copy starlogs_config.json
  2. Install v0.9.0: Download new executable or run from source
  3. First Launch: Automatic config migration (adds new filter types)
  4. Verify Connection: Check WiFi indicator in header shows "Connected"
  5. 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...
Read more

StarLogs v0.8.3 - Custom Paths & TUI Compatibility

16 Oct 10:46

Choose a tag to compare

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)
  • 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:

  1. 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
  2. Performance Optimization:

    • Reduced refresh rate from 4Hz to 2Hz
    • Less CPU usage, smoother animation
    • Still responsive for real-time monitoring
  3. Terminal Compatibility:

    • Works in Windows Terminal, PowerShell, CMD
    • Handles systems without VT100 support gracefully
    • No more ←[36m│←[0m garbage characters

Technical Details

Path Validation Algorithm

The GameDetector.validate_custom_path() method uses a multi-stage detection process:

  1. Version folder detection - Checks if path ends with LIVE/PTU/EPTU/TECHPREVIEW
  2. Parent folder detection - Looks for StarCitizen\LIVE structure
  3. Nested folder detection - Searches for version folders in path
  4. File-based detection - Checks for Data.p4k, Bin64, Data, USER folders
  5. 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 enabled

Changelog

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_windows mode 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)

  1. Download StarLogs-v0.8.3.zip from Assets below
  2. Extract the zip file
  3. Run StarLogs.exe
  4. If auto-detection fails, enter your custom path when prompted
  5. 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.py

Known 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

16 Oct 09:15

Choose a tag to compare

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)

  1. Download StarLogs-v0.8.2.zip from the Assets below
  2. Extract the zip file
  3. Run StarLogs.exe
  4. Select your Star Citizen version (LIVE/PTU/EPTU)
  5. 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

  1. 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
  2. Console Controls

    • Q - Quit
    • O - Open options menu
    • R - Restart monitoring
  3. 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

πŸ“ 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! 🟨