XCOM 2, Linux, and Mods

xcom2bannerI run Linux Mint 17.3 Cinnamon and I’m enjoying the explosion of games available for the platform. One of these is XCOM 2. (A current release! Oh, be still my fluttering heart!) Vanilla, the game ran just fine, but I’m not a vanilla sort of girl. I crave mods. Sweet, juicy mods that enhance the game without turning it into a cheating bastard. Problem was, the launcher only successfully loaded once out of ten or more tries when mods were installed.

I found that the launcher was reading the mod files from .local/share/feral-interactive/XCOM2/VFS/Local/mods_lowercase. However, it took me far longer than it should have to figure out that these weren’t the actual files, but symlinks pointing to the files stored elsewhere. The launcher (or something related to it) was converting the symlink names to all lowercase and reading the mods from the local user folder. It was also deleting and rebuilding the Steam Workshop mod lowercase folder each time the launcher ran, sometimes more than once in a single instance. That multiple deleting and rebuilding always heralded a crash of the launcher.

Mods that I downloaded from Nexus weren’t having that problem, but the few I got from there were stored in /steamapps/common/XCOM 2/share/data/mods and converted to all lowercase in both file and directory names. In the brief moment before the launcher crashed, I could see that those mods were loaded, yet none of the Steam Workshop ones were. Not only that, but the Steam Workshop mods were stored in /steamapps/workshop/content in a folder with a numerical name. Time to run an experiment!

I favorited all of the Steam Workshop mods I subscribed to, so that I could easily find them again, then unsubscribed to all of them. Now, the
only mods were the Nexus mods in the /data/mods folder. I ran the launcher and it opened without a hitch. Now, the Nexus mods were also being symlinked in the local user folder, though in their own subdirectory beside the one used for the Steam Workshop mods. It seems like this second (now only) symlink directory was also being deleted and rebuilt each time the launcher ran, but only once.

So, I’m no Linux guru and I just want to play my damn game with my damn mods. That means that I stop digging into the cause of the problem once I identify enough of it and go after a solution that will achieve my goal.

That meant resubscribing to all of the Workshop mods, and then copying all of them to the /data/mods folder. To make my life easier, I picked up pyRenamer out of the Software Manager and used it to mass rename all of the files and directories within the mods folder to lowercase. Make sure to select both the “Files and directories” and the “Add files recursively” option for the easiest conversion of your mod folder.

I ran the launcher again and it opened without a problem. All of my mods were there and my saved game recognized them. I was able to continue playing where I had left off. Yay!

This solution means that I’ll have to update my mods in a more manual method, but it also protects my save from a mod disappearing from the Workshop and rendering my save unplayable. I’ll take that tradeoff.

Hopefully, this post will help anyone else struggling with the same problem I had. So, how does a modded XCOM 2 play in a Linux environment? Quite nicely, once this whole Workshop mess was sorted out.