Achievement file format: Difference between revisions
No edit summary |
|||
Line 26: | Line 26: | ||
|- | |- | ||
| [[Data_Types#short|short]][*] | | [[Data_Types#short|short]][*] | ||
| Currently tracked achievements, given as a series of [[Data_Types#short|shorts]] up until the end of the file, with each representing the | | Currently tracked achievements, given as a series of [[Data_Types#short|shorts]] up until the end of the file, with each representing the index number of an achievement. The order of achievements in this file matches the order of which the player has them tracked in game. | ||
|} | |} | ||
This format has been valid since at least version 0.14.x. | This format has been valid since at least version 0.14.x. | ||
== Achievement Header Info == | |||
{| class="wikitable" | |||
! Type !! Description | |||
|- | |||
| [[Data_Types#string|string]] | |||
| Achievement type. This determines what kind of data fields this achievement contains in the content array. | |||
|- | |||
| [[Data_Types#string|string]] | |||
| Achievement string id - the one used internally by Factorio. | |||
|- | |||
| [[Data_Types#short|short]] | |||
| Achievement index number. This number is used to map achievements between this header info array, the content info array, and the tracked achievements list in this file. These index numbers are non-normative, so they won't always match up with the same achievement. | |||
|} |
Revision as of 01:55, 12 August 2017
This is a technical description of the achievement file format, used by Factorio to store player's achievement progress in the files "achievements.dat" and "achievements-modded.dat".
Yes - this information can be used to "cheat" Factorio by simply writing to the achievement file(s) in such a way as if you had met all the achievement requirements, open up Factorio, and then suddenly have all achievements unlocked. If you've played Factorio at all you should know that this point is moot. The goal of this document is to share how to _read_ the achievement file(s) - so that third party applications can do do things with that information. Enjoy.
See the page on data types for an explanation of the different types of data used in this document.
File Format
The overall file format is as follows. Note that in this file, array length is stored as a short, not an int!
Type | Description |
---|---|
short[4] | The version string of Factorio that generated this string. |
array<bytes> | Achievement header info. Variable length. See the section for more information. |
array<bytes> | Achievement content info. Variable length. See the section for more information. |
short | Unknown. Always seems to equal zero. Perhaps padding? |
short[*] | Currently tracked achievements, given as a series of shorts up until the end of the file, with each representing the index number of an achievement. The order of achievements in this file matches the order of which the player has them tracked in game. |
This format has been valid since at least version 0.14.x.
Achievement Header Info
Type | Description |
---|---|
string | Achievement type. This determines what kind of data fields this achievement contains in the content array. |
string | Achievement string id - the one used internally by Factorio. |
short | Achievement index number. This number is used to map achievements between this header info array, the content info array, and the tracked achievements list in this file. These index numbers are non-normative, so they won't always match up with the same achievement. |