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

Modding:Save File Format: Difference between revisions

From the Dyson Sphere Program Wiki
Content deleted Content added
imported>76561198054818918
Continuing additions to GameHistoryData
imported>76561198054818918
Added up through CargoTraffic
Line 7: Line 7:
{
{
"VFSAVE"
"VFSAVE"
uint64_t fileStreamLength
int64_t fileStreamLength
uint32_t saveFileFormatNumber, 4 as of the writing of this page
int32_t saveFileFormatNumber = 4
uint32_t majorGameVersion
int32_t majorGameVersion
uint32_t minorGameVersion
int32_t minorGameVersion
uint32_t releaseGameVersion
int32_t releaseGameVersion
uint64_t gameTick
int64_t gameTick
uint64_t nowTicks
int64_t nowTicks
uint32_t sizeOfPngFile
int32_t sizeOfPngFile
uint8_t* screenShotPngFile
uint8_t screenShotPngFile[sizeOfPngFile]
GameData
GameData
}
}
Line 21: Line 21:
GameData
GameData
{
{
uint32_t version
int32_t version = 2
string gameName
string gameName
GameDesc
GameDesc gameDesc
uint64_t gameTick
int64_t gameTick
GamePrefsData (version >= 1)
GamePrefsData preferences (version >= 1)
GameHistoryData
GameHistoryData
uint8_t bool hidePlayerModel (version >= 2)
uint8_t bool hidePlayerModel (version >= 2)
uint8_t bool disableController (version >= 2)
uint8_t bool disableController (version >= 2)
GameStatData
GameStatData statistics
uint32_t planetId
int32_t planetId
Player mainPlayer
int32_t factoryCount
GalacticTransport
PlanetFactory[factoryCount]
int32_t galaxyStarCount: Must equal GameDesc::starCount or the game will crash.
int32_t numDysonSpheres
[numDysonSpheres] {
int32_t dysonSphereDataIsAvailableFlag: Must be 0 or 1 or the game will crash.
DysonSphere (dysonSphereDataIsAvailableFlag == 1)
}
}
}


GameDesc
GameDesc
{
{
uint32_t version
int32_t version = 2
uint32_t galaxyAlgo
int32_t galaxyAlgo
uint32_t galaxySeed
int32_t galaxySeed
uint32_t starCount
int32_t starCount
uint32_t playerProto
int32_t playerProto
uint8_t resourceMultiplier (version >= 2)
float resourceMultiplier (version >= 2)
uint32_t numThemeIds (version >= 1)
int32_t numThemeIds (version >= 1)
uint32_t themeIds[numThemeIds] (version >= 1)
int32_t themeIds[numThemeIds] (version >= 1)
}
}


GamePrefsData
GamePrefsData
{
{
uint32_t version
int32_t version = 2
double cameraUPosX
double cameraUPosX
double cameraUPosY
double cameraUPosY
double cameraUPosZ
double cameraUPosZ
uint8_t cameraURotX
float cameraURotX
uint8_t cameraURotY
float cameraURotY
uint8_t cameraURotZ
float cameraURotZ
uint8_t cameraURotW
float cameraURotW
uint32_t reformCursorSize (version >= 1)
int32_t reformCursorSize (version >= 1)
uint32_t numReplicatorMultipliers (version >= 1)
int32_t numReplicatorMultipliers (version >= 1)
replicatorMultipliers[numReplicatorMultipliers] (version >= 1) {
replicatorMultipliers[numReplicatorMultipliers] (version >= 1) {
uint32_t key
int32_t key
uint32_t value
int32_t value
}
}
uint8_t bool detailPower
float bool detailPower
uint8_t bool detailVein
float bool detailVein
uint8_t bool detailSpaceGuide
float bool detailSpaceGuide
uint8_t bool detailSign
float bool detailSign
uint8_t bool detailIcon
float bool detailIcon
uint32_t numTutorialShowing (version >= 2)
int32_t numTutorialShowing (version >= 2)
uint32_t tutorialShowing[numTutorialShowing] (version >= 2)
int32_t tutorialShowing[numTutorialShowing] (version >= 2)
}
}


GameHistoryData
GameHistoryData
{
{
uint32_t version
int32_t version = 2
uint32_t numRecipeUnlocked
int32_t numRecipeUnlocked
uint32_t recipeUnlocked[numRecipeUnlocked]
int32_t recipeUnlocked[numRecipeUnlocked]
uint32_t numTutorialUnlocked (version >= 2)
int32_t numTutorialUnlocked (version >= 2)
uint32_t tutorialUnlocked[numTutorialUnlocked] (version >= 2)
int32_t tutorialUnlocked[numTutorialUnlocked] (version >= 2)
uint32_t numFeatureKeys
int32_t numFeatureKeys
uint32_t featureKeys[numFeatureKeys]
int32_t featureKeys[numFeatureKeys]
uint32_t numTechState
int32_t numTechState
[numTechState] {
[numTechState] {
uint32_t techProtoIndex
int32_t techProtoIndex
uint8_t bool TechState_unlocked
uint8_t bool TechState_unlocked
uint32_t TechState_curLevel
int32_t TechState_curLevel
uint32_t TechState_maxLevel
int32_t TechState_maxLevel
uint64_t TechState_hashUploaded
int64_t TechState_hashUploaded
uint64_t TechState_hashNeeded
int64_t TechState_hashNeeded
}
}
uint8_t bool autoManageLabItems
uint8_t bool autoManageLabItems
uint32_t currentTech
int32_t currentTech
uint32_t numTechQueue (version >= 1)
int32_t numTechQueue (version >= 1)
uint32_t techQueue_TechStateKey[numTechQueue]
int32_t techQueue_TechStateKey[numTechQueue]
int32_t universeObserveLevel
uint32_t
float solarSailLife
float solarEnergyLossRate
uint8_t bool useIonLayer
int32_t inserterStackCount
float logisticDroneSpeed
float logisticDroneSpeedScale
int32_t logisticDroneCarries
float logisticShipSailSpeed
float logisticShipWarpSpeed
float logisticShipSpeedScale
float bool logisticShipWarpDrive
int32_t logisticShipCarries
float miningCostRate
float miningSpeedScale
int32_t storageLevel
int32_t labLevel
int32_t techSpeed
float dysonNodeLatitude
int64_t universeMatrixPointUploaded
float bool missionAccomplished
}
}


GameStatData
GameStatData
{
int32_t version = 0
int32_t numTechHashedHistory
int32_t techHashedHistory[numTechHashedHistory]
ProductionStatistics
}

ProductionStatistics
{
int32_t version = 0
int32_t numFactoryStatPool
FactoryProductionStat factoryStatPool[numFactoryStatPool]
int32_t numFirstCreateIds
int32_t firstCreateIds[numFirstCreateIds]
int32_t numFavoriteIds
int32_t favoriteIds[numFavoriteIds]
}

FactoryProductionStat
{
int32_t version = 1
int32_t productCapacity
int32_t productCursor
ProductStat productPool[productCursor]
int32_t numPowerPool, max 5
PowerStat powerPool[numPowerPool]
int32_t numProductIndices
int32_t productIndices[numProductIndices]
int64_t energyConsumption (version >= 1)
}

ProductStat
{
int32_t version = 0
int32_t numCount: Saved as 7200. Reads more or less, but only stores up to 7200, and enforces abs.
int32_t count[numCount]
int32_t numCursor: Saved as 12. Reads more or less, but only stores up to 12.
int32_t cursor[numCount]
int32_t numTotal: Saved as 14. Reads more or less, but only stores up to 14, and enforces abs.
int32_t total[numCount]
int32_t itemId
}

PowerStat
{
int32_t version = 0
int32_t numEnergy: Saved as 3600. Reads more or less, but only stores up to 3600, and enforces abs.
int64_t energy[numCount]
int32_t numCursor: Saved as 6. Reads more or less, but only stores up to 6.
int32_t cursor[numCount]
int32_t numTotal: Saved as 7. Reads more or less, but only stores up to 7, and enforces abs.
int64_t total[numCount]
int32_t itemId
}

Player
{
int32_t version = 1
int32_t planetId: Ignored on read
float position_x
float position_y
float position_z
float uPosition_x
float uPosition_y
float uPosition_z
float uRotation_x
float uRotation_y
float uRotation_z
float uRotation_w
int32_t EMovementState movementState (Walk, Drift, Fly, Sail)
float warpState
uint8_t bool warpCommand
double uVelocity_x
double uVelocity_y
double uVelocity_z
int32_t inhandItemId
int32_t inhandItemCount
Mecha
StorageComponent package[10]
PlayerNavigation
int32_t sandCount
}

Mecha
{
int32_t version = 0
double coreEnergyCap
double coreEnergy
double corePowerGen
double reactorPowerGen
double reactorEnergy
int32_t reactorItemId
StorageComponent reactorStorage[4]
StorageComponent warpStorage
double walkPower
double jumpEnergy
double thrustPowerPerAcc
double warpKeepingPowerPerSpeed
double warpStartPowerPerSpeed
double miningPower
double replicatePower
double researchPower
double droneEjectEnergy
double droneEnergyPerMeter
int32_t coreLevel
int32_t thrusterLevel
float miningSpeed
float replicateSpeed
float walkSpeed
float jumpSpeed
float maxSailSpeed
float maxWarpSpeed
float buildArea
MechaForge
MechaLab
int32_t droneCount
float droneSpeed
int32_t droneMovement
MechaDrone[droneCount]
}

StorageComponent
{
int32_t version = 1
int32_t id
int32_t entityId
int32_t previous (version >= 1)
int32_t next (version >= 1)
int32_t bottom (version >= 1)
int32_t top (version >= 1)
int32_t EStorageType type (0:Default 1:Fuel 9:Filtered)
int32_t gridSize
int32_t bans (version >= 1)
grids[gridSize] {
int32_t itemId
int32_t filter
int32_t count
int32_t stackSize
}
}

PlayerNavigation
{
int32_t version = 0
uint8_t bool navigating
int32_t naviAstroId
double naviTarget_x
double naviTarget_y
double naviTarget_z
uint8_t bool useFly
uint8_t bool useSail
uint8_t bool useWarp
int32_t ENaviStage stage (None, Departure, OriginOrbit, AccOrbit, Space, DestOrbit, Approaching)
double flyThreshold
double sailThreshold
double warpThreshold
double maxSailSpeed
}

GalacticTransport
{
int32_t version = 0
}

PlanetFactory
{
int32_t version = 1
int32_t planetId
PlanetData
int32_t entityCapacity
int32_t entityCursor
int32_t entityRecycleCursor
EntityData entityPool[entityCursor - 1]
entityAnimPool[entityCursor - 1] {
float time
float prepare_length
float working_length
uint32_t state
float power
}
entitySignPool[entityCursor - 1] {
uint32_t signType
uint32_t iconType
uint32_t iconId0
uint32_t iconId1
uint32_t iconId2
uint32_t iconId3
float count0
float count1
float count2
float count3
float x
float y
float z
float w
}
int32_t entityConnPool[entityCursor * 16 - 16]
int32_t entityRecycle[entityRecycleCursor]
int32_t prebuildCapacity
int32_t prebuildCursor
int32_t prebuildRecycleCursor
PrebuildData prebuildPool[prebuildCursor - ]
int32_t prebuildConnPool[prebuildCursor * 16 - 16]
int32_t prebuildRecycle[prebuildRecycleCursor]
int32_t vegeCapacity
int32_t vegeCursor
int32_t vegeRecycleCursor
VegeData vegePool[vegeCursor - 1]
int32_t vegeRecycle[vegeRecycleCursor]
int32_t veinCapacity
int32_t veinCursor
int32_t veinRecycleCursor
VeinData veinPool[veinCursor - 1]
int32_t veinRecycle[veinRecycleCursor]
veinAnimPool[veinCursor] {
float time
float prepare_length
float working_length
uint32_t state
float power
}
CargoContainer
CargoTraffic
FactoryStorage
PowerSystem
FactorySystem
PlanetTransport
MonsterSystem
PlatformSystem (version >= 1)
}

PlanetData
{
int32_t modDataByteCount
uint8_t modData[modDataByteCount]
int32_t numVeinAmounts
int64_t veinAmounts[numVeinAmounts]
int32_t numVeinGroups
veinGroups[numVeinGroups] {
int32_t EVeinType type ()
float pos_x
float pos_y
float pos_z
int32_t count: Read, but then set to zero
int64_t amount: Read, but then set to zero
}
}

EntityData
{
uint8_t version = 0
int32_t id
int16_t protoId
int16_t modelIndex
float pos_x
float pos_y
float pos_z
float rot_x
float rot_y
float rot_z
float rot_w
int32_t beltId
int32_t splitterId
int32_t storageId
int32_t tankId
int32_t minerId
int32_t inserterId
int32_t assemblerId
int32_t fractionateId
int32_t ejectorId
int32_t siloId
int32_t labId
int32_t stationId
int32_t powerNodeId
int32_t powerGenId
int32_t powerConId
int32_t powerAccId
int32_t powerExcId
int32_t monsterId
}

PrebuildData
{
uint8_t version = 0
int32_t id
int16_t protoId
int16_t modelIndex
float pos_x
float pos_y
float pos_z
float rot_x
float rot_y
float rot_z
float rot_w
float pos2_x
float pos2_y
float pos2_z
float rot2_x
float rot2_y
float rot2_z
float rot2_w
int32_t upEntity
int16_t pickOffset
int16_t insertOffset
int32_t recipeId
int32_t filterId
int32_t refCount
int32_t refArr[refCount]
}

VegeData
{
uint8_t version = 0
int32_t id
int16_t protoId
int16_t modelIndex
int16_t hp
float pos_x
float pos_y
float pos_z
float rot_x
float rot_y
float rot_z
float rot_w
float scl_y
float scl_z
float scl_w
}

VeinData
{
uint8_t version = 0
int32_t id
int16_t EVeinType (None, Iron, Copper, Silicium, Titanium, Stone, Coal, Oil, Fireice, Diamond, Fractal, Crysrub, Grat, Bamboo, Mag)
int16_t modelIndex
int16_t groupIndex
int32_t amount
int32_t productId
float pos_x
float pos_y
float pos_z
int32_t minerCount
int32_t minerId0
int32_t minerId1
int32_t minerId2
int32_t minerId3
}

CargoContainer
{
int32_t version = 0
int32_t poolCapacity
int32_t cursor
int32_t recycleBegin
int32_t recycleEnd
cargoPool[cursor] {
int32_t item
float position_x
float position_y
float position_z
float rotation_x
float rotation_y
float rotation_z
float rotation_w
}
int32_t recycleIds[poolCapacity]
}

CargoTraffic
{
int32_t version = 0
int32_t beltCursor
int32_t beltCapacity
int32_t beltRecycleCursor
int32_t splitterCursor
int32_t splitterCapacity
int32_t splitterRecycleCursor
int32_t pathCursor
int32_t pathCapacity
int32_t pathRecycleCursor
BeltComponent beltPool[beltCursor - 1]
int32_t beltRecycle[beltRecycleCursor]
SplitterComponent splitterPool[splitterCursor - 1]
int32_t splitterRecycle[splitterRecycleCursor]
[pathCursor - 1] {
int32_t cargoPathIndex
CargoPath (cargoPathIndex != 0)
}
int32_t pathRecycle[pathRecycleCursor]
}

BeltComponent
{
}

SplitterComponent
{
}

CargoPath
{
}

FactoryStorage
{
}

PowerSystem
{
}

FactorySystem
{
}

PlanetTransport
{
}

MonsterSystem
{
}

PlatformSystem
{
}

DysonSphere
{
{

Revision as of 05:16, 10 February 2021

This page defines the Dyson Sphere Program save file format .dsv. On Windows by default save files are stored in %USERPROFILE%\Documents\Dyson Sphere Program\Save\.

GameSave
{
    "VFSAVE"
    int64_t fileStreamLength
    int32_t saveFileFormatNumber = 4
    int32_t majorGameVersion
    int32_t minorGameVersion
    int32_t releaseGameVersion
    int64_t gameTick
    int64_t nowTicks
    int32_t sizeOfPngFile
    uint8_t screenShotPngFile[sizeOfPngFile]
    GameData
}

GameData
{
    int32_t version = 2
    string gameName
    GameDesc gameDesc
    int64_t gameTick
    GamePrefsData preferences (version >= 1)
    GameHistoryData
    uint8_t bool hidePlayerModel (version >= 2)
    uint8_t bool disableController (version >= 2)
    GameStatData statistics
    int32_t planetId
    Player mainPlayer
    int32_t factoryCount
    GalacticTransport
    PlanetFactory[factoryCount]
    int32_t galaxyStarCount: Must equal GameDesc::starCount or the game will crash.
    int32_t numDysonSpheres
    [numDysonSpheres] {
        int32_t dysonSphereDataIsAvailableFlag: Must be 0 or 1 or the game will crash.
        DysonSphere (dysonSphereDataIsAvailableFlag == 1)
    }
}

GameDesc
{
    int32_t version = 2
    int32_t galaxyAlgo
    int32_t galaxySeed
    int32_t starCount
    int32_t playerProto
    float resourceMultiplier (version >= 2)
    int32_t numThemeIds (version >= 1)
    int32_t themeIds[numThemeIds] (version >= 1)
}

GamePrefsData
{
    int32_t version = 2
    double cameraUPosX
    double cameraUPosY
    double cameraUPosZ
    float cameraURotX
    float cameraURotY
    float cameraURotZ
    float cameraURotW
    int32_t reformCursorSize (version >= 1)
    int32_t numReplicatorMultipliers (version >= 1)
    replicatorMultipliers[numReplicatorMultipliers] (version >= 1) {
        int32_t key
        int32_t value
    }
    float bool detailPower
    float bool detailVein
    float bool detailSpaceGuide
    float bool detailSign
    float bool detailIcon
    int32_t numTutorialShowing (version >= 2)
    int32_t tutorialShowing[numTutorialShowing] (version >= 2)
}

GameHistoryData
{
    int32_t version = 2
    int32_t numRecipeUnlocked
    int32_t recipeUnlocked[numRecipeUnlocked]
    int32_t numTutorialUnlocked (version >= 2)
    int32_t tutorialUnlocked[numTutorialUnlocked] (version >= 2)
    int32_t numFeatureKeys
    int32_t featureKeys[numFeatureKeys]
    int32_t numTechState
    [numTechState] {
        int32_t techProtoIndex
        uint8_t bool TechState_unlocked
        int32_t TechState_curLevel
        int32_t TechState_maxLevel
        int64_t TechState_hashUploaded
        int64_t TechState_hashNeeded
    }
    uint8_t bool autoManageLabItems
    int32_t currentTech
    int32_t numTechQueue (version >= 1)
    int32_t techQueue_TechStateKey[numTechQueue]
    int32_t universeObserveLevel
    float solarSailLife
    float solarEnergyLossRate
    uint8_t bool useIonLayer
    int32_t inserterStackCount
    float logisticDroneSpeed
    float logisticDroneSpeedScale
    int32_t logisticDroneCarries
    float logisticShipSailSpeed
    float logisticShipWarpSpeed
    float logisticShipSpeedScale
    float bool logisticShipWarpDrive
    int32_t logisticShipCarries
    float miningCostRate
    float miningSpeedScale
    int32_t storageLevel
    int32_t labLevel
    int32_t techSpeed
    float dysonNodeLatitude
    int64_t universeMatrixPointUploaded
    float bool missionAccomplished
}

GameStatData
{
    int32_t version = 0
    int32_t numTechHashedHistory
    int32_t techHashedHistory[numTechHashedHistory]
    ProductionStatistics
}

ProductionStatistics
{
    int32_t version = 0
    int32_t numFactoryStatPool
    FactoryProductionStat factoryStatPool[numFactoryStatPool]
    int32_t numFirstCreateIds
    int32_t firstCreateIds[numFirstCreateIds]
    int32_t numFavoriteIds
    int32_t favoriteIds[numFavoriteIds]
}

FactoryProductionStat
{
    int32_t version = 1
    int32_t productCapacity
    int32_t productCursor
    ProductStat productPool[productCursor]
    int32_t numPowerPool, max 5
    PowerStat powerPool[numPowerPool]
    int32_t numProductIndices
    int32_t productIndices[numProductIndices]
    int64_t energyConsumption (version >= 1)
}

ProductStat
{
    int32_t version = 0
    int32_t numCount:  Saved as 7200.  Reads more or less, but only stores up to 7200, and enforces abs.
    int32_t count[numCount]
    int32_t numCursor:  Saved as 12.  Reads more or less, but only stores up to 12.
    int32_t cursor[numCount]
    int32_t numTotal:  Saved as 14.  Reads more or less, but only stores up to 14, and enforces abs.
    int32_t total[numCount]
    int32_t itemId
}

PowerStat
{
    int32_t version = 0
    int32_t numEnergy:  Saved as 3600.  Reads more or less, but only stores up to 3600, and enforces abs.
    int64_t energy[numCount]
    int32_t numCursor:  Saved as 6.  Reads more or less, but only stores up to 6.
    int32_t cursor[numCount]
    int32_t numTotal:  Saved as 7.  Reads more or less, but only stores up to 7, and enforces abs.
    int64_t total[numCount]
    int32_t itemId
}

Player
{
    int32_t version = 1
    int32_t planetId: Ignored on read
    float position_x
    float position_y
    float position_z
    float uPosition_x
    float uPosition_y
    float uPosition_z
    float uRotation_x
    float uRotation_y
    float uRotation_z
    float uRotation_w
    int32_t EMovementState movementState (Walk, Drift, Fly, Sail)
    float warpState
    uint8_t bool warpCommand
    double uVelocity_x
    double uVelocity_y
    double uVelocity_z
    int32_t inhandItemId
    int32_t inhandItemCount
    Mecha
    StorageComponent package[10]
    PlayerNavigation
    int32_t sandCount
}

Mecha
{
    int32_t version = 0
    double coreEnergyCap
    double coreEnergy
    double corePowerGen
    double reactorPowerGen
    double reactorEnergy
    int32_t reactorItemId
    StorageComponent reactorStorage[4]
    StorageComponent warpStorage
    double walkPower
    double jumpEnergy
    double thrustPowerPerAcc
    double warpKeepingPowerPerSpeed
    double warpStartPowerPerSpeed
    double miningPower
    double replicatePower
    double researchPower
    double droneEjectEnergy
    double droneEnergyPerMeter
    int32_t coreLevel
    int32_t thrusterLevel
    float miningSpeed
    float replicateSpeed
    float walkSpeed
    float jumpSpeed
    float maxSailSpeed
    float maxWarpSpeed
    float buildArea
    MechaForge
    MechaLab
    int32_t droneCount
    float droneSpeed
    int32_t droneMovement
    MechaDrone[droneCount]
}

StorageComponent
{
    int32_t version = 1
    int32_t id
    int32_t entityId
    int32_t previous (version >= 1)
    int32_t next (version >= 1)
    int32_t bottom (version >= 1)
    int32_t top (version >= 1)
    int32_t EStorageType type (0:Default 1:Fuel 9:Filtered)
    int32_t gridSize
    int32_t bans (version >= 1)
    grids[gridSize] {
        int32_t itemId
        int32_t filter
        int32_t count
        int32_t stackSize
    }
}

PlayerNavigation
{
    int32_t version = 0
    uint8_t bool navigating
    int32_t naviAstroId
    double naviTarget_x
    double naviTarget_y
    double naviTarget_z
    uint8_t bool useFly
    uint8_t bool useSail
    uint8_t bool useWarp
    int32_t ENaviStage stage (None, Departure, OriginOrbit, AccOrbit, Space, DestOrbit, Approaching)
    double flyThreshold
    double sailThreshold
    double warpThreshold
    double maxSailSpeed
}

GalacticTransport
{
    int32_t version = 0
}

PlanetFactory
{
    int32_t version = 1
    int32_t planetId
    PlanetData
    int32_t entityCapacity
    int32_t entityCursor
    int32_t entityRecycleCursor
    EntityData entityPool[entityCursor - 1]
    entityAnimPool[entityCursor - 1] {
        float time
        float prepare_length
        float working_length
        uint32_t state
        float power
    }
    entitySignPool[entityCursor - 1] {
        uint32_t signType
        uint32_t iconType
        uint32_t iconId0
        uint32_t iconId1
        uint32_t iconId2
        uint32_t iconId3
        float count0
        float count1
        float count2
        float count3
        float x
        float y
        float z
        float w
    }
    int32_t entityConnPool[entityCursor * 16 - 16]
    int32_t entityRecycle[entityRecycleCursor]
    int32_t prebuildCapacity
    int32_t prebuildCursor
    int32_t prebuildRecycleCursor
    PrebuildData prebuildPool[prebuildCursor - ]
    int32_t prebuildConnPool[prebuildCursor * 16 - 16]
    int32_t prebuildRecycle[prebuildRecycleCursor]
    int32_t vegeCapacity
    int32_t vegeCursor
    int32_t vegeRecycleCursor
    VegeData vegePool[vegeCursor - 1]
    int32_t vegeRecycle[vegeRecycleCursor]
    int32_t veinCapacity
    int32_t veinCursor
    int32_t veinRecycleCursor
    VeinData veinPool[veinCursor - 1]
    int32_t veinRecycle[veinRecycleCursor]
    veinAnimPool[veinCursor] {
        float time
        float prepare_length
        float working_length
        uint32_t state
        float power
    }
    CargoContainer
    CargoTraffic
    FactoryStorage
    PowerSystem
    FactorySystem
    PlanetTransport
    MonsterSystem
    PlatformSystem (version >= 1)
}

PlanetData
{
    int32_t modDataByteCount
    uint8_t modData[modDataByteCount]
    int32_t numVeinAmounts
    int64_t veinAmounts[numVeinAmounts]
    int32_t numVeinGroups
    veinGroups[numVeinGroups] {
        int32_t EVeinType type ()
        float pos_x
        float pos_y
        float pos_z
        int32_t count: Read, but then set to zero
        int64_t amount: Read, but then set to zero
    }
}

EntityData
{
    uint8_t version = 0
    int32_t id
    int16_t protoId
    int16_t modelIndex
    float pos_x
    float pos_y
    float pos_z
    float rot_x
    float rot_y
    float rot_z
    float rot_w
    int32_t beltId
    int32_t splitterId
    int32_t storageId
    int32_t tankId
    int32_t minerId
    int32_t inserterId
    int32_t assemblerId
    int32_t fractionateId
    int32_t ejectorId
    int32_t siloId
    int32_t labId
    int32_t stationId
    int32_t powerNodeId
    int32_t powerGenId
    int32_t powerConId
    int32_t powerAccId
    int32_t powerExcId
    int32_t monsterId
}

PrebuildData
{
    uint8_t version = 0
    int32_t id
    int16_t protoId
    int16_t modelIndex
    float pos_x
    float pos_y
    float pos_z
    float rot_x
    float rot_y
    float rot_z
    float rot_w
    float pos2_x
    float pos2_y
    float pos2_z
    float rot2_x
    float rot2_y
    float rot2_z
    float rot2_w
    int32_t upEntity
    int16_t pickOffset
    int16_t insertOffset
    int32_t recipeId
    int32_t filterId
    int32_t refCount
    int32_t refArr[refCount]
}

VegeData
{
    uint8_t version = 0
    int32_t id
    int16_t protoId
    int16_t modelIndex
    int16_t hp
    float pos_x
    float pos_y
    float pos_z
    float rot_x
    float rot_y
    float rot_z
    float rot_w
    float scl_y
    float scl_z
    float scl_w
}

VeinData
{
    uint8_t version = 0
    int32_t id
    int16_t EVeinType (None, Iron, Copper, Silicium, Titanium, Stone, Coal, Oil, Fireice, Diamond, Fractal, Crysrub, Grat, Bamboo, Mag)
    int16_t modelIndex
    int16_t groupIndex
    int32_t amount
    int32_t productId
    float pos_x
    float pos_y
    float pos_z
    int32_t minerCount
    int32_t minerId0
    int32_t minerId1
    int32_t minerId2
    int32_t minerId3
}

CargoContainer
{
    int32_t version = 0
    int32_t poolCapacity
    int32_t cursor
    int32_t recycleBegin
    int32_t recycleEnd
    cargoPool[cursor] {
        int32_t item
        float position_x
        float position_y
        float position_z
        float rotation_x
        float rotation_y
        float rotation_z
        float rotation_w
    }
    int32_t recycleIds[poolCapacity]
}

CargoTraffic
{
    int32_t version = 0
    int32_t beltCursor
    int32_t beltCapacity
    int32_t beltRecycleCursor
    int32_t splitterCursor
    int32_t splitterCapacity
    int32_t splitterRecycleCursor
    int32_t pathCursor
    int32_t pathCapacity
    int32_t pathRecycleCursor
    BeltComponent beltPool[beltCursor - 1]
    int32_t beltRecycle[beltRecycleCursor]
    SplitterComponent splitterPool[splitterCursor - 1]
    int32_t splitterRecycle[splitterRecycleCursor]
    [pathCursor - 1] {
        int32_t cargoPathIndex
        CargoPath (cargoPathIndex != 0)
    }
    int32_t pathRecycle[pathRecycleCursor]
}

BeltComponent
{
    
}

SplitterComponent
{
    
}

CargoPath
{
    
}

FactoryStorage
{
    
}

PowerSystem
{
    
}

FactorySystem
{
    
}

PlanetTransport
{
    
}

MonsterSystem
{
    
}

PlatformSystem
{
    
}

DysonSphere
{
    
}
🍪 We use cookies to keep session information to provide you a better experience.