.gitignore | ||
LICENSE | ||
README.md | ||
seven_mods.py | ||
seven_mods_gui.py |
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 respectiveModInfo.xml
files. Alternatively, to enable all mods, simply type-a
rather than listing them all out.disable
: disable mods. Arguments are the same as forenable
, 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.