Factorio Achievements With Mods

This mod makes the mining drill status lights bigger, duh. 2 months ago 1.0. Adds many more achievements for players that feel there aren't enough, ranging from progression based to difficult. Factorio, Except It Makes That Weird Tim Allen Noise When You Build, Deconstruct, And Research Things. Follower robot count (research) increases the maximum number of follower robots that can follow the player at any point in time. This limit counts for Defenders and Destroyers; Distractors do not count against the follower limit.

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. The goal of this document is to share how to _read_ the achievement file(s) - so that third party applications can do new and interesting things with that information. Enjoy!

With

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!

TypeDescription
short[4]The version string of Factorio that generated this file.
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[*]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 series matches the order of which the player has them tracked in game.

Factorio Re Enable Achievements

This format has been valid since at least version 0.14.x.

Achievement Header Info

The header contains information about what type of data fields each achievement has.

TypeDescription
stringAchievement type. This determines what kind of data fields this achievement contains in the content array.
stringAchievement string id - the one used internally by Factorio.
shortAchievement 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.
Note: the mapping of index numbers to achievement ids are continuous, but start at index 1 (there is no index 0) - because LUA tables start at 1.

Achievement Content Info

This contains the actual data of each achievement. It's important to note that not every achievement listed in the header has a matching content section here.

Also note that this array always ends with an index number of 0. When reading, either ignore this, or manually add in a blank achievement into your meta table at index zero with no fields.

TypeDescription
shortAchievement index number. This matches up with the index number in the Achievement header info.
byte[*]The achievement's progress information. The structure and length of this is determined by the achievement's type. See the table below for a list of achievement types.

Achievement Types

If new achievement types are added in the future, the achievement files will be unparse-able. Please add any new types you find here, thanks!

See the Prototype/Achievement base prototype page for more information about achievement structure.

Achievement
Type
Binary
Fields(s)
Field(s) Description
build-entity-achievement
  • byte[4]
  • Unknown format, 4 bytes long.
combat-robot-count
  • The greatest number of combat robots you've had following you.
construct-with-robots-achievement
  • byte[4]
  • Total number of objects constructed using robots.
  • Unknown format, 4 bytes long.
deconstruct-with-robots-achievement
  • Total number of objects deconstructed using robots.
deliver-by-robots-achievement
  • byte[8]
  • Unknown format, 8 bytes long.
dont-build-entity-achievement

TODO

TODO

dont-craft-manually-achievement

TODO

TODO

dont-use-entity-in-energy-production-achievement
  • Maximum number of Joules produced per hour, only including power produced from entities listed under 'included', and excluding those listed under 'excluded'.
finish-the-game-achievement

TODO

TODO

group-attack-achievement
  • byte[4]
  • Unknown format, 4 bytes long.
kill-achievement
  • The greatest number of an entity killed (e.g. trees, spawners).
player-damaged-achievement
  • The maximum amount of damage you've taken in a single hit.
  • True if the you survived that hit, False if you died.
produce-achievement
  • The total number of the item you've produced.
produce-per-hour-achievement
  • The maximum amount of the item produced per hour.
research-achievement
  • byte[4]
  • Unknown format, 4 bytes long.
train-path-achievement
  • The longest path (in tiles) planned by a train.

'combat-robot-count' is currently the only achievement type that doesn't end in '-achievement'. This is not an error.

Factorio steam unlockedConsole
Retrieved from 'https://wiki.factorio.com/index.php?title=Achievement_file_format&oldid=179094'
Is there any documentation on how to create achievements anywhere? I wasn't able to find anything on the official lua site or wiki.

Factoria Achievements With Mods Euro Truck Simulator

What I'd like to do is create an achievement for crafting a certain item within the first ten minutes of the game. I've got two questions.

[0.14.16] Achievements Unlocked With Mods - Factorio Forums

One, it seems like this isn't possible as set up currently. I can create an produce-item-achievement with one item, but I can't set a timeout. I can create a build-entity-achievement with a timeout, but the item in question isn't an entity so that doesn't help. Is what I'm trying to do possible? A secondary possibility, is if that won't work, is to unlock the achievement via script. This should be possible, and will work in my scenario as I'm already having the user do something with the item immediately that I'm detecting via script. However, then I don't think I can show the timeout unless I do something like create a build-entity-achievement with a dummy entity, then unlock that via script.

Factorio Steam Unlocked

More

Mods Disable Achievements? : Factorio

Second, how do I enable this achievement I've created to work in a scenario that's part of the mod? I'd figure that any achievement for a mod would work in any scenario that mod creates, but that doesn't seem to be the case. The achievement works in freeplay, but I'd like it to work in the scenario I'm creating as well, as I want the scenario to be the 'standard' way to play this particular mod.