Difference between revisions of "CFG File Format"
From Kerbal Space Program Wiki
(→Basic Value Types) |
|||
Line 23: | Line 23: | ||
Type tree: | Type tree: | ||
* Array-likes | * Array-likes | ||
− | *: Arrays elements are separated by either commas, spaces, or tabs (by default the config writer uses a comma followed by a space). Below is listed the Unity Engine class the type maps to, the primitive type of the array elements, and it's length. | + | *: Arrays elements are separated by either commas, spaces, or tabs (by default the config writer uses a comma followed by a space). Below is listed the Unity Engine class the type maps to in bold, the primitive type of the array elements, and it's length. |
** Color types | ** Color types | ||
*** '''UnityEngine.Color''' <Float> [3 or 4] | *** '''UnityEngine.Color''' <Float> [3 or 4] | ||
Line 32: | Line 32: | ||
** '''UnityEngine.Matrix4x4''' <Float> [16] | ** '''UnityEngine.Matrix4x4''' <Float> [16] | ||
** Vector types | ** Vector types | ||
− | *** '''UnityEngine.Vector2''' <Float> [2] | + | *** '''UnityEngine.Vector2''' <Float> [2] |
− | *** '''UnityEngine.Vector3''' <Float> [3] | + | *** '''UnityEngine.Vector3''' <Float> [3] |
*** '''UnityEngine.Vector3D''' <Double> [3] | *** '''UnityEngine.Vector3D''' <Double> [3] | ||
*** '''UnityEngine.Vector4''' <Float> [4] | *** '''UnityEngine.Vector4''' <Float> [4] | ||
* Enums | * Enums | ||
+ | *: The config writer serializes enumerations automatically. | ||
* Serialized config node data | * Serialized config node data |
Revision as of 15:45, 14 March 2016
KSP uses a custom file format for various purposes such as part definitions, save files, and config files.
Low-level Format
Config file nodes contain a list of key = value pairs, and other nested config nodes. Keys and values are both strings and nested config nodes also have a key. Duplicate keys are allowed. CFG Files also support comments. In the data model, nested config nodes are generally separate from key-value pairs, and the node key typically defines the node's type.
- Key-value pairs
- Keys and values are separated by an equals sign ("="). Values are read until the end of the line, EOF, or the start of a comment.
- Nodes
- Config nodes start with their name, followed by an opening curly brace ("{") on its own line, their contents, and end with a closing curly brace ("}") on another separate line. The general convention is that config node keys are in all capital letters. Generally, node contents are indented by a single tab character.
- Comments
- Comments start with a double forward slash ("//") and continue until the end of the line or EOF.
Basic Value Types
Although values are just strings, the config file codec in KSP contains a few utility methods for serializing common data types which map directly to Unity Engine classes.
Type tree:
- Array-likes
- Arrays elements are separated by either commas, spaces, or tabs (by default the config writer uses a comma followed by a space). Below is listed the Unity Engine class the type maps to in bold, the primitive type of the array elements, and it's length.
- Color types
- UnityEngine.Color <Float> [3 or 4]
- UnityEngine.Color32 <Byte> [3 or 4]
- Quaternion types
- UnityEngine.Quaternion <Float> [4]
- UnityEngine.QuaternionD <Double> [4]
- UnityEngine.Matrix4x4 <Float> [16]
- Vector types
- UnityEngine.Vector2 <Float> [2]
- UnityEngine.Vector3 <Float> [3]
- UnityEngine.Vector3D <Double> [3]
- UnityEngine.Vector4 <Float> [4]
- Enums
- The config writer serializes enumerations automatically.
- Serialized config node data