new-horizons/NewHorizons/Schemas/star_system_schema.json
2022-07-26 12:33:06 -04:00

278 lines
8.2 KiB
JSON

{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Star System Schema",
"type": "object",
"description": "Configuration for a specific star system",
"additionalProperties": false,
"properties": {
"canEnterViaWarpDrive": {
"type": "boolean",
"description": "Whether this system can be warped to via the warp drive",
"default": true
},
"destroyStockPlanets": {
"type": "boolean",
"description": "Do you want a clean slate for this star system? Or will it be a modified version of the original.",
"default": true
},
"enableTimeLoop": {
"type": "boolean",
"description": "Should the time loop be enabled in this system?",
"default": true
},
"factRequiredForWarp": {
"type": "string",
"description": "Set to the FactID that must be revealed before it can be warped to. Don't set `CanEnterViaWarpDrive` to `false` if\nyou're using this, that would make no sense."
},
"mapRestricted": {
"type": "boolean",
"description": "Should the player not be able to view the map in this system?"
},
"Skybox": {
"description": "Customize the skybox for this system",
"$ref": "#/definitions/SkyboxModule"
},
"startHere": {
"type": "boolean",
"description": "Set to `true` if you want to spawn here after dying, not Timber Hearth. You can still warp back to the main star\nsystem."
},
"travelAudio": {
"type": "string",
"description": "The audio that will play when travelling in space. Can be a path to a .wav/.ogg/.mp3 file, or taken from the AudioClip list."
},
"Vessel": {
"description": "Configure warping to this system with the vessel",
"$ref": "#/definitions/VesselModule"
},
"entryPositions": {
"type": "array",
"description": "Manually layout ship log entries in detective mode",
"items": {
"$ref": "#/definitions/EntryPositionInfo"
}
},
"initialReveal": {
"type": "array",
"description": "A list of fact IDs to reveal when the game starts.",
"items": {
"type": "string"
}
},
"curiosities": {
"type": "array",
"description": "List colors of curiosity entries",
"items": {
"$ref": "#/definitions/CuriosityColorInfo"
}
},
"$schema": {
"type": "string",
"description": "The schema to validate with"
}
},
"definitions": {
"SkyboxModule": {
"type": "object",
"additionalProperties": false,
"properties": {
"destroyStarField": {
"type": "boolean",
"description": "Whether to destroy the star field around the player"
},
"useCube": {
"type": "boolean",
"description": "Whether to use a cube for the skybox instead of a smooth sphere"
},
"rightPath": {
"type": "string",
"description": "Relative filepath to the texture to use for the skybox's positive X direction"
},
"leftPath": {
"type": "string",
"description": "Relative filepath to the texture to use for the skybox's negative X direction"
},
"topPath": {
"type": "string",
"description": "Relative filepath to the texture to use for the skybox's positive Y direction"
},
"bottomPath": {
"type": "string",
"description": "Relative filepath to the texture to use for the skybox's negative Y direction"
},
"frontPath": {
"type": "string",
"description": "Relative filepath to the texture to use for the skybox's positive Z direction"
},
"backPath": {
"type": "string",
"description": "Relative filepath to the texture to use for the skybox's negative Z direction"
}
}
},
"VesselModule": {
"type": "object",
"additionalProperties": false,
"properties": {
"coords": {
"description": "Coordinates that the vessel can use to warp to your solar system.",
"$ref": "#/definitions/NomaiCoordinates"
},
"vesselPosition": {
"description": "The position in the solar system the vessel will warp to.",
"$ref": "#/definitions/MVector3"
},
"vesselRotation": {
"description": "Euler angles by which the vessel will be oriented.",
"$ref": "#/definitions/MVector3"
},
"warpExitPosition": {
"description": "The relative position to the vessel that you will be teleported to when you exit the vessel through the black hole.",
"$ref": "#/definitions/MVector3"
},
"warpExitRotation": {
"description": "Euler angles by which the warp exit will be oriented.",
"$ref": "#/definitions/MVector3"
}
}
},
"NomaiCoordinates": {
"type": "object",
"additionalProperties": false,
"properties": {
"x": {
"type": "array",
"maxItems": 6,
"minItems": 2,
"uniqueItems": true,
"items": {
"type": "integer",
"format": "int32"
}
},
"y": {
"type": "array",
"maxItems": 6,
"minItems": 2,
"uniqueItems": true,
"items": {
"type": "integer",
"format": "int32"
}
},
"z": {
"type": "array",
"maxItems": 6,
"minItems": 2,
"uniqueItems": true,
"items": {
"type": "integer",
"format": "int32"
}
}
}
},
"MVector3": {
"type": "object",
"additionalProperties": false,
"properties": {
"x": {
"type": "number",
"format": "float"
},
"y": {
"type": "number",
"format": "float"
},
"z": {
"type": "number",
"format": "float"
}
}
},
"EntryPositionInfo": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"description": "The name of the entry to apply the position to."
},
"position": {
"description": "Position of the entry",
"$ref": "#/definitions/MVector2"
}
}
},
"MVector2": {
"type": "object",
"additionalProperties": false,
"properties": {
"x": {
"type": "number",
"format": "float"
},
"y": {
"type": "number",
"format": "float"
}
}
},
"CuriosityColorInfo": {
"type": "object",
"additionalProperties": false,
"properties": {
"color": {
"description": "The color to apply to entries with this curiosity.",
"$ref": "#/definitions/MColor"
},
"highlightColor": {
"description": "The color to apply to highlighted entries with this curiosity.",
"$ref": "#/definitions/MColor"
},
"id": {
"type": "string",
"description": "The ID of the curiosity to apply the color to."
}
}
},
"MColor": {
"type": "object",
"additionalProperties": false,
"properties": {
"r": {
"type": "integer",
"description": "The red component of this colour",
"format": "int32",
"maximum": 2147483647.0,
"minimum": 0.0
},
"g": {
"type": "integer",
"description": "The green component of this colour",
"format": "int32",
"maximum": 2147483647.0,
"minimum": 0.0
},
"b": {
"type": "integer",
"description": "The blue component of this colour",
"format": "int32",
"maximum": 2147483647.0,
"minimum": 0.0
},
"a": {
"type": "integer",
"description": "The alpha (opacity) component of this colour",
"format": "int32",
"default": 255,
"maximum": 255.0,
"minimum": 0.0
}
}
}
},
"$docs": {
"title": "Star System Schema",
"description": "Schema for a star system in New Horizons"
}
}