kayomn 91c460c2f4 | ||
---|---|---|
.gitignore | ||
go.mod | ||
go.sum | ||
main.go | ||
manager.go | ||
readme.md |
readme.md
ESP Modman
A simple command-line interface for managing and deploying mods to a Elder Scrolls Plugin-based games installation.
Usage
A readout of the operations that are supported by Modman can be seen by invoking the modman
command with no arguments.
Getting Started
Upon initial setup, you will need to create a new game association using modman create
followed by the name you want to give the game association and the path to its data folder.
modman create skyrim "~/.steam/steam/steamapps/common/Skyrim Special Edition/Data/"
Example of how to register an installation of Skyrim Special Edition with Modman
The game name can contain any valid Unicode characters except whitespace when created without double-quotes surrounding it. Meanwhile, the path must be a valid OS-native path to the game data directory.
Deploying Mods
Once a game association has been created, archives of mods can be deployed directly to the game install via modman deploy
followed by the game association name and then one or more paths to mod archives.
modman deploy skyrim "~/downloads/Mod1.zip" "~/downloads/Mod2.zip" "~/downloads/Mod3.zip"
Example of how to deploy mods archives to an associated game install.
Deploy respects the order of the mods list provided to it and will layer them one after the other. In this scenario, Mod3.zip
will overwrite any files that share the same paths that Mod2.zip
do, which in turn overwrites any files that share the same paths as Mod1.zip
.
Deployments are also transitive, so running modman deploy
individually each time for "~/downloads/Mod1.zip"
, "~/downloads/Mod2.zip"
, and "~/downloads/Mod3.zip"
will have the same effect as deploying them once in the same command.
Cleaning Up
All mod files managed by Modman can be completely cleaned from an install using modman clean
followed by the game association name. This will completely remove all mod files managed by Modman, so use with care.
modman clean skyrim
Example of how to clean managed mods from an associated game install.
Modman does not provide any way to incrementally remove installed mods in the same way that it does with deployment. This is done to avoid corrupting file overwrite precidence, which can become very messy for any mod management tool that compiles all mods into a merged staging directory like Modman.
Architecture
Modman uses a staged deployment system and aims for incremental deployment of mods and atomic, transactional cleanup.
As mod archives are deployed, their contents are extracted and written to a merged staged
directory inside the user cache folder, overwriting any files with the same file paths that came before them. After staging, hard links to those files are written into the game directory after any files overwritten by the staged mods are backed up to an overwritten
directory to be restored later as part of the installation cleanup.
Limitations
Currently, Modman only supports the Zip archive format. However, work is coming to introduce other popular formats like 7Zip and Rar.
Further restrictions are imposed on the kinds packaging allowed in the Zip format, with the FOMOD installer format being unsupported.
Undertaking implementation of a parser and user interface for the FOMOD installer format is not a focus in the development of Modman at this current time, however, contributions are welcome.