claude-home/gaming/scripts/check-stl-logs.sh
Cal Corum edc78c2dd6 CLAUDE: Add comprehensive gaming-aware Tdarr management system
- Created complete gaming detection and priority system
- Added gaming schedule configuration and enforcement
- Implemented Steam library monitoring with auto-detection
- Built comprehensive game process detection for multiple platforms
- Added gaming-aware Tdarr worker management with priority controls
- Created emergency gaming mode for immediate worker shutdown
- Integrated Discord notifications for gaming state changes
- Replaced old bash monitoring with enhanced Python monitoring system
- Added persistent state management and memory tracking
- Implemented configurable gaming time windows and schedules
- Updated .gitignore to exclude logs directories

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-14 15:17:52 -05:00

175 lines
5.4 KiB
Bash
Executable File

#!/bin/bash
# Steam Tinker Launch Log Checker
# Analyzes recent STL logs for common issues
set -e
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
log_warning() { echo -e "${YELLOW}[WARNING]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
STL_LOG_DIR="$HOME/.config/steamtinkerlaunch/logs"
GAME_ID="1144200"
check_stl_logs() {
log_info "Checking Steam Tinker Launch logs..."
if [ ! -d "$STL_LOG_DIR" ]; then
log_error "STL logs directory not found: $STL_LOG_DIR"
return 1
fi
# Check main STL log
local main_log="$STL_LOG_DIR/steamtinkerlaunch.log"
if [ -f "$main_log" ]; then
log_info "Recent STL activity (last 20 lines):"
echo "----------------------------------------"
tail -20 "$main_log" | while read line; do
if echo "$line" | grep -qi "error\|fail\|crash\|exception"; then
echo -e "${RED}$line${NC}"
elif echo "$line" | grep -qi "warning"; then
echo -e "${YELLOW}$line${NC}"
else
echo "$line"
fi
done
echo "----------------------------------------"
else
log_warning "Main STL log not found"
fi
# Check for game-specific logs
local proton_log_dir="$STL_LOG_DIR/proton/id"
if [ -d "$proton_log_dir" ]; then
log_info "Checking Proton logs..."
ls -la "$proton_log_dir" 2>/dev/null || log_warning "No Proton logs found"
fi
# Check for wine logs
local wine_log_dir="$STL_LOG_DIR/wine"
if [ -d "$wine_log_dir" ]; then
log_info "Checking Wine logs..."
ls -la "$wine_log_dir" 2>/dev/null || log_warning "No Wine logs found"
fi
# Check for DXVK logs
local dxvk_log_dir="$STL_LOG_DIR/dxvk"
if [ -d "$dxvk_log_dir" ]; then
log_info "Checking DXVK logs..."
ls -la "$dxvk_log_dir" 2>/dev/null || log_warning "No DXVK logs found"
fi
}
check_proton_prefix() {
log_info "Checking Proton prefix status..."
local compatdata_dirs=(
"$HOME/.steam/steam/steamapps/compatdata/$GAME_ID"
"$HOME/.local/share/Steam/steamapps/compatdata/$GAME_ID"
)
for compatdata in "${compatdata_dirs[@]}"; do
if [ -d "$compatdata" ]; then
log_success "Found compatdata: $compatdata"
log_info "Prefix size: $(du -sh "$compatdata" 2>/dev/null | cut -f1)"
# Check for common crash indicators
if [ -f "$compatdata/pfx/drive_c/users/steamuser/Temp/steam_appid.txt" ]; then
local appid=$(cat "$compatdata/pfx/drive_c/users/steamuser/Temp/steam_appid.txt" 2>/dev/null)
log_info "Steam App ID in prefix: $appid"
fi
# Check prefix health
if [ -f "$compatdata/pfx/system.reg" ]; then
log_success "Wine prefix appears healthy"
else
log_warning "Wine prefix may be corrupted"
fi
return 0
fi
done
log_warning "No compatdata found - this might be the issue"
}
analyze_common_crashes() {
log_info "Analyzing for common Ready or Not crash patterns..."
local main_log="$STL_LOG_DIR/steamtinkerlaunch.log"
if [ -f "$main_log" ]; then
# Check for EasyAntiCheat issues
if grep -qi "easyanticheat\|eac" "$main_log"; then
log_warning "EasyAntiCheat detected in logs - this can cause crashes"
log_info "Solution: Ensure -noeac is in game arguments"
fi
# Check for DirectX issues
if grep -qi "d3d\|directx\|dxgi" "$main_log"; then
log_warning "DirectX/DXVK issues detected"
log_info "Solution: Try PROTON_USE_WINED3D=1 or different Proton version"
fi
# Check for memory issues
if grep -qi "memory\|allocation\|heap" "$main_log"; then
log_warning "Memory issues detected"
log_info "Solution: Ensure PROTON_FORCE_LARGE_ADDRESS_AWARE=1 is set"
fi
# Check for Vulkan issues
if grep -qi "vulkan\|vk_" "$main_log"; then
log_warning "Vulkan issues detected"
log_info "Solution: Verify NVIDIA drivers and Vulkan support"
fi
fi
}
suggest_fixes() {
echo
log_info "=== Common Fixes for Ready or Not Crashes ==="
echo
echo "1. Reset Proton Prefix:"
echo " rm -rf ~/.steam/steam/steamapps/compatdata/1144200/"
echo " (Steam will recreate on next launch)"
echo
echo "2. Try Different Proton Version:"
echo " - GE-Proton9-11 (older, more stable)"
echo " - Proton 8.0-5 (Steam's stable version)"
echo
echo "3. Disable GameScope temporarily:"
echo " Edit config: USEGAMESCOPE=\"0\""
echo
echo "4. Enable Wine debug for more info:"
echo " Edit config: PROTON_LOG=\"1\""
echo
echo "5. Try minimal STL settings:"
echo " - Disable all extras except basic Proton"
echo " - Only keep: GAMEARGS=\"-noeac\""
echo
echo "6. Fallback to WineD3D:"
echo " Edit config: PROTON_USE_WINED3D=\"1\""
}
main() {
log_info "Analyzing Ready or Not crash..."
echo
check_stl_logs
echo
check_proton_prefix
echo
analyze_common_crashes
suggest_fixes
}
main "$@"