Difference between revisions of "RimWorld 1.3: XML Mod Creation"
VibeCheque (talk | contribs) m (added a note explaining what "<!-- xxxxx -->" means in this context) |
VibeCheque (talk | contribs) m |
||
Line 39: | Line 39: | ||
</source> | </source> | ||
Use the comments on the code above to enter your own information inside the tags to complete the file. | Use the comments on the code above to enter your own information inside the tags to complete the file. | ||
− | <br> ''Note: any text inside | + | <br> ''Note: any text inside<source><!-- --></source>is not read by the program. It denotes a note left in the file. Notes are used to help organize/ identify parts of code whose function may not be apparent by looking at the code. |
<br> Our <code>About.xml</code> file is now complete. | <br> Our <code>About.xml</code> file is now complete. | ||
* <code>Preview.jpg</code>/<code>Preview.jpeg</code> The thumbnail image for your mod. Maximum resolution of 640x360 pixels and maximum file size of 1mb. | * <code>Preview.jpg</code>/<code>Preview.jpeg</code> The thumbnail image for your mod. Maximum resolution of 640x360 pixels and maximum file size of 1mb. |
Revision as of 16:15, 29 April 2022
This tutorial is an XML only version of Plague Gun (1.1) updated to RimWorld v1.3
Introduction
Mods are an integral part of the RimWorld experience, mods allow the user to customize their individual experience in far more detail than the developer ever could. However, their is little RimWorld modding information available to the average person, and the few tutorials available are (for the most part) made using older versions of software. The aim of this tutorial is to provide an absolute beginner to coding with the information and tools to begin creating their own mods. After completing this tutorial you will know how to create new items and modify existing ones, as well as have a basic understanding of RimWorld XML file structure.
Required Items
This tutorial assumes you have the following software installed.
- Windows 10.
- Notepad++ v8.3.3. For help with install and set up, click here.
- RimWorld v1.3 installed through Steam.
Note: you may have trouble following this tutorial if you are not using the aforementioned software.
Tutorial
Now we will begin working on the mod.
Set Up
- Locate your "RimWorld" folder.
- Find your "RimWorld" folder by right-clicking the game in your Steam library, then hover your cursor over "Manage" and click "Browse local files".
- By default, it will be located at
C:\Program Files (x86)\Steam\steamapps\common\RimWorld
- By default, it will be located at
- Inside
RimWorld
, Locate theMods
folder or create one if it doesn't already exist.
- Find your "RimWorld" folder by right-clicking the game in your Steam library, then hover your cursor over "Manage" and click "Browse local files".
- Inside the
Mods
folder, create a new folder and name itMyFirstMod
- Inside the
MyFirstMod
folder, create 2 new folders,About
andDefs
About
Folder
The About
folder tells both RimWorld and Steam important details about the mod, (ex. mod name, author, etc.). It contains 2 files, About.xml
and Preview.jpg
/Preview.jpeg
- Creating
About.xml
:
- Open Notepad++, and navigate to the "Language" tab at the top of the window. Find "XML" in the list and select it.
- Save the file in the
About
folder asAbout.xml
. Make sure you have "File name extensions" enabled in the "View" tab of File Explorer. - Add the following code to
About.xml
,
<?xml version="1.0" encoding="utf-8"?>
This line of code goes at the top of every XML file you create. It gives RimWorld information about how to read the file.
Note: the version tag should always be "1.0". It has no relation to what version of the game the mod is made for.
Then add:
<ModMetaData> <name>Mod</name> <!-- The name of your mod in the mod list --> <author>VibeCheque</author> <!-- Usually set to your Steam name --> <packageId>VibeCheque.Mod</packageId> <!-- a unique identifier for your mod. Must contain only a-z and periods, no spaces. --> <supportedVersions> <!-- the version(s) your mod supports in X.Y format. 1(X).3(Y) --> <li>1.3</li> </supportedVersions> <description>What the mod does.</description> <!-- enter information describing purpose of mod --> </ModMetaData>
Use the comments on the code above to enter your own information inside the tags to complete the file.
Note: any text inside
<!-- -->
is not read by the program. It denotes a note left in the file. Notes are used to help organize/ identify parts of code whose function may not be apparent by looking at the code.
Our About.xml
file is now complete.
Preview.jpg
/Preview.jpeg
The thumbnail image for your mod. Maximum resolution of 640x360 pixels and maximum file size of 1mb.
Defs
Folder
Defs
, short for definitions are like blueprints for in-game objects. Instead of using hidden C# code, RimWorld will look up an XML Def and copy it to the game world. For the purpose of this tutorial we only need 1 def file, Gun_Revolver
- Creating
Gun_Revolver
:
- Inside
Defs
folder, create a new folder calledThingDefs_Misc
- Inside
ThingDefs_Misc
, create a new folder calledWeapons
- Open Notepad++, and navigate to the "Language" tab at the top of the window. Find "XML" in the list and select it.
- Save the file in the
Weapons
folder asGun_Revolver.xml
. Make sure you have "File name extensions" enabled in the "View" tab of File Explorer.Gun_revolver.xml
will contain the blueprints (ThingDefs) for our new gun and bullets. - Add the following code to
Gun_Revolver.xml
,
Note: The file is only called Gun_Revolver.xml
for tutorial purposes, feel free to rename.
<?xml version="1.0" encoding="utf-8"?> <Defs> </Defs>
Next we will copy the vanilla revolver and revolver bullet from RimWorld\Data\Core\Defs\ThingDefs_Misc\Weapons\RangedIndustrial.xml
and paste it into Gun_Revolver.xml
It should look like this:
<Defs> <ThingDef ParentName="BaseBullet"> <defName>Bullet_Revolver</defName> <label>revolver bullet</label> <graphicData> <texPath>Things/Projectile/Bullet_Small</texPath> <graphicClass>Graphic_Single</graphicClass> </graphicData> <projectile> <damageDef>Bullet</damageDef> <damageAmountBase>12</damageAmountBase> <stoppingPower>1</stoppingPower> <speed>55</speed> </projectile> </ThingDef> <ThingDef ParentName="BaseHumanMakeableGun"> <defName>Gun_Revolver</defName> <label>revolver</label> <description>An ancient pattern double-action revolver. It's not very powerful, but has a decent range for a pistol and is quick on the draw.</description> <graphicData> <texPath>Things/Item/Equipment/WeaponRanged/Revolver</texPath> <graphicClass>Graphic_Single</graphicClass> </graphicData> <uiIconScale>1.4</uiIconScale> <soundInteract>Interact_Revolver</soundInteract> <thingSetMakerTags><li>RewardStandardQualitySuper</li></thingSetMakerTags> <statBases> <WorkToMake>4000</WorkToMake> <Mass>1.4</Mass> <AccuracyTouch>0.80</AccuracyTouch> <AccuracyShort>0.75</AccuracyShort> <AccuracyMedium>0.45</AccuracyMedium> <AccuracyLong>0.35</AccuracyLong> <RangedWeapon_Cooldown>1.6</RangedWeapon_Cooldown> </statBases> <weaponTags> <li>SimpleGun</li> <li>Revolver</li> </weaponTags> <weaponClasses> <li>RangedLight</li> </weaponClasses> <costList> <Steel>30</Steel> <ComponentIndustrial>2</ComponentIndustrial> </costList> <recipeMaker> <skillRequirements> <Crafting>3</Crafting> </skillRequirements> </recipeMaker> <verbs> <li> <verbClass>Verb_Shoot</verbClass> <hasStandardCommand>true</hasStandardCommand> <defaultProjectile>Bullet_Revolver</defaultProjectile> <warmupTime>0.3</warmupTime> <range>25.9</range> <soundCast>Shot_Revolver</soundCast> <soundCastTail>GunTail_Light</soundCastTail> <muzzleFlashScale>9</muzzleFlashScale> </li> </verbs> <tools> <li> <label>grip</label> <capacities> <li>Blunt</li> </capacities> <power>9</power> <cooldownTime>2</cooldownTime> </li> <li> <label>barrel</label> <capacities> <li>Blunt</li> <li>Poke</li> </capacities> <power>9</power> <cooldownTime>2</cooldownTime> </li> </tools> </ThingDef> </Defs>
Once you have successfully completed the previous step, save Gun_Revolver.xml
and start experimenting with different values.
Uploading your Mod
Now that you have a completed mod, you may want to upload it to the Steam Workshop for others to enjoy. Simply make sure your MyFirstMod
folder is in RimWorld\Mods
. Then launch RimWorld. Click on "Mods", if you did everything right, your mod should show up under mods. On the same screen there is the option to "Upload to Steam Workshop".