HelpClose
If you encounter any technical issues as you edit, please report them.
3 noticesClose

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in one of the groups: Administrators, verified, trusted.
    Sign up or Log in to edit a page.
    The DSP Wiki is made by people like you! Anyone can edit and improve any pages.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.
  • Your username or IP address has been automatically blocked by MediaWiki. The reason given is:
    Your IP address is listed as an open proxy in the DNSBL used by DSP Wiki.
    • Start of block: 20:43, 21 April 2025
    • Expiration of block: infinite
    • Intended blockee: 3.135.248.19
    Your current IP address is 3.135.248.19. Please include all above details in any queries you make.

You are using a browser which is not officially supported by this editor.

Modding:Save File Format

From the Dyson Sphere Program Wiki

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in one of the groups: Administrators, verified, trusted.
    Sign up or Log in to edit a page.
    The DSP Wiki is made by people like you! Anyone can edit and improve any pages.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.
  • Your username or IP address has been automatically blocked by MediaWiki. The reason given is:
    Your IP address is listed as an open proxy in the DNSBL used by DSP Wiki.
    • Start of block: 20:43, 21 April 2025
    • Expiration of block: infinite
    • Intended blockee: 3.135.248.19
    Your current IP address is 3.135.248.19. Please include all above details in any queries you make.

You can view and copy the source of this page.

Return to Modding:Save File Format.

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

Return to [[Modding:Modding|Modding Hub]].

A save file parser in C++ written to the specification below is available on GitHub: [https://github.com/GreyHak/dsp-save-parser github.com/GreyHak/dsp-save-parser].

<syntaxhighlight lang="csharp">

float oilSpeedMultiplier = 4E-05f

GameSave

{

"VFSAVE"

int64 fileStreamLength

int32 saveFileFormatNumber = 4

int32 majorGameVersion

int32 minorGameVersion

int32 releaseGameVersion

int64 gameTick

int64 nowTicks

int32 sizeOfPngFile

uint8 screenShotPngFile[sizeOfPngFile]

GameData

}

GameData

{

int32 version = 2

string gameName

GameDesc

int64 gameTick

GamePrefsData preferences (version >= 1)

GameHistoryData

uint8_bool hidePlayerModel (version >= 2)

uint8_bool disableController (version >= 2)

GameStatData statistics

int32 planetId

Player mainPlayer

int32 factoryCount

GalacticTransport

PlanetFactory[factoryCount]

int32 galaxyStarCount: Must equal GameDesc::starCount or the game will crash.

[galaxyStarCount] {

int32 dysonSphereDataIsAvailableFlag: Must be 0 or 1 or the game will crash.

DysonSphere (dysonSphereDataIsAvailableFlag == 1)

}

}

GameDesc

{

int32 version = 2

int32 galaxyAlgo

int32 galaxySeed

int32 starCount

int32 playerProto

float resourceMultiplier (version >= 2)

int32 numThemeIds (version >= 1)

int32 themeIds[numThemeIds] (version >= 1)

}

GamePrefsData

{

int32 version = 2

double cameraUPos_x

double cameraUPos_y

double cameraUPos_z

float cameraURot_x

float cameraURot_y

float cameraURot_z

float cameraURot_w

int32 reformCursorSize (version >= 1)

int32 numReplicatorMultipliers (version >= 1)

replicatorMultipliers[numReplicatorMultipliers] (version >= 1) {

int32 key

int32 value

}

uint8_bool detailPower

uint8_bool detailVein

uint8_bool detailSpaceGuide

uint8_bool detailSign

uint8_bool detailIcon

int32 numTutorialShowing (version >= 2)

int32 tutorialShowing[numTutorialShowing] (version >= 2)

}

GameHistoryData

{

int32 version = 2

int32 numRecipeUnlocked

int32 recipeUnlocked[numRecipeUnlocked]

int32 numTutorialUnlocked (version >= 2)

int32 tutorialUnlocked[numTutorialUnlocked] (version >= 2)

int32 numFeatureKeys

int32 featureKeys[numFeatureKeys]

int32 numTechState

TechState[numTechState] {

int32 techProtoIndex

uint8_bool TechState_unlocked

int32 TechState_curLevel

int32 TechState_maxLevel

int64 TechState_hashUploaded

int64 TechState_hashNeeded

}

uint8_bool autoManageLabItems

int32 currentTech

int32 numTechQueue (version >= 1)

int32 techQueue[numTechQueue] (version >= 1)

int32 universeObserveLevel

float solarSailLife

float solarEnergyLossRate

uint8_bool useIonLayer

int32 inserterStackCount

float logisticDroneSpeed

float logisticDroneSpeedScale

int32 logisticDroneCarries

float logisticShipSailSpeed

float logisticShipWarpSpeed

float logisticShipSpeedScale

uint8_bool logisticShipWarpDrive

int32 logisticShipCarries

float miningCostRate

float miningSpeedScale

int32 storageLevel

int32 labLevel

int32 techSpeed

float dysonNodeLatitude

int64 universeMatrixPointUploaded

uint8_bool missionAccomplished

}

GameStatData

{

int32 version = 0

int32 numTechHashedHistory

int32 techHashedHistory[numTechHashedHistory]

ProductionStatistics

}

ProductionStatistics

{

int32 version = 0

int32 numFactoryStatPool

FactoryProductionStat factoryStatPool[numFactoryStatPool]

int32 numFirstCreateIds

int32 firstCreateIds[numFirstCreateIds]

int32 numFavoriteIds

int32 favoriteIds[numFavoriteIds]

}

FactoryProductionStat

{

int32 version = 1

int32 productCapacity

int32 productCursor

ProductStat productPool[productCursor - 1]

int32 numPowerPool, max 5

PowerStat powerPool[numPowerPool]

int32 numProductIndices

int32 productIndices[numProductIndices]

int64 energyConsumption (version >= 1)

}

ProductStat

{

int32 version = 0

int32 numCount: Saved as 7200. Reads more or less, but only stores up to 7200, and enforces abs.

int32 count[numCount]

int32 numCursor: Saved as 12. Reads more or less, but only stores up to 12.

int32 cursor[numCount]

int32 numTotal: Saved as 14. Reads more or less, but only stores up to 14, and enforces abs.

int32 total[numCount]

int32 itemId

}

PowerStat

{

int32 version = 0

int32 numEnergy: Saved as 3600. Reads more or less, but only stores up to 3600, and enforces abs.

int64 energy[numCount]

int32 numCursor: Saved as 6. Reads more or less, but only stores up to 6.

int32 cursor[numCount]

int32 numTotal: Saved as 7. Reads more or less, but only stores up to 7, and enforces abs.

int64 total[numCount]

}

Player

{

int32 version = 1

int32 planetId: Ignored on read

float position_x

float position_y

float position_z

double uPosition_x

double uPosition_y

double uPosition_z

float uRotation_x

float uRotation_y

float uRotation_z

float uRotation_w

int32 EMovementState movementState (Walk, Drift, Fly, Sail)

float warpState

uint8_bool warpCommand

double uVelocity_x

double uVelocity_y

double uVelocity_z

int32 inhandItemId

int32 inhandItemCount

Mecha

StorageComponent package

PlayerNavigation

int32 sandCount

}

Mecha

{

int32 version = 0

double coreEnergyCap

double coreEnergy

double corePowerGen

double reactorPowerGen

double reactorEnergy

int32 reactorItemId

StorageComponent reactorStorage

StorageComponent warpStorage

double walkPower

double jumpEnergy

double thrustPowerPerAcc

double warpKeepingPowerPerSpeed

double warpStartPowerPerSpeed

double miningPower

double replicatePower

double researchPower

double droneEjectEnergy

double droneEnergyPerMeter

int32 coreLevel

int32 thrusterLevel

float miningSpeed

float replicateSpeed

float walkSpeed

float jumpSpeed

float maxSailSpeed

float maxWarpSpeed

float buildArea

MechaForge

MechaLab

int32 droneCount

float droneSpeed

int32 droneMovement

MechaDrone[droneCount]

}

StorageComponent

{

int32 version = 1

int32 id

int32 entityId

int32 previous (version >= 1)

int32 next (version >= 1)

int32 bottom (version >= 1)

int32 top (version >= 1)

int32 EStorageType type (0:Default 1:Fuel 9:Filtered)

int32 gridSize

int32 bans (version >= 1)

grids[gridSize] {

int32 itemId

int32 filter

int32 count

int32 stackSize

}

}

MechaForge

{

int32 version = 0

int32 numTasks

ForgeTask tasks[numTasks]

}

ForgeTask

{

int32 version = 0

int32 recipeId

int32 count

int32 tick

int32 tickSpend

int32 numItem

int32 numProduct

[numItem] {

int32 itemIds

int32 itemCounts

int32 served

}

[numProduct] {

int32 productIds

int32 productCounts

int32 produced

}

int32 parentTaskIndex

}

MechaLab

{

int32 version = 0

int32 numItemPoints

itemPoints[numItemPoints] {

int32 key

int32 value

}

}

MechaDrone

{

int32 version = 0

int32 stage

float position_x

float position_y

float position_z

float target_x

float target_y

float target_z

float forward_x

float forward_y

float forward_z

float speed

int32 movement

int32 targetObject

float progress

float initialVector_x

float initialVector_y

float initialVector_z

}

PlayerNavigation

{

int32 version = 0

uint8_bool navigating

int32 naviAstroId

double naviTarget_x

double naviTarget_y

double naviTarget_z

uint8_bool useFly

uint8_bool useSail

uint8_bool useWarp

int32 ENaviStage stage (None, Departure, OriginOrbit, AccOrbit, Space, DestOrbit, Approaching)

double flyThreshold

double sailThreshold

double warpThreshold

double maxSailSpeed

}

GalacticTransport

{

int32 version = 0

}

PlanetFactory

{

int32 version = 1

int32 planetId

PlanetData

int32 entityCapacity

int32 entityCursor

int32 entityRecycleCursor

EntityData entityPool[entityCursor - 1]

entityAnimPool[entityCursor - 1] {

float time

float prepare_length

float working_length

uint32 state

float power

}

entitySignPool[entityCursor - 1] {

uint32 signType

uint32 iconType

uint32 iconId0

uint32 iconId1

uint32 iconId2

uint32 iconId3

float count0

float count1

float count2

float count3

float x

float y

float z

float w

}

int32 entityConnPool[entityCursor * 16 - 16]

int32 entityRecycle[entityRecycleCursor]

int32 prebuildCapacity

int32 prebuildCursor

int32 prebuildRecycleCursor

PrebuildData prebuildPool[prebuildCursor - 1]

int32 prebuildConnPool[prebuildCursor * 16 - 16]

int32 prebuildRecycle[prebuildRecycleCursor]

int32 vegeCapacity

int32 vegeCursor

int32 vegeRecycleCursor

VegeData vegePool[vegeCursor - 1]

int32 vegeRecycle[vegeRecycleCursor]

int32 veinCapacity

int32 veinCursor

int32 veinRecycleCursor

VeinData veinPool[veinCursor - 1]

int32 veinRecycle[veinRecycleCursor]

veinAnimPool[veinCursor - 1] {

float time

float prepare_length

float working_length

uint32 state

float power

}

CargoContainer

CargoTraffic

FactoryStorage

PowerSystem

FactorySystem

PlanetTransport

MonsterSystem

PlatformSystem (version >= 1)

}

PlanetData

{

int32 modDataByteCount

uint8 modData[modDataByteCount]

int32 numVeinAmounts

int64 veinAmounts[numVeinAmounts]: The index is the EVeinType. This contains the total of the veinGroups's amounts which is also the total of the VeinData::amounts.

int32 numVeinGroups

veinGroups[numVeinGroups] {

int32 EVeinType type (None, Iron, Copper, Silicium, Titanium, Stone, Coal, Oil, Fireice, Diamond, Fractal, Crysrub, Grat, Bamboo, Mag)

float pos_x

float pos_y

float pos_z

int32 count: Read, but then set to zero

int64 amount: Read, but then set to zero

}

}

EntityData

{

uint8 version = 0

int32 id

int16 protoId

int16 modelIndex

float pos_x

float pos_y

float pos_z

float rot_x

float rot_y

float rot_z

float rot_w

int32 beltId

int32 splitterId

int32 storageId

int32 tankId

int32 minerId

int32 inserterId

int32 assemblerId

int32 fractionateId

int32 ejectorId

int32 siloId

int32 labId

int32 stationId

int32 powerNodeId

int32 powerGenId

int32 powerConId

int32 powerAccId

int32 powerExcId

int32 monsterId

}

PrebuildData

{

uint8 version = 0

int32 id

int16 protoId

int16 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 upEntity

int16 pickOffset

int16 insertOffset

int32 recipeId

int32 filterId

int32 refCount

int32 refArr[refCount]

}

VegeData

{

uint8 version = 0

int32 id

int16 protoId

int16 modelIndex

int16 hp

float pos_x

float pos_y

float pos_z

float rot_x

float rot_y

float rot_z

float rot_w

float scl_x

float scl_y

float scl_z

}

VeinData

{

uint8 version = 0

int32 id

int16 EVeinType (see above)

int16 modelIndex

int16 groupIndex

int32 amount

int32 productId

float pos_x

float pos_y

float pos_z

int32 minerCount

int32 minerId0

int32 minerId1

int32 minerId2

int32 minerId3

}

CargoContainer

{

int32 version = 0

int32 poolCapacity

int32 cursor

int32 recycleBegin

int32 recycleEnd

cargoPool[cursor] {

int32 item

float position_x

float position_y

float position_z

float rotation_x

float rotation_y

float rotation_z

float rotation_w

}

int32 recycleIds[poolCapacity]

}

CargoTraffic

{

int32 version = 0

int32 beltCursor

int32 beltCapacity

int32 beltRecycleCursor

int32 splitterCursor

int32 splitterCapacity

int32 splitterRecycleCursor

int32 pathCursor

int32 pathCapacity

int32 pathRecycleCursor

BeltComponent beltPool[beltCursor - 1]

int32 beltRecycle[beltRecycleCursor]

SplitterComponent splitterPool[splitterCursor - 1]

int32 splitterRecycle[splitterRecycleCursor]

[pathCursor - 1] {

int32 cargoPathIndex

CargoPath pathPool (cargoPathIndex != 0)

}

int32 pathRecycle[pathRecycleCursor]

}

BeltComponent

{

int32 version = 0

int32 id

int32 entityId

int32 speed

int32 segPathId

int32 segIndex

int32 segPivotOffset

int32 segLength

int32 outputId

int32 backInputId

int32 leftInputId

int32 rightInputId

}

SplitterComponent

{

int32 version = 0

int32 id

int32 entityId

int32 beltA

int32 beltB

int32 beltC

int32 beltD

int32 input0

int32 input1

int32 input2

int32 input3

int32 output0

int32 output1

int32 output2

int32 output3

uint8_bool inPriority

uint8_bool outPriority

int32 outFilter

}

CargoPath

{

int32 version = 0

int32 id

int32 capacity

int32 bufferLength

int32 chunkCapacity

int32 chunkCount

int32 updateLen

uint8_bool closed

int32 outputPathIdForImport

int32 outputIndex

int32 numBelts

int32 numInputPaths

uint8 buffer[bufferLength]

int32 chunks[chunkCount * 3]

[bufferLength] {

float pointPos_x

float pointPos_y

float pointPos_z

float pointRot_x

float pointRot_y

float pointRot_z

float pointRot_w

}

int32 belts[numBelts]

int32 inputPaths[numInputPaths]

}

FactoryStorage

{

int32 version = 0

int32 storageCursor

int32 storageCapacity

int32 storageRecycleCursor

[storageCursor - 1] {

int32 storagePoolIndex

int32 size (storagePoolIndex != 0)

StorageComponent storagePool (storagePoolIndex != 0)

}

int32 storageRecycle[storageRecycleCursor]

int32 tankCapacity

int32 tankCursor

int32 tankRecycleCursor

TankComponent tankPool[tankCursor - 1]

int32 tankRecycle[tankRecycleCursor]

}

TankComponent

{

int32 version = 0

int32 id

int32 entityId

int32 lastTankId

int32 nextTankId

int32 belt0

int32 belt1

int32 belt2

int32 belt3

uint8_bool isOutput0

uint8_bool isOutput1

uint8_bool isOutput2

uint8_bool isOutput3

int32 fluidStorageCount

int32 currentCount

int32 fluidId

uint8_bool outputSwitch

uint8_bool inputSwitch

uint8_bool isBottom

}

PowerSystem

{

int32 version = 0

int32 generatorCapacity

int32 genCursor

int32 genRecycleCursor

PowerGeneratorComponent genPool[genCursor - 1]

int32 genRecycle[genRecycleCursor]

int32 nodeCapacity

int32 nodeCursor

int32 nodeRecycleCursor

PowerNodeComponent nodePool[nodeCursor - 1]

int32 nodeRecycle[nodeRecycleCursor]

int32 consumerCapacity

int32 consumerCursor

int32 consumerRecycleCursor

PowerConsumerComponent consumerPool[consumerCursor - 1]

int32 consumerRecycle[consumerRecycleCursor]

int32 accumulatorCapacity

int32 accCursor

int32 accRecycleCursor

PowerAccumulatorComponent accPool[accCursor - 1]

int32 accRecycle[accRecycleCursor]

int32 exchangerCapacity

int32 excCursor

int32 excRecycleCursor

PowerExchangerComponent excPool[excCursor - 1]

int32 excRecycle[excRecycleCursor]

int32 networkCapacity

int32 netCursor

int32 netRecycleCursor

[netCursor] {

int32 powerNetworkIncludedFlag

PowerNetwork netPool (powerNetworkIncludedFlag == 1)

}

int32 netRecycle[netRecycleCursor]

}

PowerGeneratorComponent

{

int32 version = 0

int32 id

int32 entityId

int32 networkId

uint8_bool photovoltaic

uint8_bool wind

uint8_bool gamma

int64 genEnergyPerTick

int64 useFuelPerTick

int16 fuelMask

int64 fuelEnergy

int16 curFuelId

int16 fuelId

int16 fuelCount

int64 fuelHeat

int32 catalystId

int32 catalystPoint

int32 productId

float productCount

int64 productHeat

float warmup

float ionEnhance

float x

float y

float z

}

PowerNodeComponent

{

int32 version = 0

int32 id

int32 entityId

int32 networkId

uint8_bool isCharger

int32 workEnergyPerTick

int32 idleEnergyPerTick

int32 requiredEnergy

float powerPoint_x

float powerPoint_y

float powerPoint_z

float connectDistance

float coverRadius

}

PowerConsumerComponent

{

int32 version = 0

int32 id

int32 entityId

int32 networkId

float plugPos_x

float plugPos_y

float plugPos_z

int64 requiredEnergy

int64 servedEnergy

int64 workEnergyPerTick

int64 idleEnergyPerTick

}

PowerAccumulatorComponent

{

int32 version = 0

int32 id

int32 entityId

int32 networkId

int64 inputEnergyPerTick

int64 outputEnergyPerTick

int64 curEnergy

int64 maxEnergy

}

PowerExchangerComponent

{

int32 version = 1

int32 id

int32 entityId

int32 networkId

int16 emptyCount

int16 fullCount

float targetState

float state

int64 energyPerTick

int64 curPoolEnergy

int64 poolMaxEnergy

int32 emptyId

int32 fullId

int32 belt0 (version >= 1)

int32 belt1 (version >= 1)

int32 belt2 (version >= 1)

int32 belt3 (version >= 1)

uint8_bool isOutput0 (version >= 1)

uint8_bool isOutput1 (version >= 1)

uint8_bool isOutput2 (version >= 1)

uint8_bool isOutput3 (version >= 1)

int32 outputSlot (version >= 1)

int32 inputSlot (version >= 1)

int32 outputRectify (version >= 1)

int32 inputRectify (version >= 1)

}

PowerNetwork

{

int32 version = 0

int32 id

int32 numNodes

int32 numConsumers

int32 numGenerators

int32 numAccumulators

int32 numExchangers

PowerNetworkStructures::Node[numNodes]

int32 consumers[numConsumers]

int32 generators[numGenerators]

int32 accumulators[numAccumulators]

int32 exchangers[numExchangers]

}

PowerNetworkStructures::Node

{

int32 version = 0

int32 id

float x

float y

float z

float connDistance2

float coverRadius2

int32 genId

int32 accId

int32 excId

int32 numConnIdsForLoad

int32 numLineIdsForLoad

int32 numConsumers

int32 connIdsForLoad[numConnIdsForLoad]

int32 lineIdsForLoad[numLineIdsForLoad]

int32 consumers[numConsumers]

}

FactorySystem

{

int32 version = 0

int32 minerCapacity

int32 minerCursor

int32 minerRecycleCursor

MinerComponent minerPool[minerCursor - 1]

int32 minerRecycle[minerRecycleCursor]

int32 inserterCapacity

int32 inserterCursor

int32 inserterRecycleCursor

InserterComponent inserterPool[inserterCursor - 1]

int32 inserterRecycle[inserterRecycleCursor]

int32 assemblerCapacity

int32 assemblerCursor

int32 assemblerRecycleCursor

AssemblerComponent assemblerPool[assemblerCursor - 1]

int32 assemblerRecycle[assemblerRecycleCursor]

int32 fractionateCapacity

int32 fractionateCursor

int32 fractionateRecycleCursor

FractionateComponent fractionatePool[fractionateCursor - 1]

int32 fractionateRecycle[fractionateRecycleCursor]

int32 ejectorCapacity

int32 ejectorCursor

int32 ejectorRecycleCursor

EjectorComponent ejectorPool[ejectorCursor - 1]

int32 ejectorRecycle[ejectorRecycleCursor]

int32 siloCapacity

int32 siloCursor

int32 siloRecycleCursor

SiloComponent siloPool[siloCursor - 1]

int32 siloRecycle[siloRecycleCursor]

int32 labCapacity

int32 labCursor

int32 labRecycleCursor

LabComponent labPool[labCursor - 1]

int32 labRecycle[labRecycleCursor]

}

MinerComponent

{

int32 version = 0

int32 id

int32 entityId

int32 pcId

int32 EMinerType type (None, Water, Vein, Oil)

int32 speed

int32 time

int32 period

int32 insertTarget

int32 EWorkState workstate (Idle, Running, Outputing, Lack, Full)

int32 veinCount

int32 veins[veinCount]

int32 currentVeinIndex

int32 minimumVeinAmount

int32 productId

int32 productCount

uint32 seed

}

InserterComponent

{

int32 version = 0

int32 id

int32 entityId

int32 pcId

int32 EInserterStage stage (Picking, Sending, Inserting, Returning)

int32 speed

int32 time

int32 stt

int32 delay

int32 pickTarget

int32 insertTarget

uint8_bool careNeeds

uint8_bool canStack

int16 pickOffset

int16 insertOffset

int32 filter

int32 itemId

int32 stackCount

int32 stackSize

float pos2_x

float pos2_y

float pos2_z

float rot2_x

float rot2_y

float rot2_z

float rot2_w

int16 t1

int16 t2

}

AssemblerComponent

{

int32 version = 0

int32 id

int32 entityId

int32 pcId

uint8_bool replicating

uint8_bool outputing

int32 speed

int32 time

int32 recipeId

(recipeId > 0) {

int32 ERecipeType recipeType (0:None 1:Smelt 2:Chemical 3:Refine 4:Assemble 5:Particle 6:Exchange 7:PhotonStore 8:Fractionate 15:Research)

int32 timeSpend

int32 numRequires

int32 requires[numRequires]

int32 numRequireCounts

int32 requireCounts[numRequireCounts]

int32 numServed

int32 served[numServed]

int32 numNeeds

int32 needs[numNeeds]

int32 numProducts

int32 products[numProducts]

int32 numProductCounts

int32 productCounts[numProductCounts]

int32 numProduced

int32 produced[numProduced]

}

}

FractionateComponent

{

int32 version = 0

int32 id

int32 entityId

int32 pcId

int32 belt0

int32 belt1

int32 belt2

uint8_bool isOutput0

uint8_bool isOutput1

uint8_bool isOutput2

uint8_bool isWorking

float produceProb

int32 need

int32 product

int32 needCurrCount

int32 productCurrCount

int32 oriProductCurrCount

int32 progress

uint8_bool isRand

uint8_bool fractionateSuccess

int32 needMaxCount

int32 productMaxCount

int32 oriProductMaxCount

uint32 seed

}

EjectorComponent

{

int32 version = 0

int32 id

int32 entityId

int32 planetId

int32 pcId

int32 direction

int32 time

uint8_bool fired

int32 chargeSpend

int32 coldSpend

int32 bulletId

int32 bulletCount

int32 orbitId

float pivotY

float muzzleY

float localPosN_x

float localPosN_y

float localPosN_z

float localAlt

float localRot_x

float localRot_y

float localRot_z

float localRot_w

float localDir_x

float localDir_y

float localDir_z

}

SiloComponent

{

int32 version = 0

int32 id

int32 entityId

int32 planetId

int32 pcId

int32 direction

int32 time

uint8_bool fired

int32 chargeSpend

int32 coldSpend

int32 bulletId

int32 bulletCount

int32 autoIndex

uint8_bool hasNode

float localPos_x

float localPos_y

float localPos_z

float localRot_x

float localRot_y

float localRot_z

float localRot_w

}

LabComponent

{

int32 version = 0

int32 id

int32 entityId

int32 pcId

int32 nextLabId

uint8_bool replicating

uint8_bool outputing

int32 time

int32 hashBytes

uint8_bool researchMode

int32 recipeId

int32 techId

(not researchMode and recipeId > 0) {

int32 timeSpend

int32 numRequires

int32 requires[numRequires]

int32 numRequireCounts

int32 requireCounts[numRequireCounts]

int32 numServed

int32 served[numServed]

int32 numNeeds

int32 needs[numNeeds]

int32 numProducts

int32 products[numProducts]

int32 numProductCounts

int32 productCounts[numProductCounts]

int32 numProduced

int32 produced[numProduced]

}

(researchMode) {

int32 numMatrixPoints

int32 matrixPoints[numMatrixPoints]

int32 numMatrixServed

int32 matrixServed[numMatrixServed]

int32 numNeeds

int32 needs[numNeeds]

}

}

PlanetTransport

{

int32 version = 0

int32 stationCursor

int32 stationCapacity

int32 stationRecycleCursor

[stationCursor - 1] {

int32 stationIndex

StationComponent stationPool (stationIndex != 0)

}

int32 stationRecycle[stationRecycleCursor]

}

StationComponent

{

int32 version = 2

int32 id

int32 gid

int32 entityId

int32 planetId

int32 pcId

int32 gene

float droneDock_x

float droneDock_y

float droneDock_z

float shipDockPos_x

float shipDockPos_y

float shipDockPos_z

float shipDockRot_x

float shipDockRot_y

float shipDockRot_z

float shipDockRot_w

uint8_bool isStellar

int32 nameIsIncludedFlag (0 or 1)

string name (nameIsIncludedFlag > 0)

int64 energy

int64 energyPerTick

int64 energyMax

int32 warperCount

int32 warperMaxCount

int32 idleDroneCount

int32 workDroneCount

int32: Used for allocating array sizes for workDroneDatas and workDroneOrders, and not uses for read in the arrays.

DroneData workDroneDatas[workDroneCount]

LocalLogisticOrder workDroneOrders[workDroneCount]

int32 idleShipCount

int32 workShipCount

uint64 idleShipIndices

uint64 workShipIndices

int32: Used for allocating array sizes for workShipDatas, shipRenderers, shipUIRenderers, workShipOrders, and not uses for read in the arrays.

ShipData workShipDatas[workShipCount]

RemoteLogisticOrder workShipOrders[workShipCount]

int32 numStorage

StationStore[numStorage]

(version >= 1) {

int32 numSlots

slots[numSlots] {

int32 dir

int32 beltId

int32 storageIdx

int32 counter

}

}

int32 localPairProcess

int32 remotePairProcess

int32 nextShipIndex

uint8_bool isCollector

int32 numCollectionIds

int32 collectionIds[numCollectionIds]

int32 numCollectionPerTick

float collectionPerTick[numCollectionPerTick]

int32 numCurrentCollections

float currentCollections[numCurrentCollections]

int32 collectSpeed

double tripRangeDrones (version >= 2)

double tripRangeShips (version >= 2)

uint8_bool includeOrbitCollector (version >= 2)

double warpEnableDist (version >= 2)

uint8_bool warperNecessary (version >= 2)

int32 deliveryDrones (version >= 2)

int32 deliveryShips (version >= 2)

}

DroneData

{

int32 version = 0

float begin_x

float begin_y

float begin_z

float end_x

float end_y

float end_z

int32 endId

float direction

float maxt

float t

int32 itemId

int32 itemCount

int32 gene

}

LocalLogisticOrder

{

int32 version = 0

int32 otherStationId

int32 thisIndex

int32 otherIndex

int32 itemId

int32 thisOrdered

int32 otherOrdered

}

ShipData

{

int32 version = 0

int32 stage

int32 planetA

int32 planetB

double uPos_x

double uPos_y

double uPos_z

float uVel_x

float uVel_y

float uVel_z

float uSpeed

float warpState

float uRot_x

float uRot_y

float uRot_z

float uRot_w

float uAngularVel_x

float uAngularVel_y

float uAngularVel_z

float uAngularSpeed

double pPosTemp_x

double pPosTemp_y

double pPosTemp_z

float pRotTemp_x

float pRotTemp_y

float pRotTemp_z

float pRotTemp_w

int32 otherGId

int32 direction

float t

int32 itemId

int32 itemCount

int32 gene

int32 shipIndex

int32 warperCnt

}

RemoteLogisticOrder

{

int32 version = 0

int32 otherStationGId

int32 thisIndex

int32 otherIndex

int32 itemId

int32 thisOrdered

int32 otherOrdered

}

StationStore

{

int32 version = 0

int32 itemId

int32 count

int32 localOrder

int32 remoteOrder

int32 max

int32 ELogisticStorage localLogic (None, Supply, Demand)

int32 ELogisticStorage remoteLogic

}

MonsterSystem

{

int32 version = 0

int32 monsterCapacity

int32 monsterCursor

int32 monsterRecycleCursor

MonsterComponent monsterPool[monsterCursor - 1]

int32 monsterRecycle[monsterRecycleCursor]

}

MonsterComponent

{

int32 version = 0

int32 id

int32 entityId

float walkSpeed

float point0_x

float point0_y

float point0_z

float point1_x

float point1_y

float point1_z

float point2_x

float point2_y

float point2_z

int32 direction

float stopTime

float t

float stopCurrentTime

int32 EMonsterState monsterState (Null, Stopped, Wandering)

float stepDistance

}

PlatformSystem

{

int32 version = 0

int32 reformDataByteCount

uint8 reformData[reformDataByteCount]: If count exceeds a limit, count is read, but only the limit is used.

int32 reformOffsetsByteCount

uint32 reformOffsets[reformOffsetsByteCount]: If count exceeds a limit, count is read, but only the limit is used.

}

DysonSphere

{

int32 version = 2

(version >= 1) {

int32 randSeed

DysonSwarm

int32 = 1212: File will be rejected if the value is not 1212

int32 layerCount

int32 numDysonSphereLayer

[numDysonSphereLayer - 1] {

int32 dysonSphereLayerIndex

DysonSphereLayer (dysonSphereLayerIndex != 0)

}

int32 rocketCapacity

int32 rocketCursor

int32 rocketRecycleCursor

DysonRocket rocketPool[rocketCursor - 1]

int32 rocketRecycle[rocketRecycleCursor]

int32 autoNodeCount

int32 numAutoNodes

[numAutoNodes] {

int32 autoNodeIncludedFlag

int32 layerId (autoNodeIncludedFlag > 0)

int32 nodeId (autoNodeIncludedFlag > 0)

}

}

(version >= 2) {

int32 nrdCapacity

int32 nrdCursor

int32 nrdRecycleCursor

DysonNodeRData nrdPool[nrdCursor - 1]

int32 nrdRecycle[nrdRecycleCursor]

}

}

DysonSwarm

{

int32 version = 4

(version >= 1) {

int32 randSeed

int32 sailCapacity

int32 sailCursor

int32 sailRecycleCursor

sailPoolForSave[sailCursor] {

float st

float px

float py

float pz

float vx

float vy

float vz

float gs

}

sailInfos[sailCursor] {

uint32 orbit

uint32 node (version >= 3)

uint32 kill (version >= 3)

float posr_x (version >= 4)

float posr_y (version >= 4)

float posr_z (version >= 4)

}

int32 sailRecycle[sailRecycleCursor]

int32 orbitCapacity

int32 orbitCursor

SailOrbit orbits[orbitCursor - 1]

int32 numExpiryOrder: Must match sailCapacity or the game will crash.

int32 expiryCursor

int32 expiryEnding

[numExpiryOrder] {

int64 time

int32 index

}

(version >= 2) {

int32 numAbsorbOrder: Must match sailCapacity or the game will crash.

int32 absorbCursor

int32 absorbEnding

absorbOrder[numAbsorbOrder] {

int64 time

int32 index

int32 layer

int32 node

}

}

int32 bulletCapacity

int32 bulletCursor

int32 bulletRecycleCursor

SailBullet bulletPool[bulletCursor - 1]

int32 bulletRecycle[bulletRecycleCursor]

}

}

SailOrbit

{

int32 version = 0

int32 id

float radius

float rotation_x

float rotation_y

float rotation_z

float rotation_w

float up_x

float up_y

float up_z

int32 count

uint8_bool enabled

}

SailBullet

{

int32 version = 0

int32 id

float t

float maxt

int32 state

float rBegin_x

float rBegin_y

float rBegin_z

float rEnd_x

float rEnd_y

float rEnd_z

float lBegin_x

float lBegin_y

float lBegin_z

float uEndVel_x

float uEndVel_y

float uEndVel_z

double uBegin_x

double uBegin_y

double uBegin_z

double uEnd_x

double uEnd_y

double uEnd_z

}

DysonSphereLayer

{

int32 version = 0

int32 id

float orbitRadius

float orbitRotation_x

float orbitRotation_y

float orbitRotation_z

float orbitRotation_w

float orbitAngularSpeed

float currentAngle

float currentRotation_x

float currentRotation_y

float currentRotation_z

float currentRotation_w

float nextRotation_x

float nextRotation_y

float nextRotation_z

float nextRotation_w

int32 gridMode

int32 nodeCapacity

int32 nodeCursor

int32 nodeRecycleCursor

[nodeCursor - 1] {

int32 dysonNodeIndex

DysonNode (dysonNodeIndex != 0)

}

int32 nodeRecycle[nodeRecycleCursor]

int32 frameCapacity

int32 frameCursor

int32 frameRecycleCursor

[frameCursor - 1] {

int32 dysonFrameIndex

DysonFrame (dysonFrameIndex != 0)

}

int32 frameRecycle[frameRecycleCursor]

int32 shellCapacity

int32 shellCursor

int32 shellRecycleCursor

[shellCursor - 1] {

int32 dysonShellIndex

DysonShell (dysonShellIndex != 0)

}

int32 shellRecycle[shellRecycleCursor]

}

DysonNode

{

int32 version = 4

int32 id

int32 protoId

int32 layerId

uint8_bool use

uint8_bool reserved

float pos_x

float pos_y

float pos_z

int32 sp

int32 spMax

int32 spOrdered

int32 cpOrdered (version >= 3)

int32 rid (version >= 2)

int32 frameTurn

int32 shellTurn (version >= 1)

int32 _spReq

int32 _cpReq (version >= 4)

}

DysonFrame

{

int32 version = 0

int32 id

int32 protoId

int32 layerId

uint8_bool reserved

int32 nodeId

int32 nodeId2

uint8_bool euler

int32 spA

int32 spB

int32 spMax

}

DysonShell

{

int32 version = 0

int32 id

int32 protoId

int32 layerId

int32 randSeed

int32 numPolygon

polygon[numPolygon] {

float item_x

float item_y

float item_z

}

int32 numDysonNode

int32 nodeId[numDysonNode]: Must be an existing ID or the game will crash.

int32 vertexCount

int32 triangleCount

int32 numVerts

verts[numVerts] {

float x

float y

float z

}

int32 numPqArr

pqArr[numPqArr] {

int32 x

int32 y

}

int32 numTris

int32 tris[numTris]

int32 numVAdjs

int32 vAdjs[numVAdjs]

int32 numVertAttr

int32 vertAttr[numVertAttr]

int32 numVertsq

int32 vertsq[numVertsq]

int32 numVertsqOffset

int32 vertsqOffset[numVertsqOffset]

int32 numNodecps

int32 nodecps[numNodecps]

int32 numVertcps

int32 vertcps[numVertcps]

int32 vertRecycleArraySize

int32 vertRecycleCursor

int32 vertRecycle[vertRecycleCursor]

}

DysonRocket

{

int32 version = 0

int32 id

int32 nodeLayerId

int32 nodeId

int32 planetId

float t

float uSpeed

double uPos_x

double uPos_y

double uPos_z

float uRot_x

float uRot_y

float uRot_z

float uRot_w

float uVel_x

float uVel_y

float uVel_z

float launch_x

float launch_y

float launch_z

}

DysonNodeRData

{

int32 version = 0

int32 id

int32 layerId

float pos_x

float pos_y

float pos_z

float angularVel

float layerRot_x

float layerRot_y

float layerRot_z

float layerRot_w

}

</syntaxhighlight>

{{Modding Navbox}}

[[Category:Modding]]

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