Skip to content

GabrielAnacletoBaumgartner/PyManagerPOC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyManagerPOC

PyManagerPOC is a Proof-Of-Concept python script I made to test the feasibility of using Linux's OverlayFS as the engine for a mod manager.


THIS IS NOT A MOD MANAGER, IT'S JUST A SCRIPT WITH SOME BASIC LOGIC FOR A PROPER MOD MANAGER.


As it turns out: Using OFS is not feasible without recompiling the kernel to increase the FILESYSTEM_MAX_STACK_DEPTH value. Without recompiling the kernel, the max ammount of mods possible is, in a best case scenario, just 5. The solution I found was to use mergerfs instead of OFS.

Long-story short:

I got very disappointed with the current state of ModOrganizer2 under Proton. As a mod maker I had to restart the software multiple times just to run different executables, due to each one demanding a different Proton version. That's why I started this Proof-of-concept. This script was made with Skyrim Special Edition in mind, but it can also be used for other games.

Requirements:

  1. TkInter - for the testGUI
  2. MerferFS - for the vfs system
  3. Edit the PyManagerPOC.ini and instance/Default/config.ini. You must use your own machine directories.
  4. If possible, use Arch (btw)

Some important notes:

  1. This script is intended to be ran in Visual Studio Code, as it will ask for sudo permissions in the integrated terminal. Don't worry, its not virus. It's just mergerfs requires sudo permissions to mount the directories.
  2. This script support "root mods" out of the box, including SKSE, ENB, EngineFixes, etc. In fact, to run (more likely "test") "Data mods" you must create a Data directory inside the mod directory and then move the files to this Data directory. In simpler terms: This script does not differ from Root or Data mods.
  3. The objective of directory binds system was to avoid errors during mount, as OFS simply refuses to work with directories with spaces in its names.
  4. After swapping OverlayFS by mergerfs, I also realized that any mod with "()" in its name makes the script crash, so these will also be treated as separators (will not be loaded at all).
  5. This script does NOT sort any plugins (esm/esp/esl) in the pfx/drive_c/users/steamuser/AppData/Local/"Game"/Plugins.txt file. It will automatically enable them but I CAN NOT GUARANTEE it will be bug-free unless you sort plugins manually (Again, this was never intended to be a mod manager, but rather a proof-of-concept)
  6. All empty mod directories will not be considered during mount, as it wouldn't modify anything anyway and would make the mount command bigger.
  7. It's highly recommended "to chown" the directories used by the script.

About

A proof of concept mod manager for Linux written in python.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages