Contents

Overview

The goal of this document is to help you create templates for use with DM Toolkit. The document will explain how DM Toolkit processes feed data, as well as how a user can format data for inclusion in the toolkit.

Difficulty Level

Template creation is not difficult. Anyone who understands the fundamentals of XML/HTML should have no difficulty creating templates. If you aren't familiar with XML/HTML, W3Schools provides an excellent tutorial here.

Other Info

This document created on May 17th, 2010. by D. Brad Talton Jr.

XML Specification for modules for version 1.2 "Drawmij" of DM Toolkit.

Please contant kiyoshi.kyokai@gmail.com with comments and suggestions regarding this document.

Back to the top

Modules

Each library of downloadable content is called a Module. A single module is contained in one XML file. An XML file cannot contain more than one module.

Updating and Replacing Modules

DM Toolkit knows which resources belong to which modules. Because of this, if you decide to update your module later, your changes will overwrite the old module's resources rather than creating an entirely new module.

Each module has a unique 'name' associated with it. If your module's name is the same as another module's name, then your module will erase all of that module's data when it is loaded.

Module Syntax

The module should be the root node of your XML document. The simplest possible DM Toolkit library looks like this:

<module name='Sample Module' author='D. Brad Talton Jr.' publisher="Level 99 Games" formatVersion="1.2" moduleVersion="1.0" system="No System" > </module>

Here's a breakdown of those options

The above module is acceptable to DM Toolkit, and will be loaded, but is ultimately useless because it contains no objects. The process of creating objects will be described in the next section.

Back to the top

Objects

Objects in the XML file are what will eventually become Resources once the file is loaded into DM Toolkit.

Objects can be simple or complex. There's no limit to the amount of customization that you can include in your objects.

Object Syntax

Objects have their own parameters, which can be seen here:

<object name="Sample Object" system="No System" id="SampleObject001" type="character" template="YES" description="" note=""> </object>

Let's take a moment to examine each of these options:

Back to the top

Properties

Properties are the first list that shows up in an object. This list should contain important and often-referenced data that defines the object. Is it a mechanical or magical trap? Is it a level 10 or 20 monster? Is it a baker or a locksmith NPC? These kind of things make good properties.

Kinds of Properties

Property Syntax

Each property is contained in a single line. Notice how the tags close with a "/>"--the proper closing for tags with no content. The three kinds of property are shown below.

<property name="Age" type="" value="23" /> <property name="Super Evil Death Whirl" type="extended" value="The caster concentrates all the powers of darkness together and then spins in a circle, unleashing dark energy as black blades of necrotizing energy. Useable only be evil casters, obviously." /> <property name="Sword of Might" type="softlink" value="Sword049" />

You can also use

<property></property> as with normal XML tags, but any content between the tags will be ignored, so there's not much point.

A short explanation of these parameters:

Property Lists

Property lists constitute the sub-sections of your resource.

An object can contain any number of property lists. Each property list can contain any number of properties.

The syntax for a propertylist is as follows:

<propertyList name="Sample Property List"> </propertyList>

Between the <propertyList> tags, you can include any number of properties.

Back to the top

Complete Sample

Here are all the examples you've seen, cobbled together into one. You can use this skeleton as a starting point for your own modules.

<module name='Sample Module' author='My Name' publisher="Me" version="1.2" system="No System" > <object name="Sample Object" system="No System" id="SampleObject001" type="character" template="YES" description="" note=""> <property name="Sample Simple Property" type="" value="42" /> <property name="Sample Extended Property" type="extended" value="An Extended Property can span multiple lines, but remember that tabs and new lines are NOT ignored, so be sure that the way the text looks is exactly how you want it to look in the final resource." /> <property name="Sample Cross Reference" type="softlink" value="otherObjectID" /> <propertyList name="Sample Property List"> <property name="Sample Simple Property" type="" value="A" /> <property name="Sample Simple Property" type="" value="B" /> <property name="Sample Simple Property" type="" value="C" /> </propertyList> </object> </module>

Back to the top

Other Notes

Here are a few other things to consider when creating your modules.

Size

The size of a module should optimally not exceed 500kB. If your module will be larger than this, consider breaking it down into smaller sections. This is not a hard-and-fast rule. However, modules larger than 500kB may be difficult to download for users on a 3G or Edge connection.

Copyright

Published RPG content is the property of its creators and is protected by copyright law. YOU are responsible for any modules you create. DO NOT infringe on the intellectual property of others. If in doubt, contact the copyright holders. Some games, like World of Darkness, impose limits on the publication of even user-created content. Please check your copyrights before posting anything, because I really don't want to deal with that hassle, and neither do you. Most of this information can be found on the home page of the individual RPG publisher.

System Freedom

It's good when your resources can be used out of the box, but it's even better when they can be used by anyone. If you are creating a large list of traps, spells, rituals, items, or the like, consider formatting your resources for use with any system (system="No System"), and letting GMs adapt your content to their specific needs.

Back to the top