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
|
|
|
|
`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.
|
|
|
|
|