Difference between revisions of "Modding Tutorials"

From RimWorld Wiki
Jump to navigation Jump to search
m (→‎C# tutorials: make link to actual name)
(Update plague gun link)
(29 intermediate revisions by 4 users not shown)
Line 7: Line 7:
 
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.
 
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, this collection of tutorials has been written in hopes that more players will know how to modify RimWorld and make mods that further broaden horizons and make the game appealing to more audiences despite its early state.
+
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.  
  
==Table of contents==
+
-----
  
===Introduction===
+
==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==
 
# [[Modding Tutorials/First Steps|First Steps and Some Links]]
 
# [[Modding Tutorials/First Steps|First Steps and Some Links]]
 
# [[Modding Tutorials/Essence| Essence of Modding]]
 
# [[Modding Tutorials/Essence| Essence of Modding]]
# [[Installing mods|Installing Mods]]
 
 
# [[Modding Tutorials/Folder structure|Exploring the Folder Structure]]
 
# [[Modding Tutorials/Folder structure|Exploring the Folder Structure]]
 
# [[Modding Tutorials/Mod folder structure|Mod Folder Structure]]
 
# [[Modding Tutorials/Mod folder structure|Mod Folder Structure]]
#* [[Modding Tutorials/About folder|About folder]]
+
#* [[Modding Tutorials/Mod folder structure#The About folder|About folder]]
#* [[Modding Tutorials/Defs folder|Defs folder]]
+
#* [[Modding Tutorials/Mod folder structure#The Defs folder|Defs folder]]
#* [[Modding Tutorials/Languages folder|Languages folder]]
+
#* [[Modding Tutorials/Mod folder structure#The Source and Assemblies folders|Assemblies folder]]
#* [[Modding Tutorials/Textures folder|Textures folder]]
+
#* [[Modding Tutorials/Mod folder structure#The Languages folder|Languages folder]]
#* [[Modding Tutorials/Sounds folder|Sounds folder]]
+
#* [[Modding Tutorials/Mod folder structure#The Textures and Sounds folders|Textures folder]]
 +
#* [[Modding Tutorials/Mod folder structure#The Textures and Sounds folders|Sounds folder]]
 +
#* [[Modding Tutorials/Mod folder structure#The Patches folder|Patches folder]]
 
# [[Modding Tutorials/Recommended software|Recommended Software]]
 
# [[Modding Tutorials/Recommended software|Recommended Software]]
  
===General modding===
+
==General modding==
  
 
* [[Modding Tutorials/Testing mods|Testing Mods]]
 
* [[Modding Tutorials/Testing mods|Testing Mods]]
** [[Modding Tutorials/Development mode|Development Mode]]
+
** [[Modding Tutorials/Testing mods#Development mode|Development Mode]]
 
* [[Modding Tutorials/Sounds|Adding and Testing Sounds]]
 
* [[Modding Tutorials/Sounds|Adding and Testing Sounds]]
 
* [[Modding Tutorials/Assets|Decompiling Texture/Sound Assets]]
 
* [[Modding Tutorials/Assets|Decompiling Texture/Sound Assets]]
 +
* [[Modding Tutorials/Compatibility|Compatibility]]
 +
* [[Modding_Tutorials/Distribution|Distribution]]</br>
  
===XML tutorials===
+
==Must-knows==
 +
* [[Modding_Tutorials/Modifying defs|Modifying Defs]]
 +
* [[Modding_Tutorials/Troubleshooting|Troubleshooting mods]]
 +
 
 +
==XML tutorials==
  
 
# [[Modding Tutorials/XML file structure|XML File Structure]]
 
# [[Modding Tutorials/XML file structure|XML File Structure]]
 
# [[Modding Tutorials/XML Defs|Introduction to XML Defs]]
 
# [[Modding Tutorials/XML Defs|Introduction to XML Defs]]
 
#* [[Modding Tutorials/Compatibility with defs|XML Def Compatibility]]
 
#* [[Modding Tutorials/Compatibility with defs|XML Def Compatibility]]
#* [[Modding Tutorials/Modifying defs|Modifying defs]]
 
 
# In-depth XML Def tutorials
 
# In-depth XML Def tutorials
#* [[Modding Tutorials/Weapons Guns|Weapons_Guns.xml Explained]]
+
#* [[Modding Tutorials/ThingDef|ThingDef explained]]
# (Added in Alpha 17) [[Modding Tutorials/PatchOperations|PatchOperations]], replace specific xml elements of core files while keeping the rest untampered
+
#* [[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.
  
===C# tutorials===
+
==C# tutorials==
 
# [[Modding_Tutorials/Setting up a solution|Setting up]]
 
# [[Modding_Tutorials/Setting up a solution|Setting up]]
 +
# [[Modding_Tutorials/Hello World|Hello World]]
 
# [[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|Modifying Defs]] and 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, replacing C# code injection to reduce Mod Conflicts
+
# The wonderful things you will want to do with C#
# [[Modding_Tutorials/Compatibility_with_DLLs|Mod DLL Compatibility]]
+
#* [[Modding_Tutorials/Modifying classes|Adding fields and methods to classes]]
#* [[Modding_Tutorials/Injection|C# Injection]]
+
# Useful things:
# [[Modding_Tutorials/Distribution|Distribution]]<br/><br/>
+
#* [[Modding Tutorials/ModSettings|Mod settings]] - Add settings to your mod
''Examples:''
+
#* [[Modding Tutorials/DefModExtension|Def mod extensions]] - Add (custom) fields to Defs
 +
#* [[Modding Tutorials/Custom Comp Classes|Custom Comp Classes]] - A quick overview of what types of Comps there are, and what they're suited for.
 +
#** [[Modding_Tutorials/ThingComp|ThingComp]] - Learn all there is to know about ThingComps.
 +
#** [[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/TweakValue|TweakValues]] - Change values on the fly (handy for quick iteration!)
 +
#* [[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/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.
 +
 
 +
==Art Tutorials==
 +
* [https://spdskatr.github.io/RWModdingResources/artstyle Artstyle] - Officially unofficial guide to RimWorld's Artstyle
 +
* [https://www.reddit.com/r/RimWorld/comments/5tn1pi/rimworldstyle_sprite_tutorials/ Ekksu's guide to creating RimWorld animals]
 +
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1114369188 ChickenPlucker's guide to creating apparel]
 +
* [https://github.com/seraphile/rimshare/wiki/Colouring-in-Images Seraphile's guide to masks]
 +
 
 +
<br/><br/>
 +
==Examples==
 
* [[Modding Tutorials/Assembly Modding Example|Assembly Modding]]
 
* [[Modding Tutorials/Assembly Modding Example|Assembly Modding]]
 +
* [[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/XML Stage|XML Stage]]
 +
# [[Plague Gun/Connecting XML and Csharp|Connecting XML and C#]]
 +
# [[Plague Gun/Csharp Assembly Setup|C# Assembly Setup]]
 +
# [[Plague Gun/Csharp Coding|C# Coding]]
 +
# [[Plague Gun/Localisation|Localisation]]
  
 
==See also==
 
==See also==
 +
* [https://github.com/roxxploxx/RimWorldModGuide/wiki Roxxploxx's set of modding tutorials]
 +
* [https://spdskatr.github.io/RWModdingResources/ RimWorld Modding Resources - A hub for guides, modders, practical tips]
  
 
[[Category:Modding]]
 
[[Category:Modding]]
 
[[Category:Modding tutorials]]
 
[[Category:Modding tutorials]]

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