Difference between revisions of "Modding Tutorials/Plague Gun (1.1)"

From RimWorld Wiki
Jump to navigation Jump to search
(Copy stuff in from my sandbox)
 
(Start adding content from Plague Gun/XML Stage)
Line 31: Line 31:
  
 
For more detailed recommendations, see [[Modding Tutorials/Recommended software|here]].
 
For more detailed recommendations, see [[Modding Tutorials/Recommended software|here]].
 +
 +
== XML Stage ==
 +
 +
In this stage we will set up the mod and create XML files which add our things to the database.
 +
 +
# Create a mod folder.{{br}}<small>RimWorld>Mods>PlagueGun</small>
 +
#* Go to your RimWorld's base folder. For myself, that is D<nowiki>:</nowiki>\SteamLibrary\steamapps\common\RimWorld\. Others may find it in C<nowiki>:</nowiki>\Program Files (x86)\Steam\steamapps\common\RimWorld or a custom directory.
 +
#* Go into the Mods folder.
 +
#* Make a new folder with our mod's title: ''PlagueGun''
 +
 +
# Inside ''PlagueGun'', make an ''About'' folder.{{br}}<small>RimWorld>Mods>PlagueGun>About</small>
 +
 +
# Inside the ''About'' folder, make a new text file and rename it About.xml.{{br}}<small>RimWorld>Mods>PlagueGun>About>About.xml</small>
 +
#* You will need a good text editor to make a proper XML file -- see [[#Required Items|required items]]. I always make a .txt file first and change it to .xml. If you can't rename your file's type, make sure you have filetypes visible in your operating system's file view settings.
 +
#* About.xml is the file that shows your mod in the mod list inside the RimWorld game. It is also used when creating a Workshop upload for Steam.
 +
#* At the top of an XML file, always include this for RimWorld.<source lang = "xml"><?xml version="1.0" encoding="utf-8"?></source> ''Note: the'' version '' tag should always be "1.0". It has no relation with the current RimWorld version.''
 +
#* Then add the MetaData tags for the Workshop and in-game Mod list.<source lang ="xml"><ModMetaData>
 +
  <name>Test Mod - Plague Gun</name> <!-- The name of your mod in the mod list -->
 +
  <author>YourNameHere</author>
 +
  <packageId>YourNameHere.PlagueGun</packageId> <!-- a unique identifier for your mod. Must contain only a-z and periods, no spaces. -->
 +
  <supportedVersions> <!-- the version(s) your mod supports -->
 +
    <li>1.1</li>
 +
  </supportedVersions>
 +
  <description>This mod adds a plague gun, a weapon that has a chance to give your enemies the plague.\n\nFor version 1.1.</description>
 +
</ModMetaData>
 +
</source>
 +
#* Save the file.

Revision as of 20:04, 20 May 2020

This tutorial is a rewrite of the original by Jecrell (Thread), updated to 1.1 by dninemfive.

Introduction

In this tutorial we will be using most of the tools available to a Rimworld modder to create a custom weapon, known as the Plague Gun.

This weapon will, when its shots hit a living target, have a chance to apply the Plague hediff ("health difference") to that target.

To do this, we will create XML `ThingDefs` for the gun and projectile, create a C# assembly which determines what happens when the projectile hits a target, and link that behavior back to the XML.

This tutorial will assume a basic familiarity with XML and C# syntax. It should be simple enough to follow if you're only a beginner.

If you have no XML or C# experience, there are good tutorials for XML here and C# here.

The Completed Mod

TODO: fork and update the repo, link here.

Required Items

Make sure to have the following installed, at least one per row:

Notepad++ or Atom orTemplate:BrSublimetext or VSCode Use any text editor that allows you to edit XML files and use "Find in Files" for referencing.
Visual Studio Community Use this or any other C# compiler to turn scripts into .dll files that RimWorld can use.
dnSpy or ILSpy This is for referencing the game's decompiled C# scripts.

For more detailed recommendations, see here.

XML Stage

In this stage we will set up the mod and create XML files which add our things to the database.

  1. Create a mod folder.Template:BrRimWorld>Mods>PlagueGun
    • Go to your RimWorld's base folder. For myself, that is D:\SteamLibrary\steamapps\common\RimWorld\. Others may find it in C:\Program Files (x86)\Steam\steamapps\common\RimWorld or a custom directory.
    • Go into the Mods folder.
    • Make a new folder with our mod's title: PlagueGun
  1. Inside PlagueGun, make an About folder.Template:BrRimWorld>Mods>PlagueGun>About
  1. Inside the About folder, make a new text file and rename it About.xml.Template:BrRimWorld>Mods>PlagueGun>About>About.xml
    • You will need a good text editor to make a proper XML file -- see required items. I always make a .txt file first and change it to .xml. If you can't rename your file's type, make sure you have filetypes visible in your operating system's file view settings.
    • About.xml is the file that shows your mod in the mod list inside the RimWorld game. It is also used when creating a Workshop upload for Steam.
    • At the top of an XML file, always include this for RimWorld.
      <?xml version="1.0" encoding="utf-8"?>
      Note: the version tag should always be "1.0". It has no relation with the current RimWorld version.
    • Then add the MetaData tags for the Workshop and in-game Mod list.
      <ModMetaData>
        <name>Test Mod - Plague Gun</name> <!-- The name of your mod in the mod list -->
        <author>YourNameHere</author>
        <packageId>YourNameHere.PlagueGun</packageId> <!-- a unique identifier for your mod. Must contain only a-z and periods, no spaces. -->
        <supportedVersions> <!-- the version(s) your mod supports -->
          <li>1.1</li>
        </supportedVersions>
        <description>This mod adds a plague gun, a weapon that has a chance to give your enemies the plague.\n\nFor version 1.1.</description>
      </ModMetaData>
    • Save the file.