XML Auto-Documentation

Started by milon, July 15, 2016, 02:55:38 PM

Previous topic - Next topic


RimWorld XML Auto-Documentation

Version: 1.0

Download from Dropbox

Note: Due to IRL constraints, this is the last update I'll provide.  But since it's 1.0, I expect there won't be anymore major releases.


In case you're not sure what it is, this is an HTML help file for modders. It contains a listing of all Core (ie. vanilla) uses of RimWorld's XML code.  It's great for learning what tags are parents or children of what.  It's not necessarily exhaustive since the game engine may support options that aren't actually used by the base game.  I'm purposefully confining this to XML only.  I don't get into DLL modding, but anyone else is more than welcome to do that if they see fit.

As an additional feature, I track the grandparent/grandchild relationship for some of the common XML tags.  They're listed as SOME_TAG<SOME_CHILD>, which should be clear enough on its own but I'm always open to suggestions/requests.  I've also begun tracking tags with a CompProperties_ attribute separately, as they're handled separately.  The tags currently given special attention are:

  • li
  • defName
  • all tags with a CompProperties_ attribute

Feel free to request others to be tracked separately as you see the need.

Auto-Doc Tool
For anyone who cares, I wrote the tool in a Windows-only language called AutoIt.  It should be compatible with Wine or ReactOS for any non-Windows users.  It's kinda inefficient, but it's what I was familiar with at the time and it gets the job done.
Link: https://www.dropbox.com/s/9aywpn55k5m728n/XML%20Auto-Doc.au3?dl=0

Old Stuff

Beta 19: https://www.dropbox.com/s/qumdcbalw7fuwkm/CoreXML%20B19.html?dl=0
Beta 18: https://www.dropbox.com/s/nrwtwtzh706oouw/CoreXML%20A18.html?dl=0
Alpha 17: https://www.dropbox.com/s/dgh9pzv3o1jy98p/CoreXML%20A17.html?dl=0
Alpha 16: https://www.dropbox.com/s/a68vmnbpj8tr3vm/CoreXML%20A16.html?dl=0
Alpha 15: https://www.dropbox.com/s/5su98l69qn7j19e/CoreXML%20A15.html?dl=0
Alpha 14: https://www.dropbox.com/s/l9y2orqyszrrcrv/CoreXML%20A14.html?dl=0
Alpha 13: https://www.dropbox.com/s/jeysicdh1tjutf6/CoreXML%20A13.html?dl=0

New Modding Features
See the new A17 modding features here:

Patch Modding
Zhentar has made guide covering the new Patch process. Read about it here:

xpath troubleshooting
Skullywag is running an xpath clinic at this thread:

Modder's Guide to Abstracts (obsolete, but link kept for historical purposes):




Pardon me for being a noob on these forums but what is this for?


It's for modding purpose. It's a list of all the tags and the parameter that they can take



Just because this should already been stickied :p


I'll sticky it.  It always feels a little pretentious to sticky my own thread, but if someone else wants it stickied that's different, right?  ;)


I just realized this morning that the reference I had online was for A14a.  It's now updated to A14d.  As a bonus, defName is now linked to its parent just like li.



The documentations are incredibly helpful. Thanks for posting it, Milon!  ;D


Welcome!  And this is for A14E build 1249 now.  I put that in my sig but forgot to update this page.  ^_^


I know i don't have to bump up the post anymore but again thank you ;)

Can i ask you which tool you use to generate/compile this please ?


Just a script I wrote myself.  I did it in AutoIt (www.autoitscript.com) if you care.  And I can post it if you or anyone else is interested.


Sorry if this is not where I should ask this, but what is 'HediffComp_VerbGiver'.
I just need to know because I need to set a Comp for my new Hediff :)


Hey, just saw your post.

See an example of it in ...\Mods\Core\Defs\HediffDefs\Hediffs_Local_AddedParts.xml

It goes in a <HediffDef> block (which modifies Health and related effecets) and is responsible for giving Verbs (attack options) to pawns.  In vanilla, this applies to the BionicArm, PowerClaw, and ScytherBlade.