@eveshipfit/sde
v7.3532181.0
Published
A patched EVE Online SDE, as flatbuffers, for EVEShipFit's dogma-engine
Readme
SDE Patched
A patched EVE Online SDE to work better with EVEShipFit's dogma-engine.
The main goal is to produce a small data-file, with everything included for dogma-engine to calculate fit statistics.
Prerequisite
- Go 1.27 or later
- flatc
Usage
go run ./cmd/sde-patched download # fetch the latest SDE into sde/
go run ./cmd/sde-patched build # write dist/sde.dat and dist/names.dat
go run ./cmd/sde-patched compare old/ # tell whether dist/ differs from old/, ignoring the SDE build
go run ./cmd/sde-patched patches # list all patches
go run ./cmd/sde-patched ids # give an ID to anything added without one
go run ./cmd/sde-patched explain alignTime
go run ./cmd/sde-patched explain --type "Rifter"
go run ./cmd/sde-patched serve # edit the patches in a browserbuild downloads the SDE when there is none yet, and uses the one on disk otherwise.
Use --build <number> to pin a version.
Editing
The patches are best edited via the web-editor (via serve).
It allows for full customization of all existing and new attributes.
This editor is fully vibe-coded, and it is very likely no human actually understands how it works. It is also not meant as "production-ready" software, but much more as "an easier way to digest patches".
Output
build writes two flatbuffers, described in specs/:
dist/sde.datholds the types, dogma, groups, categories, buffs and mutaplasmids, with English names only. It is all a dogma-engine needs.dist/names.datmaps a name in any of the eight languages EVE supports back to a type ID. Only an EFT-fit importer needs it, and only ever to search.
npm
npm install @eveshipfit/sde@eveshipfit/sde ships both files and the schemas, under dist/ and specs/.
Python
pip install eveshipfit-sdeeveshipfit-sde ships both files and the schemas, and the paths to them.
from eveshipfit_sde import build_number, names_path, sde_path, specs_path
dogma.load_sde_from_file(sde_path())build_number() reads the SDE build straight off the version.
Releasing
Every day at 12:00 UTC, main is built against the latest SDE.
When the result differs from the latest release, the SDE build number aside, a new release is made and published on npm and PyPI.
A change to the patches is released this way too.
Patches
The SDE describes what the EVE client needs, not what a fitting tool needs. Align time, for example, is not an attribute; the client works it out. Patches add the missing attributes and effects, so a dogma-engine can work them out instead.
License
All EVE Online data belongs to CCP, and is subject to their license agreement. Everything EVEShip.fit-specific is MIT.
