Skip to main content

No project description provided

Project description

RMM: RimWorld Mod Manager

Do you dislike DRM based platforms but love RimWorld and it's mods? RMM is cross platform mod manager that allows you to download, update, auto-sort, and configure mods for the game without relying on the Steam consumer client. RMM has a keyboard based interface that is easy to use and will be familiar to Linux users and developers.

RMM v1.0 supports Windows, Linux, and MacOS.

Prerequisites

To use RMM you need:

  • SteamCMD installed and in your path. (Linux/Mac Only)
  • Set RMM_PATH to game path if game is installed to a not default location.
  • Python 3.9+

Installation for Windows

  1. Install latest Python 3 release from https://www.python.org/downloads/windows/

    • Ensure 'add to PATH' is checked / enabled during installation.
  2. Open 'cmd' with Administrator privileges and type python -m pip install --user rmm-spoons

    • Use with python -m rmm
  3. (Optional) Add C:\Users\[username]\AppData\Roaming\Python\[version]\Scripts\ to PATH.

    • Use with rmm

Installation for MacOS:

  1. Install Python3 with brew.
  2. pip3 install --user rmm-spoons
  3. Use with python3 -m rmm
  4. Add python bin directory to your path:
echo "export PATH=\"$PATH:$HOME/Library/Python/$(python3 --version | awk '{split($2,a,".") ; print a[1] "." a[2] }')/bin\"" >> ~/.zshrc
  1. Use with rmm

Upgrading on MacOS

Please perodically update RMM with the following command: pip3 install --upgrade rmm-spoons

Installation for Arch Linux

RMM has an AUR package 'rmm'. The package brings in all dependencies, including steamcmd, and can be installed with makepkg and git or an AUR helper as shown below. No other steps are required:

Makepkg

mkdir -p ~/build ; cd ~/build
git clone https://aur.archlinux.org/rmm.git
cd rmm
makepkg -si

Yay (AUR helper)

yay -S rmm

Installation for other Linux distributions (via PyPi)

1. Installing SteamCMD on Ubuntu

sudo su -c 'apt update && apt upgrade && apt install software-properties-common && add-apt-repository multiverse && dpkg --add-architecture i386 && apt update && apt install lib32gcc1 steamcmd' ; 
echo 'export PATH="$PATH:/usr/games' >> ~/.bashrc ;
exec $SHELL

1. Installing SteamCMD on Debian

sudo su -c 'apt update && apt upgrade && apt install software-properties-common && add-apt-repository non-free && dpkg --add-architecture i386 && apt update && apt install steamcmd' ; 
echo 'export PATH="$PATH:/usr/games' >> ~/.bashrc ;
exec $SHELL

2. Adding .local/bin to your PATH

RMM can be directly accessed with command rmm. In order for this to work, you need to add ~/.local/bin to your PATH variable, otherwise, your terminal will not find the rmm script. If you notice that you cannot run rmm after installation, try the following:

echo 'export PATH="$PATH:$HOME/.local/bin" >> ~/.bashrc ; exec $SHELL

Alternatively, RMM can always called with:

python -m rmm

3. Installing package from PIP

python -m pip install --user rmm-spoons

Upgrading with PIP

Please perodically update RMM with the following command: python -m pip install --user --upgrade rmm-spoons

Configuration

Set RMM_PATH (Optional)

If RimWorld is installed a directory other than the default ones, you should set the RMM_PATH variable to your game directory for convenience.

Set it permanently in your bashrc or zshrc files:

# Note please update this path to your actual game or mod directory
echo 'export RMM_PATH="$HOME/your/game/path" >> ~/.bashrc ; 
exec $SHELL

Temporarily set it during your shell session:

export RMM_PATH="~/PATHTOGAME/game/Mods"

Installation for Development (Developers)

Clone repository and install with pip.

mkdir -p ~/build
git clone https://github.com/Spoons/rmm.git ~/build/rmm
pip install --user ~/build/rmm

Usage

RimWorld Mod Manager

Usage:
rmm [options] config
rmm [options] export [-e]|[-d] <file>
rmm [options] import <file>
rmm [options] enable [-a]|[-f file]|<packageid>|<term>
rmm [options] disable [-a]|[-f file]|<packageid>|<term>
rmm [options] remove [-a]|[-f file]|<packageid>|<term>
rmm [options] list
rmm [options] query [<term>]
rmm [options] search <term>
rmm [options] sort
rmm [options] sync <name>
rmm [options] update
rmm [options] verify

rmm -h | --help
rmm -v | --version

Operations:
config            Sort and enable/disable mods with ncurses
export            Save mod list to file.
import            Install a mod list from a file.
list              List installed mods.
query             Search installed mods.
remove            Remove installed mod.
search            Search Workshop.
sort              Auto-sort your modlist
sync              Install or update a mod.
update            Update all mods from Steam.
verify            Checks that enabled mods are compatible
enable            Enable mods
disable           Disable mods
order             Lists mod order

Parameters
term              Name, author, steamid
file              File path for a mod list
name              Name of mod.

Flags
-a                Performs operation on all mods
-d                Export disabled mods to modlist.
-e                Export enabled mods to modlist.
-f                Specify mods in a mod list

Options:
-p --path DIR     RimWorld path.
-w --workshop DIR Workshop Path.
-u --user DIR     User config path.

Environment Variables:
RMM_PATH          Folder containings Mods
RMM_WORKSHOP_PATH Folder containing Workshop mods (optional)
RMM_USER_PATH     Folder containing saves and config

Pathing Preference:
CLI Argument > Environment Variable > Defaults

Tip:
You can use enable, disable, and remove with no
argument to select from all mods.

How To

List installed packages:

rmm list

Search workshop packages:

rmm search term

Search locally installed mods

rmm query term

Install package:

rmm sync rimhud

Removing a package:

rmm remove fuzzy

Removing all / a range packages:

rmm remove 
# all packages will be listed. specify your desired range at the interactive prompt.

Saving a mod list

rmm export ~/modlist.txt

Install mod list:

rmm import ~/modlist.txt

Update all packages:

rmm update

Auto sort mods:

rmm sort

Manually sort mods:

rmm config

Show mod load order:

rmm order

Tips

  1. Duplicating a mod setup to a new installation:
rmm -p ~/path-to-game export ~/modlist.txt
rmm -p ~/path-to-game import ~/modlist.txt
  1. It is recommended to auto sort your mods after installation of a mod or modlist.

Related Projects

  • rwm: Rust rewrite of RMM.

Contributing

If you would like to contribute your time or efforts towards the project, you are welcome to and your efforts will be appreciated. Please format any code changes through python-black.

License

This project is licensed under the GPLv3 License - see the LICENSE file for details

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rmm-spoons-1.0.17.tar.gz (40.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rmm_spoons-1.0.17-py3-none-any.whl (35.9 kB view details)

Uploaded Python 3

File details

Details for the file rmm-spoons-1.0.17.tar.gz.

File metadata

  • Download URL: rmm-spoons-1.0.17.tar.gz
  • Upload date:
  • Size: 40.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for rmm-spoons-1.0.17.tar.gz
Algorithm Hash digest
SHA256 bc8caef382a2a61750e48282244307cd88d8c5758932b89322bbe50d59bd3375
MD5 e896f81d0b1444410adf164539240b64
BLAKE2b-256 d82f3e584b20a9adcf5b861bebc0c2c806e647815050aea985f56766fa07c2ca

See more details on using hashes here.

File details

Details for the file rmm_spoons-1.0.17-py3-none-any.whl.

File metadata

  • Download URL: rmm_spoons-1.0.17-py3-none-any.whl
  • Upload date:
  • Size: 35.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for rmm_spoons-1.0.17-py3-none-any.whl
Algorithm Hash digest
SHA256 61acf76d5050d1c704369938767f3879a4ee84fd767b20c6c3630e05e67b6616
MD5 1ba49fd75d2946525b9d3ebe6c388a42
BLAKE2b-256 a53990da9f46db7b2e81e6aede92e4ce6ec985bab9f508fc6ccf564d4d9b9d17

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page