This is a very basic mod manager for 7 Days to Die on Linux.
Find a file
2024-07-20 12:59:13 -04: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 Now displays which mod can be run server side only. 2024-07-20 12:59:13 -04:00
seven_mods.py Now displays which mod can be run server side only. 2024-07-20 12:59:13 -04:00
seven_mods_gui.py Now displays which mod can be run server side only. 2024-07-20 12:59:13 -04: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. The default location for the mods folder is the current working directory. The default location for the 7 Days to Die installation directory is autodetected if installed from steam, or blank otherwise.

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. 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 (*). Mods that are expected to be able to work server-side only (i.e. "modlets") are followed by a dollar sign ($). list also accepts an optional argument, profiles, which tells it to list all saved profiles instead of mods.
  • 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.
  • config: reconfigure paths to your mod and 7 Days to Die directories.

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

The main source file for the GUI version is seven_mods_gui.py. It must be in the same directory as seven_mods.py in order to work.

Upon first startup, it will prompt to configure the locations of your mods and installation directories. Once finished, click "save" on the prompt and close the window.

Note: Sometimes the configuration prompt will appear behind the main window, so if you don't see it at first, that's probably where it ended up.

The configuration prompt can be reopened at any time by clicking the "Configure" button in the upper left corner of the main window. The combobox at the top is for profiles. A profile can be loaded by selecting one from the combobox's dropdown menu, then clicking the "Load" button. A profile can be saved by typing its name into the combobox, then clicking "Save". A profile can be overwritten the same way, or by selecting it from the dropdown menu and clicking "Save".

The main portion of the display is a scrollable listing of all available mods. Similarly to the CLI version's list command, enabled mods are shown in green, and disabled mods are shown in red. Clicking on a mod's list entry will toggle it.

Note: If you click twice too fast, tkinter will think you're double-clicking, and won't change its state twice.