About File
Both theory and practice will be covered in this page. A full tutorial that shows step-by-step what to do, and explain why.
You will learn how to make the most important file of your mod: the About.xml file. This file is crucial for the game to indentify your mod and to upload it to the Steam Workshop. ALL your mods must have this file, and in the correct place!
- Also, do note that most of this page's content works for the version 1.4 and onwards of the game.
Requirements
- Any XML editor
- Know the basics of XML
File location
Assuming you already have a mod folder, you will make a new file directly under the About folder.
File content
Open your XML editor, make a new file, you must call it "About" and make sure the extension is ".xml", also called "eXtensible Markup Language" in some text editors.
WARNING: Not all tags are mandatory. Not all possible tags are covered in this article, only the most used ones, see About_File#Further_reading for more.
<?xml version="1.0" encoding="utf-8"?>
<ModMetaData>
<name>Amazing Mod</name><!--REQUIRED!-->
<author>MrBeast</author><!--REQUIRED!-->
<packageId>MrBeast.CoolMod</packageId><!--REQUIRED!-->
<description>this is the most epic mod!</description><!--REQUIRED!-->
<url>https://steamcommunity.com/sharedfiles/filedetails/?id=2890901044</url>
<supportedVersions><!--REQUIRED!-->
<li>1.4</li>
<li>1.5</li>
</supportedVersions>
<modDependencies>
<li>
<packageId>Ludeon.RimWorld.Biotech</packageId>
<displayName>Biotech</displayName>
</li>
</modDependencies>
<incompatibleWith>
<li>CETeam.CombatExtended</li>
</incompatibleWith>
<loadBefore>
<li>sarg.alphaanimals</li>
</loadBefore>
<loadAfter>
<li>Ludeon.RimWorld.Biotech</li>
</loadAfter>
</ModMetaData>
Breakthrough
All elements labeled as "Required" are mandatory, the rest should be used only when necessary.
Tags | Explanation |
---|---|
<ModMetaData>...</ModMetaData>
|
This is the container for all the elements of the About.xml file. |
<name>Most Amazing Mod</name>
|
Required. Self-explanatory. The name of your mod. Avoid changing this name once you upload your mod. |
<author>MrBeast</author>
|
Required. Self-explanatory. Multiple author names can be added if separated by comas. |
<packageId>MrBeast.CoolMod</packageId>
|
Required. A unique identifier. The recommended way to make a packageId is to separate it between the author's name and the mod's name with a period. Alternatively, instead of AuthorName.ModName , you can swap AuthorName with the name of your modding team or project series. For instance, Combat Extended's packageId is CETeam.CombatExtended .
|
<description>this is the most epic mod!</description>
|
Required. The description of your mod. |
<url>https://steamcommunity.com/sharedfiles/filedetails/?id=2890901044</url>
|
Link to download your mod. Usually redirects to the Steam Workshop. |
<supportedVersions>
<li>1.4</li>
</supportedVersions>
|
Required. This is a list of supported versions for your mod, each version must be contained in a li tag as shown.
|
<modDependencies>
<li>
<packageId>Ludeon.RimWorld.Biotech</packageId>
<displayName>Biotech</displayName>
</li>
</modDependencies>
|
Self-explanatory. If your mod has dependencies, such as other mods or DLC content, you must add them in a li tag as shown, which must contain both the packageId and displayName (name ) of the mod or DLC.
|
<incompatibleWith>
<li>CETeam.CombatExtended</li>
</incompatibleWith>
|
Self-explanatory. If your mod is incompatible with another mod, you should add their packageId in a li tag. Examples of incompatibility might vary. Perhaps your mod and another one does the same thing, apply the same patches, or straight-up doesn't work well with another mod.
|
<loadBefore>
<li>sarg.alphaanimals</li>
</loadBefore>
|
If your mod needs to be placed before another mod, you can put that mod's packageId in a li tag.
|
<loadAfter>
<li>Ludeon.RimWorld.Biotech</li>
</loadAfter>
|
Same deal as the previous element, but instead of loading it before another mod, it is loaded after. This is specially useful for mods that patch another mod, if this is the case, the patch mod must be loaded after the original mod, and you should put the original mod's packageId in this loadAfter element. |
Further reading
More optional tags exist for ModMetaData, which can be seen here in the official wiki.