RimWorld Modding Resources

A community-collated hub for all things RimWorld Modding.

Project maintained by spdskatr Hosted on GitHub Pages — Theme by mattgraham

Working with C# RimWorld Mods on Arch Linux

Everything in this setup WorksOnMyMachine™, so I can’t guarantee if it works on yours. A bit of ArchWiki and Google-fu might help solve any problems.

This article is a work in progress, I’ve outlined the basic steps in the section below.


Set up MonoDevelop

Install MonoDevelop

You can always get MonoDevelop via the AUR, but various community members have reported it to be somewhat buggy (citation needed).

I installed MonoDevelop via flatpak:

# Omit --user to install system-wide, this way needs root privileges for obvious reasons
$ flatpak install --user --from https://download.mono-project.com/repo/monodevelop.flatpakref

Once installed, run:

$ flatpak run com.xamarin.MonoDevelop

to start MonoDevelop.

MonoDevelop should be able to open .sln files made with Visual Studio with no problems whatsoever.

ArchWiki: Flatpak, Mono

Set up ILSpy

Getting a decompiler to work on Linux is hard, especially since there are no decompilers that have been built for Linux (as of November 2018). You can, however, run ILSpy under Wine.

Installing WINE and Winetricks

Follow the instructions on the ArchWiki.

Get ILSpy

You can get a release of ILSpy for Windows from the main repository, or Zhentar’s fork that implements better decompilation of iterators.

Configuring WINE with Winetricks

You will need to install .NET Framework 4.0 to run ILSpy. Use this command to install .NET 4.0:

$ winetricks dotnet40

Make sure you also have the samba package installed from the official repositories to avoid this.

Once you have done both of these, try launching ILSpy with wine /path/to/ILSpy.exe.

ArchWiki: Wine, Samba

ntlm_auth code vomit

If you see something like this when you try to start up ILSpy:

System.Runtime.InteropServices.COMException: Unknown authentication source.
(Exception from HRESULT: 0x800706D3)

Chances are you’ll probably also find a log message along the lines of:

0009:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.

For Arch, you will need to install the samba package.