• Please note: In an effort to ensure that all of our users feel welcome on our forums, we’ve updated our forum rules. You can review the updated rules here: http://forums.wolflair.com/showthread.php?t=5528.

    If a fellow Community member is not following the forum rules, please report the post by clicking the Report button (the red yield sign on the left) located on every post. This will notify the moderators directly. If you have any questions about these new rules, please contact support@wolflair.com.

    - The Lone Wolf Development Team

Hero Lab and Roll20

Korav

Member
So I have been working on using the XML output from Hero Lab, parse it with Javascript, then us the Roll 20 API to import information into the new character sheet system they have.

The challenge that I am running into is that there often seems to be important information missing from the xml. This information is obviously taken into account in Hero Labs and on the final sheet output, but not in the XML.

Two examples, first:

<initiative total="+5" attrname="Dexterity" misctext="+0" attrtext="+3">
<situationalmodifiers text=""/>
</initiative>

In the snippet above you can see that the "total" is 5, however the Dexterity attribute accounts for only 3 of that with no other situational or miscellaneous modifiers. Now on this character I have a trait that provides an additional +2 to initiative so I know the source, but there is simply no way from the xml output to easily determine this.

Second example, Armor Class Penalties:

<penalties>
<penalty name="Armor Check Penalty" value="-2" text="-2"/>
<penalty name="Max Dex Bonus" value="6" text="6"/>
</penalties>

<armor name="Heavy steel shield" ac="+2" quantity="1" equipped="yes">
<weight value="15" text="15 lbs"/>
<cost value="20" text="20 gp"/>
...redacting description as it is irrelevant...

<armor name="Leather armor" ac="+2" quantity="1" equipped="yes">
<weight value="15" text="15 lbs"/>
<cost value="10" text="10 gp"/>
...redacting description as it is irrelevant...

So with the above, it is not possible to associate the Armor Check Penalty with either of the armor items, but in the application and the output sheet this information is realistically available.

Is it possible that the xml output is missing these values? Are they somehow calculated internally (meaning that the project I am working on will have severe limitation)?

Thanks in advance for any assistance.
 
instead of the xml output, can you use the xml save file in the .por file? Since its just a zip file, it is easy to access and should have everything?
 
I was unaware that the .por files were just zip archives, however looking a the statblock xml file it looked identical (though I didn't do a diff to find out). Now there were several other xml files, but will need to dig through them... either way this would make it significantly more challenging due to the limitation of how Roll20 can import...
 
I'm sorry to say that we have not had as much time to work on the custom output as we would like, and there are several known issues with it - there's a lot of information it doesn't currently include. Improving this is one of the projects on our to-do list.

The same xml output is available through either the custom output option or as one of the items in the .por file.
 
I was unaware that the .por files were just zip archives, however looking a the statblock xml file it looked identical (though I didn't do a diff to find out). Now there were several other xml files, but will need to dig through them... either way this would make it significantly more challenging due to the limitation of how Roll20 can import...

Not sure how Roll 20 works but for a similar project in Map Tool, I wrote a PHP that extracted the XML files I needed by passing the character name as a parameter, it even did the unzip for me. It actually worked is conjunction with Google Drive, by passing the ID of the .por it grabbed the shared file.

Maybe something similar can work?
 
I'm sorry to say that we have not had as much time to work on the custom output as we would like, and there are several known issues with it - there's a lot of information it doesn't currently include. Improving this is one of the projects on our to-do list.

The same xml output is available through either the custom output option or as one of the items in the .por file.

I can understand prioritization of features :).

However, just to throw some business justification in hopes of bumping this up in the priority list for future consideration and planning. Roll20 is booming right now, they are seeing significant growth and activity, largely due to ease of use and availability.

One of the key features that they introduced recently are character sheets, and while this was a significant improvement in Roll20, it leads to the next iteration of problems, namely how tedious it can be to fill out a Pathfinder sheet. As a GM a large portion of my setup time is spent filling out sheets for some players, but also for NPC/Monters.

If a bridge can be built between Roll20 and Hero Lab it allows growth opportunities for Hero Lab because people will recognize the time savings associated with this bridge and the encounter builder. Jump into Hero Labs, export the portfolio to XML, copy into Roll20 and import it! Encounter done!

The javascript XML parser hopefully won't be too overly complex, but for it to be truly effective, the required data to fill out a character sheet properly simply needs to be there.

Anyway, down off my software development soapbox! Thanks for making a great tool!
 
Not sure how Roll 20 works but for a similar project in Map Tool, I wrote a PHP that extracted the XML files I needed by passing the character name as a parameter, it even did the unzip for me. It actually worked is conjunction with Google Drive, by passing the ID of the .por it grabbed the shared file.

Maybe something similar can work?

Jamz, I dug through the other XML files and I could find a reasonable way to translate the information in them to the properties that I am missing in the hero.xlm file.
 
So I was able to finalize this importer and it works pretty well, though there are limitations based on the xml output vs. the requirements of the Pathfinder Character Sheet.

If you are interested in this integration between Hero Labs awesome character generation tool and Roll20's awesome Virtual Tabletop, you can see the details on the Roll20 API forums here.
 
An xml improvement would benefit all VTT's. And given that computers at the table are a reality for a large number of gamers now, it would be a welcome improvement. As Mathias notes, in the current solution, there is information that is not currently passed on. Unfortunately, it's the VTT developers that catch the heat for not having full HL integration.... I know I've expressed considerable (misdirected) frustration to the d20pro devs and I think they've been trying to work with the limitations; but many of us users are still not satisfied.

What would it take for this to move up on the priority list?
 
I can understand prioritization of features :).

However, just to throw some business justification in hopes of bumping this up in the priority list for future consideration and planning. Roll20 is booming right now, they are seeing significant growth and activity, largely due to ease of use and availability.

One of the key features that they introduced recently are character sheets, and while this was a significant improvement in Roll20, it leads to the next iteration of problems, namely how tedious it can be to fill out a Pathfinder sheet. As a GM a large portion of my setup time is spent filling out sheets for some players, but also for NPC/Monters.

If a bridge can be built between Roll20 and Hero Lab it allows growth opportunities for Hero Lab because people will recognize the time savings associated with this bridge and the encounter builder. Jump into Hero Labs, export the portfolio to XML, copy into Roll20 and import it! Encounter done!

The javascript XML parser hopefully won't be too overly complex, but for it to be truly effective, the required data to fill out a character sheet properly simply needs to be there.

Anyway, down off my software development soapbox! Thanks for making a great tool!

I am another who believes that if Hero Labs, Roll20 and Trapdoor Technologies works to ensure complete compatibility, business would thrive for all three communities and we would have possibly the best RPG set-up.
 
Heh. :)

I'm a big fan of plugins. For example, the Tactical Console could be a plugin. The Output Sheet/Exporter function could be a plugin.

And if they were plugins, then the community could help build them and maintain them, adding features that the community has a need for but that LW doesn't have resources to support.

But that's just my opinion. :D
 
So this is still an issue after 3 years? I just bought Hero Lab yesterday because one of the features was the ability to export characters to Fantasy Grounds.
 
FYI: I make it easy as pie for MapTool. Clicking on a portfolio within MapTool :: Library, It shows all the characters in the portfolio. Drag those to the map, bam. Token is created using the Picture(s) provided in Hero Lab along with all 3 stat sheets.

Of course, you need a framework to use these in. I currently have a Pathfinder framework that uses the XML to create the token (more reliable than parsing the Statblock text).

#alternatives http://maptool.nerps.net
 
Jamz -- how does that handle pog vs portrait images? A Hero Lab portfolio can have multiple images built into it, but I don't think it has any built-in mechanism for distinguishing between a small PNG for use as the pog and a larger JPG for use as the portrait.
 
FYI: I make it easy as pie for MapTool. Clicking on a portfolio within MapTool :: Library, It shows all the characters in the portfolio. Drag those to the map, bam. Token is created using the Picture(s) provided in Hero Lab along with all 3 stat sheets.

Of course, you need a framework to use these in. I currently have a Pathfinder framework that uses the XML to create the token (more reliable than parsing the Statblock text).

#alternatives http://maptool.nerps.net
e

Once you have that done, how do you get the characters into roll20?
 
Once you have that done, how do you get the characters into roll20?
Um, you don't understand. MapTool does what Roll20 does, in some ways better and in some ways not, but there's no need for Roll20 if you're using the (free) MapTool.

:D
 
Jamz -- how does that handle pog vs portrait images? A Hero Lab portfolio can have multiple images built into it, but I don't think it has any built-in mechanism for distinguishing between a small PNG for use as the pog and a larger JPG for use as the portrait.

What ever the "first" image in the portfolio list is, I use that for the "Portrait". The second image is considered the "pog" token image.

As you pointed out, there is no way to "name" the images or base the logic on anything other than order. And since many of the monsters already come with a "portrait" image, it made sense to use that for the portrait.

BUT, I also pull in ALL the images and they are stored/shown on the token in the Hero Lab tab. From that tab you can set any image to either Portrait, Token, or handout.

You can also access those images via macro functions and create "disguise" or "polymorph" macros and such.

@LazarX, for Roll20, ignore all this, and bug the roll20 forums? There really isn't anything the Hero Lab folks can/need to do. The portfolios are already zip format and has all the info in it you need. Someone just has to invest the time to code it for Roll20.
 
Back
Top