Difference between revisions of "Modding Tutorials"

From RimWorld Wiki
Jump to navigation Jump to search
(Update plague gun link)
(8 intermediate revisions by 3 users not shown)
Line 37: Line 37:
 
* [[Modding_Tutorials/Distribution|Distribution]]</br>
 
* [[Modding_Tutorials/Distribution|Distribution]]</br>
  
 +
==Must-knows==
 
* [[Modding_Tutorials/Modifying defs|Modifying Defs]]
 
* [[Modding_Tutorials/Modifying defs|Modifying Defs]]
 +
* [[Modding_Tutorials/Troubleshooting|Troubleshooting mods]]
  
 
==XML tutorials==
 
==XML tutorials==
Line 45: Line 47:
 
#* [[Modding Tutorials/Compatibility with defs|XML Def Compatibility]]
 
#* [[Modding Tutorials/Compatibility with defs|XML Def Compatibility]]
 
# In-depth XML Def tutorials
 
# In-depth XML Def tutorials
#* [[Modding Tutorials/Weapons Guns|Weapons_Guns.xml Explained]]
+
#* [[Modding Tutorials/ThingDef|ThingDef explained]]
 +
#* [[Modding Tutorials/Weapons Guns|Weapons_Guns.xml explained]]. Slightly dated.
 
# [[Modding Tutorials/PatchOperations|PatchOperations]], replace specific xml elements of core files while keeping the rest untampered. Uses xpath.
 
# [[Modding Tutorials/PatchOperations|PatchOperations]], replace specific xml elements of core files while keeping the rest untampered. Uses xpath.
  
Line 56: Line 59:
 
# [[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#
#* [[Modding_Tutorials/Injection|C# Injection]]
 
 
#* [[Modding_Tutorials/Modifying classes|Adding fields and methods to classes]]
 
#* [[Modding_Tutorials/Modifying classes|Adding fields and methods to classes]]
 
# Useful things:
 
# Useful things:
Line 69: Line 71:
 
#* [[Modding Tutorials/ExposeData|ExposeData]] - Save stuff
 
#* [[Modding Tutorials/ExposeData|ExposeData]] - Save stuff
 
#* [[Modding Tutorials/BigAssListOfUsefulClasses|The big ass list of useful classes]] - A non-exhaustive list of classes you'll use most
 
#* [[Modding Tutorials/BigAssListOfUsefulClasses|The big ass list of useful classes]] - A non-exhaustive list of classes you'll use most
 +
#* [[Modding Tutorials/GrammarResolver|Grammar Resolver]] - PAWN_objective, PAWN_possessive? Find out what it all means here.
 
#* [https://github.com/Mehni/ExampleJob/wiki ExampleJob] - Mehni's top to bottom breakdown of Jobs.
 
#* [https://github.com/Mehni/ExampleJob/wiki ExampleJob] - Mehni's top to bottom breakdown of Jobs.
  
Line 80: Line 83:
 
==Examples==
 
==Examples==
 
* [[Modding Tutorials/Assembly Modding Example|Assembly Modding]]
 
* [[Modding Tutorials/Assembly Modding Example|Assembly Modding]]
* [[Plague Gun/Introduction|The Plague Gun]] based on the Plague Gun tutorial by Jecrell, updated for 1.0. {{LudeonThread|33129}}.
+
* [[Plague Gun (1.1)|The Plague Gun]] tutorial originally by Jecrell, updated to 1.1+.
 +
 
 +
===Dangerously Outdated===
 +
* https://rimworldwiki.com/wiki/Modding_Tutorials/Smelter
 +
* https://rimworldwiki.com/wiki/Modding_Tutorials/Items
 +
* https://rimworldwiki.com/wiki/Modding_Tutorials/Weapons
 +
* [[Plague Gun/Introduction|The Plague Gun]] based on the Plague Gun tutorial by Jecrell, updated for 1.0. {{LudeonThread|33219}}.
 
# [[Plague Gun/Required Items|Required Items]]
 
# [[Plague Gun/Required Items|Required Items]]
 
# [[Plague Gun/XML Stage|XML Stage]]
 
# [[Plague Gun/XML Stage|XML Stage]]
Line 87: Line 96:
 
# [[Plague Gun/Csharp Coding|C# Coding]]
 
# [[Plague Gun/Csharp Coding|C# Coding]]
 
# [[Plague Gun/Localisation|Localisation]]
 
# [[Plague Gun/Localisation|Localisation]]
 
===Dangerously Outdated===
 
* https://rimworldwiki.com/wiki/Modding_Tutorials/Smelter
 
* https://rimworldwiki.com/wiki/Modding_Tutorials/Items
 
* https://rimworldwiki.com/wiki/Modding_Tutorials/Weapons
 
  
 
==See also==
 
==See also==

Revision as of 23:39, 20 October 2020

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. While most of this wiki was updated for 1.0, 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

Must-knows

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:

Art Tutorials



Examples

Dangerously Outdated

  1. Required Items
  2. XML Stage
  3. Connecting XML and C#
  4. C# Assembly Setup
  5. C# Coding
  6. Localisation

See also