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

User:Cassiel Seraphim/ESI: Difference between revisions

From EVE University Wiki
mNo edit summary
m Update {{TOClimit}} to {TOC|limit=}}.
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The '''EVE Swagger Interface (ESI)''' is a public [https://en.wikipedia.org/wiki/Application_programming_interface Application Programming Interface (API)] that allows players and applications to pull data about various things in EVE. This article focuses on the [https://eveonline-third-party-documentation.readthedocs.io/en/latest/dogma/intro.html Dogma]-attributes for NPC stats, such as which EWAR-capabilities they have, their damage output, resists and effective hit points, speeds, orbit ranges and all the other intricate little details that helps us know our enemy and perfect our fits.
The '''EVE Swagger Interface (ESI)''' is a public [https://en.wikipedia.org/wiki/Application_programming_interface Application Programming Interface (API)] that allows players and applications to pull data about various things in EVE. This article focuses on the [https://eveonline-third-party-documentation.readthedocs.io/en/latest/dogma/intro.html Dogma]-attributes for NPC stats, such as which EWAR-capabilities they have, their damage output, resists and effective hit points, speeds, orbit ranges and all the other intricate little details that helps us know our enemy and perfect our fits.


{{ambiguation|For more general information and other uses of ESI, see the [[EVE Swagger Interface]] page.}}
{{note|For more general information and other uses of ESI, see the [[EVE Swagger Interface]] page.}}
 
{{TOC|limit=2}}
{{main|EVE Swagger Interface}}
 
= Working with EVE Swagger Interface (ESI) =
= Working with EVE Swagger Interface (ESI) =
You can manually or through scripts pull information directly from CCP's servers with the following URL:
You can manually or through scripts pull information directly from CCP's servers with the following URL:
Line 105: Line 103:
So below is a summary of various areas that may not be as straightforward as you'd like, so you can avoid misinterpreting the data.
So below is a summary of various areas that may not be as straightforward as you'd like, so you can avoid misinterpreting the data.


== Energy neutralizing and energy transfers ==
== Energy neutralizing and energy nosferatu ==
{| class="wikitable" style="text-font:left;"
{| class="wikitable" style="text-font:left;"
! style="background-color:#222222; text-align:left;" | AttributeID
! style="background-color:#222222; text-align:left;" | AttributeID
Line 114: Line 112:
|-
|-
| 90
| 90
| Energy transfer amount (powerTransferAmount)
| powerTransferAmount
| Amount of power to transfer.
| Amount of power to transfer.
| EW - Energy Neutralizing
| EW - Energy Neutralizing
|
| {{co|slateblue|Old AI}} - Neutralization amount in GJ (positive).
|-
|-
| 97
| 97
Line 123: Line 121:
| An amount to modify the power of the target by.
| An amount to modify the power of the target by.
| EW - Energy Neutralizing
| EW - Energy Neutralizing
|  
| {{co|slateblue|Old AI}} - Nosferatu amount in GJ (positive).
|-
|-
| 98
| 98
Line 129: Line 127:
| Optimal Range of Energy Neutralizer
| Optimal Range of Energy Neutralizer
| EW - Energy Neutralizing
| EW - Energy Neutralizing
|
| {{co|slateblue|Old AI}} - Optimal range in meters.
|-
|-
| 931
| 931
Line 135: Line 133:
| Chance of NPC effect to be activated each duration
| Chance of NPC effect to be activated each duration
| EW - Energy Neutralizing
| EW - Energy Neutralizing
|  
| {{co|slateblue|Old AI}} - Chance per cycle in decimals (can be null).
|-
|-
| 942
| 942
Line 141: Line 139:
| Duration of NPC Energy Neutralizer effect
| Duration of NPC Energy Neutralizer effect
| EW - Energy Neutralizing
| EW - Energy Neutralizing
|
| {{co|slateblue|Old AI}} - Duration in miliseconds.
|-
|-
| 2451
| 2451
Line 147: Line 145:
| Signature Resolution of Energy Neutralizer
| Signature Resolution of Energy Neutralizer
| EW - Energy Neutralizing
| EW - Energy Neutralizing
|  
| {{co|slateblue|Old AI}} - Resolution in meters (can be null).
|-
|-
| 2452
| 2452
Line 153: Line 151:
| Falloff Range of Energy Neutralizer
| Falloff Range of Energy Neutralizer
| EW - Energy Neutralizing
| EW - Energy Neutralizing
|  
| {{co|slateblue|Old AI}} - Falloff in meters (can be null).
|-
|-
| 2629
| 2519
| behaviorEnergyNosferatuDischarge
| behaviorEnergyNeutralizerDuration
|  
|  
| Behavior Attributes
| Behavior Attributes
|  
| {{co|violet|New AI}} - Neutralizer duration in miliseconds.
|-
|-
| 2630
| 2520
| behaviorEnergyNosferatuDuration
| behaviorEnergyNeutralizerRange
|  
|  
| Behavior Attributes
| Behavior Attributes
|  
| {{co|violet|New AI}} - Neutralizer optimal range in meters.
|-
|-
| 2631
| 2521
| behaviorEnergyNosferatuFalloff
| behaviorEnergyNeutralizerFalloff
|  
|  
| Behavior Attributes
| Behavior Attributes
|  
| {{co|violet|New AI}} - Neutralizer falloff in meters (can be null).
|-
|-
| 2632
| 2522
| behaviorEnergyNosferatuRange
| behaviorEnergyNeutralizerDischarge
|  
|  
| Behavior Attributes
| Behavior Attributes
|  
| {{co|violet|New AI}} - Neutralizer cap usage in GJ (positive).
|-
|-
| 2519
| 2630
| behaviorEnergyNeutralizerDuration
| behaviorEnergyNosferatuDuration
|  
|  
| Behavior Attributes
| Behavior Attributes
|  
| {{co|violet|New AI}} - Nosferatu duration in miliseconds.
|-
|-
| 2520
| 2632
| behaviorEnergyNeutralizerRange
| behaviorEnergyNosferatuRange
|  
|  
| Behavior Attributes
| Behavior Attributes
|  
| {{co|violet|New AI}} - Nosferatu optimal range in meters.
|-
|-
| 2521
| 2631
| behaviorEnergyNeutralizerFalloff
| behaviorEnergyNosferatuFalloff
|  
|  
| Behavior Attributes
| Behavior Attributes
|  
| {{co|violet|New AI}} - Nosferatu falloff in meters (can be null).
|-
|-
| 2522
| 2629
| behaviorEnergyNeutralizerDischarge
| behaviorEnergyNosferatuDischarge
|  
|  
| Behavior Attributes
| Behavior Attributes
|  
| {{co|violet|New AI}} - Nosferatu cap cost in GJ (negative).
|-
|-
|}
|}
Line 207: Line 205:
Both the old and new AI distinguish between the two:
Both the old and new AI distinguish between the two:


* {{co|slateblue|Old AI}} - Attribute {{co|slateblue|97}} (energyNeutralizerAmount) shows neutralization amount and {{co|slateblue|90}} (powerTransferAmount) shows nosferatu amount.
* {{co|slateblue|Old AI}} - Attribute {{co|slateblue|97}} (''energyNeutralizerAmount'') shows neutralization amount and {{co|slateblue|90}} (''powerTransferAmount'') shows nosferatu amount.
* {{co|violet|New AI}} - The behavior-attribute series in {{co|violet|2519 - 2522}} (behaviorEnergyNeutralizationX) means neutralizing and in {{co|violet|2629 - 2632}} (behaviorEnergyNosferatuX) means nosferatu.
* {{co|violet|New AI}} - The '''behavior'''-attribute series in {{co|violet|2519 - 2522}} (''behaviorEnergyNeutralizationX'') means neutralizing and in {{co|violet|2629 - 2632}} (''behaviorEnergyNosferatuX'') means nosferatu.
 
==== Consolidation and sanity checks ====
So far there doesn't seem to be an overlap of identical types of data between the old and new AI, so you can use things like coalesce in sql, or similar functions, because they will never both be set to non-null values for a single entity. In some cases, you do a triple check by picking either the old or either of the two new and exclusive attributes.
 
None of them seem to utilize attribute {{co|slateblue|2451}} (''energyNeutralizerSignatureResolution'') for signature checks, so it doesn't seem NPCs adhere to the same rules of relative size and signature resolution as players do. There are also entities with too few attributes, like the '''Blood Clone Soldier Trainer''' that only has the attribute {{co|slateblue|90}} but no other attributes so it cannot actually nos you.


Currently there are no NPCs with both attributeID {{co|slateblue|90}} and {{co|slateblue|97}} set (just one or the other), so it's safe to assume that it's an either or kind of check. They either simulate '''Energy Neutralizers''' or '''Energy Nosferatu'''.
* {{co|lightgreen|Energy neutralization optimal range}} is either attribute {{co|slateblue|98}} (old) or one of {{co|violet|2520}} or {{co|violet|2632}} (new).
* {{co|lightgreen|Energy neutralization falloff range}} is either attribute {{co|slateblue|2452}} (old) or one of {{co|violet|2521}} or {{co|violet|2631}} (new) but can also be '''null'''.
* {{co|lightgreen|Energy neutralization amount}} is either {{co|slateblue|97}} (''energy neutralization'') or {{co|slateblue|90}} (''energy nosferatu'').
* {{co|lightgreen|Energy neutralization signature}} is attribute {{co|slateblue|2451}} (old) but can also be '''null'''.
* {{co|lightgreen|Energy neutralization duration}} is either attribute {{co|slateblue|942}} (old) or one of {{co|violet|2519}} or {{co|violet|2630}} (new).
* {{co|lightgreen|Energy neutralization chance}} is attribute {{co|slateblue|931}} (old) and '''null''' should be treated as 1 (100% chance) if they otherwise have at least {{co|lightgreen|amount}}, {{co|lightgreen|optimal range}} and {{co|lightgreen|duration}} values.
* {{co|lightgreen|Energy neutralization discharge}} is either {{co|violet|2522}} or {{co|violet|2629}} (new) but will be {{co|slateblue|null}} for old AI (doesn't simulate cap usage).


==== Consolidation and sanity checks ====
If you're writing a function or script to check for energy neutralization capabilities, it's best to double-check that you have entries for {{co|lightgreen|energy neutralization amount}}, {{co|lightgreen|optimal range}} and {{co|lightgreen|duration}} (they should all have at least those three entries if they actually have neuting capabilities), then if they do also adjust the {{co|lightgreen|energy neutralization chance}} to 1 if it's null and finally check to see if it's an '''energy neutralizer''' or an '''energy nosferatu'''. The existence of {{co|lightgreen|energy neutralization falloff range}}, {{co|lightgreen|signature}} and {{co|lightgreen|discharge}} will then vary.


== Warp disruption and warp scrambling ==
== Warp disruption and warp scrambling ==
Line 222: Line 231:
! style="background-color:#222222; color:wheat; text-align:left;" | My notes
! style="background-color:#222222; color:wheat; text-align:left;" | My notes
|-
|-
| 2506
| behaviorWarpScrambleDuration
|
| Behavior Attributes
| {{co|violet|New AI}} - Duration in miliseconds.
|-
| 2507
| behaviorWarpScrambleRange
|
| Behavior Attributes
| {{co|violet|New AI}} - Range in meters.
|-
| 2508
| behaviorWarpScrambleDischarge
|
| Behavior Attributes
| {{co|violet|New AI}} - Cap usage in GJ.
|-
| 2509
| behaviorWarpScrambleStrength
|
| Behavior Attributes
| {{co|violet|New AI}} - Warp scramble strength (so far always a real scram).
|-
|-
| 103
| 103
Line 256: Line 242:
| Amount to modify ships warp scramble status by.
| Amount to modify ships warp scramble status by.
| EW - Warp Scrambling
| EW - Warp Scrambling
| {{co|slateblue|Old AI}} - Warp disrupt/scramble strength.
| {{co|slateblue|Old AI}} - Disrupt/scramble strength (positive).
|-
|-
| 504
| 504
Line 262: Line 248:
| Chance of entity warp scrambling it's target.
| Chance of entity warp scrambling it's target.
| EW - Warp Scrambling
| EW - Warp Scrambling
| {{co|slateblue|Old AI}} - Some NPCs don't warp disrupt/scram every cycle (can be null).
| {{co|slateblue|Old AI}} - Chance per cycle in decimals (can be null).
|-
|-
| 505
| 505
Line 274: Line 260:
|
|
| EW - Warp Scrambling
| EW - Warp Scrambling
| {{co|slateblue|Old AI}} - Denotes warp scrambling effect (instead of just disruption).
| {{co|slateblue|Old AI}} - Warp scrambling effect (not disruption).
|-
| 2503
| behaviorWarpDisruptDuration
|
| Behavior Attributes
| {{co|violet|New AI}} - Disruptor duration in miliseconds.
|-
| 2504
| behaviorWarpDisruptRange
|
| Behavior Attributes
| {{co|violet|New AI}} - Disruptor range in meters.
|-
| 2505
| behaviorWarpDisruptDischarge
|
| Behavior Attributes
| {{co|violet|New AI}} - Disruptor cap usage in GJ.
|-
| 2510
| behaviorWarpDisruptStrength
|
| Behavior Attributes
| {{co|violet|New AI}} - Disruptor strength (positive).
|-
| 2506
| behaviorWarpScrambleDuration
|
| Behavior Attributes
| {{co|violet|New AI}} - Scramble uration in miliseconds.
|-
| 2507
| behaviorWarpScrambleRange
|
| Behavior Attributes
| {{co|violet|New AI}} - Scramble range in meters.
|-
| 2508
| behaviorWarpScrambleDischarge
|
| Behavior Attributes
| {{co|violet|New AI}} - Scramble cap usage in GJ.
|-
| 2509
| behaviorWarpScrambleStrength
|
| Behavior Attributes
| {{co|violet|New AI}} - Scramble strength (positive).
|-
|}
|}
==== Distinguishing between a warp disruptor and a warp scrambler ====
==== Distinguishing between a warp disruptor and a warp scrambler ====
In the good old day no NPC actually warp scrambled (shuts down microjump- and microwarpdrives), they all just warp disrupted at various strengths. With the introduction of the [[Burner Mission|Burner missions]] (2014), followed by diamond ♦-named NPCs and [[Forward Operating Base]]s (2017) as well as [[Triglavian Invasion]]s (2019) this changed. There are now two things to check to see if an NPC uses normal warp disruption or actual warp scrambling:
In the good old day no NPC actually warp scrambled (shuts down microjump- and microwarpdrives), they all just warp disrupted at various strengths. With the introduction of the [[Burner Mission|Burner missions]] (2014), followed by diamond ♦-named NPCs and [[Forward Operating Base]]s (2017) as well as [[Triglavian Invasion]]s (2019) this changed. There are now two things to check to see if an NPC uses normal warp disruption or actual warp scrambling:


* {{co|slateblue|Old AI}} - An actual warp scrambler will have the attribute {{co|slateblue|1350}} (activationBlockedStrenght) set to 1.
* {{co|slateblue|Old AI}} - An actual warp scrambler will have the attribute {{co|slateblue|1350}} (''activationBlockedStrenght'') set to 1.
* {{co|violet|New AI}} - All NPCs with the behavior-attribute of {{co|violet|2509}} (behaviorWarpScrambleStrength) use actual warp scramblers.
* {{co|violet|New AI}} - NPCs with '''behavior'''-attribute {{co|violet|2509}} (''behaviorWarpScrambleStrength'') use actual warp scramblers and those with {{co|violet|2510}} (''behaviorWarpDisruptStrength'') use warp disruptors.


==== Consolidation and sanity checks ====
==== Consolidation and sanity checks ====
So far there doesn't seem to be an overlap of identical types of data between the old and new AI, if it's a newer NPC using the new behavior-attributes it doesn't have the equivalent old attributes. This means that you can use things like coalesce in sql, or similar functions, because they will never both be set to non-null values for a single entity. There will also be entries with only some of the warp disrupt attributes, like the '''Renyn Meten''' that has a warp disrupt chance value in attribute 504 but no other attributes so it cannot actually warp disrupt.
So far there doesn't seem to be an overlap of identical types of data between the old and new AI, so you can use things like coalesce in sql, or similar functions, because they will never both be set to non-null values for a single entity. In some cases, you do a triple check by picking either the old or either of the two new and exclusive attributes.
 
There are also entities with too few attributes, like the '''Renyn Meten''' that only has the attribute {{co|slateblue|504}} but no other attributes so it cannot actually warp disrupt.


* {{co|lightgreen|Warp scramble range}} is either attribute {{co|slateblue|103}} (old) or {{co|violet|2507}} (new).
* {{co|lightgreen|Warp scramble range}} is either attribute {{co|slateblue|103}} (old) or one of {{co|violet|2507}} or {{co|violet|2504}} (new).
* {{co|lightgreen|Warp scramble strength}} is either attribute {{co|slateblue|105}} (old) or {{co|violet|2509}} (new) and values above 1 doesn't necessarily mean it's a scram.
* {{co|lightgreen|Warp scramble strength}} is either attribute {{co|slateblue|105}} (old) or one of {{co|violet|2509}} or {{co|violet|2510}} (new) and values above 1 doesn't necessarily mean it's a scram.
* {{co|lightgreen|Warp scramble duration}} is either attribute {{co|slateblue|505}} (old) or {{co|violet|2506}} (new) but can also be null.
* {{co|lightgreen|Warp scramble duration}} is either attribute {{co|slateblue|505}} (old) or one of {{co|violet|2506}} or {{co|violet|2503}} (new) but can also be null.
* {{co|lightgreen|Warp scramble chance}} is attribute {{co|slateblue|504}} (old) or {{co|violet|null}} (new) and '''null''' should be treated as 1 (100% chance) if they otherwise have at least {{co|lightgreen|strength}} and {{co|lightgreen|range}} values.
* {{co|lightgreen|Warp scramble chance}} is attribute {{co|slateblue|504}} (old) and '''null''' should be treated as 1 (100% chance) if they otherwise have at least {{co|lightgreen|strength}} and {{co|lightgreen|range}} values.
* {{co|lightgreen|Warp scramble discharge}} is attribute {{co|violet|2508}} (new) but will be {{co|slateblue|null}} for old AI (doesn't simulate cap usage).
* {{co|lightgreen|Warp scramble discharge}} is either attribute {{co|violet|2508}} or {{co|violet|2505}} (new) but will be {{co|slateblue|null}} for old AI (doesn't simulate cap usage).
* {{co|lightgreen|Warp scrambling effect}} is true if either {{co|slateblue|1350}} (old) or {{co|violet|2509}} (new) is not null.
* {{co|lightgreen|Warp scrambling effect}} is true if either {{co|slateblue|1350}} (old) or {{co|violet|2509}} (new) is not null.


If you're writing a function or script to check for warp disruption capabilities, it's best to double-check that you have entries for both {{co|lightgreen|warp scramble strength}} and {{co|lightgreen|range}} (they should all have at least those two entries if they actually have warp disrupt capabilities), then if they do also adjust the {{co|lightgreen|warp scramble chance}} to 1 if it's null and finally check to see if it's a '''warp disruptor''' or a '''warp scrambler'''. The existence of {{co|lightgreen|warp scramble duration}} and {{co|lightgreen|discharge}} will then vary.
If you're writing a function or script to check for warp disruption capabilities, it's best to double-check that you have entries for both {{co|lightgreen|warp scramble strength}} and {{co|lightgreen|range}} (they should all have at least those two entries if they actually have warp disrupt capabilities), then if they do also adjust the {{co|lightgreen|warp scramble chance}} to 1 if it's null and finally check to see if it's a '''warp disruptor''' or a '''warp scrambler'''. The existence of {{co|lightgreen|warp scramble duration}} and {{co|lightgreen|discharge}} will then vary.