Game Save File

Game Save Files in Timberborn are `JSON`. Unlike other file formats, `JSON` files are not obfuscated and are human-readable text. [*JSON @ Wikipedia*]. The .timber file extension used is the world.json file stored in ZIP archive format.

## Location

Game save file locations are different for each platform. The game save file location can be found while in-game. From the main menu select load game and then click on `Browse directory` in the lower right-hand side of the load game screen. A file manager will be opened at the location containing game save files.

### Linux

* (Proton + Wine + Steam): `<your_steam_library>/steamapps/compatdata/1062090/pfx/drive_c/users/steamuser/My Documents/Timberborn/Saves/`

### Windows

* Steam: `C:\Users\<user_name>\Documents\Timberborn\Saves`

## Variables

* `GameVersion`
* `Timestamp`
* `Singletons`
	+ `MapSize`
		- `Size`
			* `X`
			* `Y`
	+ `CameraComponent`
		- `CameraState`
			* `Target`
				+ `X`
				+ `Y`
				+ `Z`
			* `ZoomLevel`
			* `HorizontalAngle`
			* `VerticalAngle`
	+ `TerrainMap`
		- `Heights`
			* `Array`
	+ `DayNightCycle`
		- `DayNumber`
		- `DayProgress`
	+ `PlayTimeService`
		- `PlayTime`
	+ `WeatherDurationService`
		- `MinTemperateWeaterDuration`
		- `MaxTemperateWeatherDuration`
		- `MinDroughtDuration`
		- `MaxDroughtDuration`
		- `HandicapMultiplyer`
		- `HandicapCycles`
	+ `DroughtService`
		- `IsDrought`
	+ `WeatherService`
		- `Cycle`
		- `CycleDay`
		- `TemperateWeatherDuration`
		- `DroughtDuration`
	+ `NotificationSaver`
		- `Notifications`
			* `Probably_Something_Here`
	+ `FactionService`
		- `Id`
	+ `CameraStateRestorer`
		- `SavedCameraState`
			* `Target`
				+ `X`
				+ `Y`
				+ `Z`
			* `ZoomLevel`
			* `HorizontalAngle`
			* `VerticalAngle`
	+ `WaterMap`
		- `WaterDepths`
			* `Array`
		- `Outflows`
			* `Array`
	+ `SoilMoistureSimulator`
		- `MoistureLevels`
			* `Array`
	+ `NameService`
		- `Names` (`list`)
	+ `PlantingService`
		- `PlantingMap`
			* `Size`
				+ `X`
				+ `Y`
	+ `ScienceService`
		- `SciencePoints`
	+ `BuildingUnlockingService`
		- `UnlockedBuildingIds`
			* list of Folktails buildings
			* list of IronTeeth buildings
	+ `TreeCuttingArea`
		- `CuttingArea`
			* What\_Goes\_Here?
	+ `NeedModificationService`
		- `FoodConsumption`
		- `WaterConsumption`
	+ `DistrictNameService`
		- `DistrictCounter`
	+ `BeaverStatistics`
		- `BirthCount`
		- `DeathCount`
	+ `NaturalResourceStatistics`
		- `CropsPlanted`
		- `TreesCut`
	+ `GoodStatistics`
		- `Gathered`
			* Something\_Goes\_Here
		- `Produced`
			* Something\_Goes\_Here
	+ `FunGameStatistics`
		- `BeaverDays`
	+ `WorkingHoursManager`
		- `WorkedPartOfDay`
	+ `TutorialService`
		- `FinishedTutorial`
	+ `WellbeingHighscore`
		- `AverageWellbeingHighscore`
	+ `WindService`
		- `WindStrength`
		- `WindDirection`
			* `X`
			* `Y`
		- `NextWindChangeTime`
* `Entities`

### GameVersion

Dated version string.

````
"GameVersion:" "vYYYYMMDD-NNaNNaa-aa"

````

* `v`: Version
* `YYYY`: Year, four digits.
	+ Example: `2021`
* `MM`: Month, two digits.
	+ Example: `10`
* `DD`: Day, two digits.
	+ Example: `08`
* `NNaNNaa`: Random seven character lowercase alpha and numerical string.
	+ Example: `31c08af`
* `aa`: Random two character lowercase alpha string.
	+ Example: `sw`

#### GameVersion example

````
v20211008-31c08af-sw

````

### Timestamp

ISO 8601 datetime string.

````
"Timestamp": "YYYYMMDD HH:MM:SS"

````

* `YYYY`: Year, four digits.
	+ Example: `2021`
* `MM`: Month, two digits.
	+ Example: `10`
* `DD`: Day, two digits.
	+ Example: `08`
* `HH`: Two digit hour string. (24-hour clock)
	+ Example: `01`
* `MM`: Two digit minute string.
	+ Example: `23`
* `SS`: Two digit second string.
	+ Example: `45`

#### Timestamp example

````
2021-10-17 01:23:45

````

### Singletons

Singletons can only appear once in a game save file. Click on a `Singleton` in the following list to navigate to that section. [*Singletons @ Wikipedia*]

````
"Singletons": {
	"MapSize": {...},
	"CameraComponent": {...},
	"TerrainMap": {...},
	"DayNightCycle": {...},
	"PlayTimeService": {...},
	"WeatherDurationService": {...},
	"DroughtService": {...},
	"WeatherService": {...},
	"NotificationSaver": {...},
	"FactionService": {...},
	"CameraStateRestorer": {...},
	"WaterMap": {...},
	"SoilMoistureSimulator": {...},
	"NameService": {...},
	"PlantingService": {...},
	"ScienceService": {...},
	"BuildingUnlockingService": {...},
	"TreeCuttingArea": {...},
	"NeedModificationService": {...},
	"DistrictNameService": {...},
	"BeaverStatistics": {...},
	"NaturalResourceStatistics": {...},
	"GoodStatistics": {...},
	"FunGameStatistics": {...},
	"WorkingHoursManager": {...},
	"TutorialService": {...},
	"WellbeingHighscore": {...},
	"WindService": {...}
},

````

#### MapSize

`MapSize` stores the `Size` of the game map. Takes one argument. `Size`.

##### Size

`Size` of the game map used in game save file. Measured as (tiles deep x tiles wide). Takes two arguments. `X` and `Y`.

* `X`: Number
	+ Valid range: `4` (min) to `256` (max)
* `Y`: Number
	+ Valid range: `4` (min) to `256` (max)

*For more information see: Create new map screen*.

##### MapSize example

````
"MapSize": {
	"Size": {
		"X": 150,
		"Y": 150
	}
},

````

#### CameraComponent

`CameraComponent` stores the `CameraState`.

##### CameraState

`CameraState` stores the state of the game camera. `CameraState` takes four arguments. `Target`, `ZoomLevel`, `HorizontalAngle`, and `VerticalAngle`.

###### CameraState example

````
"CameraState": {
	"Target": {
		"X": 115.000000,
		"Y": 0.0,
		"Z": 105.000000
	},
	"ZoomLevel": 0.800000000,
	"HorizontalAngle": 35.00,
	"VerticalAngle": 45.000000
}

````

###### CameraState Target

`CameraState`'s `Target` is what the game camera is looking at (it's *target*). `Target` takes three arguments. `X`, `Y`, and `Z`.

* `X`: Number
* `Y`: Number
* `Z`: Number

````
"Target": {
	"X": 115.000000,
	"Y": 0.0,
	"Z": 105.000000
},

````

###### CameraState ZoomLevel

`CameraState` `ZoomLevel` stores the zoom level of the game camera. `ZoomLevel` takes one numerical argument.

````
"ZoomLevel": 0.800000000

````

###### CameraState HorizontalAngle

`CameraState` `HorizontalAngle` stores the horizontal angle of the game camera. `HorizontalAngle` takes one numerical argument.

````
"HorizontalAngle": 35.00

````

###### CameraState VerticalAngle

`CameraState` `VerticalAngle` stores the vertical angle of the game camera. `VerticalAngle` takes one numerical argument.

````
"VerticalAngle": 45.000000

````

#### TerrainMap

`TerrainMap` stores the terrain height map. `TerrainMap` takes one argument, `Heights`.

````
"TerrainMap": {
	"Heights": {
		"Array": "..."
	}
},

````

##### Heights

`Heights` stores the map height data as a comma-less array.

````
"Heights": {
	"Array": "..."
}

````

#### DayNightCycle

`DayNightCycle` stores the current `DayNumber` and `DayProgress`.

````
"DayNightCycle": {
	"DayNumber": 26,
	"DayProgress": 0.09790914
},

````

##### DayNumber

`DayNumber` stores the day as a whole number.

````
"DayNumber": 26

````

##### DayProgress

`DayProgress` stores the amount of time that has elapsed during the current day. `DayProgress` expects a number with a decimal scale of eight.

````
"DayProgress": 0.09790914

````

#### PlayTimeService

`PlayTimeService` stores the game playtime. `PlayTimeService` takes one argument. `PlayTime`

````
"PlayTimeService": {
	"PlayTime": 4052.39355
},

````

##### PlayTime

`PlayTime` stores the game playtime in seconds with a decimal scale of five.

````
"PlayTime": 4052.39355

````

#### WeatherDurationService

`WeatherDurationService` stores weather configuration options. `WeatherDurationService` takes six arguments. `MinTemperateWeatherDuration`, `MaxTemperateWeatherDuration`, `MinDroughtDuration`, `MaxDroughtDuration`, `HandicapMultiplier`, and `HandicapCycles`.

````
"WeatherDurationService": {
	"MinTemperateWeatherDuration": 3,
	"MaxTemperateWeatherDuration": 999999999,
	"MinDroughtDuration": 0,
	"MaxDroughtDuration": 999999999,
	"HandicapMultiplier": 0.0,
	"HandicapCycles": 0
},

````

*A table with accepted values can be viewed here*.

##### MinTemperateWeatherDuration

`MinTemperateWeatherDuration` stores the minimum temperate weather duration as a whole number. This is the minimum allowed length of temperate weather.

* Valid range: `3` - `999999999`

````
"MinTemperateWeatherDuration": 3

````

##### MaxTemperateWeatherDuration

`MaxTemperateWeatherDuration` stores the maximum temperate weather as a whole number. This is the maximum allowed length of temperate weather.

* Valid range: `3` - `999999999`

````
"MaxTemperateWeatherDuration": 999999999

````

##### MinDroughtDuration

`MinDroughtDuration` stores the minimum drought duration as a whole number. This is the minimum allowed length of a drought.

* Valid range: `0` - `999999999`

````
"MinDroughtDuration": 0

````

##### MaxDroughtDuration

`MaxDroughtDuration` stores the maximum drought duration as a whole number. This is the maximum allowed length of a drought.

* Valid range: `0` - `999999999`

````
"MaxDroughtDuration": 999999999

````

##### HandicapMultiplier

`HandicapMultiplier` stores the handicap duration percentage multiplier.

* Valid range: `0.0` - `1.0`

````
"HandicapMultiplier": 0.0

````

##### HandicapCycles

`HandicapCycles` stores the handicap cycle length as a whole number.

* Valid range: `0` - `999999999`

````
"HandicapCycles": 0

````

#### DroughtService

`DroughtService` contains `IsDrought`.

````
"DroughtService": {
	"IsDrought": false
},

````

##### IsDrought

`IsDrought` stores the drought status. If `IsDrought` is `true` the in-game drought is activated. If `IsDrought` is `false` the in-game drought is not active.

````
"IsDrought": false

````

#### WeatherService

`WeatherService` stores the current game weather as `Cycle`, `CycleDay`, `TemperateWeatherDuration`, and `DroughtDuration`.

````
"WeatherService": {
	"Cycle": 1,
	"CycleDay": 26,
	"TemperateWeatherDuration": 1000,
	"DroughtDuration": 0
},

````

##### Cycle

`Cycle` stores the current game cycle as a whole number.

````
"Cycle": 1

````

##### CycleDay

`CycleDay` stores the current game day (of `Cycle`) as a whole number.

````
"CycleDay": 26

````

##### TemperateWeatherDuration

`TemperateWeatherDuration` stores the temperate weather duration as a whole number. Must be a valid number within range of what was set in `WeatherDurationService`.

````
"TemperateWeatherDuration": 1000

````

##### DroughtDuration

`DroughtDuration` stores the drought duration as a whole number. Must be a valid number within range of what was set in `WeatherDurationService`.

````
"DroughtDuration": 0

````

#### NotificationSaver

`NotificationSaver` does exactly what it's name implies. `NotificationSaver` saves game notifications and it contains one argument, the `Notifications` array.

````
"NotificationSaver": {
	"Notifications": [...]
},

````

##### Notifications

`Notifications` in-game, such as births, deaths, growing up, and etc are saved in this array. Each notification contains four arguments. `Description`, `Subject`, `Cycle`, and `CycleDay`.

* A birth example:

````
{
	"Description": "Quaruvon was born!",
	"Subject": "2ca347a1-9a1c-4ae0-855b-21d8e553e5ed",
	"Cycle": 1,
	"CycleDay": 3
},

````

* A death example:

````
{
	"Description": "Bie died of old age.",
	"Subject": "ccf287c3-14db-4aa9-bc49-e6ac3641065c",
	"Cycle": 1,
	"CycleDay": 24
}

````

* A grown up example:

````
{
	"Description": "Sagokris has grown up.",
	"Subject": "d16c46bd-7e5e-4fa8-b6d5-a8b9a53d0e87",
	"Cycle": 1,
	"CycleDay": 5
},

````

###### Notifications Description

`Notifications` `Description` contains a textual description of an in-game event.

* Description layout: `<Beaver_Name> <described_event>`

````
"Description": "Quaruvon was born!"

````

###### Notifications Subject

`Notifications` `Subject` is and must be, a valid game `GUID`.

````
"Subject": "2ca347a1-9a1c-4ae0-855b-21d8e553e5ed"

````

###### Notifications Cycle

`Notifications` `Cycle` stores the cycle number of when the event took place.

````
"Cycle": 1

````

###### Notifications CycleDay

`Notifications` `CycleDay` stores which day (of the cycle) the event happened.

````
"CycleDay": 5

````

#### FactionService

`FactionService` stores which faction is being used. `FactionService` takes one argument, `Id`.

````
"FactionService": {
	"Id": "IronTeeth"
},

````

##### Id

`FactionService` `Id` has two accepted values. `Folktails` and `IronTeeth`. The value used here will determine what buildings will be available in-game.

* Possible values: `Folktails` or `IronTeeth`

````
"Id": "Folktails"

````

#### CameraStateRestorer

`CameraStateRestorer` takes a saved camera state and loads it. `CameraStateRestorer` takes four arguments. `Target`, `ZoomLevel`, `HorizontalAngle`, and `VerticalAngle`. All of these options have been described above in the `CameraComponent` section.

````
"CameraStateRestorer": {
	"SavedCameraState": {
		"Target": {
			"X": 129.481445,
			"Y": 0.0,
			"Z": 82.3661041
		},
		"ZoomLevel": 0.4,
		"HorizontalAngle": 35.22,
		"VerticalAngle": 45.039917
	}
},

````

##### SavedCameraState

*Main article: Game Save File § CameraComponent*

#### WaterMap

`WaterMap` contains the water depth and water outflow directions for each tile of the game map.

````
"WaterMap": {
	"WaterDepths": {
		"Array": "..."
	},
	"Outflows": {
		"Array": "..."
	}
},

````

##### WaterDepths

`WaterDepths` is a comma-less array that contains water depth information for each game tile.

* Minimum accepted value: `0`

````
"WaterDepths": {
	"Array": "..."
},

````

##### Outflows

`Outflows` is a comma-less array that contains water outflow dirction information for each game tile.

* Minimum accepted value: `0:0:0:0`

````
"Outflows": {
	"Array": "..."
},

````

#### SoilMoistureSimulator

`SoilMoistureSimulator` stores the moisture level of each tile in a game map. Has one argument, `MoistureLevels`.

````
"SoilMoistureSimulator": {
	"MoistureLevels": {
		"Array": "..."
	}
},

````

##### MoistureLevels

`MoistureLevels` is a comma-less array that contains the moisture level of each tile in a game map.

* Minimum accepted value: `0`
* Maximum accepted value: `16`

````
"MoistureLevels": {
	"Array": "..."
}

````

#### NameService

`NameService` stores the `Names` list that is used to generate beaver names.

````
"NameService": {
	"Names": [...]
},

````

##### Names

`Names` is an array of the names that will be used to generate beaver names. The default list of names is shown below.

````
"Names": [
	"Aeznu",
	"Ajevnuck",
	"Ajin",
	"Akenott",
	"Aketa",
	"Akrijer",
	"Alunja",
	"Alvemoh",
	"Alzim",
	"Ambliz",
	"Anje",
	"Anji",
	"Ankelgad",
	"Aradya",
	"Arany",
	"Aszea",
	"Atae",
	"Autuath",
	"Avalges",
	"Axiniz",
	"Ayagi",
	"Ayargajin",
	"Azajoth",
	"Azejaa",
	"Azib",
	"Azibo",
	"Azra",
	"Bajin",
	"Benni",
	"Bidibog",
	"Bie",
	"Bunjin",
	"Chatridua",
	"Chikyil",
	"Chudhagas",
	"Colovux",
	"Damari",
	"Dijirmel",
	"Ditid",
	"Ditrukaa",
	"Donudor",
	"Dorkuraz",
	"Dorlegax",
	"Dujunua",
	"Ejie",
	"Ekon",
	"Elbakax",
	"Elvajuth",
	"Enalri",
	"Equinus",
	"Erasto",
	"Gajudeas",
	"Gakrum",
	"Gamirro",
	"Gamjee",
	"Gilta",
	"Gnaamro",
	"Gnonu",
	"Gonog",
	"Gugebum",
	"Gunedhin",
	"Haijen",
	"Hailith",
	"Hakalai",
	"Halasuwa",
	"Hokajin",
	"Hokima",
	"Hovaaru",
	"Hyptu",
	"Ibuax",
	"Idumul",
	"Igelkez",
	"Illa",
	"Jabir",
	"Jagridis",
	"Jalai",
	"Jalgin",
	"Jalvad",
	"Jannejig",
	"Jarmizax",
	"Jaryaya",
	"Javilla",
	"Javinda",
	"Javyn",
	"Jayunya",
	"Jazgid",
	"Jezemalu",
	"Jijel",
	"Jinjin",
	"Jiranty",
	"Jojin",
	"Jomudu",
	"Jozala",
	"Juljin",
	"Jumoke",
	"Jumuziz",
	"Kaduvom",
	"Kassud",
	"Katanja",
	"Katzine",
	"Kavloboh",
	"Kazko",
	"Kea",
	"Kelraz",
	"Khaamimid",
	"Khekkam",
	"Khelynn",
	"Khemruy",
	"Khinguth",
	"Khiraamem",
	"Khodunes",
	"Kijaavi",
	"Kina",
	"Kitrua",
	"Kiya",
	"Kizi",
	"Krodrag",
	"Kuguthe",
	"Kuroji",
	"Kurzol",
	"Laojin",
	"Lepud",
	"Lujin",
	"Makali",
	"Malak",
	"Matuna",
	"Meimei",
	"Meiogiy",
	"Melelea",
	"Mezil",
	"Mezilkree",
	"Mohanlal",
	"Napokue",
	"Ngonel",
	"Nolkokes",
	"Nsubom",
	"Nuenvan",
	"Nugraas",
	"Nugun",
	"Nyabingi",
	"Oboged",
	"Ogimu",
	"Olkath",
	"Oyana",
	"Ozaun",
	"Ozobul",
	"Paikei",
	"Pina",
	"Prerrahar",
	"Pujati",
	"Pyribag",
	"Qagatsock",
	"Qakugoth",
	"Qanuare",
	"Qedaroz",
	"Qevolvax",
	"Qigumid",
	"Qodvux",
	"Quaruvon",
	"Quivilt",
	"Quscuy",
	"Rahjin",
	"Rakash",
	"Rangi",
	"Rashi",
	"Razi",
	"Reakrodi",
	"Reji",
	"Renjai",
	"Renji",
	"Rhazin",
	"Rijaamar",
	"Rogizel",
	"Romavax",
	"Ronjaty",
	"Rornoh",
	"Rotsack",
	"Roumuh",
	"Rualbokez",
	"Rujabu",
	"Sagokris",
	"Satizix",
	"Sedamun",
	"Segawa",
	"Seji",
	"Senwe",
	"Senzal",
	"Shadrala",
	"Shaktila",
	"Shaktilar",
	"Shamra",
	"Sharimara",
	"Shengis",
	"Shetsi",
	"Shozlith",
	"Shubre",
	"Sivokul",
	"Sligo",
	"Smecos",
	"Sodekih",
	"Sollix",
	"Stakvizz",
	"Subumroz",
	"Sukegrul",
	"Suli",
	"Suliya",
	"Sulynn",
	"Szozsil",
	"Talis",
	"Talisa",
	"Tanjin",
	"Taraka",
	"Tedar",
	"Teja",
	"Teshi",
	"Tezzi",
	"Tirezi",
	"Titamor",
	"Trezzahn",
	"Trolgar",
	"Tzane",
	"Tzuljin",
	"Uagoduth",
	"Uavam",
	"Ubuzur",
	"Uduebo",
	"Uerrex",
	"Ukezcon",
	"Ulkineth",
	"Usitutie",
	"Valezath",
	"Valja",
	"Veakuajay",
	"Velgua",
	"Venjo",
	"Venmara",
	"Vinji",
	"Vinjin",
	"Vobinis",
	"Vommu",
	"Vonjai",
	"Voyambi",
	"Vriska",
	"Vrudom",
	"Vuajuag",
	"Vuannen",
	"Vubul",
	"Vujii",
	"Vulzal",
	"Vulzala",
	"Vumdith",
	"Vunokud",
	"Vurniga",
	"Vuzashi",
	"Vuzembi",
	"Warduag",
	"Watu",
	"Whitud",
	"Wonjin",
	"Xukundi",
	"Yamike",
	"Yashi",
	"Yavo",
	"Yawan",
	"Yesha",
	"Yetu",
	"Yimozsah",
	"Zallah",
	"Zalmea",
	"Zashi",
	"Zebajin",
	"Zelaji",
	"Zelea",
	"Zengu",
	"Zenma",
	"Zernogath",
	"Zevrij",
	"Zhoumai",
	"Ziataaman",
	"Ziatajie",
	"Ziatakraa",
	"Zinjo",
	"Zircoy",
	"Zodock",
	"Zojavuck",
	"Zoljin",
	"Zomuabad",
	"Zonraja",
	"Zoti",
	"Zufem",
	"Zujia",
	"Zulabar",
	"Zulgeteb",
	"Zulkis",
	"Zulkraa",
	"Zulraja",
	"Zulrajas",
	"Zulrea",
	"Zulyafi",
	"Zunabar"
]

````

#### PlantingService

`PlantingService` stores the `PlantingMap` of the game map. Takes one argument. `PlantingMap`.

````
"PlantingService": {
	"PlantingMap": {...}
},

````

##### PlantingMap

`PlantingMap` stores the planting map size and also stores what items have been planted and where they've been planted. `PlantingMap` takes one argument `Size` and also contains a list of planted items.

````
"PlantingMap": {
	"Size": {
		"X": 150,
		"Y": 150
	},
	"BlueberryBush": [
		{
			"X": 119,
			"Y": 84
		}
	],
	"Birch": [
		{
			"X": 120,
			"Y": 84
		}
	],
	"Pine": [
		{
			"X": 121,
			"Y": 84
		}
	],
	"Maple": [
		{
			"X": 122,
			"Y": 84
		}
	]
}

````

###### PlantingMap Size

`PlantingMap` `Size` must be the same size as what has been defined in `MapSize`. `Size` takes two arguments. `X` and `Y`.

````
"Size": {
	"X": 150,
	"Y": 150
},

````

###### PlantingMap planted items

The items that have been planted are stored in `PlantingMap`. Each planted item will appear in the list once and has information about what it is and what tile it has been planted on.

* Example of planted items

````
"BlueberryBush": [
	{
		"X": 119,
		"Y": 84
	}
],
"Birch": [
	{
		"X": 120,
		"Y": 84
	}
],
"Pine": [
	{
		"X": 121,
		"Y": 84
	}
],
"Maple": [
	{
		"X": 122,
		"Y": 84
	}
]

````

#### ScienceService

`ScienceService` stores and tracks the accumulated `SciencePoints`.

````
"ScienceService": {
	"SciencePoints": 4450
},

````

##### SciencePoints

`SciencePoints` stores the accumulated science points as a whole number.

* Valid minimum number: `0`
* Valid maximum number: unknown?

````
"SciencePoints": 4450

````

#### BuildingUnlockingService

`BuildingUnlockingService` stores the `UnlockedBuildingIds`.

````
"BuildingUnlockingService": {
	"UnlockedBuildingIds": [...]
},

````

##### UnlockedBuildingIds

`UnlockedBuildingIds` stores (tracks) which buildings have been unlocked and stores them in an array.

What building ids appear in this section depend upon which faction `Id` has been set in `FactionService`. The complete list for both factions is shown below.

* Folktails:

````
"UnlockedBuildingIds": [
	"Bakery.Folktails",
	"BeaverStatue.Folktails",
	"Beehive.Folktails",
	"Bench.Folktails",
	"BuildersHut.Folktails",
	"Carousel.Folktails",
	"DepthMarker.Folktails",
	"DistributionPost.Folktails",
	"DoubleFloodgate.Folktails",
	"DoubleLodge.Folktails",
	"DoublePlatform.Folktails",
	"DropOffPoint.Folktails",
	"Dynamite.Folktails",
	"ExplosivesFactory.Folktails",
	"FlameOfProgress.Folktails",
	"Floodgate.Folktails",
	"Forester.Folktails",
	"GearWorkshop.Folktails",
	"Gristmill.Folktails",
	"IrrigationTower.Folktails",
	"PaperMill.Folktails",
	"Platform.Folktails",
	"LaborerMonument.Folktails",
	"LargeWarehouse.Folktails",
	"LargeWaterTank.Folktails",
	"LargeWindmill.Folktails",
	"Levee.Folktails",
	"LogFence.Folktails",
	"MetalFence.Folktails",
	"MetalPlatform.Folktails",
	"MiniLodge.Folktails",
	"PlankFence.Folktails",
	"PowerShaftHigh.Folktails",
	"PrintingPress.Folktails",
	"Roof1x1.Folktails",
	"Roof1x2.Folktails",
	"Roof2x2.Folktails",
	"Roof2x3.Folktails",
	"Roof3x2.Folktails",
	"Scarecrow.Folktails",
	"ScavengerFlag.Folktails",
	"Shredder.Folktails",
	"Shrub.Folktails",
	"SuspensionBridge1x1.Folktails",
	"SuspensionBridge2x1.Folktails",
	"SuspensionBridge3x1.Folktails",
	"SuspensionBridge4x1.Folktails",
	"SuspensionBridge5x1.Folktails",
	"SuspensionBridge6x1.Folktails",
	"Temple.Folktails",
	"TributeToIngenuity.Folktails",
	"TripleFloodgate.Folktails",
	"TripleLodge.Folktails",
	"TriplePlatform.Folktails",
	"UndergroundWarehouse.Folktails",
	"WaterDump.Folktails",
	"Windmill.Folktails",
	"WoodenStairs.Folktails"
]

````

* Iron Teeth:

````
"UnlockedBuildingIds": [
	"Bakery.IronTeeth",
	"BeaverStatue.IronTeeth",
	"Bench.IronTeeth",
	"BuildersHut.IronTeeth",
	"Carousel.IronTeeth",
	"DepthMarker.IronTeeth",
	"DistributionPost.IronTeeth",
	"DoubleFloodgate.IronTeeth",
	"DoublePlatform.IronTeeth",
	"DropOffPoint.IronTeeth",
	"Dynamite.IronTeeth",
	"Engine.IronTeeth",
	"ExplosivesFactory.IronTeeth",
	"Floodgate.IronTeeth",
	"Forester.IronTeeth",
	"GearWorkshop.IronTeeth",
	"Gristmill.IronTeeth",
	"FlameOfProgress.IronTeeth",
	"LaborerMonument.IronTeeth",
	"LargeBarrack.IronTeeth",
	"LargeMetalPlatform.IronTeeth",
	"LargeRowhouse.IronTeeth",
	"LargeWaterTank.IronTeeth",
	"LargeWarehouse.IronTeeth",
	"Levee.IronTeeth",
	"LogFence.IronTeeth",
	"MetalFence.IronTeeth",
	"MetalPlatform.IronTeeth",
	"PaperMill.IronTeeth",
	"PlankFence.IronTeeth",
	"Platform.IronTeeth",
	"PrintingPress.IronTeeth",
	"PowerShaftHigh.IronTeeth",
	"Roof1x1.IronTeeth",
	"Roof1x2.IronTeeth",
	"Roof2x2.IronTeeth",
	"Roof2x3.IronTeeth",
	"Roof3x2.IronTeeth",
	"Rowhouse.IronTeeth",
	"ScavengerFlag.IronTeeth",
	"Shredder.IronTeeth",
	"Shrub.IronTeeth",
	"SuspensionBridge1x1.IronTeeth",
	"SuspensionBridge2x1.IronTeeth",
	"SuspensionBridge3x1.IronTeeth",
	"SuspensionBridge4x1.IronTeeth",
	"SuspensionBridge5x1.IronTeeth",
	"SuspensionBridge6x1.IronTeeth",
	"Temple.IronTeeth",
	"TributeToIngenuity.IronTeeth",
	"TripleFloodgate.IronTeeth",
	"TriplePlatform.IronTeeth",
	"WaterDump.IronTeeth",
	"WoodenStairs.IronTeeth"
]

````

### Entities

Entities section to be added after completion of the above sections.