Cities Skylines CRP

CRP 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.