Difference between revisions of "Modding Tutorials"

From RimWorld Wiki
Jump to navigation Jump to search
Line 35: Line 35:
 
* [[Modding Tutorials/Assets|Decompiling Texture/Sound Assets]]
 
* [[Modding Tutorials/Assets|Decompiling Texture/Sound Assets]]
 
* [[Modding Tutorials/Compatibility|Compatibility]]
 
* [[Modding Tutorials/Compatibility|Compatibility]]
* [[Modding_Tutorials/Distribution|Distribution]]
+
* [[Modding_Tutorials/Distribution|Distribution]]</br>
 +
 
 +
* [[Modding_Tutorials/Modifying defs|Modifying Defs]]
 +
 
  
 
===XML tutorials===
 
===XML tutorials===
Line 51: Line 54:
 
# [[Modding_Tutorials/Decompiling source code|Decompiling Source Code]]
 
# [[Modding_Tutorials/Decompiling source code|Decompiling Source Code]]
 
# [[Modding_Tutorials/Writing custom code|Writing Custom Code]]
 
# [[Modding_Tutorials/Writing custom code|Writing Custom Code]]
# [[Modding_Tutorials/Def classes|Introduction to Def Classes]]
+
# [[Modding Tutorials/Linking XML and C#|Linking XML and C#]]
#* [[Modding_Tutorials/Modifying defs|Def Class Compatibility]]
 
 
# [[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
 
# [[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
 
# The wonderful things you will want to do with C#
 
# The wonderful things you will want to do with C#
Line 63: Line 65:
 
#** [[Modding_Tutorials/ThingComp|ThingComp]] - Learn all there is to know about ThingComps.
 
#** [[Modding_Tutorials/ThingComp|ThingComp]] - Learn all there is to know about ThingComps.
 
#** [[Modding Tutorials/GameComponent|Components]] - GameComponents, WorldComponents, and MapComponents
 
#** [[Modding Tutorials/GameComponent|Components]] - GameComponents, WorldComponents, and MapComponents
 +
#* [[Modding_Tutorials/Def classes|Introduction to Def Classes]]
 
#* [[Modding_Tutorials/Compatibility_with_DLLs|Using Harmony to optionally patch other mods for the sake of compatibility]]
 
#* [[Modding_Tutorials/Compatibility_with_DLLs|Using Harmony to optionally patch other mods for the sake of compatibility]]
 
#* [[Modding Tutorials/TweakValues|TweakValues]] - Change values on the fly (handy for quick iteration!)
 
#* [[Modding Tutorials/TweakValues|TweakValues]] - Change values on the fly (handy for quick iteration!)

Revision as of 13:37, 5 February 2019

Basics Menus Game Creation Gameplay Pawns Plants Resources Gear Mods
Modding Modding Tutorials

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.

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. Some information you find may be outdated.


What's a mod?

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.

Introduction to modding

  1. First Steps and Some Links
  2. Essence of Modding
  3. Exploring the Folder Structure
  4. Mod Folder Structure
  5. Recommended Software

General modding


XML tutorials

  1. XML File Structure
  2. Introduction to XML Defs
  3. In-depth XML Def tutorials
  4. PatchOperations, replace specific xml elements of core files while keeping the rest untampered. Uses xpath.

C# tutorials

  1. Setting up
  2. Hello World
  3. Decompiling Source Code
  4. Writing Custom Code
  5. Linking XML and C#
  6. Alter Code at Runtime with Harmony - this is a best practice for modifying game code, replacing C# code injection to reduce Mod Conflicts
  7. The wonderful things you will want to do with C#
  8. Useful things:



Examples:

See also