Difference between revisions of "About.xml"

From RimWorld Wiki
Jump to navigation Jump to search
(New way to display data)
Line 11: Line 11:
 
<?xml version="1.0" encoding="utf-8"?>
 
<?xml version="1.0" encoding="utf-8"?>
 
<ModMetaData>
 
<ModMetaData>
    <!-- The name of the mod -->
 
 
     <name>Example Mod</name>
 
     <name>Example Mod</name>
   
 
    <!-- The mod author names, usually set to your Steam/Forum name -->
 
 
     <author>Mod Author, Contributing Author, Other Folks, etc.</author>
 
     <author>Mod Author, Contributing Author, Other Folks, etc.</author>
   
 
    <!-- A URL to be displayed on your mod info page(if available). Can be set to link to anything. Most link it to their Github/Workshop page/forum post. -->
 
 
     <url>www.anything.com</url>
 
     <url>www.anything.com</url>
   
 
    <!-- Added in 1.0. Please make it human readable. Avoid acronyms where possible. Normally qualifiers seperated by periods.-->
 
 
     <packageId>AuthorName.ModSeries.ModName</packageId>
 
     <packageId>AuthorName.ModSeries.ModName</packageId>
   
 
    <!-- Supported version lists which versions of Rimworld your mod is compatible with. If your mod doesn't break across versions, lists them all here. -->
 
 
     <supportedVersions>
 
     <supportedVersions>
 
         <li>1.1</li>
 
         <li>1.1</li>
 
         <li>1.2</li>
 
         <li>1.2</li>
 
     </supportedVersions>
 
     </supportedVersions>
   
+
 
    <!-- Describes your mod, can be multiple lines long. -->
 
 
     <description>Sample description.
 
     <description>Sample description.
 
          
 
          
 
Which spans multiple lines. Is also includes whitespace, so unless you want ugly indentation on the workshop, you need to have it un-beautified like this.
 
Which spans multiple lines. Is also includes whitespace, so unless you want ugly indentation on the workshop, you need to have it un-beautified like this.
 
     </description>
 
     </description>
    <!-- List of other mods which your mod requires to function. -->
+
 
 
     <modDependencies>
 
     <modDependencies>
 
     <!-- Using hugslib as an example here. -->
 
     <!-- Using hugslib as an example here. -->
Line 47: Line 37:
 
         <v1.1>
 
         <v1.1>
 
             <li>
 
             <li>
                 <packageId>Unknown (help extend this)</packageId>
+
                 <packageId>UnlimitedHugs.HugsLib</packageId>
                 <displayName>Unknown (help extend this)</displayName>
+
                 <displayName>HugsLib</displayName>
                 <steamWorkshopUrl>Unknown (help extend this)</steamWorkshopUrl>
+
                 <steamWorkshopUrl>https://github.com/UnlimitedHugs/RimworldHugsLib/releases/latest</steamWorkshopUrl>
                 <downloadUrl>Unknown (help extend this)</downloadUrl>
+
                 <downloadUrl>steam://url/CommunityFilePage/818773962</downloadUrl>
 
             </li>
 
             </li>
 
         </v1.1>
 
         </v1.1>
 
     </modDependenciesByVersion>
 
     </modDependenciesByVersion>
   
+
 
    <!-- Lists the mods which should be loaded before your mod. Helps ensure your dependencies are loaded in first. Usually you only need to specify mods here. -->
 
 
     <loadAfter>
 
     <loadAfter>
 
         <li>UnlimitedHugs.HugsLib</li>
 
         <li>UnlimitedHugs.HugsLib</li>
 
     </loadAfter>
 
     </loadAfter>
   
+
 
    <!-- List of packageIds of any mods which are incompatible with your mod. -->
 
 
     <incompatibleWith>
 
     <incompatibleWith>
 
         <li>erdelf.HumanoidAlienRaces</li>
 
         <li>erdelf.HumanoidAlienRaces</li>
Line 67: Line 55:
 
</pre>
 
</pre>
  
== Deprecated Parts ==
+
{| class="wikitable"
<targetVersion> has been replaced by <supportedVersions>. Use is as follows :
+
|-
<pre>
+
! Tag !! Explaination
    <supportedVersions>
+
|-
        <li>1.0</li>
+
| Name || The name of the mod.
    </supportedVersions>
+
|-
</pre>
+
| Author || The mod author names, usually set to your Steam/Forum name.
== Another tag format? ==
+
|-
 
+
| URL || A URL to be displayed on your mod info page(if available). Can be set to link to anything. Most link it to their Github/Workshop page/forum post.
Another way to explain this data might be more similar to a filesystem, like this:
+
|-
* ModMetaData/name = The name of the mod (probably better)
+
| Package ID || Added in 1.0. Please make it human readable. Avoid acronyms where possible. Normally qualifiers seperated by periods.
or:
+
|-
* <ModMetaData>/<author> = Name of who created this mod (bad, because eg: <nowiki><li></nowiki> interfere with the Wiki-code)
+
| supportedVersion || Supported version lists which versions of Rimworld your mod is compatible with. If your mod doesn't break across versions, lists them all here.
 
+
|-
or: (I really like this format)
+
| Description || Describes your mod, can be multiple lines long. Whitespace sensative.
* '''<?xml version="1.0" encoding="utf-8"?>''' - MUST be included exactly like this, explains to the program how the data should be interpreted.
+
|-
* '''ModMetaData''' - A container for all the data that is related to this mod.
+
| modDependencies || List of other mods which your mod requires to function.
** '''name''' - The name of the mod.
+
|-
** '''author''' - The name of the author.
+
| modDependenciesByVersion || Same as modDependencies, except it specifies which mod version it needs.
*** '''supportedVersions''' - A container for suported versions.
+
|-
**** '''li''' - A list item containing a version number, like 1.0 or 2.5.3
+
| loadAfter || Lists the mods which should be loaded before your mod. Helps ensure your dependencies are loaded in first.
*** '''modDependencies''' - A container for mods that is needed for this nod to function properly.
+
|-
* ....
+
| incompatibleWith || List of packageIds of any mods which are incompatible with your mod.
 +
|}
  
 
== Questions ==
 
== Questions ==

Revision as of 10:22, 20 August 2021

This article is supposed to explain what tags are available in the About.xml file & what the tags do & how you should use them. The exact format of the article is still under development, please help.

(Yes, I'm aware that I'm not writing this as objectively as an article should be (sorry), but I feel I need to explain what this article should aim towards, please DON'T just delete it! )

Tags

These are the tags I have found in various mods I have downloaded, but I don't understand all of them, i'm not sure if all of them even CAN be combined with each other & therefore I need help from more experienced developers.

<?xml version="1.0" encoding="utf-8"?>
<ModMetaData>
    <name>Example Mod</name>
    <author>Mod Author, Contributing Author, Other Folks, etc.</author>
    <url>www.anything.com</url>
    <packageId>AuthorName.ModSeries.ModName</packageId>
    <supportedVersions>
        <li>1.1</li>
        <li>1.2</li>
    </supportedVersions>

    <description>Sample description.
        
Which spans multiple lines. Is also includes whitespace, so unless you want ugly indentation on the workshop, you need to have it un-beautified like this.
    </description>

    <modDependencies>
    <!-- Using hugslib as an example here. -->
        <li>
            <packageId>UnlimitedHugs.HugsLib</packageId>
            <displayName>HugsLib</displayName>
            <downloadUrl>https://github.com/UnlimitedHugs/RimworldHugsLib/releases/latest</downloadUrl>
            <steamWorkshopUrl>steam://url/CommunityFilePage/818773962</steamWorkshopUrl>
        </li>
    </modDependencies>
    <modDependenciesByVersion>
        <v1.1>
            <li>
                <packageId>UnlimitedHugs.HugsLib</packageId>
                <displayName>HugsLib</displayName>
                <steamWorkshopUrl>https://github.com/UnlimitedHugs/RimworldHugsLib/releases/latest</steamWorkshopUrl>
                <downloadUrl>steam://url/CommunityFilePage/818773962</downloadUrl>
            </li>
        </v1.1>
    </modDependenciesByVersion>

    <loadAfter>
        <li>UnlimitedHugs.HugsLib</li>
    </loadAfter>

    <incompatibleWith>
        <li>erdelf.HumanoidAlienRaces</li>
    </incompatibleWith>
</ModMetaData>
Tag Explaination
Name The name of the mod.
Author The mod author names, usually set to your Steam/Forum name.
URL A URL to be displayed on your mod info page(if available). Can be set to link to anything. Most link it to their Github/Workshop page/forum post.
Package ID Added in 1.0. Please make it human readable. Avoid acronyms where possible. Normally qualifiers seperated by periods.
supportedVersion Supported version lists which versions of Rimworld your mod is compatible with. If your mod doesn't break across versions, lists them all here.
Description Describes your mod, can be multiple lines long. Whitespace sensative.
modDependencies List of other mods which your mod requires to function.
modDependenciesByVersion Same as modDependencies, except it specifies which mod version it needs.
loadAfter Lists the mods which should be loaded before your mod. Helps ensure your dependencies are loaded in first.
incompatibleWith List of packageIds of any mods which are incompatible with your mod.

Questions

  • <ModMetaData>/<packageId> How is this determined?
  • Are <ModMetaData>/ <modDependencies> & <modDependenciesByVersion> mutually exclusive? or can both be present in the same file?
  • I think there exist some kind of: <ModMetaData>/ <incompatibleWith> / <li> /<packageId> tag, but I haven't seen it in any of my downloaded mods, please add it if you know more about it.