Bug Description
The getDropPod endpoint always returns both RequiredPower and RequiredItem fields populated, even when only one requirement type is active for a given drop pod. In the game engine, FFGDropPodUnlockCost uses a CostType enum (None, Item, or Power) to determine which field is valid, but the endpoint serializes both fields without checking CostType.
This causes API consumers to display incorrect requirements. For example, a pod that only requires 90 MW of power will also report RequiredItem: { Name: "Encased Industrial Beam", Amount: 3 } — leftover data from the unused field.
Affected Code
Source/FicsitRemoteMonitoring/Private/Endpoints/World/Resources.cpp, lines ~180-197. Both ItemCost and PowerConsumption from the FFGDropPodUnlockCost struct are serialized unconditionally. The CostType enum is never checked or exposed in the response.
The CostType enum and struct definition can be found in FGDropPod.h from [SatisfactoryModLoader](https://github.com/satisfactorymodding/SatisfactoryModLoader).
Expected Behavior
The API should either expose CostType as a field in the response so consumers can determine which requirement is active, or zero out the inactive field based on CostType before serializing.
Environment
- FRM version: latest as of April 2026
- Satisfactory: v1.1
- Discovered via a dashboard consuming the
/getDropPod API
Bug Description
The
getDropPodendpoint always returns bothRequiredPowerandRequiredItemfields populated, even when only one requirement type is active for a given drop pod. In the game engine,FFGDropPodUnlockCostuses aCostTypeenum (None,Item, orPower) to determine which field is valid, but the endpoint serializes both fields without checkingCostType.This causes API consumers to display incorrect requirements. For example, a pod that only requires 90 MW of power will also report
RequiredItem: { Name: "Encased Industrial Beam", Amount: 3 }— leftover data from the unused field.Affected Code
Source/FicsitRemoteMonitoring/Private/Endpoints/World/Resources.cpp, lines ~180-197. BothItemCostandPowerConsumptionfrom theFFGDropPodUnlockCoststruct are serialized unconditionally. TheCostTypeenum is never checked or exposed in the response.The
CostTypeenum and struct definition can be found inFGDropPod.hfrom [SatisfactoryModLoader](https://github.com/satisfactorymodding/SatisfactoryModLoader).Expected Behavior
The API should either expose
CostTypeas a field in the response so consumers can determine which requirement is active, or zero out the inactive field based onCostTypebefore serializing.Environment
/getDropPodAPI