Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Static Data Export: Difference between revisions

From EVE University Wiki
added more SDE info
update SDE to new place and format
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
CCP provides developers a series of static files, known as the Static Data Export(SDE), which contains static data from the Tranquility server. The SDE is currently exported as .yaml and .static files, however, different and easier to use formats(mentioned below) are made by the community. The SDE can be found at the EVE developers [https://developers.eveonline.com/docs/services/sde/ Services and Resource] page. All resources provided by CCP are subject to the [https://developers.eveonline.com/license-agreement developer license agreement].
{{Update|2025-09-22: CCP has reworked the SDE ([https://developers.eveonline.com/blog/reworking-the-sde-a-fresh-start-for-static-data Reworking the SDE: a fresh start for static data]). This rework is '''not backwards compatible'''.}}
 
CCP provides developers a series of static files, known as the Static Data Export(SDE), which contains static data from the Tranquility server. The SDE is currently exported as .yaml and .jsonl files, however, different and easier to use formats(mentioned below) are made by the community. The SDE can be found at the EVE developers [https://developers.eveonline.com/static-data Static Data] page. All resources provided by CCP are subject to the [https://developers.eveonline.com/license-agreement developer license agreement].
 
== Fuzzwork SDE Conversions ==
== Fuzzwork SDE Conversions ==
To aide fellow developers and players in consuming this data without having to extract or convert from YAML or static format every time Steve Ronuken has hosted conversions in PostgreSQL, SQLite, MySQL, MSSQL, and CSV formats. They can be found at [https://www.fuzzwork.co.uk Fuzzwork] under SDE or more directly at [https://www.fuzzwork.co.uk/dump www.fuzzwork.co.uk/dump]. Individual table data can be found in [[:wikipedia:Comma-separated values|CSV]] and [[:wikipedia:SQL|SQL]] (MySQL) formats here [https://www.fuzzwork.co.uk/dump/latest www.fuzzwork.co.uk/dump/latest].
To aide fellow developers and players in consuming this data without having to extract or convert from YAML or JSON Lines format every time Steve Ronuken has hosted conversions in PostgreSQL, SQLite, MySQL, MSSQL, and CSV formats. They can be found at [https://www.fuzzwork.co.uk Fuzzwork] under SDE or more directly at [https://www.fuzzwork.co.uk/dump www.fuzzwork.co.uk/dump]. Individual table data can be found in [[:wikipedia:Comma-separated values|CSV]] and [[:wikipedia:SQL|SQL]] (MySQL) formats here [https://www.fuzzwork.co.uk/dump/latest www.fuzzwork.co.uk/dump/latest].


=== Opening a file from Fuzzwork SDE Conversions ===
=== Opening a file from Fuzzwork SDE Conversions ===
Line 7: Line 10:


== How does the ESI fit into all this? ==
== How does the ESI fit into all this? ==
The [[EVE Swagger Interface]] intends to have endpoints to account for all of the SDE, currently, it's not quite there yet, and the SDE is needed for many projects. The progress can be tracked [https://github.com/esi/esi-issues/issues/1103 here].
The [[EVE Swagger Interface]] intends to have endpoints to account for all of the SDE; currently, it's not quite there yet, and the SDE is needed for many projects. The progress can be tracked on the [https://github.com/esi/esi-issues/issues/1103 SDE parity checklist] at the [https://github.com/esi ESI] GitHub.


== How to implement the original SDE into your application ==
== How to implement the original SDE into your application ==
=== Step 0: Preface ===
=== Step 0: Preface ===
This is not a guide to Python or programming, if you don't know how to program, there are tons of resources to learn to code, there are a few of my favorites in the External Links section down below, if your having issues, contact me at [[User:Asgore Astroficus|Asgore Astroficus]] ([[User talk:Asgore Astroficus|talk]]).
This is not a guide to Python or programming, if you don't know how to program, there are tons of resources to learn to code, there are a few of my favorites in the [[#External links|External links]] section.


=== Step 1: Opening the file ===
=== Step 1: Opening the file ===
Firstly, find the file containing the data you need, for this example, I'm going to use fsd/blueprints.yaml. This file contains all the information required to build an industry cost predictor. Next, open the file using your desired programming language, I'm going to use python, so to open this I'll run ''with open("fsd/blueprints.yaml", "r") as f:''. The file is open! To the next step!
Firstly, find the file containing the data you need, for this example, I'm going to use fsd/blueprints.yaml. This file contains all the information required to build an industry cost predictor. Next, open the file using your desired programming language, I'm going to use python, so to open this I'll run <code>with open("fsd/blueprints.yaml", "r") as f:</code>. The file is open! To the next step!


=== Step 2: Reading the file ===
=== Step 2: Reading the file ===
==== Step 2.1: Installing PyYAML ====
==== Step 2.1: Installing PyYAML ====
Assuming you're using pip, this should be as simple as ''pip install pyyaml''. If you having issues, contact me at [[User:Asgore Astroficus|Asgore Astroficus]] ([[User talk:Asgore Astroficus|talk]]) or have a look at [https://stackabuse.com/reading-and-writing-yaml-to-a-file-in-python/ this article].
Assuming you're using pip, this should be as simple as <kbd>pip install pyyaml</kbd>. If you having issues have a look at [https://stackabuse.com/reading-and-writing-yaml-to-a-file-in-python/ Reading and Writing YAML to a File in Python] on stackabuse.


==== Step 2.2: Interpreting the file ====
==== Step 2.2: Interpreting the file ====
Now that PyYAML is installed, we need to use it to parse our file, we have already opened it, so it should just be a matter of parsing it with PyYAML, which can be done by ''blueprints = yaml.load(f, Loader=yaml.FullLoader)'', remember to have ''import yaml'' at the top of your .py file. Hopefully now if you print out the blueprints variable, your console will be filled with sweet, sweet data and the taste of success. The data will be a dictionary, and the rest from here should be relatively simple, it should just be navigating through the data as if it was a dictionary.  
Now that PyYAML is installed, we need to use it to parse our file, we have already opened it, so it should just be a matter of parsing it with PyYAML, which can be done by <code>blueprints = yaml.load(f, Loader=yaml.FullLoader)</code>, remember to have ''import yaml'' at the top of your .py file. Hopefully now if you print out the blueprints variable, your console will be filled with sweet, sweet data and the taste of success. The data will be a dictionary, and the rest from here should be relatively simple, it should just be navigating through the data as if it was a dictionary.  


=== Step 3: Postface ===
=== Step 3: Postface ===
I hope this short guide helped you somewhat get into the SDE, I might write one for the Fuzzwork conversions soon. If you have any issues, pop me a message here [[User:Asgore Astroficus|Asgore Astroficus]] ([[User talk:Asgore Astroficus|talk]]).
I hope this short guide helped you somewhat get into the SDE.


== Content of each table (version 2025-07-07) ==
== Content of each table (version 2025-07-07) ==
Line 533: Line 535:
'''timeMultiplier''', '''materialMultiplier''', '''costMultiplier''' - multipliers for time, material, and cost bonuses
'''timeMultiplier''', '''materialMultiplier''', '''costMultiplier''' - multipliers for time, material, and cost bonuses
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/ramAssemblyLineTypes.csv.bz2 ramAssemblyLineTypes.csv.bz2]||  
| [https://www.fuzzwork.co.uk/dump/latest/ramAssemblyLineTypes.csv.bz2 ramAssemblyLineTypes.csv.bz2]|| Describes installation services<br>
assemblyLineTypeID - defined ID for this table<br>
assemblyLineTypeName - defines installation service names<br>
description - description of installation services<br>
baseTimeMultiplier - multiplier for job time for the service<br>
baseMaterialMultiplier - multiplier for material amount for the service<br>
baseCostMultiplier - multiplier for job cost for the service<br>
volume - not used in game<br>
activityID - ID of activity for the service. Corresponds to activityID in ramActivities<br>
minCostPerHour - minimum cost per hour for the service
|-
| [https://www.fuzzwork.co.uk/dump/latest/ramInstallationTypeContents.csv.bz2 ramInstallationTypeContents.csv.bz2]|| Assigns station services to installation types<br>
installationTypeID - ID of installation types. Corresponds to typeID in invTypes<br>
assemblyLineTypeID - ID of installatin service. Corresponds to assemblyLineTypeID in ramAssemblyLineTypes<br>
quantity -
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/ramInstallationTypeContents.csv.bz2 ramInstallationTypeContents.csv.bz2]||  
| [https://www.fuzzwork.co.uk/dump/latest/skinLicense.csv.bz2 skinLicense.csv.bz2]|| Assigns licence types to skin types<br>
licenseTypeID - ID of licence types. Corresponds to typeID in invTypes<br>
duration - duration of the license. -1 means a permanent licence<br>
skinID - ID of the skin. Corresponds to skinID in skins
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/skinLicense.csv.bz2 skinLicense.csv.bz2]||  
| [https://www.fuzzwork.co.uk/dump/latest/skinMaterials.csv.bz2 skinMaterials.csv.bz2]|| <br>
skinMaterialID - <br>
displayNameID - <br>
materialSetID -
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/skinMaterials.csv.bz2 skinMaterials.csv.bz2]||  
| [https://www.fuzzwork.co.uk/dump/latest/skins.csv.bz2 skins.csv.bz2]|| <br>
skinID - <br>
internalName - <br>
skinMaterialID -
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/skins.csv.bz2 skins.csv.bz2]||  
| [https://www.fuzzwork.co.uk/dump/latest/skinShip.csv.bz2 skinShip.csv.bz2]|| Assigns skin types to ships<br>
skinID - ID of skins. Corresponds to skinID in skins<br>
typeID - ID of ship. Corresponds to typeID in invTypes<br>
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/skinShip.csv.bz2 skinShip.csv.bz2]|| What skins can be used on what ships
| [https://www.fuzzwork.co.uk/dump/latest/solarsystemprecise.csv.bz2 solarsystemprecise.csv.bz2]|| Empty file
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/staOperations.csv.bz2 staOperations.csv.bz2]||  
| [https://www.fuzzwork.co.uk/dump/latest/staOperations.csv.bz2 staOperations.csv.bz2]|| <br>
activityID - <br>
operationID - <br>
operationName - <br>
description - <br>
fringe - <br>
corridor - <br>
hub - <br>
border - <br>
ratio - <br>
caldariStationTypeID, minmatarStationTypeID, amarrStationTypeID, gallenteStationTypeID, joveStationTypeID -
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/staOperationServices.csv.bz2 staOperationServices.csv.bz2]|| Information about what station types offer what services (speculation)
| [https://www.fuzzwork.co.uk/dump/latest/staOperationServices.csv.bz2 staOperationServices.csv.bz2]|| <br>
operationID - <br>
serviceID -
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/staServices.csv.bz2 staServices.csv.bz2]||  
| [https://www.fuzzwork.co.uk/dump/latest/staServices.csv.bz2 staServices.csv.bz2]|| Description of NPC station services<br>
serviceID - defined ID for this table<br>
serviceName - defines service names<br>
description - description of services
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/staStations.csv.bz2 staStations.csv.bz2]|| Information about stations, their security level, location, name, reprocessing level, and much more.
| [https://www.fuzzwork.co.uk/dump/latest/staStations.csv.bz2 staStations.csv.bz2]|| Describes NPC stations<br>
stationID - ID of the station. Corresponds to itemID in mapDenormalize<br>
security - system security<br>
dockingCostPerVolume, maxShipVolumeDockable, officeRentalCost - not used in game<br>
operationID - <br>
stationTypeID - ID of station type. Corresponds to typeID in invTypes<br>
corporationID - <br>
solarSystemID - <br>
constellationID - <br>
regionID - <br>
stationName - <br>
x, y, z - <br>
reprocessingEfficiency - <br>
reprocessingStationsTake - <br>
reprocessingHangarFlag -
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/staStationTypes.csv.bz2 staStationTypes.csv.bz2]||  
| [https://www.fuzzwork.co.uk/dump/latest/staStationTypes.csv.bz2 staStationTypes.csv.bz2]|| <br>
stationTypeID - <br>
dockEntryX - <br>
dockEntryY - <br>
dockEntryZ - <br>
dockOrientationX - <br>
dockOrientationY - <br>
dockOrientationZ - <br>
operationID - <br>
officeSlots - <br>
reprocessingEfficiency - <br>
conquerable -
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/translationTables.csv.bz2 translationTables.csv.bz2]|| Appears to be empty
| [https://www.fuzzwork.co.uk/dump/latest/translationTables.csv.bz2 translationTables.csv.bz2]|| Empty file
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/trnTranslationColumns.csv.bz2 trnTranslationColumns.csv.bz2]||  
| [https://www.fuzzwork.co.uk/dump/latest/trnTranslationColumns.csv.bz2 trnTranslationColumns.csv.bz2]|| <br>
tcGroupID - <br>
tcID - <br>
tableName - <br>
columnName - <br>
masterID -
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/trnTranslationLanguages.csv.bz2 trnTranslationLanguages.csv.bz2]||  
| [https://www.fuzzwork.co.uk/dump/latest/trnTranslationLanguages.csv.bz2 trnTranslationLanguages.csv.bz2]|| <br>
numericLanguageID - <br>
languageID - <br>
languageName -
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/trnTranslations.csv.bz2 trnTranslations.csv.bz2]||  
| [https://www.fuzzwork.co.uk/dump/latest/trnTranslations.csv.bz2 trnTranslations.csv.bz2]|| <br>
 
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/warCombatZones.csv.bz2 warCombatZones.csv.bz2]|| A small file that updates regularly. It contains information about combat zones (FW I think?)
| [https://www.fuzzwork.co.uk/dump/latest/warCombatZones.csv.bz2 warCombatZones.csv.bz2]|| <br>
combatZoneID - <br>
combatZoneName - <br>
factionID - <br>
centerSystemID - <br>
description -
|-
|-
| [https://www.fuzzwork.co.uk/dump/latest/warCombatZoneSystems.csv.bz2 warCombatZoneSystems.csv.bz2]||  
| [https://www.fuzzwork.co.uk/dump/latest/warCombatZoneSystems.csv.bz2 warCombatZoneSystems.csv.bz2]|| <br>
solarSystemID - <br>
combatZoneID -
|}
|}


Line 572: Line 655:
* [https://www.youtube.com/channel/UCCezIgC97PvUuR4_gbFUs5g Corey Schafer]
* [https://www.youtube.com/channel/UCCezIgC97PvUuR4_gbFUs5g Corey Schafer]
* EVE Online Discord Dev Chat [https://discord.com/channels/940573867192221696/972841377798946896 3rd-party-dev-and-esi] - I read most messages sent here, if you need help that StackOverflow can't provide, here is your best bet.
* EVE Online Discord Dev Chat [https://discord.com/channels/940573867192221696/972841377798946896 3rd-party-dev-and-esi] - I read most messages sent here, if you need help that StackOverflow can't provide, here is your best bet.


[[Category:Applications]]
[[Category:Applications]]