File Formats

From The Space Game
Jump to: navigation, search

Description of files and formats made available to players.

At this time there are 2 types of files that the game makes available to programmers, for databasing and analysis purposes. The first is the Settlement Cache files, which contain a dump of a single colony or OSB, including buildings and stored materials. The second is the core sample list.

Both types of files are located in:

C:\Users\<UserName>\AppData\LocalLow\Fluffy Kitten Studios\Ascent _ The Space Game\

<UserName> is the name you login to your computer.

Settlement Cache

The settlement Cache files contain data about buildings and assets. Every colony or OSB you visit will get it's own file, and it will be updated as often as you're client get's new data from the server.

Note: the files do not have the name of the colony/OSB. You will have to use the file's modified date/time or find known values within the file to locate your colony/OSB file.

The file starts with a 7-bit Encoded integer, giving the length of the data, which can be read as a single string. In .Net languages, open the file with a BinaryReader, and use .ReadString() method to load the data correctly. After the string there is probably a bunch of old data, which is garbage and best ignored.

The settlement cache files have 6 main sections, separated with a | (bar symbol).

  • Reports - 6 comma delimited numbers: PowerUsed, PowerTotal, WaterUsed, WaterTotal, ColonistsCount, HousingTotal. Followed by text as seen in Entertainment Center's info.
  • Buildings - gives a colon (:) separated record of each building. Commas separate each data field. Some of the fields are lists with other separators. See the EBNF below for more details, as known.
  • Unknown 1 - A number.
  • Warehouse Storage - Starts with total Materials stored and maximum storage available for the colony/OSB. Followed by "Stored:". Then a line for each stored item, a colon (:), it's count. Note: The \n after each line is written as the character text, not the new-line character.
  • Unknown 2 - Might be information about what the Shipyard is building.
  • Ship Module Storage - Contains a list of text, 1 per line, of each stored ships module.


SettlementCache EBNF

If you do not yet know the basics of EBNF grammars, read the wikipedia article "EBNF".

This grammar is incomplete, and incorrect. Feel free to use the Discussion tab, or contact me(teddga) in game about corrections if you do not yet have permissions to edit this wiki.



File = 7-bit_Encoded_string_length, data ;

data = Report, '|', Buildings, '|',  unknown, '|',  Stored, '|', unknown, '|', Stored_modules, Trailing_Garbage;

Report = { AnyCharacter_except_bar } ;

Buildings = 
	BuildingType, Comma_Character,
	X, Comma_character,
	Y, Comma_Character,
	Under_Construction, Comma_Character,
	LocalStorage, Comma_Character,
	PercentComplete, Comma_Character,
	ProducesMat, Comma_Character,
	PerDayProduction, Comma_Character,
	Unknown, Comma_Character,
	Unknown, Comma_Character,
	Unknown, Comma_Character,
	Unknown, Comma_Character,
	Unknown, Comma_Character,
	Unknown, Comma_Character,
	Unknown, Comma_Character,
	Unknown, Comma_Character,
	PerUnitMats, Comma_Character,
	UpgradeInfo, Comma_Character,
	Unknown, Comma_Character,
	PoweredOff, Comma_Character,
	Z, Comma_Character,
	ConstructionTimeRemaining, Comma_Character,
	Unknown, Comma_Character
	;

BuildingType =
	  "Iron Mine"
	| "Carbon Harvester"
	| ...
	;


Under_Construction = 'true' | 'false' ;

LocalStorage = integer, '/', integer ;

UpgradeInfo = 'Enhanced Production +', UpgradCount, '/Requires;', ...?

Stored = amount_float, Space_Character, 'of', Space_Character, amount_float, Space_Character, 'Stored\n', { ItemName, ':', amount_float, '\n' }  ;

Stored_modules = 'Stored modules:', { (Space_Character), ShipModule, (Space_Character), } ;

ShipModule =  Class, Space_Character, ShipModuleName ;

ShipModuleName = "Mining Beam" 
	| "Axial Carbon Dioxide Laser"
	| "Capacitor"
	| ...
;

Class = "Class", Space_Character, positive_integer ;

Space_Character = ' ' ; 

Comma_Character = ',' ;

Trailing_Garbage = { AnyCharacter_except_EOF }
Personal tools
Namespaces

Variants
Actions
Navigation
To Begin
Travelling
Trading
Character Skills
Player Built Star Bases
Exploration
Settlements and Colonies
Politics
PVE Combat
Tools