Skip to content

Colony Configuration

Sushut edited this page Sep 14, 2025 · 7 revisions

Bases (both starter bases and user-made ones) are also stored though JSON files.

Base configs have two types. One is a "blueprint" type and the other is not:

Blueprint:

  • Parsed per planet pack (PlanetSystem.cs)
  • Will not be parsed if a non-blueprint base exists
  • Once instantiated, it's treated the same as any other base
  • Instances are saved as a non-blueprint
  • Should be used for things like default bases (including the starter base)

Non-blueprint:

  • Parsed before planet packs (ActiveSave.cs)
  • Stored in the save folder (won't parse if it's outside of the selected save)
  • Should ideally never be used and instead be handled by the save system

Parameters:

Parameter What it does
parent Which planet the base is on
blueprint Whether the config is a blueprint
name The name of the base
position Cartesian position relative to the parent
rotation Rotation relative to the parent (in degrees)

Parameters 2: the "building" node

Parameter What it does
position Cartesian position relative to the attachment node (if it is attached)
rotation Rotation relative to the node (in degrees, if it is attached to anything)
scale Scale (UNUSED AT THE MOMENT)
destroyed If the building is destroyed (UNUSED AT THE MOMENT)
attachmentNode ID of the node the building is attached to
additionalData Dictionary of any additional data (UNUSED AT THE MOMENT)
attachedBuildings Buildings attached to this one

Example of a base config. (In this case, it's the config for the default space center):

{
    "configType": "Base",
    "parent": "Gnobe",
    "blueprint": true,
    "name": "Gnome Space Center",

    "position": [0,0,600176.0],
    "rotation": [90,0,0],

    "buildings": {
        "GSC_VAB": {
            "position": [0,0,0],
            "rotation": [0,0,0],
            "scale": [1,1,1],
            "destroyed": false,
            "attachmentNode": 0,

            "additionalData": {},

            "attachedBuildings": {}
        }
    }
}

Clone this wiki locally