Difference between revisions of "CFG File Format"

From Kerbal Space Program Wiki
Jump to: navigation, search
Line 19: Line 19:
 
== Basic Value Types ==
 
== Basic Value Types ==
  
Although values are just strings, the config file codec in KSP contains a few utility methods for serializing common data 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
 +
** 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
 +
* Serialized config node data

Revision as of 15:36, 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
    • 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
  • Serialized config node data