Cities Skylines CRP

CRP (Colossal Raw Asset Package) files are used in the game Cities: Skylines to store Unity game data like meshes, textures and game objects. CRPs act like archives to store multiple pieces of media. Textures are usually stored in DirectDraw Surface (.dds) format.

Format
char[4] crap_header ("CRAP") uint16 version uint8 size_of_steam_id char[size_of_steam_id] steam_id uint8 size_of_unknown char[size_of_unknown] unknown uint32 unknown uint8 size_of_name_of_mod char[size_of_name_of_mod] name_of_mod uint32 number_of_files uint64 end_header_offset

struct file_headers[number_of_files] uint8 size_of_file_name char[size_of_file_name] file_name uint8 size_of_unknown char[size_of_unknown] unknown uint32 unknown uint64 offset_from_header uint64 file_size


 * This information can be used to export each section of the CRP to different files based on the offset from header and file size.


 * On Windows systems, you can generally find your saved game files under.

ADDENDUM:

The file sections pointed to by the begin with a single byte zero, followed by additional metadata, followed, where applicable, by the packaged file verbatim.

From what I've seen, all except the Locale section start with an object identifier which is a counted short Pascal string. A counted Pascal string consists of a length byte followed by characters. It's not null terminated.

Additional metadata fields follow, depending on the object type.