Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

ImportHS6e

I have tried to use this character importer. I have the export template for Hero Designer, I created a txt file, then I copied it to clipboard and pasted it into the chat. It didn't do anything. I read up on the mod, and apparently, it should give you a message when you start the game up. It doesn't do that, either. Some of the documentation says that it reads the info from the chat, but some says to put it in the GM notes. Has anyone gotten this to work, and can anyone offer any suggestions?
1669296145
timmaugh
Pro
API Scripter
It looks like the only message it will give you is the log line in your mod deck: "ໂ℘ [ImportHS6e v1.05, 2022/2/25]" I'm reading through the code, and it looks like you have to put the data you want to parse in the gm notes of the sheet attached to the token, then run !i6e or !import6e It also looks like there's a help option in the code, but it's been remarked out for whatever reason. If putting the data in the GM Notes doesn't work, hit me up. To be clear, you have to: select a token => that represents a character => whose character sheet gm notes field => makes a profit => and has the HeroDesigner data in it. Probably without the profit part.
1669341056

Edited 1669341259
Well, I did manage to get an error message out of it. But it won't import the character info. Thanks for offering help on a mod that isn't yours. I appreciate you taking the time. When it is importing from the GM Notes field, { "character":{... Or does it look for:  !hero --import... Here's what I have:    !hero --import { "character":{ "character_name":"Hex Girl", "character_title":"Moira Sendel", "backgroundText":"", "historyText":"", "experience":"0", "experienceBenefit":"0", "strength":"10", "dexterity":"13", "constitution":"10", "intelligence":"13", "ego":"18", "presence":"13", "ocv":"6", "dcv":"6", "omcv":"6", "dmcv":"5", "speed":"5", "pd":"2", "ed":"2", "body":"10", "stun":"20", "endurance":"25", "recovery":"4", "running":"12", "leaping":"4", "swimming":"4", "equipment":{ "equipment01":{}, "equipment02":{}, "equipment03":{}, "equipment04":{}, "equipment05":{}, "equipment06":{}, "equipment07":{}, "equipment08":{}, "equipment09":{}, "equipment10":{}, "equipment11":{}, "equipment12":{}, "equipment13":{}, "equipment14":{}, "equipment15":{}, "equipment16":{} }, "maneuvers":{ "maneuver01":{ }, "maneuver02":{ }, "maneuver03":{ }, "maneuver04":{ }, "maneuver05":{ }, "maneuver06":{ }, "maneuver07":{ }, "maneuver08":{ }, "maneuver09":{ }, "maneuver10":{ }, "maneuver11":{ }, "maneuver12":{ }, "maneuver13":{ }, "maneuver14":{ }, "maneuver15":{ }, "maneuver16":{ }, "maneuver17":{ }, "maneuver18":{ }, "maneuver19":{ }, "maneuver20":{ } }, "perks":{}, "talents":{}, "complications":{ "complication01":{ "type":"Hunted", "points":"20", "text":"Hunted: Powerful Occult Forces Infrequently (Mo Pow; PC has a Public ID or is otherwise very easy to find; Harshly Punish)", "notes":"" }, "complication02":{ "type":"Psychological Complication", "points":"15", "text":"Psychological Complication: Competitive Rivalry With Spellcasters (Common; Strong)", "notes":"" }, "complication03":{ "type":"Social Complication", "points":"15", "text":"Social Complication: Public Identity Frequently, Major", "notes":"" }, "complication04":{ }, "complication05":{}, "complication06":{}, "complication07":{}, "complication08":{} }, "powers":{ "power01":{ "compound":"false" }, "power02":{ "name":"(MPSlot1) Bixby's Codex of Forms", "base":"30", "text":"Shape Shift (Sight, Touch, Hearing and Smell/Taste Groups), Imitation, Costs END Only To Change Shape (+1/4) (37 Active Points); Extra Time (1 Turn (Post-Segment 12), -1 1/4), Concentration, Must Concentrate throughout use of Constant Power (1/2 DCV; -1/2), Requires A Roll (13- roll; -1/4), Unified Power - Magical (-1/4), Incantations (-1/4), Gestures (-1/4)", "cost":"10", "endurance":"3", "damage":"", "compound":"false" }, "power03":{ "name":"(MPSlot2) Power Perception", "base":"18", "text":"Detect A Class Of Things 15- (Sight Group), Penetrative (blocked by iron) (18 Active Points); Costs Endurance (Only Costs END to Activate; -1/4), Concentration (1/2 DCV; -1/4), Unified Power - Magical (-1/4), Incantations (-1/4), Gestures (-1/4)", "cost":"8", "endurance":"2", "damage":"15-", "compound":"false" }, "power04":{ "name":"(MPSlot3) Yadaran's Elemental Conduit", "base":"50", "text":"Blast 10d6, Variable SFX: Elemental (Limited Group of SFX; +1/4) (62 Active Points); Side Effects, Side Effect occurs automatically whenever Power is used (Lasting Magical Residual Energy (=BODY damage done, fades at normal healing rate); -1), Unified Power - Magical (-1/4), Incantations (-1/4), Gestures (-1/4)", "cost":"22", "endurance":"6", "damage":"10d6", "compound":"false" }, "power05":{ "name":"(MPSlot4) The Grace of the Honored Masters", "base":"30", "text":"Simplified Healing BODY 3d6 (30 Active Points); Extra Time (Full Phase, -1/2), Concentration (1/2 DCV; -1/4), Unified Power - Magical (-1/4), Incantations (-1/4), Gestures (-1/4)", "cost":"12", "endurance":"3", "damage":"3d6", "compound":"false" }, "power06":{ "name":"(MPSlot5) Xenothu's Mantra", "base":"25", "text":"Mind Control 5d6 (25 Active Points); Concentration (1/2 DCV; -1/4), Unified Power - Magical (-1/4), Incantations (-1/4), Gestures (-1/4)", "cost":"12", "endurance":"2", "damage":"5d6", "compound":"false" }, "power07":{ "name":"(MPSlot6) Come Forth Into The Light", "base":"40", "text":"Drain Invisibility 4d6, Constant (+1/2), Area Of Effect (8m Radius; +1/2) (80 Active Points); Concentration, Must Concentrate throughout use of Constant Power (1/2 DCV; -1/2), Limited Range (-1/4), Unified Power - Magical (-1/4), Incantations (-1/4), Gestures (-1/4)", "cost":"32", "endurance":"8", "damage":"4d6", "compound":"false" }, "power08":{ "compound":"false" }, "power09":{ "name":"(MPSlot1) Thunderbird's Feather", "base":"25", "text":"Flight 20m, x4 Noncombat (25 Active Points); OAF Expendable (Extremely Difficult to obtain new Focus; -2), Unified Power - Magical (-1/4)", "cost":"8", "endurance":"2", "damage":"20m", "compound":"false" }, "power10":{ "name":"(MPSlot2) Chandra's Eye", "base":"20", "text":"Telepathy 4d6 (20 Active Points); Limited Power: Lie Detection Only Power loses almost all of its effectiveness (-2), OAF Expendable (Extremely Difficult to obtain new Focus; -2), Receive Only (-1/2), Unified Power - Magical (-1/4)", "cost":"3", "endurance":"2", "damage":"4d6", "compound":"false" }, "power11":{ "name":"(MPSlot3) Spell Points", "base":"13", "text":"Endurance Reserve (50 END, 1 REC) Reserve: (15 Active Points); OAF Expendable (Extremely Difficult to obtain new Focus; -2), Unified Power - Magical (-1/4); REC: (2 Active Points); Limited Recovery (only while sleeping; -2), OAF Expendable (Extremely Difficult to obtain new Focus; -2), Unified Power - Magical (-1/4)", "cost":"4", "endurance":"0", "damage":"", "compound":"false" }, "power12":{ "name":"(MPSlot4) Dagger of Dreams", "base":"30", "text":"Killing Attack - Hand-To-Hand 2d6, Attack Versus Alternate Defense (Mental Defense; +1), Does BODY (+1) (90 Active Points); OAF Expendable (Extremely Difficult to obtain new Focus; -2), Unified Power - Magical (-1/4)", "cost":"28", "endurance":"9", "damage":"2d6", "compound":"false" }, "power13":{ "name":"(MPSlot5) Guardian Angel Amulet", "base":"120", "text":"(Total: 120 Active Cost, 36 Real Cost) Energy Damage Reduction, Resistant, 75% (60 Active Points); OAF Expendable (Extremely Difficult to obtain new Focus; -2), Unified Power - Magical (-1/4) (Real Cost: 18) plus Physical Damage Reduction, Resistant, 75% (60 Active Points); OAF Expendable (Extremely Difficult to obtain new Focus; -2), Unified Power - Magical (-1/4) (Real Cost: 18)", "cost":"36", "endurance":"0", "damage":"0d60d6", "compound":"true" }, "power14":{ }, "power15":{ }, "power16":{ }, "power17":{ }, "power18":{ }, "power19":{ }, "power20":{ } }, "skills": { "skill01": { "name":"", "enhancer":"true", "text":"Scholar", "display":"Scholar", "attribute":"", "base":"3", "levels":"0", "cost":"3" }, "skill02": { "name":"Anthropology", "enhancer":"", "text":"KS (3 Active Points) 12-", "display":"KS", "attribute":"INT", "base":"3", "levels":"0", "cost":"2" }, "skill03": { "name":"History", "enhancer":"", "text":"KS (3 Active Points) 12-", "display":"KS", "attribute":"INT", "base":"3", "levels":"0", "cost":"2" }, "skill04": { "name":"Occult Studies", "enhancer":"", "text":"KS (3 Active Points) 12-", "display":"KS", "attribute":"INT", "base":"3", "levels":"0", "cost":"2" }, "skill05": { "name":"", "enhancer":"true", "text":"Traveler", "display":"Traveler", "attribute":"", "base":"3", "levels":"0", "cost":"3" }, "skill06": { "name":"Australian Occult Sites", "enhancer":"", "text":"AK (3 Active Points) 12-", "display":"Knowledge Skill", "attribute":"INT", "base":"3", "levels":"0", "cost":"2" }, "skill07": { "name":"Occult Sites of Mexico", "enhancer":"", "text":"AK (3 Active Points) 12-", "display":"Knowledge Skill", "attribute":"INT", "base":"3", "levels":"0", "cost":"2" }, "skill08": { "name":"Occult Sites of Midwest US", "enhancer":"", "text":"AK (3 Active Points) 12-", "display":"Knowledge Skill", "attribute":"INT", "base":"3", "levels":"0", "cost":"2" }, "skill09": { "name":"Occult Sites of New England", "enhancer":"", "text":"AK (3 Active Points) 12-", "display":"Knowledge Skill", "attribute":"INT", "base":"3", "levels":"0", "cost":"2" }, "skill10": { "name":"", "enhancer":"true", "text":"Linguist", "display":"Linguist", "attribute":"", "base":"3", "levels":"0", "cost":"3" }, "skill11": { "name":"Aramaic", "enhancer":"", "text":"Language: Aramaic (fluent conversation) (2 Active Points)", "display":"Language", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"1" }, "skill12": { "name":"Latin", "enhancer":"", "text":"Language: Latin (completely fluent) (3 Active Points)", "display":"Language", "attribute":"GENERAL", "base":"3", "levels":"0", "cost":"2" }, "skill13": { "name":"Cryptography", "enhancer":"", "text":"Cryptography 12-", "display":"Cryptography", "attribute":"INT", "base":"3", "levels":"0", "cost":"3" }, "skill14": { }, "skill15": { }, "skill16": { }, "skill17": { }, "skill18": { }, "skill19": { }, "skill20": { }, "skill21": { }, "skill22": { }, "skill23": { }, "skill24": { }, "skill25": { }, "skill26": { }, "skill27": { }, "skill28": { }, "skill29": { }, "skill30": { }, "skill31": { }, "skill32": { }, "skill33": { }, "skill34": { }, "skill35": { }, "skill36": { }, "skill37": { }, "skill38": { }, "skill39": { }, "skill40": { }, "skill41": { }, "skill42": { }, "skill43": { }, "skill44": { }, "skill45": { }, "skill46": { }, "skill47": { }, "skill48": { }, "skill49": { }, "skill50": { } }, "playerName":"NPC", "gmName":"", "characterFile":"Hex Girl.hdc", "versionHD":"20220801", "timeStamp":"Wed, 23 Nov 2022 20:58:43", "genre":"", "campaign":"Zenith City", "version":"1.0", "HeroSystem6eHeroic":true } } 
1669389542
timmaugh
Pro
API Scripter
The script is looking for this command line: !importHS6e or !i6e The script is also expecting that you will have a token selected, and that that token will represent a character. In the GM notes field of that character, the script is expecting to find a JSON output (the HeroDesigner output). JSON is just a way of structuring/encrypting a javascript object to be a string so that you can do string things to it (like copy/paste), and then parse it back into a javascript object. So the gmnotes field of the character should start with the first left curly brace of your text (the brace indicates the beginning of an object definition), and continue to the last right curly brace. But then there is a problem. The script expects the top level of your JSON to have multiple properties. Most of the ones it is looking for are in your HD output; they're just one level below. Your object has a top-level property of character , with sub-properties like character_name , skills , equipment , etc. The script wants to find those sub-properties at the top level. But then there's another problem. Not all of the properties the script is looking for are attached to your JSON object's character property. Specifically it is looking for a stats property and a disads property. From what I can tell, it looks like the stats property has been exploded with each of the individual game stats for the character attached to the character object as direct child-properties: {   character: {     str: 10,     dexterity: 13,     constitution: 10,     // ... etc.   } } It also looks like the disads property has been labeled as the 6e term "Complications". All of this is relatively easy to fix, but I would want to do it somewhat smartly. Somewhat. Cause ain't nobody got time for full on smartly. There's a HeroDesigner version property attached at the top level of your JSON. The best way to approach a code lift would be to build a check of this property and branch the code... so that if somewhere along the way the output from HD changes, a new branch can be added to the ImportHS6e script and people can still use existing functionality to import characters that were exported from an older HD version. Let me put a version together that does all of that...