EDCD / EDDI

Companion application for Elite Dangerous
Other
448 stars 82 forks source link

Material Monitor misses empty stock of materials when loading into the game #2090

Closed alterNERDtive closed 3 years ago

alterNERDtive commented 3 years ago

What's Wrong (please be as specific as possible)

The Material Monitor will report the last known quantity of a material if it is empty when you load into the game.

That is an issue if you run multiple accounts, if you don’t always run EDDI alongside the game, or if you simply use more than one PC.

Expected

Material Monitor correctly reports a material as empty / 0 units.

Observed

Material Monitor reports the last known non-0 value.

Steps to reproduce

  1. Have some amount of a material. In my case my alt account has 17 Pharmaceutical Isolators.
  2. Log out.
  3. Either log into the game with another account that has no stock of that material (in my case the main account), or use all of it / trade it away while EDDI is not running, then log back in with EDDI running.
  4. EDDI will report the old value (in my case, 17 PI).

Configuration

My Investigation

Investigation Notes

When you log into the game, the “Materials” event will not list materials that you currently have no stock of. That is expected, I’m assuming, because it makes sense :)

EDDI will apparently only update the material count for those that are listed in the event, and keep the old stock for everything else instead of setting it to 0.

Player journals

“Materials” event with no PI, on the main account, after which EDDI still reported the 17 I had when logged in on the alt:

{ "timestamp":"2021-01-26T11:58:22Z", "event":"Materials", "Raw":[ { "Name":"carbon", "Count":285 }, { "Name":"chromium", "Count":248 }, { "Name":"zinc", "Count":250 }, { "Name":"nickel", "Count":280 }, { "Name":"vanadium", "Count":250 }, { "Name":"iron", "Count":300 }, { "Name":"sulphur", "Count":285 }, { "Name":"phosphorus", "Count":295 }, { "Name":"germanium", "Count":248 }, { "Name":"cadmium", "Count":195 }, { "Name":"manganese", "Count":239 }, { "Name":"yttrium", "Count":150 }, { "Name":"mercury", "Count":199 }, { "Name":"ruthenium", "Count":150 }, { "Name":"tungsten", "Count":98 }, { "Name":"arsenic", "Count":250 }, { "Name":"niobium", "Count":198 }, { "Name":"zirconium", "Count":250 }, { "Name":"molybdenum", "Count":199 }, { "Name":"polonium", "Count":150 }, { "Name":"tin", "Count":199 }, { "Name":"selenium", "Count":68 }, { "Name":"technetium", "Count":150 }, { "Name":"tellurium", "Count":143 }, { "Name":"antimony", "Count":150 }, { "Name":"rhenium", "Count":300 }, { "Name":"lead", "Count":300 }, { "Name":"boron", "Count":200 } ], "Manufactured":[ { "Name":"shieldemitters", "Name_Localised":"Shield Emitters", "Count":189 }, { "Name":"galvanisingalloys", "Name_Localised":"Galvanising Alloys", "Count":248 }, { "Name":"crystalshards", "Name_Localised":"Crystal Shards", "Count":300 }, { "Name":"uncutfocuscrystals", "Name_Localised":"Flawed Focus Crystals", "Count":233 }, { "Name":"shieldingsensors", "Name_Localised":"Shielding Sensors", "Count":156 }, { "Name":"filamentcomposites", "Name_Localised":"Filament Composites", "Count":246 }, { "Name":"phasealloys", "Name_Localised":"Phase Alloys", "Count":187 }, { "Name":"compactcomposites", "Name_Localised":"Compact Composites", "Count":236 }, { "Name":"chemicalprocessors", "Name_Localised":"Chemical Processors", "Count":231 }, { "Name":"heatresistantceramics", "Name_Localised":"Heat Resistant Ceramics", "Count":237 }, { "Name":"chemicaldistillery", "Name_Localised":"Chemical Distillery", "Count":183 }, { "Name":"focuscrystals", "Name_Localised":"Focus Crystals", "Count":169 }, { "Name":"chemicalmanipulators", "Name_Localised":"Chemical Manipulators", "Count":54 }, { "Name":"basicconductors", "Name_Localised":"Basic Conductors", "Count":251 }, { "Name":"heatconductionwiring", "Name_Localised":"Heat Conduction Wiring", "Count":251 }, { "Name":"mechanicalscrap", "Name_Localised":"Mechanical Scrap", "Count":285 }, { "Name":"conductivecomponents", "Name_Localised":"Conductive Components", "Count":137 }, { "Name":"chemicalstorageunits", "Name_Localised":"Chemical Storage Units", "Count":298 }, { "Name":"wornshieldemitters", "Name_Localised":"Worn Shield Emitters", "Count":250 }, { "Name":"gridresistors", "Name_Localised":"Grid Resistors", "Count":271 }, { "Name":"highdensitycomposites", "Name_Localised":"High Density Composites", "Count":166 }, { "Name":"mechanicalequipment", "Name_Localised":"Mechanical Equipment", "Count":231 }, { "Name":"heatdispersionplate", "Name_Localised":"Heat Dispersion Plate", "Count":248 }, { "Name":"mechanicalcomponents", "Name_Localised":"Mechanical Components", "Count":193 }, { "Name":"configurablecomponents", "Name_Localised":"Configurable Components", "Count":142 }, { "Name":"compoundshielding", "Name_Localised":"Compound Shielding", "Count":22 }, { "Name":"salvagedalloys", "Name_Localised":"Salvaged Alloys", "Count":288 }, { "Name":"hybridcapacitors", "Name_Localised":"Hybrid Capacitors", "Count":210 }, { "Name":"temperedalloys", "Name_Localised":"Tempered Alloys", "Count":300 }, { "Name":"protolightalloys", "Name_Localised":"Proto Light Alloys", "Count":150 }, { "Name":"protoradiolicalloys", "Name_Localised":"Proto Radiolic Alloys", "Count":100 }, { "Name":"fedcorecomposites", "Name_Localised":"Core Dynamics Composites", "Count":27 }, { "Name":"militarysupercapacitors", "Name_Localised":"Military Supercapacitors", "Count":48 }, { "Name":"electrochemicalarrays", "Name_Localised":"Electrochemical Arrays", "Count":187 }, { "Name":"conductiveceramics", "Name_Localised":"Conductive Ceramics", "Count":164 }, { "Name":"heatexchangers", "Name_Localised":"Heat Exchangers", "Count":194 }, { "Name":"conductivepolymers", "Name_Localised":"Conductive Polymers", "Count":106 }, { "Name":"polymercapacitors", "Name_Localised":"Polymer Capacitors", "Count":114 }, { "Name":"heatvanes", "Name_Localised":"Heat Vanes", "Count":142 }, { "Name":"protoheatradiators", "Name_Localised":"Proto Heat Radiators", "Count":94 }, { "Name":"guardian_powerconduit", "Name_Localised":"Guardian Power Conduit", "Count":223 }, { "Name":"guardian_sentinel_weaponparts", "Name_Localised":"Guardian Sentinel Weapon Parts", "Count":162 }, { "Name":"guardian_sentinel_wreckagecomponents", "Name_Localised":"Guardian Wreckage Components", "Count":88 }, { "Name":"guardian_powercell", "Name_Localised":"Guardian Power Cell", "Count":133 }, { "Name":"guardian_techcomponent", "Name_Localised":"Guardian Technology Component", "Count":194 }, { "Name":"militarygradealloys", "Name_Localised":"Military Grade Alloys", "Count":100 }, { "Name":"imperialshielding", "Name_Localised":"Imperial Shielding", "Count":3 }, { "Name":"fedproprietarycomposites", "Name_Localised":"Proprietary Composites", "Count":149 }, { "Name":"precipitatedalloys", "Name_Localised":"Precipitated Alloys", "Count":187 }, { "Name":"exquisitefocuscrystals", "Name_Localised":"Exquisite Focus Crystals", "Count":67 }, { "Name":"unknownenergysource", "Name_Localised":"Sensor Fragment", "Count":7 }, { "Name":"improvisedcomponents", "Name_Localised":"Improvised Components", "Count":82 }, { "Name":"thermicalloys", "Name_Localised":"Thermic Alloys", "Count":140 }, { "Name":"biotechconductors", "Name_Localised":"Biotech Conductors", "Count":91 }, { "Name":"tg_wreckagecomponents", "Name_Localised":"Wreckage Components", "Count":57 }, { "Name":"tg_weaponparts", "Name_Localised":"Weapon Parts", "Count":78 }, { "Name":"tg_biomechanicalconduits", "Name_Localised":"Bio-Mechanical Conduits", "Count":48 }, { "Name":"tg_propulsionelement", "Name_Localised":"Propulsion Elements", "Count":51 } ], "Encoded":[ { "Name":"decodedemissiondata", "Name_Localised":"Decoded Emission Data", "Count":51 }, { "Name":"emissiondata", "Name_Localised":"Unexpected Emission Data", "Count":17 }, { "Name":"shielddensityreports", "Name_Localised":"Untypical Shield Scans ", "Count":30 }, { "Name":"scanarchives", "Name_Localised":"Unidentified Scan Archives", "Count":34 }, { "Name":"consumerfirmware", "Name_Localised":"Modified Consumer Firmware", "Count":171 }, { "Name":"hyperspacetrajectories", "Name_Localised":"Eccentric Hyperspace Trajectories", "Count":31 }, { "Name":"shieldcyclerecordings", "Name_Localised":"Distorted Shield Cycle Recordings", "Count":274 }, { "Name":"legacyfirmware", "Name_Localised":"Specialised Legacy Firmware", "Count":47 }, { "Name":"scrambledemissiondata", "Name_Localised":"Exceptional Scrambled Emission Data", "Count":9 }, { "Name":"fsdtelemetry", "Name_Localised":"Anomalous FSD Telemetry", "Count":158 }, { "Name":"disruptedwakeechoes", "Name_Localised":"Atypical Disrupted Wake Echoes", "Count":123 }, { "Name":"dataminedwake", "Name_Localised":"Datamined Wake Exceptions", "Count":4 }, { "Name":"wakesolutions", "Name_Localised":"Strange Wake Solutions", "Count":64 }, { "Name":"archivedemissiondata", "Name_Localised":"Irregular Emission Data", "Count":21 }, { "Name":"shieldsoakanalysis", "Name_Localised":"Inconsistent Shield Soak Analysis", "Count":250 }, { "Name":"compactemissionsdata", "Name_Localised":"Abnormal Compact Emissions Data", "Count":12 }, { "Name":"scandatabanks", "Name_Localised":"Classified Scan Databanks", "Count":193 }, { "Name":"industrialfirmware", "Name_Localised":"Cracked Industrial Firmware", "Count":64 }, { "Name":"shieldpatternanalysis", "Name_Localised":"Aberrant Shield Pattern Analysis", "Count":36 }, { "Name":"bulkscandata", "Name_Localised":"Anomalous Bulk Scan Data", "Count":296 }, { "Name":"symmetrickeys", "Name_Localised":"Open Symmetric Keys", "Count":177 }, { "Name":"encryptedfiles", "Name_Localised":"Unusual Encrypted Files", "Count":284 }, { "Name":"encryptioncodes", "Name_Localised":"Tagged Encryption Codes", "Count":237 }, { "Name":"encryptionarchives", "Name_Localised":"Atypical Encryption Archives", "Count":145 }, { "Name":"adaptiveencryptors", "Name_Localised":"Adaptive Encryptors Capture", "Count":4 }, { "Name":"securityfirmware", "Name_Localised":"Security Firmware Patch", "Count":63 }, { "Name":"classifiedscandata", "Name_Localised":"Classified Scan Fragment", "Count":4 }, { "Name":"embeddedfirmware", "Name_Localised":"Modified Embedded Firmware", "Count":68 }, { "Name":"encodedscandata", "Name_Localised":"Divergent Scan Data", "Count":41 }, { "Name":"shieldfrequencydata", "Name_Localised":"Peculiar Shield Frequency Data", "Count":11 }, { "Name":"ancienthistoricaldata", "Name_Localised":"Pattern Gamma Obelisk Data", "Count":150 }, { "Name":"ancientculturaldata", "Name_Localised":"Pattern Beta Obelisk Data", "Count":135 }, { "Name":"ancientlanguagedata", "Name_Localised":"Pattern Delta Obelisk Data", "Count":120 }, { "Name":"ancientbiologicaldata", "Name_Localised":"Pattern Alpha Obelisk Data", "Count":150 }, { "Name":"ancienttechnologicaldata", "Name_Localised":"Pattern Epsilon Obelisk Data", "Count":3 }, { "Name":"unknownshipsignature", "Name_Localised":"Thargoid Ship Signature", "Count":36 }, { "Name":"tg_shipsystemsdata", "Name_Localised":"Ship Systems Data", "Count":39 }, { "Name":"tg_shipflightdata", "Name_Localised":"Ship Flight Data", "Count":33 } ] }
alterNERDtive commented 3 years ago

Forgot to mention that after picking some up on my main account EDDI is reporting the correct amount again, persisting through relogs; so the general tracking works, it seems to be just this one specific case.