A comprehensive EVE Online fleet management and ship combat analysis tool that uses static data, advanced fit simulation, and Google Gemini AI to provide precise tactical combat recommendations with professional-grade fleet operations.
- Fleet Management System: Create, manage, and analyze fleet compositions with role assignments and battle scenarios
- Dynamic Fleet Statistics: Real-time DPS and EHP calculation as ships are added, removed, or modified
- Enhanced Fitting Cards: Professional zKillboard-style UI with module icons, ship stats, and detailed visualization
- Dual Ship Analysis: Compare your ship against target ships with detailed combat predictions
- Enhanced EFT Parsing: Full EVE Fitting Tool format support with intelligent subsystem validation and smart cargo handling
- Static Data Engine: Uses CCP's official JSON Lines SDE (auto-downloaded and kept up to date on startup) for offline operation with the complete EVE item database
- All-V Skill Calculations: Comprehensive skill bonus system assuming level V in all skills
- Advanced Weapon Systems: Full support for fighters, breacher pods, HAW weapons, and doomsday devices
- T3 Strategic Cruiser Support: Complete hull and subsystem bonus calculations
- PyFA-Compatible Calculations: DPS, EHP, and ship statistics matching PyFA's precision
- Comprehensive Rig System: Support for all rig types including velocity, range, and tank bonuses
- AI-Powered Tactical Analysis: Detailed combat recommendations using Google Gemini 2.5 Flash
- Range Analysis: Weapon range calculations with kiting vs brawling strategy recommendations
- EVE SSO Authentication: Secure character-based authentication with session management
The CLI allows you to calculate fit statistics without running the web server:
# Install globally (or use npx)
npm install -g eve-fight-taker
# Calculate stats from EFT file
eve-fight-taker stats my-fit.eft
# Parse from stdin
cat my-fit.eft | eve-fight-taker stats -
# Inline EFT string
eve-fight-taker stats --eft "[Kikimora, Kite]
Light Entropic Disintegrator II, Meson Exotic Plasma S
..."
# Compare two fits
eve-fight-taker compare attacker.eft defender.eft
# Pretty-print output
eve-fight-taker stats my-fit.eft --pretty
# Parse fit structure (without calculating stats)
eve-fight-taker parse my-fit.eft{
"ship": "Kikimora",
"name": "Kite",
"dps": { "total": 487.3, "em": 0, "thermal": 487.3, "kinetic": 0, "explosive": 0 },
"ehp": { "total": 11240, "shield": 8500, "armor": 1800, "hull": 940 },
"speed": 3200,
"signatureRadius": 52,
"lockRange": 50,
"weapons": [...]
}The CLI uses the same PyFA-compatible calculation engine as the web interface.
- Node.js: Version 18.18.0 or higher
- Google AI API Key: Get an API key from Google AI Studio for Gemini AI analysis
- EVE ESI Application: Required for EVE SSO authentication and ship loading features
- Create an application at EVE Developers
- Set callback URL to:
http://localhost:8080/callback - Required scopes:
esi-location.read_location.v1esi-location.read_ship_type.v1esi-fittings.read_fittings.v1
-
Clone and Install Dependencies
git clone https://github.com/your-username/eve-fight-taker.git cd eve-fight-taker npm install -
Environment Configuration
cp .env.example .env
Edit
.envwith your credentials:# Required for AI analysis GOOGLE_API_KEY=your_google_api_key_here # Required for EVE SSO and ship loading ESI_CLIENT_ID=your_esi_client_id_here ESI_CLIENT_SECRET=your_esi_client_secret_here # Required for session management SESSION_SECRET=your_random_session_secret_here # Optional PORT=8080 LOG_LEVEL=info -
Start the Server
# Production server npm start # Development server with auto-reload npm run dev # Run tests npm test # Run linting npm run lint
-
Access the Application Open your browser to:
http://localhost:8080
- Your Ship: Paste your ship's EFT format fitting in the "Your Ship" text area
- Target Ship: Paste the enemy ship's EFT format fitting in the "Target Ship" text area
- Parse Fits: Click "Parse Fit" buttons to load and calculate ship statistics
- Analyze Combat: Click "Analyze Combat" to get detailed AI tactical recommendations including:
- Win chance percentage and estimated time to kill
- Major tactical advantages and disadvantages
- Specific ammo and module usage recommendations
- Range strategy (kiting vs brawling) with exact distance recommendations
- Engagement and disengagement tactics
[Caracal Navy Issue, Missile Kiting]
Ballistic Control System II
Ballistic Control System II
Ballistic Control System II
Large Shield Extender II
50MN Y-T8 Compact Microwarpdrive
Missile Guidance Computer II, Missile Range Script
Multispectrum Shield Hardener II
EM Shield Hardener II
Heavy Missile Launcher II, Scourge Fury Heavy Missile
Heavy Missile Launcher II, Scourge Fury Heavy Missile
Heavy Missile Launcher II, Scourge Fury Heavy Missile
Heavy Missile Launcher II, Scourge Fury Heavy Missile
Heavy Missile Launcher II, Scourge Fury Heavy Missile
Medium Hydraulic Bay Thrusters II
Medium Rocket Fuel Cache Partition I
Medium EM Shield Reinforcer II
Hobgoblin II x5
Scourge Fury Heavy Missile x1000
Missile Range Script x1
The system performs comprehensive combat analysis using verified EVE Online mechanics:
- All-V Skill Bonuses: Complete skill system with level V in all skills including specialization skills
- Weapon Specialization: T2 weapon bonuses (Heavy Missile Specialization, Small Pulse Laser Specialization, etc.)
- Dynamic Hull Bonuses: Automatic ship bonus processing using EVE's dogmaEffects data for all ship types
- T3 Strategic Cruiser System: Hull bonuses and subsystem effects for Loki, Tengu, Proteus, and Legion
- Intelligent Subsystem Classification: Category-based validation ensures only T3 cruiser subsystems are properly classified
- Advanced Weapon Systems: Fighter squadrons, breacher pods, HAW weapons, doomsday devices
- Rig Bonuses: Complete rig system including velocity, range, damage, and tank bonuses
- Stacking Penalties: PyFA-compatible stacking penalty calculations
- Range Analysis: Weapon optimal/falloff ranges, missile flight distances, EWAR module ranges
- Damage Application: Signature radius, tracking speed, and velocity factors
- Tank Calculations: Shield/armor/hull EHP with resistance bonuses
- Drone Control Ranges: Calculated drone control distances with skill and module bonuses
- Official SDE (JSON Lines): Uses CCP's new (Sept 2025+) Static Data Export
- Auto-download on startup: Fetches the latest SDE and checks CCP for newer builds automatically — no manual data setup
- Complete Item Database: 52,000+ items with full attribute data
- Dogma Attributes: Weapon damage, cycle times, bonuses, and ship statistics
- DogmaEffects Processing: Effects for automatic ship hull bonus calculations
- No ESI Dependency: All calculations work offline once the SDE is downloaded
- Configurable:
SDE_AUTO_UPDATEtoggles the startup update check;SDE_BASE_URLoverrides the source
- Gemini 2.5 Flash: Provides tactical analysis
- Detailed Prompts: Weapon-specific, range-aware combat analysis
- Tactical Recommendations: Ammo selection, module usage, engagement strategies
- Natural Language: Human-readable combat summaries and advice
- EVE SSO Authentication: Secure login with your EVE Online character
- Live Ship Loading: Automatically load your current ship and fitting
- Fitting Management: Access and analyze your saved fittings
- Character Data: Location and ship type detection
eve-fight-taker/
├── lib/
│ ├── sde-updater.js # Downloads/refreshes CCP JSON Lines SDE on startup
│ ├── static-data.js # SDE (JSON Lines) static data loader
│ ├── fit-calculator.js # EFT parsing and ship statistics
│ ├── fit-simulator.js # PyFA-compatible fit simulation
│ ├── modified-attribute-store.js # Advanced attribute modification system
│ ├── ai-analyzer.js # Gemini 2.5 Flash integration
│ ├── cache-manager.js # Local disk caching system
│ ├── esi-auth.js # EVE SSO authentication (legacy)
│ └── zkillboard-parser.js # zKillboard API integration
├── public/
│ ├── index.html # Dual-ship analysis interface
│ ├── style.css # Enhanced UI styling
│ └── script.js # Frontend state management
├── staticdata/ # CCP SDE (JSON Lines), downloaded on startup (git-ignored)
│ ├── types.jsonl # Item definitions
│ ├── dogmaAttributes.jsonl # Attribute definitions
│ ├── dogmaEffects.jsonl # Effect definitions for ship bonuses
│ ├── typeDogma.jsonl # Item-attribute mappings
│ ├── groups.jsonl # Item group classifications
│ └── .sde-version.json # Installed SDE build number
├── test/ # Comprehensive test suite (244 tests)
├── cache/ # Local cache directory
└── server.js # Express.js server
The fit calculation engine is fully compatible with PyFA and provides industry-standard EVE Online ship fitting calculations:
- ModifiedAttributeStore: Advanced attribute modification with PyFA-compatible stacking penalties
- FitSimulator: Complete skill bonus application system with all-V assumptions
- Dynamic Hull Bonus Engine: Generic dogmaEffects processing for all ship types automatically
- Weapon Systems: Support for turrets, missiles, drones, fighters, and exotic weapons
- T3 Strategic Cruiser Engine: Full hull and subsystem bonus calculations
- Rig Processing: Complete rig bonus system with velocity, range, and tank bonuses
- Static Data: 50,243 EVE items + 50,243+ dogmaEffects loaded with fast lookup
- Dynamic Hull Bonuses: Generic processing system works with any ship type automatically
- Calculation Speed: Real-time ship statistics with complex bonus stacking
- Memory Efficient: Optimized attribute storage and caching system
The application uses Winston for professional-grade logging:
- ERROR: Critical issues, API failures, system errors
- WARN: Non-fatal issues, missing data, deprecation warnings
- INFO: Application startup, major operations, user actions (default)
- DEBUG: Detailed application flow, fit processing steps
- TRACE: Extremely verbose debugging information
error.log- Error level logs only (10MB rotation, 5 files)combined.log- All log levels (10MB rotation, 5 files)debug.log- Debug and trace logs (10MB rotation, 3 files)
Set LOG_LEVEL in .env to control verbosity:
LOG_LEVEL=debug # Show debug information
LOG_LEVEL=info # Standard logging (default)
LOG_LEVEL=error # Only critical errorsIn development mode, logs also appear in the console with color coding.
# Install dependencies
npm install
# Development server with auto-reload
npm run dev
# Run comprehensive test suite
npm test
# Run ESLint with auto-fix
npm run lint
# Update all dependencies
npm run update-deps- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes with comprehensive tests
- Ensure all tests pass (
npm test) - Run linting (
npm run lint) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - see LICENSE file for details
- PyFA Team: For the exceptional EVE fitting calculation algorithms and static data export
- CCP Games: For EVE Online and the comprehensive game mechanics
- Google: For Gemini AI that powers the tactical analysis system
EVE Online and all related materials are property of CCP Games. This tool is not affiliated with or endorsed by CCP Games.