- Go 95.4%
- Lua 3.9%
- Just 0.6%
- Shell 0.1%
| .github/workflows | Why do we release on i386 anyway? | |
| cli | Don't print to console directly from ModPortal | |
| contrib | Read input from stdin on -x, add fmm-pick script | |
| lib | Support recommended dependencies | |
| mock | Sync startup mod settings with first file passed on CLI ( #9 ) | |
| .gitignore | Get basic mod enabling and disabling working | |
| .mailmap | Add mailmap | |
| go.mod | Update module root to codeberg.org | |
| go.sum | Add --game-path and --mods-path flags | |
| justfile | Switch from make to just | |
| LICENSE | Update license | |
| main.go | Update module root to codeberg.org | |
| README.md | Fix URL in readme | |
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