Modding Tutorials/Setting up a solution

From RimWorld Wiki
Jump to: navigation, search

Modding Tutorials
This page was originally created by Alistaire.

In this tutorial you will learn how to set up a solution, along with instructions on setting the output directory and files for more convenient building right into the Assemblies folder.


Setting up a solution

Setting up can be different for different IDE's. Feel free to add complete instructions for your IDE of choice.


  1. Create a new class library project in your IDE of choice;
    1. Go to File -> New -> Solution;
    2. Go to C# or .NET -> Library or Class Library (NOT portable);
    3. Enter a project name (solution name automatically updated);
    4. Choose a location, preferably:
    5. Optional: Untick "Create a directory for solution"/"Create a project within the solution directory",
  2. In your project, add references to Assembly-CSharp.dll and UnityEngine.dll:
    1. In your IDE project file browser, right-click the "References" folder and "Add reference";
    2. Choose the ".NET Assembly Browser" tab and "Browse...";
    3. Navigate towards
      and select files:
    4. Click "Open" then "OK";
    5. In the References folder, right-click Assembly-CSharp -> Properties and change "Local copy" to False. Do the same for UnityEngine,
  3. In your project properties, change the target framework to .NET 3.5:
    1. In your IDE project file browser, right-click "Solution (YourSolutionName)" or just "(YourSolutionName)";
    2. Choose Properties;
    3. Go to the "Compiling" tab, "Output", "Target framework", "Change" and choose ".NET Framework 3.5",
  4. In your project properties, change the build events so only a single file is built:
    1. Go to the "Compiling" tab, "Output", "Debug info" and choose "No debug information";
    2. Right-click your .cs files -> Properties and change "Copy to out" to Never,
  5. In your project properties, fix the output location to put the DLL in the Assemblies folder:
    1. Go to the "Compiling" tab, "Output", "Output path" and change the output path to "..\..\Assemblies\".


The setup is similar as the one above. A few special points to address:

  1. Mono 4.X isn't backward compatible so you may need to install an older 3.X version of Mono in order to compile against .NET3.5 dlls.
  2. Make sure you uncheck "Use MSBuild build engine (recommended for this project type)" under project > options > build > general

See also