XML Auto-Documentation

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

Previous topic - Next topic

milon

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.




About

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.
Enjoy!




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

Archive:
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:
https://ludeon.com/forums/index.php?topic=32735.0

Patch Modding
Zhentar has made guide covering the new Patch process. Read about it here:
https://gist.github.com/Zhentar/4a1b71cea45b9337f70b30a21d868782

xpath troubleshooting
Skullywag is running an xpath clinic at this thread:
https://ludeon.com/forums/index.php?topic=33186.0

Modder's Guide to Abstracts (obsolete, but link kept for historical purposes):
https://ludeon.com/forums/index.php?topic=19499.0

kaptain_kavern


Asero


Man_Jones

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

kaptain_kavern

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

kaptain_kavern

[BUMP]

Just because this should already been stickied :p

milon

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?  ;)

milon

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.

kaptain_kavern


srauon

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

milon

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

kaptain_kavern

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 ?

milon

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.

Jdalt40

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 :)

milon

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.