Text to model
Shard has modelled types for all the standard 5E mechanics (classes, races, backgrounds, spells, …) and offers the option to create your own custom types with modeled features that impact the characters to which they are attached. Today, we will talk about the new tools we just released to help creators go from text in a book to a fully modeled object.
We know that lots of content has already been created and that people will continue to publish content in a document format. Our goal is to make it as easy as possible to bring this into Shard Tabletop. Importing books from Microsoft Word and Google Docs was our first step. Even so, it was still difficult and tedious to take the imported text and build modeled entries, like monsters, races or items, that can be used with Shard. This release provides tools to automatically do some of the tedious work and where possible recognize and automatically convert the text.
In book edit mode, you will find a new menu has replaced both the insert content button and the delete button.
Click the menu button opens the menu shown above. Pick Content and Delete behave exactly the way their respective button did before. The new option to Convert and Convert Children are where the fun begins.
Convert will create a single modeled object from this section and its subsections. Subsections are assumed to all be a part of the same object. For a class or race that would mean class or race features. For a monster, subsections could contain the actions, reactions, legendary actions, and lair actions. In that case, each needs to be named to correspond to the section in the resulting monster block.
Convert Children will create multiple modeled objects of the same type, one for each child of the node you selected. This is fantastic for collections of spells, monsters, fighting styles, maneuvers, or any custom type.
Details on the conversion for each type are included below.
Background. Converting a section to a background will detect a prerequisites line and set that property appropriately with the text that follows. The remaining text is scanned for bold text at the beginning of a paragraph or subsections. In addition to subsections, each of those is converted into a feature.
Class. Converting a section to a class will convert paragraphs that begin with bold text and subsections into class features. Further it scans the opening text of each subsection looking for “at X level,”. If that text is found it will assign the new feature to the appropriate level. Classes are the most complex type in 5E and require the most cleanup to complete modeling. See below for more information on subclasses.
Feat. Feat conversion searches for prerequisites text and converts the remaining text to the text of the feat.
Item. Item conversion searches for prerequisites text and converts the remaining text to the text of the item.
Monster. Monster conversion has been significantly enhanced compared to other types. Conversion scans the first line of text looking for keywords that correspond to size, type, and alignment and sets the appropriate properties if it finds them. Further, it looks at subsequent paragraphs for bold text that corresponds to Skills, Immunities, Senses, CR and many other properties and sets those. It also looks for subsections named Actions, Reactions, Legendary Actions, and Lair Actions and adds that text to the appropriate sections of the resulting stat block. Any remaining text is added to the traits section. At the moment, this includes ability scores, as the formatting in the documents we’ve tested is so variable that it's difficult to properly detect.
Race. Conversion looks for paragraphs that begin with bold text and subsections and converts each to a race feature. The remaining text becomes an unnamed feature.
Spell. Spell conversion is similar to monster conversion in that it looks for specific properties in the text and tries to set all the properties of the spell. The remaining text is added to the body of the spell.
Subclass. Subclass conversion requires that you pick the parent class and then converts each subsection of text into a class feature. It looks for “At X level,” text to assign features to the appropriate level.
Subrace. Subrace conversion requires that you pick the parent race and then converts each subsection or paragraph that begins with bold text to a race feature while copying all the features of the parent race as well.
Other. Other is used for all other built in types (Fighting Styles, Metamagic, and Eldritch Invocations) as well as all custom types. To convert to a custom type you must create one instance of the custom type manually to cause it to appear in the submenu under Other. In all cases, conversion is simply look for prerequisites text and pushing the remaining text into the body of the type.
After Conversion
After the content is converted you will receive a verification dialog showing the new content. You can click to edit any of the entries. After you have verified the results you have three options:
Keep the new content and replace the text in the document with references to the new entries.
Keep the new content and don’t modify the document.
Discard the new content. If things didn’t convert correctly you may want to go back and tweak the formatting and try the conversion again.
There you have it. The text should now incorporated into a modeled object without all the cut and paste that would have been required previous. Further, for spells and monsters, the conversion goes much further by setting the properties of those types based on entries in the text. This capability will only grow over time, if you find a pattern that you think would be particularly helpful to automate, join one of user groups below and tell us about it.
From here, there is modeling and cleanup left to do. The modeling and some new options for it will be the subject of our next blog. Also, rumor has it there will be a video showing the full creation of a class with subclasses and custom types released concurrently with that blog entry. Oh, the created class will be released too. Stay tuned.
In the meantime, we would love to hear your feedback and stories about your games. Join us on on Discord or Facebook to meet other members of the community and take your game to the next level or follow us on Twitter @shardtabletop for regular updates on what we are doing.