2023-01-22 02:50:12 +00:00
|
|
|
# seven-mods
|
|
|
|
|
2023-01-22 00:18:00 -05:00
|
|
|
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
|
2023-01-22 18:46:23 -05:00
|
|
|
`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.
|
2023-01-22 00:18:00 -05:00
|
|
|
|
|
|
|
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
|
2023-01-22 14:35:02 -05:00
|
|
|
two mod profiles, called `multiplayer` and `singleplayer`.
|
2023-01-22 00:18:00 -05:00
|
|
|
Loading a mod profile will instantly change the enabled mods to the ones that
|
|
|
|
were enabled when the profile was last saved.
|
|
|
|
|
|
|
|
## CLI Version
|
|
|
|
|
2023-01-22 18:46:23 -05:00
|
|
|
The main source file for the CLI version is `seven_mods.py`. General usage is:
|
2023-01-22 00:18:00 -05:00
|
|
|
|
|
|
|
`python seven-mods.py <command> <args...>`
|
|
|
|
|
|
|
|
The available commands are:
|
|
|
|
|
|
|
|
- `list`: show a listing of all installed mods. Disabled mods appear in red.
|
2024-07-20 12:59:13 -04:00
|
|
|
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.
|
2023-01-22 00:18:00 -05:00
|
|
|
- `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.
|
2023-01-22 14:35:02 -05:00
|
|
|
- `config`: reconfigure paths to your mod and 7 Days to Die directories.
|
2023-01-22 00:18:00 -05:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2023-01-22 18:46:23 -05:00
|
|
|
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.
|
2023-01-22 00:18:00 -05:00
|
|
|
|
2023-01-22 18:46:23 -05:00
|
|
|
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.
|
2023-01-22 00:18:00 -05:00
|
|
|
|
2023-01-22 18:46:23 -05:00
|
|
|
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.
|
2023-01-22 00:18:00 -05:00
|
|
|
|
2023-01-22 18:46:23 -05:00
|
|
|
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".
|
2023-01-22 00:18:00 -05:00
|
|
|
|
2023-01-22 18:46:23 -05:00
|
|
|
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,
|
2024-07-20 12:59:13 -04:00
|
|
|
and won't change its state twice.
|