nicolaskion / sde
SDE Parser for EVE Online and Laravel
Requires
- php: ^8.3.0
- ext-zip: *
- illuminate/contracts: ^12|^13
- laravel/framework: ^12|^13
- symfony/yaml: ^7.2|^8.0
Requires (Dev)
- laravel/pint: ^1.22.0
- pestphp/pest: ^4.0
- phpstan/phpstan: ^2.1.12
- rector/rector: ^2.0.11
- symfony/var-dumper: ^7.0.0|^8.0.0
README
EVE Online's Static Data Export as Eloquent models.
This package downloads EVE Online's official Static Data Export (SDE) from CCP and seeds it into your Laravel application's database — complete with migrations, Eloquent models, and relationships. Build market tools, fitting apps, universe maps, or killboards on top of a fully queryable SDE without ever touching a YAML file.
What's included
| Domain | Data |
|---|---|
| Items & dogma | Categories, groups, types, meta groups, market groups, attributes, effects, units — including per-type attributes and effects |
| Universe | Regions, constellations, solar systems, stargates and their connections, celestials (stars, planets, moons, asteroid belts), stations with operations and services |
| NPC & social | Factions, races, bloodlines, NPC corporations — plus ready-made tables and models for alliances, corporations, and characters to fill from ESI |
| Dynamic items | Mutaplasmids, their applicable types, and attribute ranges |
| Assets | Icons and graphics metadata |
Requirements
- PHP 8.3+ (tested up to 8.5, plus nightly)
- Laravel 12 or 13
ext-zip
Installation
Install the package via composer:
composer require nicolaskion/sde
Publish and run the migrations:
php artisan vendor:publish --tag="sde-migrations"
php artisan migrate
Optionally, publish the config file:
php artisan vendor:publish --tag="sde-config"
Usage
Download the latest SDE from CCP:
php artisan sde:download
Seed everything into the database:
php artisan sde:seed
sde:seed orchestrates all individual seeders in dependency order. Each is also available on its own:
| Command | Seeds |
|---|---|
sde:seed:icons |
Icons |
sde:seed:graphics |
Graphics |
sde:seed:units |
Dogma units |
sde:seed:attributes |
Dogma attributes |
sde:seed:effects |
Dogma effects and modifiers |
sde:seed:categories |
Item categories |
sde:seed:groups |
Item groups |
sde:seed:meta-groups |
Meta groups (Tech I, Tech II, …) |
sde:seed:market-groups |
Market group tree |
sde:seed:races |
Races |
sde:seed:types |
Item types |
sde:seed:type-attributes |
Per-type dogma attributes |
sde:seed:type-effects |
Per-type dogma effects |
sde:seed:universe |
Regions, constellations, solar systems, stargates, celestials, stations |
sde:seed:socials |
Factions, bloodlines, NPC corporations |
sde:seed:dynamic-items |
Mutaplasmids |
Querying the data
The models ship with their relationships wired up:
use NicolasKion\SDE\Models\Solarsystem; use NicolasKion\SDE\Models\Type; // A ship with its group, market group and dogma attributes $rifter = Type::query() ->with(['group', 'marketGroup', 'typeAttributes']) ->where('name', 'Rifter') ->first(); // All low-sec systems in a region, with their stations $systems = Solarsystem::query() ->with(['constellation', 'stations']) ->whereBetween('security', [0.1, 0.45]) ->whereRelation('region', 'name', 'Heimatar') ->get();
Customizing the models
If you want to extend or override the bundled Eloquent models, publish them to your application and point the sde.models config entries at your own classes:
php artisan vendor:publish --tag="sde-models"
// config/sde.php 'models' => [ 'Type' => App\Models\Type::class, // ... ],
The seeders resolve every model through this config, so your overrides are used everywhere.
Keeping the data fresh
CCP updates the SDE with every game patch. To stay current, schedule the download and seed commands, e.g. in routes/console.php:
use Illuminate\Support\Facades\Schedule; Schedule::command('sde:download')->weekly()->mondays()->at('11:30'); Schedule::command('sde:seed')->weekly()->mondays()->at('12:00');
Testing
composer test
This runs Rector (dry-run), Pint, PHPStan (level max) and Pest.
Changelog
Please see CHANGELOG for more information on what has changed recently. Releases are automated with release-please and published to Packagist.
Credits
EVE Online and all related data are © CCP hf. This package is not affiliated with or endorsed by CCP.
License
The MIT License (MIT). Please see License File for more information.