2
0
Fork
You've already forked fmm
0
A portable CLI tool for managing your Factorio mods.
  • Go 95.4%
  • Lua 3.9%
  • Just 0.6%
  • Shell 0.1%
2025年11月05日 11:20:33 -07:00
.github/workflows Why do we release on i386 anyway? 2024年05月23日 14:18:21 -06:00
cli Don't print to console directly from ModPortal 2025年09月23日 21:33:43 -06:00
contrib Read input from stdin on -x, add fmm-pick script 2023年05月17日 15:18:39 -06:00
lib Support recommended dependencies 2025年11月05日 11:20:33 -07:00
mock Sync startup mod settings with first file passed on CLI ( #9 ) 2024年05月08日 22:58:52 -06:00
.gitignore Get basic mod enabling and disabling working 2022年12月23日 01:10:40 -07:00
.mailmap Add mailmap 2022年06月26日 20:52:18 -06:00
go.mod Update module root to codeberg.org 2025年09月22日 22:40:11 -06:00
go.sum Add --game-path and --mods-path flags 2025年08月18日 23:28:40 -06:00
justfile Switch from make to just 2025年08月18日 23:38:57 -06:00
LICENSE Update license 2023年12月28日 20:40:45 -07:00
main.go Update module root to codeberg.org 2025年09月22日 22:40:11 -06:00
README.md Fix URL in readme 2025年09月17日 09:35:22 -06:00

fmm

A CLI mod manager for Factorio. Easily download and enable mods, sync with save files or log file checksums, and upload mod zip files to the portal.

Installation

Grab the latest release from the releases page.

Distribution packages will be available once the project is stable.

Building

Requirements:

just

Run tests:

just test

Usage

usage: fmm [flags...] <command> [args...]
flags:
 --game-path Path of the game directory. Defaults to current directory.
 --mods-path Path of the mods directory. Defaults to './mods'.
 --help Show usage information.
commands:
 add [args...] Download and enable the given mods and their dependencies.
 disable [args...] Disable the given mods, or all mods if none are given.
 enable [args...] Enable the given mods and their dependencies.
 help Show usage information.
 list [files...] List all mods in the mods directory, or in the given save files.
 sync [args...] Disable all mods, then download and enable the given mods and their dependencies.
 If a save file is provided, merge startup mod settings with the settings contained in that save.
 update [args...] Update the given mods, or all mods if none are given.
 upload [files...] Upload the given mod zip files to the mod portal.
environment:
 FACTORIO_PATH Default Factorio game directory to use if the current or previous directories are invalid.
 FACTORIO_MODS_PATH Default Factorio mods directory to use. Defaults to FACTORIO_PATH/mods.
 FACTORIO_USERNAME Factorio username to use for mod portal operations.
 FACTORIO_TOKEN Factorio token to use for mod portal operations.
 FACTORIO_API_KEY Factorio API key to use for mod portal operations.

Mods are specified by name or name_version.

Configuration

fmm will check the current directory and the previous directory for a Factorio installation. If neither is valid, it will fall back to the directory specified by the FACTORIO_PATH environment variable.

If the mods directory is not contained within the game data directory (i.e. you installed via Steam), specify the FACTORIO_MODS_PATH environment variable to point fmm to the correct mods directory.

For uploading mods, specify your API key with the FACTORIO_API_KEY variable.

If you have logged in to your Factorio account, fmm will automatically pull your username and token from the player-data.json file. Alternatively, you can specify them with FACTORIO_USERNAME and FACTORIO_TOKEN respectively.

TODO

Not necessarily in order.

  • Man pages
  • Mod creation and packaging
  • Automated testing CI