Modding Tutorials/Recommended software

From RimWorld Wiki
Revision as of 01:19, 6 April 2023 by Zeta18 (talk | contribs) (Added section on dotPeek)
Jump to navigation Jump to search

Modding Tutorials

What you'll learn

This tutorial lists a few programs you could use to edit XML and C# code.

XML Code Editors

Basic Editors

Just about any text editor can write XML code, but some are better suited than others. Rich text editors (WordPad, anything part of any Office suite) should be avoided. Windows' simple notepad will work, but you'll want something which offers things like "Find in Files" functionality and syntax highlighting. If you're even somewhat serious about modding, the following software will help you immensely:

Software OS Description
NotepadQQ Linux Notepadqq is a Notepad++-like editor for the Linux desktop so has the exact same UI and functions as Notepad++
Notepad++ Windows Light-weight editor with extension support.
Sublime Text Linux/Windows/Mac Natively supports many programming languages and markup languages, and its functionality can be extended by users with plugins - A brief overview of its functionality can be found here and a full course here
Atom Linux/Windows/Mac A hackable electron-based text editor with emphasis on extensions and GitHub collaboration.
Visual Studio Code Linux/Windows/Mac A text editor with emphasis on productivity and extension support.
XML Notepad Windows XML-oriented editor with a lot of features you will most likely never use in Rimworld modding
Geany Linux/Windows/Mac Extremely lightweight text editor with syntax highlighting and some other basic features oriented towards XML and code editing.


Advanced Editors

There's many editors out there specifically made for XML code. Because Rimworld uses XML in a very simple way, advanced code editors are rarely needed. In case you're ever in need of one, however, the following ones might help:

Software OS Description
XPontus Windows Has a tree view and is capable of checking XML for errors, fixing tabs and creating schema's detailing every tag's data types
XMLGrid - Capable of validating XML and turning it into Excel Spreadsheets, XSD Charts and an online table detailing each tag of a certain type and its contents
Codebeautify's xmlviewer - Can display as a tree view, automatically format/indent your code and can validate and show errors too. Also have a function share code (like that)


An alternative to "Advanced editors" are plugins/extensions. Good extensions can highlight syntax (if not already standard), format XML, find xpath, auto-close XML tags, supports renaming tags, and more.

IDEs

C# code is best edited in an IDE (Integrated Development Environment) to make the process of editing code, managing a solution's content and compiling its projects both easier and faster. Any IDE for C# will probably work just fine, so here's a list of suggested editors:

Software OS Description
Visual Studio Windows/Mac Very extensive IDE with paid, trial and free versions. Any of these versions will probably work, so you might as well take Visual Studio Community which is free for individuals and small teams. Always the most up-to-date
SharpDevelop Windows Free IDE specifically made for C#
MonoDevelop Linux/Windows/Mac Free, cross-platform IDE with customizable user interface. Has support for C# as well as some other languages you won't need for Rimworld
Xamarin Windows/Mac It's free but you need to register to download it. Xamarin is an open-source platform for building modern and performant applications for iOS, Android, and Windows with .NET. Avaliable as an extension to Visual studio 2022 and 2019
Rider Windows/Mac/Linux Unless you're a student it costs, but offers a lot of tools across all platforms.

Whichever IDE you choose, make sure it's capable of compiling for .NET Framework 4.7.2. If you for whatever reason don't have this framework installed, you can download it here.

Additional C# Software

Besides your IDE it's strongly recommended to install the following software for decompiling:

Software OS Description
dnSpy Windows Software which is capable of decompiling source code, which is very useful in Rimworld modding (some authors have had better luck with dnSpy than ILSpy?)
ILSpy Windows/Linux/Mac Software which is capable of decompiling source code, which is very useful in Rimworld modding
MonoDevelop Linux/Windows/Mac The Linux version of the software has an integrated decompiler for .DLLs
dotPeek Windows A C# decompiler for .DLLs it slow to open but has great functionality



Graphics Software

For making textures you will need graphics software. Any image editing program should work, and if you have an alternative to the following links that's probably okay:

Software OS Description
Photofiltre Studio Windows Functional software with very little user interface clutter for its applications. Doesn't support pen tablet, and has a 100% free (non-trial) version called Photofiltre
Inkscape Linux/Windows/Mac Free vector graphic program with a steeper learning curve due to the vector based image editing. Vector graphics can look better than bitmap graphics in Rimworld
Photoshop Windows/Mac Paid software with a trial version. Rimworld's original graphics are made in Photoshop (they're .PSD files)
GIMP Linux/Windows/Mac A free, open-source alternative to Photoshop that's been around since 1998. GIMP has a large user community, with great list of tutorials on the official sites
Krita Linux/Windows/Mac A free digital painting software. Better suited than GIMP for painting and should feel like home pretty quick for Photoshop users.



Audio Software

Recording your own audio for mods might be too much to ask, but editing audio is always possible. This can be done with the following software or your own alternative:

Software OS Description
Audacity Linux/Windows/Mac Audio editing software with many tutorials online, lots of useful functionality and a relatively readable interface



Next up

  1. XML File Structure starts you off with the XML side of modding.
  2. Setting up starts you off with the C# side of modding. Knowledge of the XML part can and will be very useful.