<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rimworldwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zeta18</id>
	<title>RimWorld Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://rimworldwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zeta18"/>
	<link rel="alternate" type="text/html" href="https://rimworldwiki.com/wiki/Special:Contributions/Zeta18"/>
	<updated>2026-04-28T16:39:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.8</generator>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Modding_Tutorials/Setting_up_a_solution&amp;diff=134868</id>
		<title>Modding Tutorials/Setting up a solution</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Modding_Tutorials/Setting_up_a_solution&amp;diff=134868"/>
		<updated>2023-05-18T02:10:45Z</updated>

		<summary type="html">&lt;p&gt;Zeta18: /* Option 3 (Using Rimworld Dotnet Template): */  Fixed Link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BackToTutorials}}&lt;br /&gt;
{{Credit|[[User:Alistaire|Alistaire]]}}&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
* The manual option in this tutorial requires you to have [[Modding_Tutorials/Mod_folder_structure#The Source and Assemblies folders|set up a Source and Assemblies folder]] (the Visual Studio automatic option sets this up for you).&lt;br /&gt;
* You will want to have an IDE installed: [[Modding Tutorials/Recommended software#IDE's|Recommended IDE's]].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Setting up a solution=&lt;br /&gt;
Setting up can be different for different IDE's. Feel free to add '''''complete''''' instructions for your IDE of choice.&lt;br /&gt;
&lt;br /&gt;
===Visual Studio Community 2019===&lt;br /&gt;
''NOTE: Visual Studio 2019 is a rather heavy application (2-3 GB for basic functionality) but has a bit more functionality. Only Install if your computer can handle it! This tutorial is similar for other versions of Visual Studio.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Option 1 (Manual Method):====&lt;br /&gt;
# Create a new class library project&lt;br /&gt;
## Once loaded, go to File -&amp;gt; New -&amp;gt; Project...&lt;br /&gt;
## Type &amp;quot;Class Library (.NET Framework)&amp;quot; in the search bar, and select the C# option. [[File:ClassLibrary.png|200px|thumb|right|Installing the .NET framework]]&lt;br /&gt;
## Enter your project name.&lt;br /&gt;
## Choose a location, preferably:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;(RimWorldInstallFolder)/Mods/(YourModName)/Source&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Enter a solution name (optionally, tick &amp;quot;Place solution and project in the same directory&amp;quot;)&lt;br /&gt;
## Make sure Framework is &amp;quot;.NET Framework 4.7.2&amp;quot;&lt;br /&gt;
# In your project, set target framework and various other properties&lt;br /&gt;
## In your Solution Explorer (the panel usually located on the right), right click your project -&amp;gt; Properties (or expand your project and double click &amp;quot;Properties&amp;quot; with the wrench icon)&lt;br /&gt;
## ''Optional'': Under Application, change your Assembly and Namespace names to anything of your choice&lt;br /&gt;
## Go to Build -&amp;gt; Advanced... and set &amp;quot;Debugging information&amp;quot; to none&lt;br /&gt;
## Leave Advanced..., and set the Output Path to &amp;quot;..\..\Assemblies\&amp;quot; (Or wherever the Assemblies folder is)&lt;br /&gt;
# Add references to RimWorld code&lt;br /&gt;
## Expand your project in Solution Explorer. Then right click &amp;quot;References&amp;quot; -&amp;gt; Add Reference...&lt;br /&gt;
## Click Browse...&lt;br /&gt;
## Navigate towards &amp;lt;pre&amp;gt;RimWorldInstallPath/RimWorld******_Data/Managed&amp;lt;/pre&amp;gt; and select files: &amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;Assembly-CSharp.dll&amp;amp;#10;UnityEngine.CoreModule.dll&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Click &amp;quot;Add&amp;quot;&lt;br /&gt;
## Click &amp;quot;OK&amp;quot; to close the Reference Manager.&lt;br /&gt;
## Right-click on both Assembly-CSharp.dll and UnityEngine.dll and set Copy Local to False (Properties pane).&lt;br /&gt;
&lt;br /&gt;
====Option 2 (Using Nuget):====&lt;br /&gt;
This option uses [https://www.nuget.org/packages/Krafs.Rimworld.Ref Krafs Rimworld Reference Package] it is less involved than using reference assemblies and is the recommended method.&amp;lt;/br&amp;gt;&lt;br /&gt;
#Follow the above up till ''Add references to RimWorld code''&lt;br /&gt;
#Open Nuget Manager and type ''Rimworld''&lt;br /&gt;
#Add Krafs Rimworld Reference&lt;br /&gt;
#When prompted '''Select packagereference''' (this is required for the package to be added)&lt;br /&gt;
You can now continue as if you added the assemblies&lt;br /&gt;
Doing this makes your project portable, because RimRef can be downloaded by anyone and used from anywhere, unlike Rimworld's assemblies which can't be distributed.&lt;br /&gt;
&lt;br /&gt;
====Option 3 (Using Rimworld Dotnet Template):====&lt;br /&gt;
This option uses [https://github.com/Zeta-of-the-rim/Rimwold-Dotnet-Template Rimworld Dotnet Template] it allows faster creation of mod files including Xml folders&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After installing the template.&lt;br /&gt;
#Open your mod folder&lt;br /&gt;
#create a new folder for your mod (It is best to use the name you want for your mod)&lt;br /&gt;
#Open a command prompt in that folder&lt;br /&gt;
#type ''dotnet new  RimMod'' (This will create a new mod with the name you specified)&lt;br /&gt;
#Open the About folder and edit the About.xml file&lt;br /&gt;
#Open the .sln file in your preferred IDE&lt;br /&gt;
#Add the rimworld assemblies using your preferred method&lt;br /&gt;
&lt;br /&gt;
While this method is faster, it is still good to know how to do it manually.&lt;br /&gt;
&lt;br /&gt;
====Option 4 (Using Cookiecutter):====&lt;br /&gt;
This option uses the [https://ludeon.com/forums/index.php?topic=39038.0 Rimworld Mod Development Cookiecutter] tool.&amp;lt;/br&amp;gt;&lt;br /&gt;
'''Note: despite being automatic and potentially taking away some of the tedium away, the environment it sets up is very particular and this tool is currently not recommended for newcomers.'''&amp;lt;/br&amp;gt;&lt;br /&gt;
''As of Jan 2019, the cookiecutter is set up for Windows development.  Linux/Mac people can still use it, but they will have a few errors to clean up.''&amp;lt;/br&amp;gt;&lt;br /&gt;
# Open Visual Studio&lt;br /&gt;
# Once loaded, go to File -&amp;gt; New -&amp;gt; From Cookiecutter...&lt;br /&gt;
# Search for ''rimworld''&lt;br /&gt;
# Double-click ''cookiecutter-rimworld-mod-development''&lt;br /&gt;
# Change the Template Options:&lt;br /&gt;
## ''Create To'' =&amp;gt; ''Your/Rimworld/Mod/Directory''&lt;br /&gt;
## ''mod_name''&lt;br /&gt;
## ''namespace_name'' (don't change if unsure)&lt;br /&gt;
## ''author'' =&amp;gt; ''your steam username''&lt;br /&gt;
## ''target_version'' =&amp;gt; current RW version (can leave blank for most up-to-date)&lt;br /&gt;
## ''in_game_description'' (not required, can change later in About-Release.xml)&lt;br /&gt;
## ''url'' (can leave blank for link to your Steam Workshop profile)&lt;br /&gt;
# Click &amp;quot;Create and Open Folder&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Sharpdevelop===&lt;br /&gt;
'''Caution:''' Sharpdevelop (or #develop) does NOT CURRENTLY allow for C# 6.0+ syntax without plugins and does NOT ALLOW for C# 7.0+ syntax at all. For your average project this does not matter, however some existing projects are already built entirely upon C# 6.0+ syntax which can not be compiled anymore in Sharpdevelop. Visual Studio does not have these issues and should be your go-to for compiling large projects such as Combat Extended.&lt;br /&gt;
&lt;br /&gt;
# Create a new class library project in your [[Modding Tutorials/Recommended software#IDE.27s|IDE of choice]];&lt;br /&gt;
## Go to File -&amp;gt; New -&amp;gt; Solution;&lt;br /&gt;
## Go to C# or .NET -&amp;gt; Library or Class Library (NOT portable);&lt;br /&gt;
## Enter a project name (solution name automatically updated);&lt;br /&gt;
## Choose a location, preferably:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;(RimWorldInstallFolder)/Mods/(YourModName)/Source&amp;lt;/pre&amp;gt;&lt;br /&gt;
## ''Optional'': Untick &amp;quot;Create a directory for solution&amp;quot;/&amp;quot;Create a project within the solution directory&amp;quot;,&lt;br /&gt;
# In your project, add references to Assembly-CSharp.dll and UnityEngine.dll:&lt;br /&gt;
## In your IDE project file browser, right-click the &amp;quot;References&amp;quot; folder and &amp;quot;Add reference&amp;quot;;&lt;br /&gt;
## Choose the &amp;quot;.NET Assembly Browser&amp;quot; tab and &amp;quot;Browse...&amp;quot;;&lt;br /&gt;
## Navigate towards &amp;lt;pre&amp;gt;RimWorld******/RimWorld******_Data/Managed&amp;lt;/pre&amp;gt; and select files: &amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;Assembly-CSharp.dll&amp;amp;#10;UnityEngine.CoreModule.dll&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Click &amp;quot;Open&amp;quot; then &amp;quot;OK&amp;quot;;&lt;br /&gt;
## In the References folder, right-click Assembly-CSharp -&amp;gt; Properties and change &amp;quot;Local copy&amp;quot; to False. Do the same for UnityEngine,&lt;br /&gt;
# In your project properties, change the target framework to .NET 4.7.2:&lt;br /&gt;
## In your IDE project file browser, right-click &amp;quot;(YourSolutionName)&amp;quot;;&lt;br /&gt;
## Choose Properties;&lt;br /&gt;
## Go to the &amp;quot;Compiling&amp;quot; tab, &amp;quot;Output&amp;quot;, &amp;quot;Target framework&amp;quot;, &amp;quot;Change&amp;quot; and choose &amp;quot;.NET Framework 4.7.2&amp;quot;,&lt;br /&gt;
# In your project properties, change the build events so only a single file is built:&lt;br /&gt;
## Go to the &amp;quot;Compiling&amp;quot; tab, &amp;quot;Output&amp;quot;, &amp;quot;Debug info&amp;quot; and choose &amp;quot;No debug information&amp;quot;;&lt;br /&gt;
## Right-click your .cs files -&amp;gt; Properties and change &amp;quot;Copy to output&amp;quot; (If you haven't resized the properties bar, this will be truncated to &amp;quot;Copy to out&amp;quot;) to Never,&lt;br /&gt;
# In your project properties, fix the output location to put the DLL in the Assemblies folder:&lt;br /&gt;
## Go to the &amp;quot;Compiling&amp;quot; tab, &amp;quot;Output&amp;quot;, &amp;quot;Output path&amp;quot; and change the output path to &amp;quot;..\..\Assemblies\&amp;quot;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Xamarin/MonoDevelop===&lt;br /&gt;
The setup is similar as the one above. A few special points to address:&lt;br /&gt;
# 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 .NET4.7.2 dlls.&lt;br /&gt;
# Make sure you uncheck &amp;quot;Use MSBuild build engine (recommended for this project type)&amp;quot; under project &amp;gt; options &amp;gt; build &amp;gt; general   (You might find this by right-clicking on your project - not solution - name and selecting options)&lt;br /&gt;
# Changing the framework to 4.7.2 can be found (for Linux anyway) in the same place.&lt;br /&gt;
&lt;br /&gt;
More detailed installation instructions for Linux can be found [https://blog.rubenwardy.com/2016/07/21/rimworld-setup-monodevelop/ here] and [https://spdskatr.github.io/RWModdingResources/mono-arch here]. Note that as of now (2021) these may be outdated, so if it doesn't work, you can try the steps described in the Mono section.&lt;br /&gt;
&lt;br /&gt;
===Mono===&lt;br /&gt;
On Linux and Mac(?) it is possible to use Mono regardless of IDE (from command line, or if your IDE/editor has build support).&lt;br /&gt;
# Install Mono (refer to your distribution's instructions);&lt;br /&gt;
# To build using .csproj files that other setups use, you need the ''dotnet'' tool, you can get it by installing the [https://dotnet.microsoft.com/download .NET SDK];&lt;br /&gt;
# If you're starting a new mod and want to use a .csproj file for compatibility with other modders, find e.g. a mod that has description pointing to its GitHub sources and copy from there;&lt;br /&gt;
# For building use a command like the following (substitute the proper .csproj file and 4.7.2 is the .NET version from the .csproj file):&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;FrameworkPathOverride=$(dirname $(which mono))/../lib/mono/4.7.2-api/ dotnet build &amp;lt;project file&amp;gt;.csproj /property:Configuration=Release&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If you get errors, it is necessary to edit the .csproj file:&lt;br /&gt;
## You may need to fix paths (point them to .dll files in RimWorld/RimWorld*_Data/Managed);&lt;br /&gt;
## See other setups above for other settings (those IDEs write those settings to the .csproj files);&lt;br /&gt;
&lt;br /&gt;
===Rider (good for Mac)===&lt;br /&gt;
JetBrains Rider is a great cross-platform C# IDE, but it isn't cheap. It's $140 for the first year, including perpetual access to that version (access to future updates gets cheaper, but it's still over $100/year). However, the Early Access versions are a bit unstable but free. They also offer free student licenses.&lt;br /&gt;
&lt;br /&gt;
# Open Rider and click New Solution in the welcome dialog.&lt;br /&gt;
## Click Class Library under .NET on the left. The option may a second to show up.&lt;br /&gt;
## Under Solution Name (and Project Name), enter the name of your mod.&lt;br /&gt;
## Set the Solution Directory to [your mod folder]/Source.&lt;br /&gt;
## Optionally check &amp;quot;put solution and project in the same directory.&amp;quot; This is probably a good idea.&lt;br /&gt;
## Change Framework to .Net Framework 4.7.2.&lt;br /&gt;
## Click Create.&lt;br /&gt;
# In the left side bar, expand your solution, right click your project (mod name with &amp;quot;C#&amp;quot; icon) and click Properties.&lt;br /&gt;
## In the Properties window, select Configurations &amp;gt; Debug on the left and uncheck Debug Symbols.&lt;br /&gt;
## For both configurations, change the Output Path to ../../Assemblies.&lt;br /&gt;
## Click OK.&lt;br /&gt;
# Expand your project, right click References and click Add Reference.&lt;br /&gt;
## Click Add From.&lt;br /&gt;
## Browse to the folder with the RimWorld DLLs (Mac: /Users/[username]/Library/Application Support/Steam/steamapps/common/RimWorld/RimWorldMac.app/Contents/Resources/Data/Managed).&lt;br /&gt;
## Select both Assembly-CSharp.dll and UnityEngine.dll and click OK.&lt;br /&gt;
## Expand Assemblies under References. For both of the assemblies that you just added:&lt;br /&gt;
### Right click the assembly and click Properties.&lt;br /&gt;
### Uncheck &amp;quot;Copy Local&amp;quot; (you may need to scroll down) and click OK.&lt;br /&gt;
&lt;br /&gt;
You're done! Note that Rider has a built-in decompiler—to view the source of a RimWorld class or method, just right-click its name and click Go To &amp;gt; Definition.&lt;br /&gt;
&lt;br /&gt;
=Common issues=&lt;br /&gt;
* Can't find the option to target .NET Framework 4.7.2? It may require additional installation steps. In Visual Studio, Tools =&amp;gt; Get Tools and features =&amp;gt; Individual Components =&amp;gt; Select ''.NET Framework 4.7.2 development tools'' (or google installation instructions). Also make sure your project is a ''Class Library (.NET '''Framework''')''. Not .NET Core or .NET Standard.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* [[Modding Tutorials/Writing custom code|Writing custom code]] continues on setting up your solution.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding tutorials]]&lt;/div&gt;</summary>
		<author><name>Zeta18</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Blood_rot&amp;diff=134499</id>
		<title>Blood rot</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Blood_rot&amp;diff=134499"/>
		<updated>2023-05-05T11:08:22Z</updated>

		<summary type="html">&lt;p&gt;Zeta18: /* Treatment */  added healer mech serum&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Royalty}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
'''Blood rot''' is a long-lasting [[disease]] that can be fatal if untreated.&lt;br /&gt;
&lt;br /&gt;
Unlike other diseases, it doesn't appear on its own, but rather only appears as part of quests if you have the [[Royalty DLC]] installed.&lt;br /&gt;
&lt;br /&gt;
== Stages ==&lt;br /&gt;
These are the following stages in which blood rot will progress through, and the effects it has on the victim:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Stage !! Begins at !! Symptoms&lt;br /&gt;
|-&lt;br /&gt;
| '''Blood rot (minor)''' || 0 - 0.59 severity ||&lt;br /&gt;
*-5% [[Blood pumping]]&lt;br /&gt;
*-5% [[Blood filtration]]&lt;br /&gt;
|-&lt;br /&gt;
| '''Blood rot (major)''' || 0.6 - 0.84 severity ||&lt;br /&gt;
*-10% Blood pumping&lt;br /&gt;
*-10% Blood filtration&lt;br /&gt;
*Vomiting on average every 1.5 days&lt;br /&gt;
|-&lt;br /&gt;
| '''Blood rot (Extreme)''' || 0.85 - 0.99 severity ||&lt;br /&gt;
*+5% [[Pain]]&lt;br /&gt;
*-15% Blood pumping&lt;br /&gt;
*-15% Blood filtration&lt;br /&gt;
*Vomiting on average every 0.75 days&lt;br /&gt;
|-&lt;br /&gt;
| '''Blood rot (Extreme)''' || 1.00 severity ||&lt;br /&gt;
*Death&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Progression ===&lt;br /&gt;
*Severity increases by 0.4 per day.&lt;br /&gt;
*Treatment slows progression by a maximum of 1 per day.&lt;br /&gt;
**This means the disease will regress by 0.6 per day at 100% tend quality.&lt;br /&gt;
**Progression will stop at 40% tend quality or higher.&lt;br /&gt;
**Note that good treatment will not cause the disease to go away on its own.&lt;br /&gt;
&lt;br /&gt;
The disease resolves after 30-40 days, independent of the patient's immune functioning.&lt;br /&gt;
&lt;br /&gt;
== Treatment ==&lt;br /&gt;
Treatment can be done using medicine which suppresses the disease, preventing it from reaching fatal stages. Pawns do not need to rest, as no immunity is gained.&lt;br /&gt;
&lt;br /&gt;
A tend quality of 40% or higher is required to prevent the disease from progressing at all. With a good enough doctor, high quality [[hospital bed]], and a well-lit [[sterile tile|sterile room]], it is possible to reach average 40% tend quality even without medicine. [[Herbal medicine]] can be used if you don't have a good hospital setup yet, or if you need to reverse existing progression.&lt;br /&gt;
&lt;br /&gt;
An immediate cure is expensive, requiring 10 [[glitterworld medicine]] and a doctor with medical skill 5 or above, or a [[healer mech serum]].&lt;br /&gt;
&lt;br /&gt;
== Version history ==&lt;br /&gt;
* 1.1 - Added at some point in 1.1.&lt;br /&gt;
* [[Version/1.1.2654|1.1.2654]] - Disease removed from the basegame and added to the Royalty DLC. Previously it was fully functional in Core, but did not appear in regular, unmodded gameplay unless Royalty was enabled. Reduce blood rot severity per day gain from 60% to 40%.&lt;br /&gt;
{{Nav/disease}}&lt;br /&gt;
[[Category:Disease]]&lt;/div&gt;</summary>
		<author><name>Zeta18</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Modding_Tutorials&amp;diff=133708</id>
		<title>Modding Tutorials</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Modding_Tutorials&amp;diff=133708"/>
		<updated>2023-04-21T04:50:04Z</updated>

		<summary type="html">&lt;p&gt;Zeta18: /* Updated guides */   Added guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Top Nav Box--&amp;gt;&lt;br /&gt;
{| align=center&lt;br /&gt;
| {{Mods_Nav}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the table of contents for the modding tutorial. Here, you'll learn step by step how to create mods of gradually increasing complexity.&lt;br /&gt;
&lt;br /&gt;
In light of little official documentation, most of the knowledge here was gained by experience, trial-and-error, decompiling and learning from the source. Keep in mind that RimWorld is a big game that underwent substantial code changes during its alphas. While most of this wiki was updated for 1.0, some information you find may be outdated. &lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
==What's a mod?==&lt;br /&gt;
A mod is a folder containing data the game reads/loads. Mods can add, remove or alter the content of other mods (including the Core mod) in the broadest sense of the word. For more info, see also [[Modding]].&lt;br /&gt;
&lt;br /&gt;
==Introduction to modding==&lt;br /&gt;
# [[Modding Tutorials/First Steps|First Steps and Some Links]]&lt;br /&gt;
# [[Modding Tutorials/Essence| Essence of Modding]]&lt;br /&gt;
# [[Modding Tutorials/Folder structure|Exploring the Folder Structure]]&lt;br /&gt;
# [[Modding Tutorials/Mod folder structure|Mod Folder Structure]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The About folder|About folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Defs folder|Defs folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Source and Assemblies folders|Assemblies folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Languages folder|Languages folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Textures and Sounds folders|Textures folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Textures and Sounds folders|Sounds folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Patches folder|Patches folder]]&lt;br /&gt;
# [[Modding Tutorials/Recommended software|Recommended Software]]&lt;br /&gt;
# [[Modding Troubleshooting Tips and Guides]]&lt;br /&gt;
&lt;br /&gt;
==General modding==&lt;br /&gt;
&lt;br /&gt;
* [[Modding Tutorials/Testing mods|Testing Mods]]&lt;br /&gt;
** [[Modding Tutorials/Testing mods#Development mode|Development Mode]]&lt;br /&gt;
* [[Modding Tutorials/Sounds|Adding and Testing Sounds]]&lt;br /&gt;
* [[Modding Tutorials/Assets|Decompiling Texture/Sound Assets]]&lt;br /&gt;
* [[Modding Tutorials/Compatibility|Compatibility]]&lt;br /&gt;
* [[Modding_Tutorials/Distribution|Distribution]]&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Must-knows==&lt;br /&gt;
* [[Modding_Tutorials/Modifying defs|Modifying Defs]]&lt;br /&gt;
* [[Modding_Tutorials/Troubleshooting|Troubleshooting mods]]&lt;br /&gt;
&lt;br /&gt;
===Steam Workshop Specifics===&lt;br /&gt;
* If you want to upload your mod to the Steam Workshop you must own the game on Steam. Owning it on Epic or GoG etc is not enough, both Steam and Tynan have confirmed this.&lt;br /&gt;
* Your Preview.png must be under 1MB to upload to the Steam Workshop otherwise you will see ''&amp;quot;Error : Limit Exceeded&amp;quot;''&lt;br /&gt;
* Steam mod descriptions don't use markdown, they use a form of BBCode. There is a [https://steamcommunity.com/comment/Guide/formattinghelp guide].&lt;br /&gt;
&lt;br /&gt;
==Updated guides==&lt;br /&gt;
These guides have been made with the most recent version of Rimworld in mind and are being updated to reflect changes in the game.&lt;br /&gt;
# [[Modding_Tutorials/Geting_started_with_mods|Getting Started With XML]]&lt;br /&gt;
# [[Modding_Tutorials/Xml_Adding_Weapons_Traits_Research|Adding a New Weapon, Trait and Research to the game]]&lt;br /&gt;
# [[Modding_Tutorials/Xml_Patches|Making Patches using Xml]]&lt;br /&gt;
&lt;br /&gt;
==XML tutorials==&lt;br /&gt;
&lt;br /&gt;
# [[Modding Tutorials/XML file structure|XML File Structure]]&lt;br /&gt;
# [[Modding Tutorials/XML Defs|Introduction to XML Defs]]&lt;br /&gt;
#* [[Modding Tutorials/Compatibility with defs|XML Def Compatibility]]&lt;br /&gt;
#* [https://7tsvn.github.io/RimWorld-AutoDocs Auto Documentation] &lt;br /&gt;
# In-depth XML Def tutorials&lt;br /&gt;
#* [[Modding Tutorials/ThingDef|ThingDef explained]]&lt;br /&gt;
#* [[Modding Tutorials/Weapons Guns|Weapons_Guns.xml explained]]. Slightly dated.&lt;br /&gt;
# [[Modding Tutorials/PatchOperations|PatchOperations]], replace specific xml elements of core files while keeping the rest untampered. Uses xpath.&lt;br /&gt;
&lt;br /&gt;
==C# tutorials==&lt;br /&gt;
# [[Modding_Tutorials/Setting up a solution|Setting up]]&lt;br /&gt;
# [[Modding_Tutorials/Hello World|Hello World]]&lt;br /&gt;
# [[Modding_Tutorials/Decompiling source code|Decompiling Source Code]]&lt;br /&gt;
# [[Modding_Tutorials/Writing custom code|Writing Custom Code]]&lt;br /&gt;
# [[Modding Tutorials/Linking XML and C#|Linking XML and C#]]&lt;br /&gt;
# [[Modding_Tutorials/Harmony | Alter Code at Runtime with Harmony]] - this is a best practice for modifying game code, replacing C# code injection to reduce Mod Conflicts&lt;br /&gt;
# The wonderful things you will want to do with C#&lt;br /&gt;
#* [[Modding_Tutorials/Modifying classes|Adding fields and methods to classes]]&lt;br /&gt;
# Useful things:&lt;br /&gt;
#* [[Modding Tutorials/ModSettings|Mod settings]] - Add settings to your mod&lt;br /&gt;
#* [[Modding Tutorials/DefModExtension|Def mod extensions]] - Add (custom) fields to Defs&lt;br /&gt;
#* [[Modding Tutorials/Custom Comp Classes|Custom Comp Classes]] - A quick overview of what types of Comps there are, and what they're suited for.&lt;br /&gt;
#** [[Modding_Tutorials/ThingComp|ThingComp]] - Learn all there is to know about ThingComps.&lt;br /&gt;
#** [[Modding Tutorials/GameComponent|Components]] - GameComponents, WorldComponents, and MapComponents&lt;br /&gt;
#* [[Modding_Tutorials/Def classes|Introduction to Def Classes]]&lt;br /&gt;
#* [[Modding_Tutorials/Compatibility_with_DLLs|Using Harmony to optionally patch other mods for the sake of compatibility]]&lt;br /&gt;
#* [[Modding Tutorials/TweakValue|TweakValues]] - Change values on the fly (handy for quick iteration!)&lt;br /&gt;
#* [[Modding Tutorials/ExposeData|ExposeData]] - Save stuff&lt;br /&gt;
#* [[Modding Tutorials/BigAssListOfUsefulClasses|The big ass list of useful classes]] - A non-exhaustive list of classes you'll use most&lt;br /&gt;
#* [[Modding Tutorials/GrammarResolver|Grammar Resolver]] - PAWN_objective, PAWN_possessive? Find out what it all means here.&lt;br /&gt;
#* [https://github.com/Mehni/ExampleJob/wiki ExampleJob] - Mehni's top to bottom breakdown of Jobs.&lt;br /&gt;
#* [[Modding_Tutorials/ConfigErrors|Config Errors]] - Provide configuration issues to the user on startup.&lt;br /&gt;
#* [[Modding Tutorials/DebugActions|Debug Actions]] - Call methods from the debug menu&lt;br /&gt;
# [https://www.arp242.net/rimworld-mod-linux.html Getting started with RimWorld modding on Linux]&lt;br /&gt;
&lt;br /&gt;
==Art Tutorials==&lt;br /&gt;
* [https://spdskatr.github.io/RWModdingResources/artstyle Artstyle] - Officially unofficial guide to RimWorld's Artstyle&lt;br /&gt;
* [https://www.reddit.com/r/RimWorld/comments/5tn1pi/rimworldstyle_sprite_tutorials/ Ekksu's guide to creating RimWorld animals]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1114369188 ChickenPlucker's guide to creating apparel]&lt;br /&gt;
* [https://github.com/seraphile/rimshare/wiki/Colouring-in-Images Seraphile's guide to masks]&lt;br /&gt;
&lt;br /&gt;
== Under construction ==&lt;br /&gt;
These tutorials are under construction.&lt;br /&gt;
&lt;br /&gt;
* [[Modding Tutorials/Quests]] - Creator: [[User:NightmareCorporation]]&lt;br /&gt;
* [[Modding Tutorials/Troubleshooting/Finding Exceptions]] - Creator: [[User:NightmareCorporation]]&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* [[RimWorld 1.3: XML Mod Creation]]&lt;br /&gt;
* [[Modding Tutorials/Assembly Modding Example|Assembly Modding]]&lt;br /&gt;
* [[Plague Gun (1.1)|The Plague Gun]] tutorial originally by Jecrell, updated to 1.1+. &lt;br /&gt;
* [[Modding Tutorials/Xenotype template]] originally by Ryflamer&lt;br /&gt;
&lt;br /&gt;
===Dangerously Outdated===&lt;br /&gt;
* [[Modding Tutorials/Smelter]]&lt;br /&gt;
* [[Modding Tutorials/Items]]&lt;br /&gt;
* [[Modding Tutorials/Weapons]]&lt;br /&gt;
* [[Modding Tutorials/Furniture]]&lt;br /&gt;
* [[Plague Gun/Introduction|The Plague Gun]] based on the Plague Gun tutorial by Jecrell, updated for 1.0. {{LudeonThread|33219}}.&lt;br /&gt;
# [[Plague Gun/Required Items|Required Items]]&lt;br /&gt;
# [[Plague Gun/XML Stage|XML Stage]]&lt;br /&gt;
# [[Plague Gun/Connecting XML and Csharp|Connecting XML and C#]]&lt;br /&gt;
# [[Plague Gun/Csharp Assembly Setup|C# Assembly Setup]]&lt;br /&gt;
# [[Plague Gun/Csharp Coding|C# Coding]]&lt;br /&gt;
# [[Plague Gun/Localisation|Localisation]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://github.com/roxxploxx/RimWorldModGuide/wiki Roxxploxx's set of modding tutorials]&lt;br /&gt;
* [https://spdskatr.github.io/RWModdingResources/ RimWorld Modding Resources - A hub for guides, modders, practical tips]&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding]]&lt;br /&gt;
[[Category:Modding tutorials]]&lt;/div&gt;</summary>
		<author><name>Zeta18</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=File:CustomTrait.png&amp;diff=133505</id>
		<title>File:CustomTrait.png</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=File:CustomTrait.png&amp;diff=133505"/>
		<updated>2023-04-14T01:42:20Z</updated>

		<summary type="html">&lt;p&gt;Zeta18: Image of a custom trait added using Xml.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Image of a custom trait added using Xml.&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{Copyright nolicense}}&lt;/div&gt;</summary>
		<author><name>Zeta18</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Modding_Tutorials&amp;diff=133503</id>
		<title>Modding Tutorials</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Modding_Tutorials&amp;diff=133503"/>
		<updated>2023-04-13T22:34:42Z</updated>

		<summary type="html">&lt;p&gt;Zeta18: Linked new tutorial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Top Nav Box--&amp;gt;&lt;br /&gt;
{| align=center&lt;br /&gt;
| {{Mods_Nav}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the table of contents for the modding tutorial. Here, you'll learn step by step how to create mods of gradually increasing complexity.&lt;br /&gt;
&lt;br /&gt;
In light of little official documentation, most of the knowledge here was gained by experience, trial-and-error, decompiling and learning from the source. Keep in mind that RimWorld is a big game that underwent substantial code changes during its alphas. While most of this wiki was updated for 1.0, some information you find may be outdated. &lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
==What's a mod?==&lt;br /&gt;
A mod is a folder containing data the game reads/loads. Mods can add, remove or alter the content of other mods (including the Core mod) in the broadest sense of the word. For more info, see also [[Modding]].&lt;br /&gt;
&lt;br /&gt;
==Introduction to modding==&lt;br /&gt;
# [[Modding Tutorials/First Steps|First Steps and Some Links]]&lt;br /&gt;
# [[Modding Tutorials/Essence| Essence of Modding]]&lt;br /&gt;
# [[Modding Tutorials/Folder structure|Exploring the Folder Structure]]&lt;br /&gt;
# [[Modding Tutorials/Mod folder structure|Mod Folder Structure]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The About folder|About folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Defs folder|Defs folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Source and Assemblies folders|Assemblies folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Languages folder|Languages folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Textures and Sounds folders|Textures folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Textures and Sounds folders|Sounds folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Patches folder|Patches folder]]&lt;br /&gt;
# [[Modding Tutorials/Recommended software|Recommended Software]]&lt;br /&gt;
# [[Modding Troubleshooting Tips and Guides]]&lt;br /&gt;
&lt;br /&gt;
==General modding==&lt;br /&gt;
&lt;br /&gt;
* [[Modding Tutorials/Testing mods|Testing Mods]]&lt;br /&gt;
** [[Modding Tutorials/Testing mods#Development mode|Development Mode]]&lt;br /&gt;
* [[Modding Tutorials/Sounds|Adding and Testing Sounds]]&lt;br /&gt;
* [[Modding Tutorials/Assets|Decompiling Texture/Sound Assets]]&lt;br /&gt;
* [[Modding Tutorials/Compatibility|Compatibility]]&lt;br /&gt;
* [[Modding_Tutorials/Distribution|Distribution]]&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Must-knows==&lt;br /&gt;
* [[Modding_Tutorials/Modifying defs|Modifying Defs]]&lt;br /&gt;
* [[Modding_Tutorials/Troubleshooting|Troubleshooting mods]]&lt;br /&gt;
&lt;br /&gt;
===Steam Workshop Specifics===&lt;br /&gt;
* If you want to upload your mod to the Steam Workshop you must own the game on Steam. Owning it on Epic or GoG etc is not enough, both Steam and Tynan have confirmed this.&lt;br /&gt;
* Your Preview.png must be under 1MB to upload to the Steam Workshop otherwise you will see ''&amp;quot;Error : Limit Exceeded&amp;quot;''&lt;br /&gt;
* Steam mod descriptions don't use markdown, they use a form of BBCode. There is a [https://steamcommunity.com/comment/Guide/formattinghelp guide].&lt;br /&gt;
&lt;br /&gt;
==Updated guides==&lt;br /&gt;
These guides have been made with the most recent version of Rimworld in mind and are being updated to reflect changes in the game.&lt;br /&gt;
# [[Modding_Tutorials/Geting_started_with_mods|Getting Started With XML]]&lt;br /&gt;
# [[Modding_Tutorials/Xml_Adding_Weapons_Traits_Research|Adding a New Weapon, Trait and Research to the game]]&lt;br /&gt;
&lt;br /&gt;
==XML tutorials==&lt;br /&gt;
&lt;br /&gt;
# [[Modding Tutorials/XML file structure|XML File Structure]]&lt;br /&gt;
# [[Modding Tutorials/XML Defs|Introduction to XML Defs]]&lt;br /&gt;
#* [[Modding Tutorials/Compatibility with defs|XML Def Compatibility]]&lt;br /&gt;
#* [https://7tsvn.github.io/RimWorld-AutoDocs Auto Documentation] &lt;br /&gt;
# In-depth XML Def tutorials&lt;br /&gt;
#* [[Modding Tutorials/ThingDef|ThingDef explained]]&lt;br /&gt;
#* [[Modding Tutorials/Weapons Guns|Weapons_Guns.xml explained]]. Slightly dated.&lt;br /&gt;
# [[Modding Tutorials/PatchOperations|PatchOperations]], replace specific xml elements of core files while keeping the rest untampered. Uses xpath.&lt;br /&gt;
&lt;br /&gt;
==C# tutorials==&lt;br /&gt;
# [[Modding_Tutorials/Setting up a solution|Setting up]]&lt;br /&gt;
# [[Modding_Tutorials/Hello World|Hello World]]&lt;br /&gt;
# [[Modding_Tutorials/Decompiling source code|Decompiling Source Code]]&lt;br /&gt;
# [[Modding_Tutorials/Writing custom code|Writing Custom Code]]&lt;br /&gt;
# [[Modding Tutorials/Linking XML and C#|Linking XML and C#]]&lt;br /&gt;
# [[Modding_Tutorials/Harmony | Alter Code at Runtime with Harmony]] - this is a best practice for modifying game code, replacing C# code injection to reduce Mod Conflicts&lt;br /&gt;
# The wonderful things you will want to do with C#&lt;br /&gt;
#* [[Modding_Tutorials/Modifying classes|Adding fields and methods to classes]]&lt;br /&gt;
# Useful things:&lt;br /&gt;
#* [[Modding Tutorials/ModSettings|Mod settings]] - Add settings to your mod&lt;br /&gt;
#* [[Modding Tutorials/DefModExtension|Def mod extensions]] - Add (custom) fields to Defs&lt;br /&gt;
#* [[Modding Tutorials/Custom Comp Classes|Custom Comp Classes]] - A quick overview of what types of Comps there are, and what they're suited for.&lt;br /&gt;
#** [[Modding_Tutorials/ThingComp|ThingComp]] - Learn all there is to know about ThingComps.&lt;br /&gt;
#** [[Modding Tutorials/GameComponent|Components]] - GameComponents, WorldComponents, and MapComponents&lt;br /&gt;
#* [[Modding_Tutorials/Def classes|Introduction to Def Classes]]&lt;br /&gt;
#* [[Modding_Tutorials/Compatibility_with_DLLs|Using Harmony to optionally patch other mods for the sake of compatibility]]&lt;br /&gt;
#* [[Modding Tutorials/TweakValue|TweakValues]] - Change values on the fly (handy for quick iteration!)&lt;br /&gt;
#* [[Modding Tutorials/ExposeData|ExposeData]] - Save stuff&lt;br /&gt;
#* [[Modding Tutorials/BigAssListOfUsefulClasses|The big ass list of useful classes]] - A non-exhaustive list of classes you'll use most&lt;br /&gt;
#* [[Modding Tutorials/GrammarResolver|Grammar Resolver]] - PAWN_objective, PAWN_possessive? Find out what it all means here.&lt;br /&gt;
#* [https://github.com/Mehni/ExampleJob/wiki ExampleJob] - Mehni's top to bottom breakdown of Jobs.&lt;br /&gt;
#* [[Modding_Tutorials/ConfigErrors|Config Errors]] - Provide configuration issues to the user on startup.&lt;br /&gt;
#* [[Modding Tutorials/DebugActions|Debug Actions]] - Call methods from the debug menu&lt;br /&gt;
# [https://www.arp242.net/rimworld-mod-linux.html Getting started with RimWorld modding on Linux]&lt;br /&gt;
&lt;br /&gt;
==Art Tutorials==&lt;br /&gt;
* [https://spdskatr.github.io/RWModdingResources/artstyle Artstyle] - Officially unofficial guide to RimWorld's Artstyle&lt;br /&gt;
* [https://www.reddit.com/r/RimWorld/comments/5tn1pi/rimworldstyle_sprite_tutorials/ Ekksu's guide to creating RimWorld animals]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1114369188 ChickenPlucker's guide to creating apparel]&lt;br /&gt;
* [https://github.com/seraphile/rimshare/wiki/Colouring-in-Images Seraphile's guide to masks]&lt;br /&gt;
&lt;br /&gt;
== Under construction ==&lt;br /&gt;
These tutorials are under construction.&lt;br /&gt;
&lt;br /&gt;
* [[Modding Tutorials/Quests]] - Creator: [[User:NightmareCorporation]]&lt;br /&gt;
* [[Modding Tutorials/Troubleshooting/Finding Exceptions]] - Creator: [[User:NightmareCorporation]]&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* [[RimWorld 1.3: XML Mod Creation]]&lt;br /&gt;
* [[Modding Tutorials/Assembly Modding Example|Assembly Modding]]&lt;br /&gt;
* [[Plague Gun (1.1)|The Plague Gun]] tutorial originally by Jecrell, updated to 1.1+. &lt;br /&gt;
* [[Modding Tutorials/Xenotype template]] originally by Ryflamer&lt;br /&gt;
&lt;br /&gt;
===Dangerously Outdated===&lt;br /&gt;
* [[Modding Tutorials/Smelter]]&lt;br /&gt;
* [[Modding Tutorials/Items]]&lt;br /&gt;
* [[Modding Tutorials/Weapons]]&lt;br /&gt;
* [[Modding Tutorials/Furniture]]&lt;br /&gt;
* [[Plague Gun/Introduction|The Plague Gun]] based on the Plague Gun tutorial by Jecrell, updated for 1.0. {{LudeonThread|33219}}.&lt;br /&gt;
# [[Plague Gun/Required Items|Required Items]]&lt;br /&gt;
# [[Plague Gun/XML Stage|XML Stage]]&lt;br /&gt;
# [[Plague Gun/Connecting XML and Csharp|Connecting XML and C#]]&lt;br /&gt;
# [[Plague Gun/Csharp Assembly Setup|C# Assembly Setup]]&lt;br /&gt;
# [[Plague Gun/Csharp Coding|C# Coding]]&lt;br /&gt;
# [[Plague Gun/Localisation|Localisation]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://github.com/roxxploxx/RimWorldModGuide/wiki Roxxploxx's set of modding tutorials]&lt;br /&gt;
* [https://spdskatr.github.io/RWModdingResources/ RimWorld Modding Resources - A hub for guides, modders, practical tips]&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding]]&lt;br /&gt;
[[Category:Modding tutorials]]&lt;/div&gt;</summary>
		<author><name>Zeta18</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Modding_Tutorials&amp;diff=133489</id>
		<title>Modding Tutorials</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Modding_Tutorials&amp;diff=133489"/>
		<updated>2023-04-12T08:38:55Z</updated>

		<summary type="html">&lt;p&gt;Zeta18: Added section linking new guides the this page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Top Nav Box--&amp;gt;&lt;br /&gt;
{| align=center&lt;br /&gt;
| {{Mods_Nav}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the table of contents for the modding tutorial. Here, you'll learn step by step how to create mods of gradually increasing complexity.&lt;br /&gt;
&lt;br /&gt;
In light of little official documentation, most of the knowledge here was gained by experience, trial-and-error, decompiling and learning from the source. Keep in mind that RimWorld is a big game that underwent substantial code changes during its alphas. While most of this wiki was updated for 1.0, some information you find may be outdated. &lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
==What's a mod?==&lt;br /&gt;
A mod is a folder containing data the game reads/loads. Mods can add, remove or alter the content of other mods (including the Core mod) in the broadest sense of the word. For more info, see also [[Modding]].&lt;br /&gt;
&lt;br /&gt;
==Introduction to modding==&lt;br /&gt;
# [[Modding Tutorials/First Steps|First Steps and Some Links]]&lt;br /&gt;
# [[Modding Tutorials/Essence| Essence of Modding]]&lt;br /&gt;
# [[Modding Tutorials/Folder structure|Exploring the Folder Structure]]&lt;br /&gt;
# [[Modding Tutorials/Mod folder structure|Mod Folder Structure]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The About folder|About folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Defs folder|Defs folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Source and Assemblies folders|Assemblies folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Languages folder|Languages folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Textures and Sounds folders|Textures folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Textures and Sounds folders|Sounds folder]]&lt;br /&gt;
#* [[Modding Tutorials/Mod folder structure#The Patches folder|Patches folder]]&lt;br /&gt;
# [[Modding Tutorials/Recommended software|Recommended Software]]&lt;br /&gt;
# [[Modding Troubleshooting Tips and Guides]]&lt;br /&gt;
&lt;br /&gt;
==General modding==&lt;br /&gt;
&lt;br /&gt;
* [[Modding Tutorials/Testing mods|Testing Mods]]&lt;br /&gt;
** [[Modding Tutorials/Testing mods#Development mode|Development Mode]]&lt;br /&gt;
* [[Modding Tutorials/Sounds|Adding and Testing Sounds]]&lt;br /&gt;
* [[Modding Tutorials/Assets|Decompiling Texture/Sound Assets]]&lt;br /&gt;
* [[Modding Tutorials/Compatibility|Compatibility]]&lt;br /&gt;
* [[Modding_Tutorials/Distribution|Distribution]]&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Must-knows==&lt;br /&gt;
* [[Modding_Tutorials/Modifying defs|Modifying Defs]]&lt;br /&gt;
* [[Modding_Tutorials/Troubleshooting|Troubleshooting mods]]&lt;br /&gt;
&lt;br /&gt;
===Steam Workshop Specifics===&lt;br /&gt;
* If you want to upload your mod to the Steam Workshop you must own the game on Steam. Owning it on Epic or GoG etc is not enough, both Steam and Tynan have confirmed this.&lt;br /&gt;
* Your Preview.png must be under 1MB to upload to the Steam Workshop otherwise you will see ''&amp;quot;Error : Limit Exceeded&amp;quot;''&lt;br /&gt;
* Steam mod descriptions don't use markdown, they use a form of BBCode. There is a [https://steamcommunity.com/comment/Guide/formattinghelp guide].&lt;br /&gt;
&lt;br /&gt;
==Updated guides==&lt;br /&gt;
These guides have been made with the most recent version of Rimworld in mind and are being updated to reflect changes in the game.&lt;br /&gt;
# [[Modding_Tutorials/Geting_started_with_mods|Getting Started With XML]]&lt;br /&gt;
&lt;br /&gt;
==XML tutorials==&lt;br /&gt;
&lt;br /&gt;
# [[Modding Tutorials/XML file structure|XML File Structure]]&lt;br /&gt;
# [[Modding Tutorials/XML Defs|Introduction to XML Defs]]&lt;br /&gt;
#* [[Modding Tutorials/Compatibility with defs|XML Def Compatibility]]&lt;br /&gt;
#* [https://7tsvn.github.io/RimWorld-AutoDocs Auto Documentation] &lt;br /&gt;
# In-depth XML Def tutorials&lt;br /&gt;
#* [[Modding Tutorials/ThingDef|ThingDef explained]]&lt;br /&gt;
#* [[Modding Tutorials/Weapons Guns|Weapons_Guns.xml explained]]. Slightly dated.&lt;br /&gt;
# [[Modding Tutorials/PatchOperations|PatchOperations]], replace specific xml elements of core files while keeping the rest untampered. Uses xpath.&lt;br /&gt;
&lt;br /&gt;
==C# tutorials==&lt;br /&gt;
# [[Modding_Tutorials/Setting up a solution|Setting up]]&lt;br /&gt;
# [[Modding_Tutorials/Hello World|Hello World]]&lt;br /&gt;
# [[Modding_Tutorials/Decompiling source code|Decompiling Source Code]]&lt;br /&gt;
# [[Modding_Tutorials/Writing custom code|Writing Custom Code]]&lt;br /&gt;
# [[Modding Tutorials/Linking XML and C#|Linking XML and C#]]&lt;br /&gt;
# [[Modding_Tutorials/Harmony | Alter Code at Runtime with Harmony]] - this is a best practice for modifying game code, replacing C# code injection to reduce Mod Conflicts&lt;br /&gt;
# The wonderful things you will want to do with C#&lt;br /&gt;
#* [[Modding_Tutorials/Modifying classes|Adding fields and methods to classes]]&lt;br /&gt;
# Useful things:&lt;br /&gt;
#* [[Modding Tutorials/ModSettings|Mod settings]] - Add settings to your mod&lt;br /&gt;
#* [[Modding Tutorials/DefModExtension|Def mod extensions]] - Add (custom) fields to Defs&lt;br /&gt;
#* [[Modding Tutorials/Custom Comp Classes|Custom Comp Classes]] - A quick overview of what types of Comps there are, and what they're suited for.&lt;br /&gt;
#** [[Modding_Tutorials/ThingComp|ThingComp]] - Learn all there is to know about ThingComps.&lt;br /&gt;
#** [[Modding Tutorials/GameComponent|Components]] - GameComponents, WorldComponents, and MapComponents&lt;br /&gt;
#* [[Modding_Tutorials/Def classes|Introduction to Def Classes]]&lt;br /&gt;
#* [[Modding_Tutorials/Compatibility_with_DLLs|Using Harmony to optionally patch other mods for the sake of compatibility]]&lt;br /&gt;
#* [[Modding Tutorials/TweakValue|TweakValues]] - Change values on the fly (handy for quick iteration!)&lt;br /&gt;
#* [[Modding Tutorials/ExposeData|ExposeData]] - Save stuff&lt;br /&gt;
#* [[Modding Tutorials/BigAssListOfUsefulClasses|The big ass list of useful classes]] - A non-exhaustive list of classes you'll use most&lt;br /&gt;
#* [[Modding Tutorials/GrammarResolver|Grammar Resolver]] - PAWN_objective, PAWN_possessive? Find out what it all means here.&lt;br /&gt;
#* [https://github.com/Mehni/ExampleJob/wiki ExampleJob] - Mehni's top to bottom breakdown of Jobs.&lt;br /&gt;
#* [[Modding_Tutorials/ConfigErrors|Config Errors]] - Provide configuration issues to the user on startup.&lt;br /&gt;
#* [[Modding Tutorials/DebugActions|Debug Actions]] - Call methods from the debug menu&lt;br /&gt;
# [https://www.arp242.net/rimworld-mod-linux.html Getting started with RimWorld modding on Linux]&lt;br /&gt;
&lt;br /&gt;
==Art Tutorials==&lt;br /&gt;
* [https://spdskatr.github.io/RWModdingResources/artstyle Artstyle] - Officially unofficial guide to RimWorld's Artstyle&lt;br /&gt;
* [https://www.reddit.com/r/RimWorld/comments/5tn1pi/rimworldstyle_sprite_tutorials/ Ekksu's guide to creating RimWorld animals]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1114369188 ChickenPlucker's guide to creating apparel]&lt;br /&gt;
* [https://github.com/seraphile/rimshare/wiki/Colouring-in-Images Seraphile's guide to masks]&lt;br /&gt;
&lt;br /&gt;
== Under construction ==&lt;br /&gt;
These tutorials are under construction.&lt;br /&gt;
&lt;br /&gt;
* [[Modding Tutorials/Quests]] - Creator: [[User:NightmareCorporation]]&lt;br /&gt;
* [[Modding Tutorials/Troubleshooting/Finding Exceptions]] - Creator: [[User:NightmareCorporation]]&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* [[RimWorld 1.3: XML Mod Creation]]&lt;br /&gt;
* [[Modding Tutorials/Assembly Modding Example|Assembly Modding]]&lt;br /&gt;
* [[Plague Gun (1.1)|The Plague Gun]] tutorial originally by Jecrell, updated to 1.1+. &lt;br /&gt;
* [[Modding Tutorials/Xenotype template]] originally by Ryflamer&lt;br /&gt;
&lt;br /&gt;
===Dangerously Outdated===&lt;br /&gt;
* [[Modding Tutorials/Smelter]]&lt;br /&gt;
* [[Modding Tutorials/Items]]&lt;br /&gt;
* [[Modding Tutorials/Weapons]]&lt;br /&gt;
* [[Modding Tutorials/Furniture]]&lt;br /&gt;
* [[Plague Gun/Introduction|The Plague Gun]] based on the Plague Gun tutorial by Jecrell, updated for 1.0. {{LudeonThread|33219}}.&lt;br /&gt;
# [[Plague Gun/Required Items|Required Items]]&lt;br /&gt;
# [[Plague Gun/XML Stage|XML Stage]]&lt;br /&gt;
# [[Plague Gun/Connecting XML and Csharp|Connecting XML and C#]]&lt;br /&gt;
# [[Plague Gun/Csharp Assembly Setup|C# Assembly Setup]]&lt;br /&gt;
# [[Plague Gun/Csharp Coding|C# Coding]]&lt;br /&gt;
# [[Plague Gun/Localisation|Localisation]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://github.com/roxxploxx/RimWorldModGuide/wiki Roxxploxx's set of modding tutorials]&lt;br /&gt;
* [https://spdskatr.github.io/RWModdingResources/ RimWorld Modding Resources - A hub for guides, modders, practical tips]&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding]]&lt;br /&gt;
[[Category:Modding tutorials]]&lt;/div&gt;</summary>
		<author><name>Zeta18</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=File:Empty_item.png&amp;diff=133484</id>
		<title>File:Empty item.png</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=File:Empty_item.png&amp;diff=133484"/>
		<updated>2023-04-12T07:36:15Z</updated>

		<summary type="html">&lt;p&gt;Zeta18: A screenshot of a basic item with no textures for a mod guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
A screenshot of a basic item with no textures for a mod guide&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{Copyright nolicense}}&lt;/div&gt;</summary>
		<author><name>Zeta18</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=File:Adding_Textures.png&amp;diff=133483</id>
		<title>File:Adding Textures.png</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=File:Adding_Textures.png&amp;diff=133483"/>
		<updated>2023-04-12T07:33:59Z</updated>

		<summary type="html">&lt;p&gt;Zeta18: A screenshot of a mod item with textures added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
A screenshot of a mod item with textures added&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{Copyright nolicense}}&lt;/div&gt;</summary>
		<author><name>Zeta18</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Modding_Tutorials/Recommended_software&amp;diff=133029</id>
		<title>Modding Tutorials/Recommended software</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Modding_Tutorials/Recommended_software&amp;diff=133029"/>
		<updated>2023-04-06T01:19:37Z</updated>

		<summary type="html">&lt;p&gt;Zeta18: Added section on dotPeek&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BackToTutorials}}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=What you'll learn=&lt;br /&gt;
&lt;br /&gt;
This tutorial lists a few programs you could use to edit XML and C# code.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=XML Code Editors=&lt;br /&gt;
&lt;br /&gt;
===Basic Editors===&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Find in Files&amp;quot; functionality and syntax highlighting. If you're even somewhat serious about modding, the following software will help you immensely:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Software !! OS !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [https://notepadqq.com/s/ NotepadQQ] || Linux || Notepadqq is a Notepad++-like editor for the Linux desktop so has the exact same UI and functions as Notepad++&lt;br /&gt;
|-&lt;br /&gt;
| [http://notepad-plus-plus.org/download/ Notepad++] || Windows || Light-weight editor with extension support.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.sublimetext.com/ 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 [http://webdesign.tutsplus.com/tutorials/useful-shortcuts-for-a-faster-workflow-in-sublime-text-3--cms-22185 here] and a full course [http://code.tutsplus.com/courses/perfect-workflow-in-sublime-text-2 here]&lt;br /&gt;
|-&lt;br /&gt;
| [https://atom.io/ Atom] || Linux/Windows/Mac || A hackable electron-based text editor with emphasis on extensions and GitHub collaboration.&lt;br /&gt;
|-&lt;br /&gt;
| [https://code.visualstudio.com/ Visual Studio Code] || Linux/Windows/Mac || A text editor with emphasis on productivity and extension support.&lt;br /&gt;
|-&lt;br /&gt;
| [http://xmlnotepad.codeplex.com/releases/ XML Notepad] || Windows || XML-oriented editor with a lot of features you will most likely never use in Rimworld modding&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.geany.org/ Geany] || Linux/Windows/Mac || Extremely lightweight text editor with syntax highlighting and some other basic features oriented towards XML and code editing.&lt;br /&gt;
|}&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Editors===&lt;br /&gt;
&lt;br /&gt;
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:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Software !! OS !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [http://sourceforge.net/projects/xpontus/files/ 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&lt;br /&gt;
|-&lt;br /&gt;
| [http://xmlgrid.net/ 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&lt;br /&gt;
|-&lt;br /&gt;
| [http://codebeautify.org/xmlviewer 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 [http://codebeautify.org/xmlviewer/b39586 that])&lt;br /&gt;
|}&amp;lt;br/&amp;gt;&lt;br /&gt;
An alternative to &amp;quot;Advanced editors&amp;quot; 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.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=IDEs=&lt;br /&gt;
&lt;br /&gt;
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:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Software !! OS !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.visualstudio.com/ 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 [https://www.visualstudio.com/products/visual-studio-community-vs Visual Studio Community] which is free for individuals and small teams. Always the most up-to-date&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.icsharpcode.net/OpenSource/SD/Download/ SharpDevelop] || Windows || Free IDE specifically made for C#&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.monodevelop.com/download/ 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&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.xamarin.com/platform 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&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.jetbrains.com/rider/ Rider] || Windows/Mac/Linux|| Unless you're a student it costs, but offers a lot of tools across all platforms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 [https://dotnet.microsoft.com/download/dotnet-framework/net472 here].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Additional C# Software=&lt;br /&gt;
&lt;br /&gt;
Besides your IDE it's strongly recommended to install the following software for decompiling:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Software !! OS !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/0xd4d/dnSpy dnSpy] || Windows || Software which is capable of [[Modding Tutorials/Decompiling source code|decompiling source code]], which is very useful in Rimworld modding (some authors have had better luck with dnSpy than ILSpy?)&lt;br /&gt;
|-&lt;br /&gt;
| [http://ilspy.net/ ILSpy] || Windows/Linux/Mac || Software which is capable of [[Modding Tutorials/Decompiling source code|decompiling source code]], which is very useful in Rimworld modding&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.monodevelop.com/download/ MonoDevelop] || Linux/Windows/Mac || The Linux version of the software has an integrated decompiler for .DLLs&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.jetbrains.com/decompiler/ dotPeek] || Windows || A C# decompiler for .DLLs it slow to open but has great functionality&lt;br /&gt;
|}&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Graphics Software=&lt;br /&gt;
&lt;br /&gt;
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:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Software !! OS !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.photofiltre-studio.com/download-en.htm 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 [http://photofiltre.free.fr/download_en.htm Photofiltre]&lt;br /&gt;
|-&lt;br /&gt;
| [http://inkscape.org/en/download/ 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&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.photoshop.com/products Photoshop] || Windows/Mac || Paid software with a trial version. Rimworld's original graphics are made in Photoshop (they're .PSD files)&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gimp.org/ 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 [http://www.gimp.org/tutorials/ tutorials] on the official sites&lt;br /&gt;
|-&lt;br /&gt;
| [https://krita.org/en/homepage/ 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.&lt;br /&gt;
|}&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Audio Software=&lt;br /&gt;
&lt;br /&gt;
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:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Software !! OS !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [http://sourceforge.net/projects/audacity/ Audacity] || Linux/Windows/Mac || Audio editing software with many tutorials online, lots of useful functionality and a relatively readable interface&lt;br /&gt;
|}&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Next up=&lt;br /&gt;
&lt;br /&gt;
# [[Modding Tutorials/XML file structure|XML File Structure]] starts you off with the XML side of modding.&lt;br /&gt;
# [[Modding_Tutorials/Setting up a solution|Setting up]] starts you off with the C# side of modding. Knowledge of the XML part can and will be very useful.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding tutorials]]&lt;/div&gt;</summary>
		<author><name>Zeta18</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Modding_Tutorials/Setting_up_a_solution&amp;diff=132983</id>
		<title>Modding Tutorials/Setting up a solution</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Modding_Tutorials/Setting_up_a_solution&amp;diff=132983"/>
		<updated>2023-04-05T05:11:40Z</updated>

		<summary type="html">&lt;p&gt;Zeta18: Fixed formating&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BackToTutorials}}&lt;br /&gt;
{{Credit|[[User:Alistaire|Alistaire]]}}&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
* The manual option in this tutorial requires you to have [[Modding_Tutorials/Mod_folder_structure#The Source and Assemblies folders|set up a Source and Assemblies folder]] (the Visual Studio automatic option sets this up for you).&lt;br /&gt;
* You will want to have an IDE installed: [[Modding Tutorials/Recommended software#IDE's|Recommended IDE's]].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Setting up a solution=&lt;br /&gt;
Setting up can be different for different IDE's. Feel free to add '''''complete''''' instructions for your IDE of choice.&lt;br /&gt;
&lt;br /&gt;
===Visual Studio Community 2019===&lt;br /&gt;
''NOTE: Visual Studio 2019 is a rather heavy application (2-3 GB for basic functionality) but has a bit more functionality. Only Install if your computer can handle it! This tutorial is similar for other versions of Visual Studio.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Option 1 (Manual Method):====&lt;br /&gt;
# Create a new class library project&lt;br /&gt;
## Once loaded, go to File -&amp;gt; New -&amp;gt; Project...&lt;br /&gt;
## Type &amp;quot;Class Library (.NET Framework)&amp;quot; in the search bar, and select the C# option. [[File:ClassLibrary.png|200px|thumb|right|Installing the .NET framework]]&lt;br /&gt;
## Enter your project name.&lt;br /&gt;
## Choose a location, preferably:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;(RimWorldInstallFolder)/Mods/(YourModName)/Source&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Enter a solution name (optionally, tick &amp;quot;Place solution and project in the same directory&amp;quot;)&lt;br /&gt;
## Make sure Framework is &amp;quot;.NET Framework 4.7.2&amp;quot;&lt;br /&gt;
# In your project, set target framework and various other properties&lt;br /&gt;
## In your Solution Explorer (the panel usually located on the right), right click your project -&amp;gt; Properties (or expand your project and double click &amp;quot;Properties&amp;quot; with the wrench icon)&lt;br /&gt;
## ''Optional'': Under Application, change your Assembly and Namespace names to anything of your choice&lt;br /&gt;
## Go to Build -&amp;gt; Advanced... and set &amp;quot;Debugging information&amp;quot; to none&lt;br /&gt;
## Leave Advanced..., and set the Output Path to &amp;quot;..\..\Assemblies\&amp;quot; (Or wherever the Assemblies folder is)&lt;br /&gt;
# Add references to RimWorld code&lt;br /&gt;
## Expand your project in Solution Explorer. Then right click &amp;quot;References&amp;quot; -&amp;gt; Add Reference...&lt;br /&gt;
## Click Browse...&lt;br /&gt;
## Navigate towards &amp;lt;pre&amp;gt;RimWorldInstallPath/RimWorld******_Data/Managed&amp;lt;/pre&amp;gt; and select files: &amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;Assembly-CSharp.dll&amp;amp;#10;UnityEngine.CoreModule.dll&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Click &amp;quot;Add&amp;quot;&lt;br /&gt;
## Click &amp;quot;OK&amp;quot; to close the Reference Manager.&lt;br /&gt;
## Right-click on both Assembly-CSharp.dll and UnityEngine.dll and set Copy Local to False (Properties pane).&lt;br /&gt;
&lt;br /&gt;
====Option 2 (Using Nuget):====&lt;br /&gt;
This option uses [https://www.nuget.org/packages/Krafs.Rimworld.Ref Krafs Rimworld Reference Package] it is less involved than using reference assemblies and is the recommended method.&amp;lt;/br&amp;gt;&lt;br /&gt;
#Follow the above up till ''Add references to RimWorld code''&lt;br /&gt;
#Open Nuget Manager and type ''Rimworld''&lt;br /&gt;
#Add Krafs Rimworld Reference&lt;br /&gt;
#When prompted '''Select packagereference''' (this is required for the package to be added)&lt;br /&gt;
You can now continue as if you added the assemblies&lt;br /&gt;
Doing this makes your project portable, because RimRef can be downloaded by anyone and used from anywhere, unlike Rimworld's assemblies which can't be distributed.&lt;br /&gt;
&lt;br /&gt;
====Option 3 (Using Rimworld Dotnet Template):====&lt;br /&gt;
This option uses [https://github.com/Burgess12/Rimwold-Dotnet-Template Rimworld Dotnet Template] it allows faster creation of mod files including Xml foulders&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After installing the template.&lt;br /&gt;
#Open your mod folder&lt;br /&gt;
#create a new folder for your mod (It is best to use the name you want for your mod)&lt;br /&gt;
#Open a command prompt in that folder&lt;br /&gt;
#type ''dotnet new  RimMod'' (This will create a new mod with the name you specified)&lt;br /&gt;
#Open the About folder and edit the About.xml file&lt;br /&gt;
#Open the .sln file in your preferred IDE&lt;br /&gt;
#Add the rimworld assemblies using your preferred method&lt;br /&gt;
&lt;br /&gt;
While this method is faster, it is still good to know how to do it manually.&lt;br /&gt;
&lt;br /&gt;
====Option 4 (Using Cookiecutter):====&lt;br /&gt;
This option uses the [https://ludeon.com/forums/index.php?topic=39038.0 Rimworld Mod Development Cookiecutter] tool.&amp;lt;/br&amp;gt;&lt;br /&gt;
'''Note: despite being automatic and potentially taking away some of the tedium away, the environment it sets up is very particular and this tool is currently not recommended for newcomers.'''&amp;lt;/br&amp;gt;&lt;br /&gt;
''As of Jan 2019, the cookiecutter is set up for Windows development.  Linux/Mac people can still use it, but they will have a few errors to clean up.''&amp;lt;/br&amp;gt;&lt;br /&gt;
# Open Visual Studio&lt;br /&gt;
# Once loaded, go to File -&amp;gt; New -&amp;gt; From Cookiecutter...&lt;br /&gt;
# Search for ''rimworld''&lt;br /&gt;
# Double-click ''cookiecutter-rimworld-mod-development''&lt;br /&gt;
# Change the Template Options:&lt;br /&gt;
## ''Create To'' =&amp;gt; ''Your/Rimworld/Mod/Directory''&lt;br /&gt;
## ''mod_name''&lt;br /&gt;
## ''namespace_name'' (don't change if unsure)&lt;br /&gt;
## ''author'' =&amp;gt; ''your steam username''&lt;br /&gt;
## ''target_version'' =&amp;gt; current RW version (can leave blank for most up-to-date)&lt;br /&gt;
## ''in_game_description'' (not required, can change later in About-Release.xml)&lt;br /&gt;
## ''url'' (can leave blank for link to your Steam Workshop profile)&lt;br /&gt;
# Click &amp;quot;Create and Open Folder&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Sharpdevelop===&lt;br /&gt;
'''Caution:''' Sharpdevelop (or #develop) does NOT CURRENTLY allow for C# 6.0+ syntax without plugins and does NOT ALLOW for C# 7.0+ syntax at all. For your average project this does not matter, however some existing projects are already built entirely upon C# 6.0+ syntax which can not be compiled anymore in Sharpdevelop. Visual Studio does not have these issues and should be your go-to for compiling large projects such as Combat Extended.&lt;br /&gt;
&lt;br /&gt;
# Create a new class library project in your [[Modding Tutorials/Recommended software#IDE.27s|IDE of choice]];&lt;br /&gt;
## Go to File -&amp;gt; New -&amp;gt; Solution;&lt;br /&gt;
## Go to C# or .NET -&amp;gt; Library or Class Library (NOT portable);&lt;br /&gt;
## Enter a project name (solution name automatically updated);&lt;br /&gt;
## Choose a location, preferably:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;(RimWorldInstallFolder)/Mods/(YourModName)/Source&amp;lt;/pre&amp;gt;&lt;br /&gt;
## ''Optional'': Untick &amp;quot;Create a directory for solution&amp;quot;/&amp;quot;Create a project within the solution directory&amp;quot;,&lt;br /&gt;
# In your project, add references to Assembly-CSharp.dll and UnityEngine.dll:&lt;br /&gt;
## In your IDE project file browser, right-click the &amp;quot;References&amp;quot; folder and &amp;quot;Add reference&amp;quot;;&lt;br /&gt;
## Choose the &amp;quot;.NET Assembly Browser&amp;quot; tab and &amp;quot;Browse...&amp;quot;;&lt;br /&gt;
## Navigate towards &amp;lt;pre&amp;gt;RimWorld******/RimWorld******_Data/Managed&amp;lt;/pre&amp;gt; and select files: &amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;Assembly-CSharp.dll&amp;amp;#10;UnityEngine.CoreModule.dll&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Click &amp;quot;Open&amp;quot; then &amp;quot;OK&amp;quot;;&lt;br /&gt;
## In the References folder, right-click Assembly-CSharp -&amp;gt; Properties and change &amp;quot;Local copy&amp;quot; to False. Do the same for UnityEngine,&lt;br /&gt;
# In your project properties, change the target framework to .NET 4.7.2:&lt;br /&gt;
## In your IDE project file browser, right-click &amp;quot;(YourSolutionName)&amp;quot;;&lt;br /&gt;
## Choose Properties;&lt;br /&gt;
## Go to the &amp;quot;Compiling&amp;quot; tab, &amp;quot;Output&amp;quot;, &amp;quot;Target framework&amp;quot;, &amp;quot;Change&amp;quot; and choose &amp;quot;.NET Framework 4.7.2&amp;quot;,&lt;br /&gt;
# In your project properties, change the build events so only a single file is built:&lt;br /&gt;
## Go to the &amp;quot;Compiling&amp;quot; tab, &amp;quot;Output&amp;quot;, &amp;quot;Debug info&amp;quot; and choose &amp;quot;No debug information&amp;quot;;&lt;br /&gt;
## Right-click your .cs files -&amp;gt; Properties and change &amp;quot;Copy to output&amp;quot; (If you haven't resized the properties bar, this will be truncated to &amp;quot;Copy to out&amp;quot;) to Never,&lt;br /&gt;
# In your project properties, fix the output location to put the DLL in the Assemblies folder:&lt;br /&gt;
## Go to the &amp;quot;Compiling&amp;quot; tab, &amp;quot;Output&amp;quot;, &amp;quot;Output path&amp;quot; and change the output path to &amp;quot;..\..\Assemblies\&amp;quot;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Xamarin/MonoDevelop===&lt;br /&gt;
The setup is similar as the one above. A few special points to address:&lt;br /&gt;
# 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 .NET4.7.2 dlls.&lt;br /&gt;
# Make sure you uncheck &amp;quot;Use MSBuild build engine (recommended for this project type)&amp;quot; under project &amp;gt; options &amp;gt; build &amp;gt; general   (You might find this by right-clicking on your project - not solution - name and selecting options)&lt;br /&gt;
# Changing the framework to 4.7.2 can be found (for Linux anyway) in the same place.&lt;br /&gt;
&lt;br /&gt;
More detailed installation instructions for Linux can be found [https://blog.rubenwardy.com/2016/07/21/rimworld-setup-monodevelop/ here] and [https://spdskatr.github.io/RWModdingResources/mono-arch here]. Note that as of now (2021) these may be outdated, so if it doesn't work, you can try the steps described in the Mono section.&lt;br /&gt;
&lt;br /&gt;
===Mono===&lt;br /&gt;
On Linux and Mac(?) it is possible to use Mono regardless of IDE (from command line, or if your IDE/editor has build support).&lt;br /&gt;
# Install Mono (refer to your distribution's instructions);&lt;br /&gt;
# To build using .csproj files that other setups use, you need the ''dotnet'' tool, you can get it by installing the [https://dotnet.microsoft.com/download .NET SDK];&lt;br /&gt;
# If you're starting a new mod and want to use a .csproj file for compatibility with other modders, find e.g. a mod that has description pointing to its GitHub sources and copy from there;&lt;br /&gt;
# For building use a command like the following (substitute the proper .csproj file and 4.7.2 is the .NET version from the .csproj file):&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;FrameworkPathOverride=$(dirname $(which mono))/../lib/mono/4.7.2-api/ dotnet build &amp;lt;project file&amp;gt;.csproj /property:Configuration=Release&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If you get errors, it is necessary to edit the .csproj file:&lt;br /&gt;
## You may need to fix paths (point them to .dll files in RimWorld/RimWorld*_Data/Managed);&lt;br /&gt;
## See other setups above for other settings (those IDEs write those settings to the .csproj files);&lt;br /&gt;
&lt;br /&gt;
===Rider (good for Mac)===&lt;br /&gt;
JetBrains Rider is a great cross-platform C# IDE, but it isn't cheap. It's $140 for the first year, including perpetual access to that version (access to future updates gets cheaper, but it's still over $100/year). However, the Early Access versions are a bit unstable but free. They also offer free student licenses.&lt;br /&gt;
&lt;br /&gt;
# Open Rider and click New Solution in the welcome dialog.&lt;br /&gt;
## Click Class Library under .NET on the left. The option may a second to show up.&lt;br /&gt;
## Under Solution Name (and Project Name), enter the name of your mod.&lt;br /&gt;
## Set the Solution Directory to [your mod folder]/Source.&lt;br /&gt;
## Optionally check &amp;quot;put solution and project in the same directory.&amp;quot; This is probably a good idea.&lt;br /&gt;
## Change Framework to .Net Framework 4.7.2.&lt;br /&gt;
## Click Create.&lt;br /&gt;
# In the left side bar, expand your solution, right click your project (mod name with &amp;quot;C#&amp;quot; icon) and click Properties.&lt;br /&gt;
## In the Properties window, select Configurations &amp;gt; Debug on the left and uncheck Debug Symbols.&lt;br /&gt;
## For both configurations, change the Output Path to ../../Assemblies.&lt;br /&gt;
## Click OK.&lt;br /&gt;
# Expand your project, right click References and click Add Reference.&lt;br /&gt;
## Click Add From.&lt;br /&gt;
## Browse to the folder with the RimWorld DLLs (Mac: /Users/[username]/Library/Application Support/Steam/steamapps/common/RimWorld/RimWorldMac.app/Contents/Resources/Data/Managed).&lt;br /&gt;
## Select both Assembly-CSharp.dll and UnityEngine.dll and click OK.&lt;br /&gt;
## Expand Assemblies under References. For both of the assemblies that you just added:&lt;br /&gt;
### Right click the assembly and click Properties.&lt;br /&gt;
### Uncheck &amp;quot;Copy Local&amp;quot; (you may need to scroll down) and click OK.&lt;br /&gt;
&lt;br /&gt;
You're done! Note that Rider has a built-in decompiler—to view the source of a RimWorld class or method, just right-click its name and click Go To &amp;gt; Definition.&lt;br /&gt;
&lt;br /&gt;
=Common issues=&lt;br /&gt;
* Can't find the option to target .NET Framework 4.7.2? It may require additional installation steps. In Visual Studio, Tools =&amp;gt; Get Tools and features =&amp;gt; Individual Components =&amp;gt; Select ''.NET Framework 4.7.2 development tools'' (or google installation instructions). Also make sure your project is a ''Class Library (.NET '''Framework''')''. Not .NET Core or .NET Standard.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* [[Modding Tutorials/Writing custom code|Writing custom code]] continues on setting up your solution.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding tutorials]]&lt;/div&gt;</summary>
		<author><name>Zeta18</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Modding_Tutorials/Setting_up_a_solution&amp;diff=132982</id>
		<title>Modding Tutorials/Setting up a solution</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Modding_Tutorials/Setting_up_a_solution&amp;diff=132982"/>
		<updated>2023-04-05T05:08:41Z</updated>

		<summary type="html">&lt;p&gt;Zeta18: Added section on Rimworld Dotnet Template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BackToTutorials}}&lt;br /&gt;
{{Credit|[[User:Alistaire|Alistaire]]}}&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
* The manual option in this tutorial requires you to have [[Modding_Tutorials/Mod_folder_structure#The Source and Assemblies folders|set up a Source and Assemblies folder]] (the Visual Studio automatic option sets this up for you).&lt;br /&gt;
* You will want to have an IDE installed: [[Modding Tutorials/Recommended software#IDE's|Recommended IDE's]].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Setting up a solution=&lt;br /&gt;
Setting up can be different for different IDE's. Feel free to add '''''complete''''' instructions for your IDE of choice.&lt;br /&gt;
&lt;br /&gt;
===Visual Studio Community 2019===&lt;br /&gt;
''NOTE: Visual Studio 2019 is a rather heavy application (2-3 GB for basic functionality) but has a bit more functionality. Only Install if your computer can handle it! This tutorial is similar for other versions of Visual Studio.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Option 1 (Manual Method):====&lt;br /&gt;
# Create a new class library project&lt;br /&gt;
## Once loaded, go to File -&amp;gt; New -&amp;gt; Project...&lt;br /&gt;
## Type &amp;quot;Class Library (.NET Framework)&amp;quot; in the search bar, and select the C# option. [[File:ClassLibrary.png|200px|thumb|right|Installing the .NET framework]]&lt;br /&gt;
## Enter your project name.&lt;br /&gt;
## Choose a location, preferably:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;(RimWorldInstallFolder)/Mods/(YourModName)/Source&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Enter a solution name (optionally, tick &amp;quot;Place solution and project in the same directory&amp;quot;)&lt;br /&gt;
## Make sure Framework is &amp;quot;.NET Framework 4.7.2&amp;quot;&lt;br /&gt;
# In your project, set target framework and various other properties&lt;br /&gt;
## In your Solution Explorer (the panel usually located on the right), right click your project -&amp;gt; Properties (or expand your project and double click &amp;quot;Properties&amp;quot; with the wrench icon)&lt;br /&gt;
## ''Optional'': Under Application, change your Assembly and Namespace names to anything of your choice&lt;br /&gt;
## Go to Build -&amp;gt; Advanced... and set &amp;quot;Debugging information&amp;quot; to none&lt;br /&gt;
## Leave Advanced..., and set the Output Path to &amp;quot;..\..\Assemblies\&amp;quot; (Or wherever the Assemblies folder is)&lt;br /&gt;
# Add references to RimWorld code&lt;br /&gt;
## Expand your project in Solution Explorer. Then right click &amp;quot;References&amp;quot; -&amp;gt; Add Reference...&lt;br /&gt;
## Click Browse...&lt;br /&gt;
## Navigate towards &amp;lt;pre&amp;gt;RimWorldInstallPath/RimWorld******_Data/Managed&amp;lt;/pre&amp;gt; and select files: &amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;Assembly-CSharp.dll&amp;amp;#10;UnityEngine.CoreModule.dll&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Click &amp;quot;Add&amp;quot;&lt;br /&gt;
## Click &amp;quot;OK&amp;quot; to close the Reference Manager.&lt;br /&gt;
## Right-click on both Assembly-CSharp.dll and UnityEngine.dll and set Copy Local to False (Properties pane).&lt;br /&gt;
&lt;br /&gt;
====Option 2 (Using Nuget):====&lt;br /&gt;
This option uses [https://www.nuget.org/packages/Krafs.Rimworld.Ref Krafs Rimworld Reference Package] it is less involved than using reference assemblies and is the recommended method.&amp;lt;/br&amp;gt;&lt;br /&gt;
#Follow the above up till ''Add references to RimWorld code''&lt;br /&gt;
#Open Nuget Manager and type ''Rimworld''&lt;br /&gt;
#Add Krafs Rimworld Reference&lt;br /&gt;
#When prompted '''Select packagereference''' (this is required for the package to be added)&lt;br /&gt;
You can now continue as if you added the assemblies&lt;br /&gt;
Doing this makes your project portable, because RimRef can be downloaded by anyone and used from anywhere, unlike Rimworld's assemblies which can't be distributed.&lt;br /&gt;
&lt;br /&gt;
===Option 3 (Using Rimworld Dotnet Template):===&lt;br /&gt;
This option uses [https://github.com/Burgess12/Rimwold-Dotnet-Template Rimworld Dotnet Template] it allows faster creation of mod files including Xml foulders&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After installing the template.&lt;br /&gt;
#Open your mod folder&lt;br /&gt;
#create a new folder for your mod (It is best to use the name you want for your mod)&lt;br /&gt;
#Open a command prompt in that folder&lt;br /&gt;
#type ''dotnet new  RimMod'' (This will create a new mod with the name you specified)&lt;br /&gt;
#Open the About folder and edit the About.xml file&lt;br /&gt;
#Open the .sln file in your preferred IDE&lt;br /&gt;
#Add the rimworld assemblies using your preferred method&lt;br /&gt;
&lt;br /&gt;
While this method is faster, it is still good to know how to do it manually.&lt;br /&gt;
&lt;br /&gt;
====Option 4 (Using Cookiecutter):====&lt;br /&gt;
This option uses the [https://ludeon.com/forums/index.php?topic=39038.0 Rimworld Mod Development Cookiecutter] tool.&amp;lt;/br&amp;gt;&lt;br /&gt;
'''Note: despite being automatic and potentially taking away some of the tedium away, the environment it sets up is very particular and this tool is currently not recommended for newcomers.'''&amp;lt;/br&amp;gt;&lt;br /&gt;
''As of Jan 2019, the cookiecutter is set up for Windows development.  Linux/Mac people can still use it, but they will have a few errors to clean up.''&amp;lt;/br&amp;gt;&lt;br /&gt;
# Open Visual Studio&lt;br /&gt;
# Once loaded, go to File -&amp;gt; New -&amp;gt; From Cookiecutter...&lt;br /&gt;
# Search for ''rimworld''&lt;br /&gt;
# Double-click ''cookiecutter-rimworld-mod-development''&lt;br /&gt;
# Change the Template Options:&lt;br /&gt;
## ''Create To'' =&amp;gt; ''Your/Rimworld/Mod/Directory''&lt;br /&gt;
## ''mod_name''&lt;br /&gt;
## ''namespace_name'' (don't change if unsure)&lt;br /&gt;
## ''author'' =&amp;gt; ''your steam username''&lt;br /&gt;
## ''target_version'' =&amp;gt; current RW version (can leave blank for most up-to-date)&lt;br /&gt;
## ''in_game_description'' (not required, can change later in About-Release.xml)&lt;br /&gt;
## ''url'' (can leave blank for link to your Steam Workshop profile)&lt;br /&gt;
# Click &amp;quot;Create and Open Folder&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Sharpdevelop===&lt;br /&gt;
'''Caution:''' Sharpdevelop (or #develop) does NOT CURRENTLY allow for C# 6.0+ syntax without plugins and does NOT ALLOW for C# 7.0+ syntax at all. For your average project this does not matter, however some existing projects are already built entirely upon C# 6.0+ syntax which can not be compiled anymore in Sharpdevelop. Visual Studio does not have these issues and should be your go-to for compiling large projects such as Combat Extended.&lt;br /&gt;
&lt;br /&gt;
# Create a new class library project in your [[Modding Tutorials/Recommended software#IDE.27s|IDE of choice]];&lt;br /&gt;
## Go to File -&amp;gt; New -&amp;gt; Solution;&lt;br /&gt;
## Go to C# or .NET -&amp;gt; Library or Class Library (NOT portable);&lt;br /&gt;
## Enter a project name (solution name automatically updated);&lt;br /&gt;
## Choose a location, preferably:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;(RimWorldInstallFolder)/Mods/(YourModName)/Source&amp;lt;/pre&amp;gt;&lt;br /&gt;
## ''Optional'': Untick &amp;quot;Create a directory for solution&amp;quot;/&amp;quot;Create a project within the solution directory&amp;quot;,&lt;br /&gt;
# In your project, add references to Assembly-CSharp.dll and UnityEngine.dll:&lt;br /&gt;
## In your IDE project file browser, right-click the &amp;quot;References&amp;quot; folder and &amp;quot;Add reference&amp;quot;;&lt;br /&gt;
## Choose the &amp;quot;.NET Assembly Browser&amp;quot; tab and &amp;quot;Browse...&amp;quot;;&lt;br /&gt;
## Navigate towards &amp;lt;pre&amp;gt;RimWorld******/RimWorld******_Data/Managed&amp;lt;/pre&amp;gt; and select files: &amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;Assembly-CSharp.dll&amp;amp;#10;UnityEngine.CoreModule.dll&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Click &amp;quot;Open&amp;quot; then &amp;quot;OK&amp;quot;;&lt;br /&gt;
## In the References folder, right-click Assembly-CSharp -&amp;gt; Properties and change &amp;quot;Local copy&amp;quot; to False. Do the same for UnityEngine,&lt;br /&gt;
# In your project properties, change the target framework to .NET 4.7.2:&lt;br /&gt;
## In your IDE project file browser, right-click &amp;quot;(YourSolutionName)&amp;quot;;&lt;br /&gt;
## Choose Properties;&lt;br /&gt;
## Go to the &amp;quot;Compiling&amp;quot; tab, &amp;quot;Output&amp;quot;, &amp;quot;Target framework&amp;quot;, &amp;quot;Change&amp;quot; and choose &amp;quot;.NET Framework 4.7.2&amp;quot;,&lt;br /&gt;
# In your project properties, change the build events so only a single file is built:&lt;br /&gt;
## Go to the &amp;quot;Compiling&amp;quot; tab, &amp;quot;Output&amp;quot;, &amp;quot;Debug info&amp;quot; and choose &amp;quot;No debug information&amp;quot;;&lt;br /&gt;
## Right-click your .cs files -&amp;gt; Properties and change &amp;quot;Copy to output&amp;quot; (If you haven't resized the properties bar, this will be truncated to &amp;quot;Copy to out&amp;quot;) to Never,&lt;br /&gt;
# In your project properties, fix the output location to put the DLL in the Assemblies folder:&lt;br /&gt;
## Go to the &amp;quot;Compiling&amp;quot; tab, &amp;quot;Output&amp;quot;, &amp;quot;Output path&amp;quot; and change the output path to &amp;quot;..\..\Assemblies\&amp;quot;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Xamarin/MonoDevelop===&lt;br /&gt;
The setup is similar as the one above. A few special points to address:&lt;br /&gt;
# 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 .NET4.7.2 dlls.&lt;br /&gt;
# Make sure you uncheck &amp;quot;Use MSBuild build engine (recommended for this project type)&amp;quot; under project &amp;gt; options &amp;gt; build &amp;gt; general   (You might find this by right-clicking on your project - not solution - name and selecting options)&lt;br /&gt;
# Changing the framework to 4.7.2 can be found (for Linux anyway) in the same place.&lt;br /&gt;
&lt;br /&gt;
More detailed installation instructions for Linux can be found [https://blog.rubenwardy.com/2016/07/21/rimworld-setup-monodevelop/ here] and [https://spdskatr.github.io/RWModdingResources/mono-arch here]. Note that as of now (2021) these may be outdated, so if it doesn't work, you can try the steps described in the Mono section.&lt;br /&gt;
&lt;br /&gt;
===Mono===&lt;br /&gt;
On Linux and Mac(?) it is possible to use Mono regardless of IDE (from command line, or if your IDE/editor has build support).&lt;br /&gt;
# Install Mono (refer to your distribution's instructions);&lt;br /&gt;
# To build using .csproj files that other setups use, you need the ''dotnet'' tool, you can get it by installing the [https://dotnet.microsoft.com/download .NET SDK];&lt;br /&gt;
# If you're starting a new mod and want to use a .csproj file for compatibility with other modders, find e.g. a mod that has description pointing to its GitHub sources and copy from there;&lt;br /&gt;
# For building use a command like the following (substitute the proper .csproj file and 4.7.2 is the .NET version from the .csproj file):&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;FrameworkPathOverride=$(dirname $(which mono))/../lib/mono/4.7.2-api/ dotnet build &amp;lt;project file&amp;gt;.csproj /property:Configuration=Release&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If you get errors, it is necessary to edit the .csproj file:&lt;br /&gt;
## You may need to fix paths (point them to .dll files in RimWorld/RimWorld*_Data/Managed);&lt;br /&gt;
## See other setups above for other settings (those IDEs write those settings to the .csproj files);&lt;br /&gt;
&lt;br /&gt;
===Rider (good for Mac)===&lt;br /&gt;
JetBrains Rider is a great cross-platform C# IDE, but it isn't cheap. It's $140 for the first year, including perpetual access to that version (access to future updates gets cheaper, but it's still over $100/year). However, the Early Access versions are a bit unstable but free. They also offer free student licenses.&lt;br /&gt;
&lt;br /&gt;
# Open Rider and click New Solution in the welcome dialog.&lt;br /&gt;
## Click Class Library under .NET on the left. The option may a second to show up.&lt;br /&gt;
## Under Solution Name (and Project Name), enter the name of your mod.&lt;br /&gt;
## Set the Solution Directory to [your mod folder]/Source.&lt;br /&gt;
## Optionally check &amp;quot;put solution and project in the same directory.&amp;quot; This is probably a good idea.&lt;br /&gt;
## Change Framework to .Net Framework 4.7.2.&lt;br /&gt;
## Click Create.&lt;br /&gt;
# In the left side bar, expand your solution, right click your project (mod name with &amp;quot;C#&amp;quot; icon) and click Properties.&lt;br /&gt;
## In the Properties window, select Configurations &amp;gt; Debug on the left and uncheck Debug Symbols.&lt;br /&gt;
## For both configurations, change the Output Path to ../../Assemblies.&lt;br /&gt;
## Click OK.&lt;br /&gt;
# Expand your project, right click References and click Add Reference.&lt;br /&gt;
## Click Add From.&lt;br /&gt;
## Browse to the folder with the RimWorld DLLs (Mac: /Users/[username]/Library/Application Support/Steam/steamapps/common/RimWorld/RimWorldMac.app/Contents/Resources/Data/Managed).&lt;br /&gt;
## Select both Assembly-CSharp.dll and UnityEngine.dll and click OK.&lt;br /&gt;
## Expand Assemblies under References. For both of the assemblies that you just added:&lt;br /&gt;
### Right click the assembly and click Properties.&lt;br /&gt;
### Uncheck &amp;quot;Copy Local&amp;quot; (you may need to scroll down) and click OK.&lt;br /&gt;
&lt;br /&gt;
You're done! Note that Rider has a built-in decompiler—to view the source of a RimWorld class or method, just right-click its name and click Go To &amp;gt; Definition.&lt;br /&gt;
&lt;br /&gt;
=Common issues=&lt;br /&gt;
* Can't find the option to target .NET Framework 4.7.2? It may require additional installation steps. In Visual Studio, Tools =&amp;gt; Get Tools and features =&amp;gt; Individual Components =&amp;gt; Select ''.NET Framework 4.7.2 development tools'' (or google installation instructions). Also make sure your project is a ''Class Library (.NET '''Framework''')''. Not .NET Core or .NET Standard.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* [[Modding Tutorials/Writing custom code|Writing custom code]] continues on setting up your solution.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding tutorials]]&lt;/div&gt;</summary>
		<author><name>Zeta18</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Modding_Tutorials/Setting_up_a_solution&amp;diff=132945</id>
		<title>Modding Tutorials/Setting up a solution</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Modding_Tutorials/Setting_up_a_solution&amp;diff=132945"/>
		<updated>2023-04-05T00:55:05Z</updated>

		<summary type="html">&lt;p&gt;Zeta18: Add section about Krafs RimRef&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BackToTutorials}}&lt;br /&gt;
{{Credit|[[User:Alistaire|Alistaire]]}}&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
* The manual option in this tutorial requires you to have [[Modding_Tutorials/Mod_folder_structure#The Source and Assemblies folders|set up a Source and Assemblies folder]] (the Visual Studio automatic option sets this up for you).&lt;br /&gt;
* You will want to have an IDE installed: [[Modding Tutorials/Recommended software#IDE's|Recommended IDE's]].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Setting up a solution=&lt;br /&gt;
Setting up can be different for different IDE's. Feel free to add '''''complete''''' instructions for your IDE of choice.&lt;br /&gt;
&lt;br /&gt;
===Visual Studio Community 2019===&lt;br /&gt;
''NOTE: Visual Studio 2019 is a rather heavy application (2-3 GB for basic functionality) but has a bit more functionality. Only Install if your computer can handle it! This tutorial is similar for other versions of Visual Studio.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Option 1 (Manual Method):====&lt;br /&gt;
# Create a new class library project&lt;br /&gt;
## Once loaded, go to File -&amp;gt; New -&amp;gt; Project...&lt;br /&gt;
## Type &amp;quot;Class Library (.NET Framework)&amp;quot; in the search bar, and select the C# option. [[File:ClassLibrary.png|200px|thumb|right|Installing the .NET framework]]&lt;br /&gt;
## Enter your project name.&lt;br /&gt;
## Choose a location, preferably:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;(RimWorldInstallFolder)/Mods/(YourModName)/Source&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Enter a solution name (optionally, tick &amp;quot;Place solution and project in the same directory&amp;quot;)&lt;br /&gt;
## Make sure Framework is &amp;quot;.NET Framework 4.7.2&amp;quot;&lt;br /&gt;
# In your project, set target framework and various other properties&lt;br /&gt;
## In your Solution Explorer (the panel usually located on the right), right click your project -&amp;gt; Properties (or expand your project and double click &amp;quot;Properties&amp;quot; with the wrench icon)&lt;br /&gt;
## ''Optional'': Under Application, change your Assembly and Namespace names to anything of your choice&lt;br /&gt;
## Go to Build -&amp;gt; Advanced... and set &amp;quot;Debugging information&amp;quot; to none&lt;br /&gt;
## Leave Advanced..., and set the Output Path to &amp;quot;..\..\Assemblies\&amp;quot; (Or wherever the Assemblies folder is)&lt;br /&gt;
# Add references to RimWorld code&lt;br /&gt;
## Expand your project in Solution Explorer. Then right click &amp;quot;References&amp;quot; -&amp;gt; Add Reference...&lt;br /&gt;
## Click Browse...&lt;br /&gt;
## Navigate towards &amp;lt;pre&amp;gt;RimWorldInstallPath/RimWorld******_Data/Managed&amp;lt;/pre&amp;gt; and select files: &amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;Assembly-CSharp.dll&amp;amp;#10;UnityEngine.CoreModule.dll&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Click &amp;quot;Add&amp;quot;&lt;br /&gt;
## Click &amp;quot;OK&amp;quot; to close the Reference Manager.&lt;br /&gt;
## Right-click on both Assembly-CSharp.dll and UnityEngine.dll and set Copy Local to False (Properties pane).&lt;br /&gt;
&lt;br /&gt;
====Option 2 (Using Nuget):====&lt;br /&gt;
This option uses [https://https://www.nuget.org/packages/Krafs.Rimworld.Ref Krafs Rimworld Reference Package] it is less involved than using reference assemblies and is the recommended method.&amp;lt;/br&amp;gt;&lt;br /&gt;
#Follow the above up till ''Add references to RimWorld code''&lt;br /&gt;
#Open Nuget Manager and type ''Rimworld''&lt;br /&gt;
#Add Krafs Rimworld Reference&lt;br /&gt;
#When prompted '''Select packagereference''' (this is required for the package to be add)&lt;br /&gt;
You can now continue as if you added the assemblies&lt;br /&gt;
Doing this makes your project portable, because RimRef can be downloaded by anyone and used from anywhere, unlike Rimworld's assemblies which can't be distributed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Option 3 (Using Cookiecutter):====&lt;br /&gt;
This option uses the [https://ludeon.com/forums/index.php?topic=39038.0 Rimworld Mod Development Cookiecutter] tool.&amp;lt;/br&amp;gt;&lt;br /&gt;
'''Note: despite being automatic and potentially taking away some of the tedium away, the environment it sets up is very particular and this tool is currently not recommended for newcomers.'''&amp;lt;/br&amp;gt;&lt;br /&gt;
''As of Jan 2019, the cookiecutter is set up for Windows development.  Linux/Mac people can still use it, but they will have a few errors to clean up.''&amp;lt;/br&amp;gt;&lt;br /&gt;
# Open Visual Studio&lt;br /&gt;
# Once loaded, go to File -&amp;gt; New -&amp;gt; From Cookiecutter...&lt;br /&gt;
# Search for ''rimworld''&lt;br /&gt;
# Double-click ''cookiecutter-rimworld-mod-development''&lt;br /&gt;
# Change the Template Options:&lt;br /&gt;
## ''Create To'' =&amp;gt; ''Your/Rimworld/Mod/Directory''&lt;br /&gt;
## ''mod_name''&lt;br /&gt;
## ''namespace_name'' (don't change if unsure)&lt;br /&gt;
## ''author'' =&amp;gt; ''your steam username''&lt;br /&gt;
## ''target_version'' =&amp;gt; current RW version (can leave blank for most up-to-date)&lt;br /&gt;
## ''in_game_description'' (not required, can change later in About-Release.xml)&lt;br /&gt;
## ''url'' (can leave blank for link to your Steam Workshop profile)&lt;br /&gt;
# Click &amp;quot;Create and Open Folder&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Sharpdevelop===&lt;br /&gt;
'''Caution:''' Sharpdevelop (or #develop) does NOT CURRENTLY allow for C# 6.0+ syntax without plugins and does NOT ALLOW for C# 7.0+ syntax at all. For your average project this does not matter, however some existing projects are already built entirely upon C# 6.0+ syntax which can not be compiled anymore in Sharpdevelop. Visual Studio does not have these issues and should be your go-to for compiling large projects such as Combat Extended.&lt;br /&gt;
&lt;br /&gt;
# Create a new class library project in your [[Modding Tutorials/Recommended software#IDE.27s|IDE of choice]];&lt;br /&gt;
## Go to File -&amp;gt; New -&amp;gt; Solution;&lt;br /&gt;
## Go to C# or .NET -&amp;gt; Library or Class Library (NOT portable);&lt;br /&gt;
## Enter a project name (solution name automatically updated);&lt;br /&gt;
## Choose a location, preferably:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;(RimWorldInstallFolder)/Mods/(YourModName)/Source&amp;lt;/pre&amp;gt;&lt;br /&gt;
## ''Optional'': Untick &amp;quot;Create a directory for solution&amp;quot;/&amp;quot;Create a project within the solution directory&amp;quot;,&lt;br /&gt;
# In your project, add references to Assembly-CSharp.dll and UnityEngine.dll:&lt;br /&gt;
## In your IDE project file browser, right-click the &amp;quot;References&amp;quot; folder and &amp;quot;Add reference&amp;quot;;&lt;br /&gt;
## Choose the &amp;quot;.NET Assembly Browser&amp;quot; tab and &amp;quot;Browse...&amp;quot;;&lt;br /&gt;
## Navigate towards &amp;lt;pre&amp;gt;RimWorld******/RimWorld******_Data/Managed&amp;lt;/pre&amp;gt; and select files: &amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;Assembly-CSharp.dll&amp;amp;#10;UnityEngine.CoreModule.dll&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Click &amp;quot;Open&amp;quot; then &amp;quot;OK&amp;quot;;&lt;br /&gt;
## In the References folder, right-click Assembly-CSharp -&amp;gt; Properties and change &amp;quot;Local copy&amp;quot; to False. Do the same for UnityEngine,&lt;br /&gt;
# In your project properties, change the target framework to .NET 4.7.2:&lt;br /&gt;
## In your IDE project file browser, right-click &amp;quot;(YourSolutionName)&amp;quot;;&lt;br /&gt;
## Choose Properties;&lt;br /&gt;
## Go to the &amp;quot;Compiling&amp;quot; tab, &amp;quot;Output&amp;quot;, &amp;quot;Target framework&amp;quot;, &amp;quot;Change&amp;quot; and choose &amp;quot;.NET Framework 4.7.2&amp;quot;,&lt;br /&gt;
# In your project properties, change the build events so only a single file is built:&lt;br /&gt;
## Go to the &amp;quot;Compiling&amp;quot; tab, &amp;quot;Output&amp;quot;, &amp;quot;Debug info&amp;quot; and choose &amp;quot;No debug information&amp;quot;;&lt;br /&gt;
## Right-click your .cs files -&amp;gt; Properties and change &amp;quot;Copy to output&amp;quot; (If you haven't resized the properties bar, this will be truncated to &amp;quot;Copy to out&amp;quot;) to Never,&lt;br /&gt;
# In your project properties, fix the output location to put the DLL in the Assemblies folder:&lt;br /&gt;
## Go to the &amp;quot;Compiling&amp;quot; tab, &amp;quot;Output&amp;quot;, &amp;quot;Output path&amp;quot; and change the output path to &amp;quot;..\..\Assemblies\&amp;quot;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Xamarin/MonoDevelop===&lt;br /&gt;
The setup is similar as the one above. A few special points to address:&lt;br /&gt;
# 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 .NET4.7.2 dlls.&lt;br /&gt;
# Make sure you uncheck &amp;quot;Use MSBuild build engine (recommended for this project type)&amp;quot; under project &amp;gt; options &amp;gt; build &amp;gt; general   (You might find this by right-clicking on your project - not solution - name and selecting options)&lt;br /&gt;
# Changing the framework to 4.7.2 can be found (for Linux anyway) in the same place.&lt;br /&gt;
&lt;br /&gt;
More detailed installation instructions for Linux can be found [https://blog.rubenwardy.com/2016/07/21/rimworld-setup-monodevelop/ here] and [https://spdskatr.github.io/RWModdingResources/mono-arch here]. Note that as of now (2021) these may be outdated, so if it doesn't work, you can try the steps described in the Mono section.&lt;br /&gt;
&lt;br /&gt;
===Mono===&lt;br /&gt;
On Linux and Mac(?) it is possible to use Mono regardless of IDE (from command line, or if your IDE/editor has build support).&lt;br /&gt;
# Install Mono (refer to your distribution's instructions);&lt;br /&gt;
# To build using .csproj files that other setups use, you need the ''dotnet'' tool, you can get it by installing the [https://dotnet.microsoft.com/download .NET SDK];&lt;br /&gt;
# If you're starting a new mod and want to use a .csproj file for compatibility with other modders, find e.g. a mod that has description pointing to its GitHub sources and copy from there;&lt;br /&gt;
# For building use a command like the following (substitute the proper .csproj file and 4.7.2 is the .NET version from the .csproj file):&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;FrameworkPathOverride=$(dirname $(which mono))/../lib/mono/4.7.2-api/ dotnet build &amp;lt;project file&amp;gt;.csproj /property:Configuration=Release&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If you get errors, it is necessary to edit the .csproj file:&lt;br /&gt;
## You may need to fix paths (point them to .dll files in RimWorld/RimWorld*_Data/Managed);&lt;br /&gt;
## See other setups above for other settings (those IDEs write those settings to the .csproj files);&lt;br /&gt;
&lt;br /&gt;
===Rider (good for Mac)===&lt;br /&gt;
JetBrains Rider is a great cross-platform C# IDE, but it isn't cheap. It's $140 for the first year, including perpetual access to that version (access to future updates gets cheaper, but it's still over $100/year). However, the Early Access versions are a bit unstable but free. They also offer free student licenses.&lt;br /&gt;
&lt;br /&gt;
# Open Rider and click New Solution in the welcome dialog.&lt;br /&gt;
## Click Class Library under .NET on the left. The option may a second to show up.&lt;br /&gt;
## Under Solution Name (and Project Name), enter the name of your mod.&lt;br /&gt;
## Set the Solution Directory to [your mod folder]/Source.&lt;br /&gt;
## Optionally check &amp;quot;put solution and project in the same directory.&amp;quot; This is probably a good idea.&lt;br /&gt;
## Change Framework to .Net Framework 4.7.2.&lt;br /&gt;
## Click Create.&lt;br /&gt;
# In the left side bar, expand your solution, right click your project (mod name with &amp;quot;C#&amp;quot; icon) and click Properties.&lt;br /&gt;
## In the Properties window, select Configurations &amp;gt; Debug on the left and uncheck Debug Symbols.&lt;br /&gt;
## For both configurations, change the Output Path to ../../Assemblies.&lt;br /&gt;
## Click OK.&lt;br /&gt;
# Expand your project, right click References and click Add Reference.&lt;br /&gt;
## Click Add From.&lt;br /&gt;
## Browse to the folder with the RimWorld DLLs (Mac: /Users/[username]/Library/Application Support/Steam/steamapps/common/RimWorld/RimWorldMac.app/Contents/Resources/Data/Managed).&lt;br /&gt;
## Select both Assembly-CSharp.dll and UnityEngine.dll and click OK.&lt;br /&gt;
## Expand Assemblies under References. For both of the assemblies that you just added:&lt;br /&gt;
### Right click the assembly and click Properties.&lt;br /&gt;
### Uncheck &amp;quot;Copy Local&amp;quot; (you may need to scroll down) and click OK.&lt;br /&gt;
&lt;br /&gt;
You're done! Note that Rider has a built-in decompiler—to view the source of a RimWorld class or method, just right-click its name and click Go To &amp;gt; Definition.&lt;br /&gt;
&lt;br /&gt;
=Common issues=&lt;br /&gt;
* Can't find the option to target .NET Framework 4.7.2? It may require additional installation steps. In Visual Studio, Tools =&amp;gt; Get Tools and features =&amp;gt; Individual Components =&amp;gt; Select ''.NET Framework 4.7.2 development tools'' (or google installation instructions). Also make sure your project is a ''Class Library (.NET '''Framework''')''. Not .NET Core or .NET Standard.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* [[Modding Tutorials/Writing custom code|Writing custom code]] continues on setting up your solution.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding tutorials]]&lt;/div&gt;</summary>
		<author><name>Zeta18</name></author>
	</entry>
</feed>