Modding Tutorials/Plague Gun (1.1)

From RimWorld Wiki
Revision as of 20:04, 20 May 2020 by Dninemfive (talk | contribs) (Start adding content from Plague Gun/XML Stage)
Jump to navigation Jump to search

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.