Setting up the Software

Before you start writing and creating Semi mods, you must obtain all the utilities necessary for compiling C# code and debugging your addons.

Depending on the operating system that you use, your workspace for creating Semi mods will look a little bit different. Semi supports all the platforms that Gungeon does - Windows, Linux and Mac.

Click on the appropriate link below to jump to the appropriate guide or simply scroll down the page.

Windows

To develop Semi mods, you will need to first prepare yourself a set of tools for general C#/.NET development. Start off by installing Microsoft's Visual Studio IDE (integrated dev environment). Make sure that you install it at least with support for creating C# desktop applications. Note that this is a very large program and it might take a while to get it up and running.

The next tool you will need is a lot smaller, and it is the decompiler. A decompiler turns a compiled program into source code that is as close as possible to the original code. Luckily for us, .NET applications are rather easy to translate to C# source code, so there is a vast selection of decompilers which all do a relatively good job.

The recommended one is dnSpy. Enter the page and download the file called dnSpy-net472.zip. Unpack it somewhere where you won't lose it. Inside the folder you will find a file called dnSpy.exe - feel free to create a shortcut to this file on your desktop for easy access later.

Additionally, if you wish to do spriting, you might want to check out the Semi Format: Editor Support page to see if a plugin for the special file formats exists for your text editor.

Linux

First you will want to make sure that your system is even capable of doing anything related to .NET, considering that Linux isn't exactly a first class citizen (though that might be changing). Install the Mono framework from your distribution's repositories to be able to execute .NET assemblies (apt install mono on Debian-based distros like Ubuntu).

Developing mods with an IDE is recommended, as intellisense support is almost necessary considering the size of the game. A decompiler is also very helpful to be able to inspect what actually goes on under the hood and to figure out what you might want to use to accomplish your mod's goal.

While .NET development tools for Linux are very scarce, there is one IDE called MonoDevelop (part of the Mono project) that is probably the best you're going to get - it's an IDE with an integrated decompiler ("Assembly Browser").

Additionally, if you wish to do spriting, you might want to check out the Semi Format: Editor Support page to see if a plugin for the special file formats exists for your text editor.

Mac

[TODO]

Last updated