60 lines
3.4 KiB
Markdown
60 lines
3.4 KiB
Markdown
# 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.
|
|
|
|
```bash
|
|
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.
|
|
|
|
```bash
|
|
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.
|
|
|
|
```bash
|
|
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.
|