cyberrumor / ammo

Almost Manual Mod Organizer - Linux MO for Bethesda Games
GNU General Public License v2.0
25 stars 6 forks source link
modorganizer skyrim skyrim-modding skyrim-se

AMMO

Almost Manual Mod Organizer

A Simple Terminal-Based Mod Organizer for Linux

Supported Games

Features

Dependencies

Installation Instructions

Steam Deck users:

python -m ensurepip --user --break-system-packages --upgrade
python -m pip install --user --break-system-packages --upgrade pip

Everyone:

echo 'PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
PATH="$PATH:$HOME/.local/bin"
git clone https://github.com/cyberrumor/ammo
cd ammo
pip3 install --user --break-system-packages -r requirements.txt
pip3 install --user --break-system-packages .

You can now execute ammo with the terminal command ammo.

Updating Instructions

Check the releases page for possible manual migration steps. Releases are only published on breaking changes, and are there for the benefit of people who don't have time to address those changes. In general, you should be using the most recent version of the main branch.

cd /path/to/ammo/clone/dir
git pull
pip3 install --user --break-system-packages --force-reinstall .

Usage Instructions

ammo - Launch the interactive shell. Select a game via index if prompted.

Command Arguments Description
activate (mod|plugin) \ Enabled components will be loaded by game
collisions \ Show file conflicts for a mod
commit Apply pending changes
configure \ Configure a fomod
deactivate (mod|plugin) \ Disabled components will not be loaded by game
delete (mod|download|plugin) \ Removes specified file from the filesystem
exit Quit
find [\ ...] Show only components with any keyword
help Show this menu
install \ Extract and manage an archive from ~/Downloads
move (mod|plugin) \ \ Larger numbers win file conflicts
refresh Abandon pending changes
rename (mod|download) \ \ Names may contain alphanumerics and underscores
sort Arrange plugins by mod order

Usage Tips and Tricks

Contributing

If you would like to contribute, please fork the repository, make changes on your fork, then open a PR. Below are some key guidelines to follow for code contributions, but keep in mind the intended scope of AMMO; it is NOT a download manager or API client and it does NOT launch programs.

Tips and tricks for contributors

You can run tests from the base directory of the repo with pytest test.

It may be useful in your iterations to automate UI input before you've written tests. I find the easiest way to do this is with this sort of strategy:

(echo "command1 arg1"; echo "command2 arg1") | ammo

If you need to recreate a complex set of initial steps then supply manual input, you can use input redirection:

(echo "instruction1"; echo "instruction2"; cat <&0) | ammo

Technical Details

AMMO works via creating symlinks in your game directory pointing to your mod files.

Why Symlinks?

License

GNU General Public License v2, with the exception of some of the mock mods used for testing, which are subject to their packaged license (if it exists), which also contains credits.