This is a very basic mod manager for 7 Days to Die on Linux.
Find a file
2023-01-22 00:18:00 -05:00
.gitignore Added the actual script, filled in the README. 2023-01-22 00:18:00 -05:00
LICENSE Initial commit 2023-01-22 02:50:12 +00:00
README.md Added the actual script, filled in the README. 2023-01-22 00:18:00 -05:00
seven-mods.py Added the actual script, filled in the README. 2023-01-22 00:18:00 -05:00

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 <command> <args...>

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.