Factorio Mod for tracking your milestones
Published here: https://mods.factorio.com/mod/Milestones
Please note that Milestones is in maintenance mode at the moment. Pull requests for new features are still welcome but I am looking to avoid feature creep. Pull requests to add new presets in Milestones will be declined, instead please implement the remote interfaces in your own mod:
If your mod is an overhaul mod, or just generally does not interact well with other mods (e.g. Space Exploration), add a preset by implementing the milestones_presets interface. Only one preset will be chosen from the available ones.
If your mod could be used with most other mods (e.g. Power Armor Mk3), add a preset addon by implementing the milestones_preset_addons interface. Any matching preset addon will add milestones to the preset.
remote.add_interface("my-cool-mod", {
milestones_presets = function()
return {
["My Cool Mod"] = {
required_mods = {"my-cool-mod"},
milestones = {
{type="group", name="Science"},
{type="item", name="my-cool-mod-science-pack", quantity=1},
}
},
["My Cool Mod (with Weapons extras)"] = {
required_mods = {"my-cool-mod", "my-cool-mod-weapons"},
milestones = {
{type="group", name="Science"},
{type="item", name="my-cool-mod-science-pack", quantity=1},
{type="group", name="Weapons"},
{type="item", name="my-cool-mod-thermonuclear-antimatter-atomic-plasma-multibarrel-automatic-rocket-rifle", quantity=1},
}
}
}
end
})You can take a look at examples in presets.lua.
Some implementation examples from other mods: Krastorio 2, Pyanodons, Ultracube
remote.add_interface("ice-armor", {
milestones_preset_addons = function()
return {
["Ice Armor"] = {
required_mods = {"ice-armor"},
milestones = {
{type="group", name="Progress"},
{type="item", name="ice-armor", quantity=1},
}
}
}
end
})You can take a look at examples in preset_addons.lua.
- You can mark milestones with
hidden=truefor spoilery things. Hidden milestones will still be tracked and announced, but will only be visible once they are achieved. - You can track consumption instead of production with
type="item_consumption"andtype="fluid_consumption". This can have some niche use (e.g. Ultracube cube consumption). - You can create item "aliases", which will count as another item.
- For example you could have a "box of science" count the same as 5 science for the sake of milestones so that players still achieve science milestones even when they are producing boxes:
{type="alias", name="nullius-box-geology-pack", equals="nullius-geology-pack", quantity=5}(Example from Nullius) - Or you could have an "upgraded" item also count for the original item so that players can still achieve the milestone for the original item:
{type="alias", name="digosaurus-turd", equals="digosaurus", quantity=1},(Example from Pyanodons)
- For example you could have a "box of science" count the same as 5 science for the sake of milestones so that players still achieve science milestones even when they are producing boxes:
Thanks a lot!