HN user

mfinelli

10 karma

https://github.com/mfinelli

Posts0
Comments8
View on HN
No posts found.

I'm familiar with MO2 from when I used windows, but I had a hard time getting it working on Linux. First problem was getting it installed. I found https://github.com/sonic2kk/steamtinkerlaunch which is supposed to let you install it into each game's wine/proton prefix which worked, but when I then tried to launch the game it would run with absolute terribile performance (like even just the title screen would lag and stutter...)

How did you install it? Maybe with a different method it would work for me better (even though now I'll probably just stick with my own tool I'm still curious)

That's a fair question! When I was on windows I never actually used Vortex, I only gave it a try on Linux when I had problems with MO2. But being an Electron app it's very unappealing to me. As for MO2, well, I don't really know C++ and wouldn't even know where to begin contributing even if I did... just for starters there's the whole question of how the virtual filesystem that MO2 does would work if it were native linux. In any case I know Go and wanted to implement some things that I didn't like how MO2 worked (eg tracking the version of additional mod files instead of just the main one). Plus new stuff like making a portable mod bundle that you can either backup or move to a new machine. Plus I generally like a CLI workflow :)

Ooh overlayfs is quite interesting. I'll have to take a closer look at that. I imagine it's similar to what MO2 was doing on windows with the virtual filesytem to keep the game directory clean.

The stow approach is something that I considered but ultimately rejected for a couple of reasons around handling conflicts of game-installed files as well as how to ultimately handle the symlink lifecycle (eg wrapper to make the "non-running" state always clean or to let it always persist and then need to run manual cleanup/update steps). But if you're interested in that approach when I was applying for Nexus Mods approval I discovered https://github.com/Marc1326/Anvil-Organizer in the overall list of mod tools which I believe uses that strategy (though I haven't really looked too closely)

But basically my original idea to just install the files directly into the game directory stems from the fact that when I switched to linux for gaming and not having success with MO2 that's literally what I was doing. I would download the mod from nexus and unzip/tar it into the game directory manually. When I wanted to uninstall or update I'd find the original archive list the files in it and then delete them from my game directory. After doing this too much I realized that I was basically missing the functionality of a standard linux package manager (eg apt, pacman, etc)

I've really only tested it with Cyberpunk 2077 (and a bit of WH40K rogue trader). The issues (so far) are with tangential features. For example it's possible to define rules when you extract files (eg the mod author sticks them in a subdirectory or something you can have the tool automatically strip that leading directory) the "preview" feature to see how to rules affect the files before extraction isn't working as expected. But the main loop of create a profile for the game, add/remove mods to it, and have it spit them out into your game directory works without issue.

I should add that it's a CLI tool only (I may add a TUI later but it probably won't ever have a GUI if that matters). Anyway if you check it out and have any feedback whether positive or negative that would be cool

Re: modding with MO2/vortex I had a similar problem in that installing them on linux isn't super straightforward, and then once I did get them installed when I launched the game through them like I used to do on windows the performance was abysmal. I decided to tackle the problem myself and so I wrote this: https://github.com/mfinelli/modctl. It's a mod manager that I wrote specifically for linux. It's not really ready for primetime yet, but if you're willing to experiment depending on your needs it might work for you. The repo might look like work has slowed down, which I guess is true but that's mostly because I implemented all of the main stuff that I wanted to and now I've just been using it instead of building it for the past few weeks though there are still a few rough edges and a couple of bugs that I need to sort out (but nothing game breaking that I've found yet).