# seven-mods This is a very basic mod manager for 7 Days to Die on Linux. ## Dependencies This program requires: - Python 3.7 or newer - Tcl/Tk (python-tk on Debian, tk on Arch) ## General Usage This mod manager works by storing your mods in a separate directory outside of your 7 Days to Die installation, then creating or breaking symlinks to the individual mods from the `Mods` folder within your 7 Days to Die installation to enable and disable them, respectively. Upon first use, you will be prompted for the locations of your mods folder and 7 Days to Die installation. After configuring these, they are stored in `seven-mods.cfg`. seven-days also allows the user to create separate mod profiles. If, for instance, you frequent a multiplayer server with a certain set of mods, but have a different prefered set of mods for single player, then you could create two mod profiles, called `multiplayer` and `singleplayer`, for instance. Loading a mod profile will instantly change the enabled mods to the ones that were enabled when the profile was last saved. ## CLI Version The main source file for the CLI version is `seven-mods.py`. General usage is: `python seven-mods.py ` The available commands are: - `list`: show a listing of all installed mods. Disabled mods appear in red. Enabled ones appear in green, and are followed by an asterisk (`*`). - `enable`: enable mods. A list of mod names can be given, separated by spaces. The mod names are the names of their respective folders, *not* the names listed in their respective `ModInfo.xml` files. Alternatively, to enable all mods, simply type `-a` rather than listing them all out. - `disable`: disable mods. Arguments are the same as for `enable`, including `-a` to disable all mods. - `toggle`: toggles mods on or off. Does *not* support `-a`. - `save`: saves the currently enabled mods to a profile. The only argument that should be given is the name of the profile to save. If the profile already exists, then it will be overwritten. - `load`: sets the enabled mods to those defined by the given profile. Tip: If you run the script from the directory in which you store your mods, then bash autocompletion works for mod names - hence why it uses the ugly folder names rather than the nice `ModInfo.xml` names. Warning: Due to Python's built-in `input()` function being jank on Linux, it may be easier to start out by just using the `list` command, accepting the defaults (by just striking the return key without typing anything), then editing the `seven-mods.cfg` file later. This is not ideal, so a better solution may come in the future. ## GUI Version A GUI version that uses tkinter is planned, but not yet ready. It'll be great though! Trust me. I'm a doctor.\* \* I'm not an actual doctor.