Ah, ok, it sounds like you are actually the programmer behind TOS. Most of the advice so far has been assuming that you were simply a user. As for explaining what is involved in getting info into Roll20, here's a run down of what we're all talking about: Roll20 is a system agnostic VTT. A few different aspects of Roll20 have been brought up in this thread. Roll20 itself doesn't have a "file type" that it stores data in. At least not in so far as one that you can pull from/add to via an external program. What it does have are the following: Character Sheets Character sheets are the location in the vtt where the info for a given character is stored. This is a term that is used for two different, but related features. At it's most basic, these are simply an unordered group of attributes (aka strength) and abilities (aka your falchion attack). These basic character sheets are not that great looking, but are a great way to play if you play a game with a small community that has not created a there own Roll20 Character Sheet template. Character sheet templates are driven by html, css, and a limited version of javascript that we call sheetworkers. Sheetworkers can only interact with the sheet that triggers them, and they can't affect anything else in the VTT. The Neceros pathfinder sheet that Vince is one of the authors on is the most capable pathfinder sheet on Roll20. There is also a simple sheet that doesn't have as much automation in it. The Neceros sheet has quite a few advanced features, as well as a companion API script (explained below) that I wrote to give it even more. One of the advanced features of the Neceros sheet is that it has a built in importer for characters created in Hero Lab. This importer uses the XML file that hero lab is capable of creating from a character to create and set attributes on the character sheet. The sheetworker driving the importer can't interact directly with the XML file though, it requires JSON; so the XML first has to be converted to JSON. Once the file has been converted to JSON, the importer is able to perform it's function. So, what I meant in my suggestion was that if you can find out what keys and values are used in the JSON created from the hero lab XML, then you could have TOS create a JSON of a character that could then be copied into the hero lab importer on the roll20 sheet. AS an example (no idea if this is actually what a piece of the hero lab JSON looks like): If the hero lab section of the JSON for attributes looked like this: {
"strength":10,
"dexterity":10,
"constitution":10,
"intelligence":10,
"wisdom":10,
"charisma":10
} Your exported JSON would have to look just like that, so you couldn't do this for instance: {
"str":10,
"dex":10,
"con":10,
"int":10,
"wis":10,
"cha":10
} API Scripts This is the other solution that was suggested. While character sheet sheetworkers can only interact with a single instance of a character sheet at a time, API scripts are a broader subset of javascript that are run server side and can interact with many things within the VTT itself. There are limits to what they can interact with, and they cannot interact with anything external to Roll20 in any manner. There are a wide variety of API scripts covering everything from advanced audio controls to companion scripts that add additional features to a sheet that are beyond the scope of a sheetworker. In order to use API scripts, the creator of the game must be a currently active pro subscriber. A custom API script could certainly be written to parse whatever format you decided to export into from TOS, although then only Pro subscribers (or those playing in a pro subscriber's game) could use your export functionality.