CRAP File Format
Cities: Skylines uses an in-house file format called Colossal Raw Asset Package (.crp) to store various data. This document is intended to give an in-depth technical explanation of the file format.
This is the start of any .crp file.
|byte||CRP File Signature.||Equal to "CRAP"|
|uint16||File format version||Currently equals 6.|
|pstr||Package name||Encoded using UTF-8.|
|pstr||Author Name||The package author's name, encrypted. TODO|
|pstr||Main Asset Name||A string representing the title of the main asset in this package. Encoded using UTF-8.|
|uint32||File Count||The number of files contained in this package.|
|uint64||Data Offset||The location in this file where the file data starts. This is added to each file's individual offset, and is usually right after the end of the crp header.|
|asset_entry[file_count]||Asset Entires||A list of asset entries. The length of this list is defined by the File Count above.|
Following the CRP header and until the end of file exists space where each asset file resides.
Much like a ZIP archive file, the CRP header contains meta data about each individual file, such as it's name and offset, for efficient file seeking and reading.
|pstr||Name||Name of the asset file. Encoded using UTF-8.|
|pstr||Checksum||The asset's checksum, encoded in ASCII hexadecimal. TODO.|
|uint32||Type||This determines what type of asset this is, and how it should be parsed. See the Asset Types table below.|
|uint64||Offset||The offset, in number of bytes, of where this asset is located in the CRP. This is added to the offset in the CRP header.|
|uint64||Size||The size of the file, in bytes.|
Additional asset metadata is located at the beginning of the file's data.
|104||Color Correction (LUT)|
|107||Map Theme Map|