Difference between revisions of "Modding Tutorials"

From RimWorld Wiki
Jump to navigation Jump to search
(Update plague gun link)
(47 intermediate revisions by 11 users not shown)
Line 1: Line 1:
 
<!--Top Nav Box-->
 
<!--Top Nav Box-->
{| align=center
 
! {{MainSection_Nav}}
 
|}
 
 
{| align=center
 
{| align=center
 
| {{Mods_Nav}}
 
| {{Mods_Nav}}
Line 10: 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.
 +
 
 +
-----
 +
 
 +
==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]].
  
DONT FIX PAGES!
+
==Introduction to modding==
DONT FIX PAGES!
+
# [[Modding Tutorials/First Steps|First Steps and Some Links]]
DONT FIX PAGES!
+
# [[Modding Tutorials/Essence| Essence of Modding]]
DONT FIX PAGES!
+
# [[Modding Tutorials/Folder structure|Exploring the Folder Structure]]
DONT FIX PAGES!
+
# [[Modding Tutorials/Mod folder structure|Mod Folder Structure]]
DONT FIX PAGES!
+
#* [[Modding Tutorials/Mod folder structure#The About folder|About folder]]
DONT FIX PAGES!
+
#* [[Modding Tutorials/Mod folder structure#The Defs folder|Defs folder]]
DONT FIX PAGES!
+
#* [[Modding Tutorials/Mod folder structure#The Source and Assemblies folders|Assemblies folder]]
DONT FIX PAGES!
+
#* [[Modding Tutorials/Mod folder structure#The Languages folder|Languages folder]]
DONT FIX PAGES!
+
#* [[Modding Tutorials/Mod folder structure#The Textures and Sounds folders|Textures folder]]
DONT FIX PAGES!
+
#* [[Modding Tutorials/Mod folder structure#The Textures and Sounds folders|Sounds folder]]
DONT FIX PAGES!
+
#* [[Modding Tutorials/Mod folder structure#The Patches folder|Patches folder]]
DONT FIX PAGES!
+
# [[Modding Tutorials/Recommended software|Recommended Software]]
DONT FIX PAGES!
+
 
DONT FIX PAGES!
+
==General modding==
DONT FIX PAGES!
+
 
DONT FIX PAGES!
+
* [[Modding Tutorials/Testing mods|Testing Mods]]
DONT FIX PAGES!
+
** [[Modding Tutorials/Testing mods#Development mode|Development Mode]]
DONT FIX PAGES!
+
* [[Modding Tutorials/Sounds|Adding and Testing Sounds]]
DONT FIX PAGES!
+
* [[Modding Tutorials/Assets|Decompiling Texture/Sound Assets]]
DONT FIX PAGES!
+
* [[Modding Tutorials/Compatibility|Compatibility]]
DONT FIX PAGES!
+
* [[Modding_Tutorials/Distribution|Distribution]]</br>
DONT FIX PAGES!
+
 
DONT FIX PAGES!
+
==Must-knows==
DONT FIX PAGES!
+
* [[Modding_Tutorials/Modifying defs|Modifying Defs]]
DONT FIX PAGES!
+
* [[Modding_Tutorials/Troubleshooting|Troubleshooting mods]]
DONT FIX PAGES!
+
 
DONT FIX PAGES!
+
==XML tutorials==
DONT FIX PAGES!
+
 
DONT FIX PAGES!
+
# [[Modding Tutorials/XML file structure|XML File Structure]]
DONT FIX PAGES!
+
# [[Modding Tutorials/XML Defs|Introduction to XML Defs]]
DONT FIX PAGES!
+
#* [[Modding Tutorials/Compatibility with defs|XML Def Compatibility]]
DONT FIX PAGES!
+
# In-depth XML Def tutorials
DONT FIX PAGES!
+
#* [[Modding Tutorials/ThingDef|ThingDef explained]]
DONT FIX PAGES!
+
#* [[Modding Tutorials/Weapons Guns|Weapons_Guns.xml explained]]. Slightly dated.
DONT FIX PAGES!
+
# [[Modding Tutorials/PatchOperations|PatchOperations]], replace specific xml elements of core files while keeping the rest untampered. Uses xpath.
DONT FIX PAGES!
+
 
DONT FIX PAGES!
+
==C# tutorials==
DONT FIX PAGES!
+
# [[Modding_Tutorials/Setting up a solution|Setting up]]
DONT FIX PAGES!
+
# [[Modding_Tutorials/Hello World|Hello World]]
DONT FIX PAGES!
+
# [[Modding_Tutorials/Decompiling source code|Decompiling Source Code]]
DONT FIX PAGES!
+
# [[Modding_Tutorials/Writing custom code|Writing Custom Code]]
DONT FIX PAGES!
+
# [[Modding Tutorials/Linking XML and C#|Linking XML and C#]]
DONT FIX PAGES!
+
# [[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
DONT FIX PAGES!
+
# The wonderful things you will want to do with C#
DONT FIX PAGES!
+
#* [[Modding_Tutorials/Modifying classes|Adding fields and methods to classes]]
DONT FIX PAGES!
+
# Useful things:
DONT FIX PAGES!
+
#* [[Modding Tutorials/ModSettings|Mod settings]] - Add settings to your mod
DONT FIX PAGES!
+
#* [[Modding Tutorials/DefModExtension|Def mod extensions]] - Add (custom) fields to Defs
DONT FIX PAGES!
+
#* [[Modding Tutorials/Custom Comp Classes|Custom Comp Classes]] - A quick overview of what types of Comps there are, and what they're suited for.
DONT FIX PAGES!
+
#** [[Modding_Tutorials/ThingComp|ThingComp]] - Learn all there is to know about ThingComps.
DONT FIX PAGES!
+
#** [[Modding Tutorials/GameComponent|Components]] - GameComponents, WorldComponents, and MapComponents
DONT FIX PAGES!
+
#* [[Modding_Tutorials/Def classes|Introduction to Def Classes]]
DONT FIX PAGES!
+
#* [[Modding_Tutorials/Compatibility_with_DLLs|Using Harmony to optionally patch other mods for the sake of compatibility]]
DONT FIX PAGES!  
+
#* [[Modding Tutorials/TweakValue|TweakValues]] - Change values on the fly (handy for quick iteration!)
DONT FIX PAGES!
+
#* [[Modding Tutorials/ExposeData|ExposeData]] - Save stuff
DONT FIX PAGES!
+
#* [[Modding Tutorials/BigAssListOfUsefulClasses|The big ass list of useful classes]] - A non-exhaustive list of classes you'll use most
DONT FIX PAGES!
+
#* [[Modding Tutorials/GrammarResolver|Grammar Resolver]] - PAWN_objective, PAWN_possessive? Find out what it all means here.
DONT FIX PAGES!
+
#* [https://github.com/Mehni/ExampleJob/wiki ExampleJob] - Mehni's top to bottom breakdown of Jobs.
DONT FIX PAGES!
+
 
DONT FIX PAGES!
+
==Art Tutorials==
DONT FIX PAGES!
+
* [https://spdskatr.github.io/RWModdingResources/artstyle Artstyle] - Officially unofficial guide to RimWorld's Artstyle
DONT FIX PAGES!
+
* [https://www.reddit.com/r/RimWorld/comments/5tn1pi/rimworldstyle_sprite_tutorials/ Ekksu's guide to creating RimWorld animals]
DONT FIX PAGES!
+
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1114369188 ChickenPlucker's guide to creating apparel]
DONT FIX PAGES!
+
* [https://github.com/seraphile/rimshare/wiki/Colouring-in-Images Seraphile's guide to masks]
DONT FIX PAGES!
+
 
DONT FIX PAGES!
+
<br/><br/>
DONT FIX PAGES!
+
==Examples==
DONT FIX PAGES!
+
* [[Modding Tutorials/Assembly Modding Example|Assembly Modding]]
DONT FIX PAGES!
+
* [[Plague Gun (1.1)|The Plague Gun]] tutorial originally by Jecrell, updated to 1.1+.
DONT FIX PAGES!
+
 
DONT FIX PAGES!
+
===Dangerously Outdated===
DONT FIX PAGES!
+
* https://rimworldwiki.com/wiki/Modding_Tutorials/Smelter
DONT FIX PAGES!
+
* https://rimworldwiki.com/wiki/Modding_Tutorials/Items
DONT FIX PAGES!
+
* https://rimworldwiki.com/wiki/Modding_Tutorials/Weapons
DONT FIX PAGES!
+
* [[Plague Gun/Introduction|The Plague Gun]] based on the Plague Gun tutorial by Jecrell, updated for 1.0. {{LudeonThread|33219}}.
DONT FIX PAGES!
+
# [[Plague Gun/Required Items|Required Items]]
DONT FIX PAGES!
+
# [[Plague Gun/XML Stage|XML Stage]]
DONT FIX PAGES!
+
# [[Plague Gun/Connecting XML and Csharp|Connecting XML and C#]]
DONT FIX PAGES!
+
# [[Plague Gun/Csharp Assembly Setup|C# Assembly Setup]]
DONT FIX PAGES!
+
# [[Plague Gun/Csharp Coding|C# Coding]]
DONT FIX PAGES!
+
# [[Plague Gun/Localisation|Localisation]]
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
DONT FIX PAGES!
 
  
 
==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 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