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

API Stopped Working on Hero 6e Sheet

I am using the Hero System 6e Importer to bring a character from HeroDesigner into the character page. However, the api is breaking, and the character is only partially getting imported. I would like to know if there is something wrong with the api or if there is something else going on. I have made is so that the importer is the only api on the game, and it still breaks. Any help would be greatly appreciated. I dropped a request on the github for the api script as well. Not sure if it will be seen, so I decided to reach out here to see if someone else has had this same issue. Here is the error information on the API page that was generated: ReferenceError: pft is not defined ReferenceError: pft is not defined at createSimplePower (apiscript.js:2186:5) at apiscript.js:2502:9 at /home/node/d20-api-server/api.js:880:7 at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:560 at hc (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:39:147) at Kd (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:546) at Id.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:489) at Rd.Ld.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:94:425) at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:111:400 at S (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:57:1015)
1671592526
timmaugh
Forum Champion
API Scripter
I'm not sure I've looked at that script specifically, but I would make sure you're using the correct one (that would match up to the export format you're using from Hero Designer). There are a few import scripts out there, and a bunch of them are incomplete or in-process builds. I've seen one that was somewhat functional, but still had issues (not what you're having). With that kind of confusion as to the number of potential Hero Importers, do you have a link to the actual script you're using so we can look at it?
I am using the following in my game: API form the API library on Roll20:&nbsp; ImportHS6e api script Character Sheet from the Character Sheet Library: &nbsp;HeroSystem 6e character sheet I am following instructions from here:&nbsp; <a href="https://www.youtube.com/watch?v=rMCxZfe_pTk" rel="nofollow">https://www.youtube.com/watch?v=rMCxZfe_pTk</a> I am using the correct JSON export, it matches the one from the youtube video, and I even downloaded the export template for HeroDesigner from the source at github:&nbsp; <a href="https://github.com/eepjr24/ImportHS6e" rel="nofollow">https://github.com/eepjr24/ImportHS6e</a> There are 2 importer APIs. One for the sheet mentioned above, the other is for a Heroic level version for a different sheet.&nbsp; Hopefully someone can help with this. Would hate to see this abandoned, right after they released the compendium. Thanks.
1671643672

Edited 1671643686
GiGs
Pro
Sheet Author
API Scripter
If the sheet has been updated later than the script, it's possible (maybe even likely) that there have been changes made to the sheet that break the script. I'd check the last update dates for each through github.
1671660903
Oosh
Sheet Author
API Scripter
There isn't even a reference to 'pft' in the script you linked, though it's possible the reference is constructed from characters somewhere so it doesn't show up in a search. Do you have the JSON somewhere you can link? JSON syntax is pretty strict, and it's easy to have errors in it if you're not using an IDE.
So after doing trying import different characters, I am getting some different results as to when the importer seems to break - giving me different error messages. This is the most current error message - it imported almost all the attributes before the API had an issue. Here is the error message I got, and the JSON code I used is below the error message. ReferenceError: name is not defined ReferenceError: name is not defined at createComplications (apiscript.js:482:11) at apiscript.js:1485:7 at /home/node/d20-api-server/api.js:880:7 at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:560 at hc (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:39:147) at Kd (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:546) at Id.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:489) at Rd.Ld.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:94:425) at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:111:400 at S (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:57:1015) Here is the JSON code I used: { "appversion":"20220801", "exportid":"20221221000544", "name":"Corpse Pile", "playername":"", "version":3.1, "edition":6, "stats":{ "siz":{"value":0,"roll":"","shortname":"siz","name":"Size","current":"primary","primary":{"value":0,"roll":"","mod":0},"secondary":{"value":0,"roll":"","mod":0},"notes":"NO STAT FOUND"}, "str":{"value":15,"roll":"12-","shortname":"str","name":"Strength","current":"primary","primary":{"value":15,"roll":"12-","mod":0},"secondary":{"value":15,"roll":"12-","mod":0},"notes":"HTH Damage 3d6&nbsp; END [1]"}, "dex":{"value":13,"roll":"12-","shortname":"dex","name":"Dexterity","current":"primary","primary":{"value":13,"roll":"12-","mod":0},"secondary":{"value":13,"roll":"12-","mod":0},"notes":""}, "con":{"value":22,"roll":"13-","shortname":"con","name":"Constitution","current":"primary","primary":{"value":22,"roll":"13-","mod":0},"secondary":{"value":22,"roll":"13-","mod":0},"notes":""}, "int":{"value":10,"roll":"11-","shortname":"int","name":"Intelligence","current":"primary","primary":{"value":10,"roll":"11-","mod":0},"secondary":{"value":10,"roll":"11-","mod":0},"notes":"PER Roll 11-"}, "ego":{"value":10,"roll":"11-","shortname":"ego","name":"Ego","current":"primary","primary":{"value":10,"roll":"11-","mod":0},"secondary":{"value":10,"roll":"11-","mod":0},"notes":""}, "com":{"value":0,"roll":"","shortname":"com","name":"Comliness","current":"primary","primary":{"value":0,"roll":"","mod":0},"secondary":{"value":0,"roll":"","mod":0},"notes":"NO STAT FOUND"}, "pre":{"value":15,"roll":"12-","shortname":"pre","name":"Presence","current":"primary","primary":{"value":15,"roll":"12-","mod":0},"secondary":{"value":15,"roll":"12-","mod":0},"notes":"PRE Attack: 3d6"}, "spd":{"value":4,"roll":"10-","shortname":"spd","name":"Speed","current":"primary","primary":{"value":4,"roll":"10-","mod":0},"secondary":{"value":4,"roll":"10-","mod":0},"notes":"Phases: 3, 6, 9, 12"}, "ocv":{"value":7,"roll":"10-","shortname":"ocv","name":"Offensive Combat Value","current":"primary","primary":{"value":7,"roll":"10-","mod":0},"secondary":{"value":7,"roll":"10-","mod":0},"notes":""}, "dcv":{"value":6,"roll":"10-","shortname":"dcv","name":"Defensive Combat Value","current":"primary","primary":{"value":6,"roll":"10-","mod":0},"secondary":{"value":6,"roll":"10-","mod":0},"notes":""}, "omcv":{"value":3,"roll":"10-","shortname":"omcv","name":"Offensive Mental Combat Value","current":"primary","primary":{"value":3,"roll":"10-","mod":0},"secondary":{"value":3,"roll":"10-","mod":0},"notes":""}, "dmcv":{"value":3,"roll":"10-","shortname":"dmcv","name":"Defensive Mental Combat Value","current":"primary","primary":{"value":3,"roll":"10-","mod":0},"secondary":{"value":3,"roll":"10-","mod":0},"notes":""}, "pd":{"value":6,"roll":"10-","shortname":"pd","name":"Physical Defence","current":"primary","primary":{"value":6,"roll":"10-","mod":0},"secondary":{"value":18,"roll":"13-","mod":0},"notes":"6/18 PD (0/12 rPD)"}, "pdr":{"value":6,"roll":"10-","shortname":"pdr","name":"Physical Resistant Defence","current":"primary","primary":{"value":6,"roll":"10-","mod":0},"secondary":{"value":18,"roll":"13-","mod":0},"notes":"6/18 PD (0/12 rPD)"}, "ed":{"value":6,"roll":"10-","shortname":"ed","name":"Energy Defence","current":"primary","primary":{"value":6,"roll":"10-","mod":0},"secondary":{"value":18,"roll":"13-","mod":0},"notes":"6/18 ED (0/12 rED)"}, "edr":{"value":6,"roll":"10-","shortname":"edr","name":"Energy Resistant Defence","current":"primary","primary":{"value":6,"roll":"10-","mod":0},"secondary":{"value":18,"roll":"13-","mod":0},"notes":"6/18 ED (0/12 rED)"}, "per":{"value":10,"roll":"11-","shortname":"per","name":"Perception Roll","current":"primary","primary":{"value":0,"roll":"11-","mod":0},"secondary":{"value":0,"roll":"11-","mod":0},"notes":""}, "rec":{"value":6,"roll":"10-","shortname":"rec","name":"Recovery","current":"primary","primary":{"value":6,"roll":"10-","mod":0},"secondary":{"value":6,"roll":"10-","mod":0},"notes":""}, "body":{"value":13,"roll":"12-","shortname":"body","name":"Body","current":"primary","primary":{"value":13,"roll":"12-","mod":0},"secondary":{"value":13,"roll":"12-","mod":0},"notes":""}, "end":{"value":20,"roll":"13-","shortname":"end","name":"Endurance","current":"primary","primary":{"value":20,"roll":"13-","mod":0},"secondary":{"value":20,"roll":"13-","mod":0},"notes":""}, "stun":{"value":40,"roll":"17-","shortname":"stun","name":"Stun","current":"primary","primary":{"value":40,"roll":"17-","mod":0},"secondary":{"value":40,"roll":"17-","mod":0},"notes":""}, "def":{"value":0,"roll":"","shortname":"def","name":"Defence","current":"primary","primary":{"value":0,"roll":"","mod":0},"secondary":{"value":0,"roll":"","mod":0},"notes":"NO STAT FOUND"}}, "movement":{ "run":{"current":"primary","combat":"12m","noncombat":"24m","primary":{"combat":{"description":"12m","value":12},"noncombat":{"description":"24m","value":24}},"secondary":{"combat":{"description":"12m","value":12},"noncombat":{"description":"24m","value":24}},"icon":"ui_run","notes":""}, "swim":{"current":"primary","combat":"4m","noncombat":"8m","primary":{"combat":{"description":"4m","value":4},"noncombat":{"description":"8m","value":8}},"secondary":{"combat":{"description":"4m","value":4},"noncombat":{"description":"8m","value":8}},"icon":"ui_swim","notes":""}, "leap":{"current":"primary","combat":"4m","noncombat":"8m","primary":{"combat":{"description":"4m/2m","value":4},"noncombat":{"description":"8m","value":8}},"secondary":{"combat":{"description":"4m/2m","value":4},"noncombat":{"description":"8m","value":8}},"icon":"ui_leap","notes":"4m forward, 2m upward"}}, "skills":[ {"name":"Perception ","roll":"11-","everyman":false,"familiarity":false,"proficiency":false,"uid":1111111111111,"type":"Perception","input":"","level":"0","active":"0","base":"0","XMLID":"PERCEPTION","modifiers":[],"adders":[],"option":"","optionAlias":"","optionID":"","text":"Perception 11-"}, {"name":"Acrobatics ","everyman":false,"familiarity":false,"proficiency":false,"roll":"12-","uid":1626058541543,"type":"Acrobatics","input":"","level":"0","active":"3","base":"3","char":"DEX","XMLID":"ACROBATICS","modifiers":[],"adders":[],"option":"","optionAlias":"","optionID":"","text":"Acrobatics 12-"}, {"name":"Breakfall ","everyman":false,"familiarity":false,"proficiency":false,"roll":"12-","uid":1626058554663,"type":"Breakfall","input":"","level":"0","active":"3","base":"3","char":"DEX","XMLID":"BREAKFALL","modifiers":[],"adders":[],"option":"","optionAlias":"","optionID":"","text":"Breakfall 12-"}, {"name":"Shadowing ","everyman":false,"familiarity":false,"proficiency":false,"roll":"11-","uid":1626058593051,"type":"Shadowing","input":"","level":"0","active":"3","base":"3","char":"INT","XMLID":"SHADOWING","modifiers":[],"adders":[],"option":"","optionAlias":"","optionID":"","text":"Shadowing 11-"}, {"name":"Stealth ","everyman":false,"familiarity":false,"proficiency":false,"roll":"12-","uid":1626058593887,"type":"Stealth","input":"","level":"0","active":"3","base":"3","char":"DEX","XMLID":"STEALTH","modifiers":[],"adders":[],"option":"","optionAlias":"","optionID":"","text":"Stealth 12-"}, {"name":"Climbing ","everyman":false,"familiarity":false,"proficiency":false,"roll":"12-","uid":1671348895142,"type":"Climbing","input":"","level":"0","active":"3","base":"3","char":"DEX","XMLID":"CLIMBING","modifiers":[],"adders":[],"option":"","optionAlias":"","optionID":"","text":"Climbing 12-"}, {"name":"Fast Draw ","everyman":false,"familiarity":false,"proficiency":false,"roll":"12-","uid":1671348934743,"type":"Fast Draw","input":"","level":"0","active":"3","base":"3","char":"DEX","XMLID":"FAST_DRAW","modifiers":[],"adders":[],"option":"","optionAlias":"","optionID":"","text":"Fast Draw 12-"}, {"name":"Rapid Attack ","everyman":false,"familiarity":false,"proficiency":false,"roll":"","uid":1671348983262,"type":"Rapid Attack","input":"","level":"0","active":"10","base":"10","char":"GENERAL","XMLID":"RAPID_ATTACK_HTH","modifiers":[{"XMLID":"HTHONLY","value":"-1","name":"","uid":1671355231211,"cost":"-1","type":"HTH Multiple Attacks Only","input":"","level":"0"}],"adders":[],"option":"","optionAlias":"","optionID":"","text":"Rapid Attack&nbsp; (10 Active Points); Ranged Multiple Attacks Only (-1)"}, {"name":"Combat Skill Levels: Combat Training ","everyman":false,"familiarity":false,"proficiency":false,"roll":"","uid":1626058621272,"type":"Combat Skill Levels","input":"with a small group of attacks","level":"2","active":"6","base":"6","char":"GENERAL","XMLID":"COMBAT_LEVELS","modifiers":[],"adders":[],"option":"with a small group of attacks","optionAlias":"with Martial Range Attacks &amp; Swords","optionID":"TIGHT","text":"+2 with Martial Range Attacks &amp; Swords"}], "talents":[ {"name":"Lightning Reflexes ","desc":"Lightning Reflexes (+10 DEX to act first with All Ranged Attacks)","roll":"","uid":1626585018784,"type":"Lightning Reflexes","input":"All Ranged Attacks","level":"10","active":"5","base":"5","XMLID":"LIGHTNING_REFLEXES_ALL","modifiers":[],"adders":[]}], "perks":[ {"name":"Vehicles &amp; Bases ","desc":"Vehicles &amp; Bases","roll":"","uid":1627878524139,"type":"Vehicles &amp; Bases","input":"","level":"0","active":"6","base":"6","XMLID":"VEHICLE_BASE","modifiers":[],"adders":[]}], "disads":[ {"name":"Dependent NPC","roll":"","uid":1626580392634,"type":"Dependent NPC","input":"Vanessa - Wife","level":"0","active":"10","base":"10","XMLID":"DEPENDENTNPC","modifiers":[],"adders":[{"name":"No Name Supplied","uid":1626580654263,"type":"Appearance","input":"Infrequently","level":"0"},{"name":"No Name Supplied","uid":1626580654270,"type":"Usefulness","input":"Normal","level":"0"}]}, {"name":"Distinctive Features","roll":"","uid":1626585076691,"type":"Distinctive Features","input":"Face looks like an avocado had sex with an older, more disgusting avocado. Not gently. Like it was hate-fucking.","level":"0","active":"10","base":"10","XMLID":"DISTINCTIVEFEATURES","modifiers":[],"adders":[{"name":"No Name Supplied","uid":1626585339545,"type":"Concealability","input":"Easily Concealed","level":"0"},{"name":"No Name Supplied","uid":1626585339551,"type":"Reaction","input":"Always Noticed and Causes Major Reaction","level":"0"},{"name":"No Name Supplied","uid":1626585339557,"type":"Sensing","input":"Detectable By Commonly-Used Senses","level":"0"}]}, {"name":"Unluck: 3d6","roll":"","uid":1626585364100,"type":"Unluck: 3d6","input":"","level":"3","active":"15","base":"15","XMLID":"UNLUCK","modifiers":[],"adders":[]}, {"name":"Hunted","roll":"","uid":1626585445151,"type":"Hunted","input":"The Enclave (Secret Assassin Organization)","level":"0","active":"15","base":"15","XMLID":"HUNTED","modifiers":[],"adders":[{"name":"No Name Supplied","uid":1671355598853,"type":"Appearance","input":"Infrequently","level":"0"},{"name":"No Name Supplied","uid":1671355598859,"type":"Capabilities","input":"More Powerful","level":"0"},{"name":"No Name Supplied","uid":1671355598865,"type":"Motivation","input":"Mildly Punish","level":"0"},{"name":"No Name Supplied","uid":1671355598866,"type":"Extensive Non-Combat Influence","input":"","level":"0"}]}, {"name":"Psychological Complication","roll":"","uid":1628483534545,"type":"Psychological Complication","input":"Promised Vanessa He Would Not Kill Kids, Dogs, or Ferrets. But cats are ok. Murder those arrogant furry fuckers!","level":"0","active":"5","base":"5","XMLID":"PSYCHOLOGICALLIMITATION","modifiers":[],"adders":[{"name":"No Name Supplied","uid":1671355575121,"type":"Situation Is","input":"Uncommon","level":"0"},{"name":"No Name Supplied","uid":1671355575127,"type":"Intensity Is","input":"Moderate","level":"0"}]}], "combatlevels":[ {"name":"Combat Skill Levels","roll":"","uid":1626058621272,"type":"Combat Skill Levels","input":"with a small group of attacks","level":"2","active":"6","base":"6","XMLID":"COMBAT_LEVELS","modifiers":[],"adders":[]}], "powers":[ {"name":"No Name Supplied","desc":"Symbiot Powers, all slots Unified Power (-¼)","uid":1626059632360,"type":"","damage":"","range":"","input":"","level":"0","end":"","active":"0","base":"0","XMLID":"GENERIC_OBJECT","strMod":false,"class":{"attack":false,"mental":false,"adjustment":false,"bodyaffecting":false,"sensory":false,"move":false,"defense":false,"compound":false,"senseaffecting":false,"special":false},"modifiers":[{"value":"-¼","name":"","uid":1671346114885,"type":"Unified Power","damage":"","range":"","input":"","level":"0"}],"adders":[]}, {"name":"Regeneration","desc":"Regeneration (2 BODY per Turn) (32 Active Points); Does Not Work On Some Damage ([Uncommon attack]; Magic; -½), Unified Power (-¼)","uid":1626057679126,"type":"Regeneration","damage":"2 BODY per Turn","range":"","input":"Turn","level":"2","end":"0","active":"32","base":"32","XMLID":"REGENERATION","strMod":false,"class":{"attack":false,"mental":false,"adjustment":false,"bodyaffecting":false,"sensory":false,"move":false,"defense":false,"compound":false,"senseaffecting":false,"special":true},"modifiers":[{"value":"-½","name":"","uid":1626583444029,"type":"Does Not Work On Some Damage","damage":"2 BODY per Turn","range":"","input":"[Uncommon attack]","level":"0"}],"adders":[]}, {"name":"No Name Supplied","desc":"Life Support&nbsp; (Eating: Character does not eat; Extended Breathing: 1 END per 20 Minutes; Sleeping: Character does not sleep) (10 Active Points); Unified Power (-¼)","uid":1626059060800,"type":"Life Support","damage":"","range":"","input":"","level":"0","end":"0","active":"10","base":"10","XMLID":"LIFESUPPORT","strMod":false,"class":{"attack":false,"mental":false,"adjustment":false,"bodyaffecting":false,"sensory":false,"move":false,"defense":false,"compound":false,"senseaffecting":false,"special":false},"modifiers":[],"adders":[{"name":"No Name Supplied","uid":1671346069625,"type":"Eating","damage":"","range":"","input":"Character does not eat","level":"0"},{"name":"No Name Supplied","uid":1671346069632,"type":"Extended Breathing","damage":"","range":"","input":"1 END per 20 Minutes","level":"0"},{"name":"No Name Supplied","uid":1671346069638,"type":"Sleeping","damage":"","range":"","input":"Character does not sleep","level":"0"}]}, {"name":"Hardened Skin","desc":"Resistant Protection (12 PD/12 ED) (36 Active Points); Always On (-½), Unified Power (-¼)","uid":1626057782172,"type":"Resistant Protection","damage":"","range":"","input":"","level":"24","end":"0","active":"36","base":"36","XMLID":"FORCEFIELD","strMod":false,"class":{"attack":false,"mental":false,"adjustment":false,"bodyaffecting":false,"sensory":false,"move":false,"defense":true,"compound":false,"senseaffecting":false,"special":false},"modifiers":[{"value":"-½","name":"","uid":1626059557501,"type":"Always On","damage":"","range":"","input":"","level":"0"}],"adders":[]}, {"name":"Combat Focus","desc":"Boost&nbsp; OCV 2d6 (standard effect: 6 points), Expanded Effect (OCV and DCV) (+½) (18 Active Points); Only to Aid Self (-1), Costs Endurance (to maintain; -½), Unified Power (-¼)","uid":1626058854842,"type":"Aid","damage":"2d6 (standard effect: 6 points)","range":"","input":"OCV","level":"2","end":"2","active":"18","base":"12","XMLID":"AID","strMod":false,"class":{"attack":false,"mental":false,"adjustment":true,"bodyaffecting":false,"sensory":false,"move":false,"defense":false,"compound":false,"senseaffecting":false,"special":false},"modifiers":[{"value":"-½","name":"","uid":1626586633387,"type":"Costs Endurance (to maintain","damage":"2d6 (standard effect: 6 points)","range":"","input":"","level":"0"},{"value":"-1","name":"","uid":1626586633388,"type":"Only to Aid Self","damage":"2d6 (standard effect: 6 points)","range":"","input":"","level":"0"},{"value":"+½","name":"","uid":1626586633389,"type":"Expanded Effect (x2 Characteristics or Powers simultaneously)","damage":"2d6 (standard effect: 6 points)","range":"","input":"","level":"2"}],"adders":[]}, {"name":"Ares VAD PP30","desc":"Multipower, 37-point reserve,&nbsp; (37 Active Points); all slots OAF (-1), 4 clips of 6 Charges (-¼)","uid":1626058404053,"type":"","damage":"","range":"","input":"","level":"0","end":"","active":"37","base":"37","XMLID":"GENERIC_OBJECT","strMod":false,"class":{"attack":false,"mental":false,"adjustment":false,"bodyaffecting":false,"sensory":false,"move":false,"defense":false,"compound":false,"senseaffecting":false,"special":false},"modifiers":[{"value":"-1","name":"","uid":1626586605713,"type":"Focus","damage":"","range":"","input":"OAF","level":"0"},{"value":"-¼","name":"","uid":1626586605779,"type":"Charges","damage":"","range":"","input":"6","level":"0"}],"adders":[]}, {"name":"Stunning Blast","desc":"Blast 7d6, STUN Only (+0) (35 Active Points); OAF (-1)","uid":1626058007088,"type":"Blast","damage":"7d6","range":"350m","input":"ED","level":"7","end":"0","active":"35","base":"35","XMLID":"ENERGYBLAST","strMod":false,"class":{"attack":true,"mental":false,"adjustment":false,"bodyaffecting":false,"sensory":false,"move":false,"defense":false,"compound":false,"senseaffecting":false,"special":false},"modifiers":[{"value":"+0","name":"","uid":1626058773054,"type":"STUN Only","damage":"7d6","range":"350m","input":"","level":"0"}],"adders":[]}, {"name":"Energy Blast","desc":"Killing Ranged 2d6, Autofire (3 shots; +¼) (37 Active Points); OAF (-1)","uid":1626058032294,"type":"Killing Ranged","damage":"2d6","range":"300m","input":"ED","level":"2","end":"0","active":"37","base":"30","XMLID":"RKA","strMod":false,"class":{"attack":true,"mental":false,"adjustment":false,"bodyaffecting":false,"sensory":false,"move":false,"defense":false,"compound":false,"senseaffecting":false,"special":false},"modifiers":[{"value":"+¼","name":"","uid":1626058723096,"type":"Autofire","damage":"2d6","range":"300m","input":"3 Shots","level":"0"}],"adders":[]}, {"name":"AP Energy Blast","desc":"Killing Ranged 2d6, Armor Piercing (+¼) (37 Active Points); OAF (-1)","uid":1626058107355,"type":"Killing Ranged","damage":"2d6","range":"300m","input":"ED","level":"2","end":"0","active":"37","base":"30","XMLID":"RKA","strMod":false,"class":{"attack":true,"mental":false,"adjustment":false,"bodyaffecting":false,"sensory":false,"move":false,"defense":false,"compound":false,"senseaffecting":false,"special":false},"modifiers":[{"value":"+¼","name":"","uid":1626058585625,"type":"Armor Piercing","damage":"2d6","range":"300m","input":"","level":"1"}],"adders":[]}, {"name":"Concussive Blast","desc":"Blast 5d6, Double Knockback (+½) (37 Active Points); OAF (-1)","uid":1626058143528,"type":"Blast","damage":"5d6","range":"250m","input":"ED","level":"5","end":"0","active":"37","base":"25","XMLID":"ENERGYBLAST","strMod":false,"class":{"attack":true,"mental":false,"adjustment":false,"bodyaffecting":false,"sensory":false,"move":false,"defense":false,"compound":false,"senseaffecting":false,"special":false},"modifiers":[{"value":"+½","name":"","uid":1626058619815,"type":"Double Knockback","damage":"5d6","range":"250m","input":"","level":"0"}],"adders":[]}, {"name":"Explosive Barrage","desc":"Killing Ranged 2d6-1, Area Of Effect (8m Radius; +½) (37 Active Points); OAF (-1)","uid":1626058197487,"type":"Killing Ranged","damage":"2d6-1","range":"250m","input":"ED","level":"1","end":"0","active":"37","base":"25","XMLID":"RKA","strMod":false,"class":{"attack":true,"mental":false,"adjustment":false,"bodyaffecting":false,"sensory":false,"move":false,"defense":false,"compound":false,"senseaffecting":false,"special":false},"modifiers":[{"value":"+½","name":"","uid":1626058671926,"type":"Area Of Effect","damage":"2d6-1","range":"250m","input":"Radius","level":"8"}],"adders":[{"name":"No Name Supplied","uid":1626058692829,"type":"+1d6 -1","damage":"2d6-1","range":"250m","input":"","level":"0"}]}, {"name":"Killa Killa Sword","desc":"Killing Attack - Hand-To-Hand 2d6 (3d6 w/STR) (30 Active Points); OAF (-1)","uid":1635129894704,"type":"Killing Attack - Hand-To-Hand","damage":"2d6 (3d6 w/STR)","range":"","input":"PD","level":"2","end":"3","active":"30","base":"30","XMLID":"HKA","strMod":true,"class":{"attack":true,"mental":false,"adjustment":false,"bodyaffecting":false,"sensory":false,"move":false,"defense":false,"compound":false,"senseaffecting":false,"special":false},"modifiers":[{"value":"-1","name":"","uid":1635130288988,"type":"Focus","damage":"2d6 (3d6 w/STR)","range":"","input":"OAF","level":"0"}],"adders":[]}], "equipment":[], "martialArts":[ {"name":"Other Attacks","gameEdition":6 ,"ocvMod":0,"dcvMod":0,"dice":3,"halfDice":false,"killingAttack":false,"effect":"Normal Attack","time":"½","level":"0","active":"1","targetNumber":0,"targetCheck":false,"stunMultiplierMod":0,"tool":"Other Attacks:½ Phase, +0 OCV, +0 DCV, Normal attack","toHit":true,"againstOCV":false,"toPost":false,"post":"","rngMod":0,"abort":false}, {"name":"Offensive Strike","gameEdition":6 ,"ocvMod":-2,"dcvMod":1,"dice":3,"halfDice":false,"killingAttack":false,"effect":"Weapon +4 DC Strike","time":"½","level":"0","toHit":true,"againstOCV":false,"toPost":false,"post":"","active":"5","targetNumber":0,"targetCheck":false,"stunMultiplierMod":0,"tool":"Offensive Strike:½ Phase, -2 OCV, +1 DCV, Weapon +4 DC Strike","rngMod":0, "abort":false },{"name":"Martial Block","gameEdition":6 ,"ocvMod":2,"dcvMod":2,"dice":3,"halfDice":false,"killingAttack":false,"effect":"Block, Abort","time":"½","level":"0","toHit":true,"againstOCV":false,"toPost":false,"post":"","active":"4","targetNumber":0,"targetCheck":false,"stunMultiplierMod":0,"tool":"Martial Block:½ Phase, +2 OCV, +2 DCV, Block, Abort","rngMod":0, "abort":true },{"name":"Offensive Shot","gameEdition":6 ,"ocvMod":-1,"dcvMod":-1,"dice":3,"halfDice":false,"killingAttack":false,"effect":"Strike, +4 DC","time":"½","level":"0","toHit":true,"againstOCV":false,"toPost":false,"post":"","active":"4","targetNumber":0,"targetCheck":false,"stunMultiplierMod":0,"tool":"Offensive Shot:½ Phase, -1 OCV, -1 DCV, Range +0, Strike, +4 DC","rngMod":0, "abort":false },{"name":"Basic Shot","gameEdition":6 ,"ocvMod":0,"dcvMod":0,"dice":3,"halfDice":false,"killingAttack":false,"effect":"Strike, +2 DC","time":"½","level":"0","toHit":true,"againstOCV":false,"toPost":false,"post":"","active":"4","targetNumber":0,"targetCheck":false,"stunMultiplierMod":0,"tool":"Basic Shot:½ Phase, +0 OCV, +0 DCV, Range +2, Strike, +2 DC","rngMod":2, "abort":false }], "rolls":[ {"name":"Stunning Blast","uid":1626058007088,"gameEdition":6,"tool":"7d6, Blast (vs. ED) 350m, 0 end.","diceMod":0,"dice":7,"halfDice":false,"killingAttack":false,"targetNumber":0,"targetCheck":false,"strMod":false,"stunMultiplierMod":0}, {"name":"Energy Blast","uid":1626058032294,"gameEdition":6,"tool":"2d6, Killing Ranged (vs. ED) 300m, 0 end.","diceMod":0,"dice":2,"halfDice":false,"killingAttack":true,"targetNumber":0,"targetCheck":false,"strMod":false,"stunMultiplierMod":0}, {"name":"AP Energy Blast","uid":1626058107355,"gameEdition":6,"tool":"2d6, Killing Ranged (vs. ED) 300m, 0 end.","diceMod":0,"dice":2,"halfDice":false,"killingAttack":true,"targetNumber":0,"targetCheck":false,"strMod":false,"stunMultiplierMod":0}, {"name":"Concussive Blast","uid":1626058143528,"gameEdition":6,"tool":"5d6, Blast (vs. ED) 250m, 0 end.","diceMod":0,"dice":5,"halfDice":false,"killingAttack":false,"targetNumber":0,"targetCheck":false,"strMod":false,"stunMultiplierMod":0}, {"name":"Explosive Barrage","uid":1626058197487,"gameEdition":6,"tool":"2d6-1, Killing Ranged (vs. ED) 250m, 0 end.","diceMod":-1,"dice":2,"halfDice":false,"killingAttack":true,"targetNumber":0,"targetCheck":false,"strMod":false,"stunMultiplierMod":0}, {"name":"Killa Killa Sword","uid":1635129894704,"gameEdition":6,"tool":"2d6 (3d6 w/STR), Killing Attack - Hand-To-Hand (vs. PD) , 3 end.","diceMod":0,"dice":3,"halfDice":false,"killingAttack":true,"targetNumber":0,"targetCheck":false,"strMod":true,"stunMultiplierMod":0}], "lightningReflex":[ {"name":"+10 DEX to act first with All Ranged Attacks","levels":10,"tool":"Lightning Reflexes (+10 DEX to act first with All Ranged Attacks)","isActive":false}], "height":"1.80 m", "weight":"83.91 kg", "hair":"None", "eye":"Blue", "appearance":"", "background":"Special Ops Commander in Veitnam War. Came across weird alien experiments in a village the led to the death of nearly his entire squad. His entire body was burned, and he was left dying. His comrad, now possessed by a symbiot, injected his dying friend with a symbiot as well. However, the damage done to the body has forced the symbiot to spend its considerabl powers to keep his host alive, and has not been able to fully take control of XXXXX (redacted name).", "personality":"Hired assassin with a very cold out look at life, but knows who the good guys are. Corpse Pile is a name that has been given to him by his enemies... for a good reason.", "quote":"", "tactics":"", "campUse":""}
1671725205

Edited 1671733356
timmaugh
Forum Champion
API Scripter
I was helping someone else with this script a couple of weeks back. It was throwing the same error about "name" then, too. The problem, then was that Power Frameworks and Power Groups (in Hero Designer) weren't getting a name assigned, but the script was expecting one. The person I was helping reached out to the author over the HeroDesigner forums (I think that's where it happened), and reported the problem. I think that worked to get the author's attention, because in your JSON you have a Power Group (I think) that has a name of "No Name Supplied". In fact, you have a few things with that designation. Not sure that's the direction I would have gone to fix that particular problem, because the only thing about a Power Group in HeroDesigner is the character point cost... and that wouldn't be tracked anywhere in the Roll20 sheet... it doesn't care about that. So the PowerGroup doesn't have to be imported if the advantages/limitations are applied to the affected powers in the JSON output (and if I remember, they are). Better, I think, to just skip Power Groups. Maybe the script does that, I'd have to take another look at what else might have changed. Does the fact that there are several things with that designation throw an error? Again, I'd have to read the code more closely. Another oddity of your error (beside there being no reference to "pft", as Oosh noted), is that there isn't 2186 lines to the script, and that was the offending line number of the error you first posted. The Importer script you're using registers itself to a pan-script object that a lot of us use to help pinpoint line numbers when we get this sort of error, but this script doesn't report its offset when the sandbox boots up. (Most scripts that register to this pan-script "meta" object will output their offset so that you just have to do a little math when you get an error to figure out how many lines into this- or that-script the error is. Without this script reporting that, it doesn't help. So I put this quick and dirty script together to report information about scripts reporting to that object. Run it with: !scriptinfo ...to get a report of all of the scripts that are registering themselves. It will show their starting line numbers and their line counts. Alternatively, if you get an error attached to a line number, you can reboot your sandbox and then issue a similar command but adding that line number: !scriptinfo 2186 ...which might tell you where that line is (caveat: not all scripts register to this pan-script object, so sometimes the best we can do is tell you it is before this script, or after that one, or between these 2). Run this and share the offset with us so we can narrow down the line. I'll try to give your JSON a run in my game when I get a minute. Script: /* ========================================================= Name : APIMetaInfo GitHub : Roll20 Contact : timmaugh Version : 0.0.1 Last Update : 12/21/2022 ========================================================= */ var API_Meta = API_Meta || {}; API_Meta.APIMetaInfo = { offset: Number.MAX_SAFE_INTEGER, lineCount: -1 }; { try { throw new Error(''); } catch (e) { API_Meta.APIMetaInfo.offset = (parseInt(e.stack.split(/\n/)[1].replace(/^.*:(\d+):.*$/, '$1'), 10) - (12)); } } on('ready', () =&gt; { const scriptName = 'APIMetaInfo'; const scriptVersion = '0.0.1'; const logsig = () =&gt; { state.houseofmod = state.houseofmod || {}; state.houseofmod.siglogged = state.houseofmod.siglogged || false; state.houseofmod.sigtime = state.houseofmod.sigtime || Date.now() - 3001; if ( !state.houseofmod.siglogged || Date.now() - state.houseofmod.sigtime &gt; 3000 ) { const logsig = "\n" + " ________________________ \n" + " ╱ ______ ╲ \n" + " ╱ _____ ╲ \n" + " ╱ ____ ╲ \n" + " ╱______________________________╲ \n" + " ┃ _____ _____ ┃ \n" + " ┃ ┃_┃_┃ MOD ┃_┃_┃ ┃ \n" + " ┃ ┃_┃_┃ _____ ┃_┃_┃ ┃ \n" + " ┃ ┃ ┃ ┃ \n" + " ┃ ┃ o┃ ┃ \n" + "_____________┃_________┃___┃________┃_______________\n" + " \n"; log(`${logsig}`); state.houseofmod.siglogged = true; state.houseofmod.sigtime = Date.now(); } return; }; let hom = String.fromCodePoint(0xd83c,0xdfe0); log(`${hom} ${scriptName} v${scriptVersion} ${hom} -- offset ${API_Meta[scriptName].offset}`); const reportMsg = Object.keys(API_Meta).reduce((m,k) =&gt; { if (API_Meta[k].hasOwnProperty('offset')) { m = `${m}{{ ${k}=${API_Meta[k].offset} / (${API_Meta[k].hasOwnProperty('lineCount') ? API_Meta[k].lineCount : '????'})}}`; } return m; },`&amp;{template:default}{{name=Script Information}}{{ SCRIPT NAME=**START / LINES**}}`); const getScriptForLine = (n) =&gt; { let location = Object.keys(API_Meta).filter(k =&gt; API_Meta[k].hasOwnProperty('offset') &amp;&amp; API_Meta[k].hasOwnProperty('lineCount')).reduce((m,k) =&gt; { if (m.hasOwnProperty('within')) return m; if (n &gt;= API_Meta[k].offset &amp;&amp; n &lt;= (API_Meta[k].offset + API_Meta[k].lineCount - 1)) { m.within = k; } else { if (n &lt; API_Meta[k].offset) m.before = m.before || k; else m.after = k; } return m; },{ }); if (location.within) return `Line ${n} corresponds to line ${n - API_Meta[location.within].offset} in ${location.within}.`; if (location.before &amp;&amp; location.after) return `That line number does not correspond to any script reporting its offset. ` + `It occurs ${n - (API_Meta[location.after].offset + API_Meta[location.after].lineCount -1)} lines after the end of ${location.after}, and ` + `${API_Meta[location.before].offset - (n + 1)} lines before the start of ${location.before}.`; if (location.after) return `That line number does not correspond to any script reporting its offset. ` + `It occurs ${n - (API_Meta[location.after].offset + API_Meta[location.after].lineCount -1)} lines after the end of ${location.after}.`; if (location.before) return `That line number does not correspond to any script reporting its offset. ` + `It occurs ${API_Meta[location.before].offset - (n + 1)} lines before the start of ${location.before}.`; }; on('chat:message', (msg) =&gt; { if (msg.type !== 'api' || !/^!scriptinfo\b/.test(msg.content)) return; let args = msg.content.split(/\s+/).slice(1); if (!args.length) { // get API_Meta object info sendChat('MODERATOR', reportMsg); } else { sendChat('MODERATOR', `&amp;{template:default}{{name=Script Information (Line ${args[0]})}}{{=${getScriptForLine(Number(args[0]))}}}`, null, { noarchive: true }); } }); }); { try { throw new Error(''); } catch (e) { API_Meta.APIMetaInfo.lineCount = (parseInt(e.stack.split(/\n/)[1].replace(/^.*:(\d+):.*$/, '$1'), 10) - API_Meta.APIMetaInfo.offset); } }
1671725421
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
That's a super helpful script!
1671725851
timmaugh
Forum Champion
API Scripter
Thanks, Keith!
I placed the script and ran it after trying to import a simple character with 3 powers and a couple of skills and stats. After the error message on the api page, I get this:&nbsp;"🏠 APIMetaInfo v0.0.1 🏠 -- offset 1523" As for when I ran the script inside the game, I get this:&nbsp; Script Information SCRIPT NAME START / LINES ImportHS6e 1 / (1522) APIMetaInfo 1523 / (85) Here is the API error message and following that is the JSON import I used: For reference, the error message generated was:&nbsp; ReferenceError: pft is not defined ReferenceError: pft is not defined &nbsp;&nbsp;&nbsp; at createSimplePower (apiscript.js:1180:5) &nbsp;&nbsp;&nbsp; at apiscript.js:1496:9 &nbsp;&nbsp;&nbsp; at /home/node/d20-api-server/api.js:880:7 &nbsp;&nbsp;&nbsp; at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:560 &nbsp;&nbsp;&nbsp; at hc (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:39:147) &nbsp;&nbsp;&nbsp; at Kd (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:546) &nbsp;&nbsp;&nbsp; at Id.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:489) &nbsp;&nbsp;&nbsp; at Rd.Ld.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:94:425) &nbsp;&nbsp;&nbsp; at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:111:400 &nbsp;&nbsp;&nbsp; at S (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:57:1015) &nbsp; &nbsp; &nbsp; Here is the JSON FILE INFO { "appversion":"20220801", "exportid":"20221222150035", "name":"Tiny Fairy Golem", "playername":"", "version":3.1, "edition":6, "stats":{ "siz":{"value":0,"roll":"","shortname":"siz","name":"Size","current":"primary","primary":{"value":0,"roll":"","mod":0},"secondary":{"value":0,"roll":"","mod":0},"notes":"NO STAT FOUND"}, "str":{"value":15,"roll":"12-","shortname":"str","name":"Strength","current":"primary","primary":{"value":15,"roll":"12-","mod":0},"secondary":{"value":15,"roll":"12-","mod":0},"notes":"HTH Damage 3d6&nbsp; END [1]"}, "dex":{"value":10,"roll":"11-","shortname":"dex","name":"Dexterity","current":"primary","primary":{"value":10,"roll":"11-","mod":0},"secondary":{"value":10,"roll":"11-","mod":0},"notes":""}, "con":{"value":10,"roll":"11-","shortname":"con","name":"Constitution","current":"primary","primary":{"value":10,"roll":"11-","mod":0},"secondary":{"value":10,"roll":"11-","mod":0},"notes":""}, "int":{"value":10,"roll":"11-","shortname":"int","name":"Intelligence","current":"primary","primary":{"value":10,"roll":"11-","mod":0},"secondary":{"value":10,"roll":"11-","mod":0},"notes":"PER Roll 11-"}, "ego":{"value":10,"roll":"11-","shortname":"ego","name":"Ego","current":"primary","primary":{"value":10,"roll":"11-","mod":0},"secondary":{"value":10,"roll":"11-","mod":0},"notes":""}, "com":{"value":0,"roll":"","shortname":"com","name":"Comliness","current":"primary","primary":{"value":0,"roll":"","mod":0},"secondary":{"value":0,"roll":"","mod":0},"notes":"NO STAT FOUND"}, "pre":{"value":10,"roll":"11-","shortname":"pre","name":"Presence","current":"primary","primary":{"value":10,"roll":"11-","mod":0},"secondary":{"value":10,"roll":"11-","mod":0},"notes":"PRE Attack: 2d6"}, "spd":{"value":3,"roll":"10-","shortname":"spd","name":"Speed","current":"primary","primary":{"value":3,"roll":"10-","mod":0},"secondary":{"value":3,"roll":"10-","mod":0},"notes":"Phases: 4, 8, 12"}, "ocv":{"value":3,"roll":"10-","shortname":"ocv","name":"Offensive Combat Value","current":"primary","primary":{"value":3,"roll":"10-","mod":0},"secondary":{"value":3,"roll":"10-","mod":0},"notes":""}, "dcv":{"value":3,"roll":"10-","shortname":"dcv","name":"Defensive Combat Value","current":"primary","primary":{"value":3,"roll":"10-","mod":0},"secondary":{"value":3,"roll":"10-","mod":0},"notes":""}, "omcv":{"value":3,"roll":"10-","shortname":"omcv","name":"Offensive Mental Combat Value","current":"primary","primary":{"value":3,"roll":"10-","mod":0},"secondary":{"value":3,"roll":"10-","mod":0},"notes":""}, "dmcv":{"value":3,"roll":"10-","shortname":"dmcv","name":"Defensive Mental Combat Value","current":"primary","primary":{"value":3,"roll":"10-","mod":0},"secondary":{"value":3,"roll":"10-","mod":0},"notes":""}, "pd":{"value":2,"roll":"9-","shortname":"pd","name":"Physical Defence","current":"primary","primary":{"value":2,"roll":"9-","mod":0},"secondary":{"value":2,"roll":"9-","mod":0},"notes":"2 PD (0 rPD)"}, "pdr":{"value":2,"roll":"9-","shortname":"pdr","name":"Physical Resistant Defence","current":"primary","primary":{"value":2,"roll":"9-","mod":0},"secondary":{"value":2,"roll":"9-","mod":0},"notes":"2 PD (0 rPD)"}, "ed":{"value":2,"roll":"9-","shortname":"ed","name":"Energy Defence","current":"primary","primary":{"value":2,"roll":"9-","mod":0},"secondary":{"value":2,"roll":"9-","mod":0},"notes":"2 ED (0 rED)"}, "edr":{"value":2,"roll":"9-","shortname":"edr","name":"Energy Resistant Defence","current":"primary","primary":{"value":2,"roll":"9-","mod":0},"secondary":{"value":2,"roll":"9-","mod":0},"notes":"2 ED (0 rED)"}, "per":{"value":10,"roll":"11-","shortname":"per","name":"Perception Roll","current":"primary","primary":{"value":0,"roll":"11-","mod":0},"secondary":{"value":0,"roll":"11-","mod":0},"notes":""}, "rec":{"value":4,"roll":"10-","shortname":"rec","name":"Recovery","current":"primary","primary":{"value":4,"roll":"10-","mod":0},"secondary":{"value":4,"roll":"10-","mod":0},"notes":""}, "body":{"value":5,"roll":"10-","shortname":"body","name":"Body","current":"primary","primary":{"value":5,"roll":"10-","mod":0},"secondary":{"value":5,"roll":"10-","mod":0},"notes":""}, "end":{"value":20,"roll":"13-","shortname":"end","name":"Endurance","current":"primary","primary":{"value":20,"roll":"13-","mod":0},"secondary":{"value":20,"roll":"13-","mod":0},"notes":""}, "stun":{"value":18,"roll":"13-","shortname":"stun","name":"Stun","current":"primary","primary":{"value":18,"roll":"13-","mod":0},"secondary":{"value":18,"roll":"13-","mod":0},"notes":""}, "def":{"value":0,"roll":"","shortname":"def","name":"Defence","current":"primary","primary":{"value":0,"roll":"","mod":0},"secondary":{"value":0,"roll":"","mod":0},"notes":"NO STAT FOUND"}}, "movement":{ "run":{"current":"primary","combat":"6m","noncombat":"12m","primary":{"combat":{"description":"6m","value":6},"noncombat":{"description":"12m","value":12}},"secondary":{"combat":{"description":"6m","value":6},"noncombat":{"description":"12m","value":12}},"icon":"ui_run","notes":""}, "fly":{"current":"primary","combat":"12m","noncombat":"24m","primary":{"combat":{"description":"12m","value":12},"noncombat":{"description":"24m","value":24}},"secondary":{"combat":{"description":"12m","value":12},"noncombat":{"description":"24m","value":24}},"icon":"ui_fly","notes":""}}, "skills":[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"name":"Perception ","roll":"11-","everyman":false,"familiarity":false,"proficiency":false,"uid":1111111111111,"type":"Perception","input":"","level":"0","active":"0","base":"0","XMLID":"PERCEPTION","modifiers":[],"adders":[],"option":"","optionAlias":"","optionID":"","text":"Perception 11-"}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"name":"Teamwork ","everyman":false,"familiarity":false,"proficiency":false,"roll":"13-","uid":1671402374417,"type":"Teamwork","input":"","level":"2","active":"7","base":"7","char":"DEX","XMLID":"TEAMWORK","modifiers":[],"adders":[],"option":"","optionAlias":"","optionID":"","text":"Teamwork 13-"}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"name":"Shadowing ","everyman":false,"familiarity":false,"proficiency":false,"roll":"13-","uid":1671403101077,"type":"Shadowing","input":"","level":"2","active":"7","base":"7","char":"INT","XMLID":"SHADOWING","modifiers":[],"adders":[],"option":"","optionAlias":"","optionID":"","text":"Shadowing 13-"}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"name":"Stealth ","everyman":false,"familiarity":false,"proficiency":false,"roll":"12-","uid":1671403103367,"type":"Stealth","input":"","level":"1","active":"5","base":"5","char":"DEX","XMLID":"STEALTH","modifiers":[],"adders":[],"option":"","optionAlias":"","optionID":"","text":"Stealth 12-"}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"name":"Combat Skill Levels: Pipe Hitting ","everyman":false,"familiarity":false,"proficiency":false,"roll":"","uid":1671403121253,"type":"Combat Skill Levels","input":"with any single attack","level":"2","active":"4","base":"4","char":"GENERAL","XMLID":"COMBAT_LEVELS","modifiers":[],"adders":[],"option":"with any single attack","optionAlias":"with any Pipe Hitting","optionID":"SINGLE","text":"+2 with any Pipe Hitting"}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"name":"PS: Pipe Playing ","everyman":false,"familiarity":false,"proficiency":false,"roll":"11-","uid":1671403247677,"type":"Professional Skill","input":"","level":"0","active":"3","base":"3","char":"PRE","XMLID":"PROFESSIONAL_SKILL","modifiers":[],"adders":[],"option":"","optionAlias":"","optionID":"","text":"PS 11-"}], "talents":[], "perks":[], "disads":[], "combatlevels":[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"name":"Combat Skill Levels","roll":"","uid":1671403121253,"type":"Combat Skill Levels","input":"with any single attack","level":"2","active":"4","base":"4","XMLID":"COMBAT_LEVELS","modifiers":[],"adders":[]}], "powers":[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"name":"Small Size","desc":"Shrinking (0.1254 m tall, 0.0244 kg mass, -8 PER Rolls to perceive character, +8 DCV, takes +24m KB), Persistent (+¼), Reduced Endurance (0 END; +½) (42 Active Points); Always On (-½)","uid":1671402265134,"type":"Shrinking","damage":"0.1254 m tall, 0.0244 kg mass, -8 PER Rolls to perceive character, +8 DCV, takes +24m KB","range":"","input":"","level":"4","end":"0","active":"42","base":"24","XMLID":"SHRINKING","strMod":false,"class":{"attack":false,"mental":false,"adjustment":false,"bodyaffecting":true,"sensory":false,"move":false,"defense":false,"compound":false,"senseaffecting":false,"special":false},"modifiers":[{"value":"+½","name":"","uid":1671413261926,"type":"Reduced Endurance","damage":"0.1254 m tall, 0.0244 kg mass, -8 PER Rolls to perceive character, +8 DCV, takes +24m KB","range":"","input":"0 END","level":"0"},{"value":"+¼","name":"","uid":1671413261928,"type":"Persistent","damage":"0.1254 m tall, 0.0244 kg mass, -8 PER Rolls to perceive character, +8 DCV, takes +24m KB","range":"","input":"","level":"0"},{"value":"-½","name":"","uid":1671413261929,"type":"Always On","damage":"0.1254 m tall, 0.0244 kg mass, -8 PER Rolls to perceive character, +8 DCV, takes +24m KB","range":"","input":"","level":"0"}],"adders":[]}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"name":"Winged Flight","desc":"Flight 12m (12 Active Points); Restrainable (Wings; -½)","uid":1671402451478,"type":"Flight","damage":"12m","range":"","input":"","level":"12","end":"1","active":"12","base":"12","XMLID":"FLIGHT","strMod":false,"class":{"attack":false,"mental":false,"adjustment":false,"bodyaffecting":false,"sensory":false,"move":true,"defense":false,"compound":false,"senseaffecting":false,"special":false},"modifiers":[{"value":"-½","name":"","uid":1671414031314,"type":"Restrainable","damage":"12m","range":"","input":"","level":"0"}],"adders":[]}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"name":"Hard Pipe Hitting Fairies","desc":"Hand-To-Hand Attack +2d6 (10 Active Points); OAF (Metal Pipe; -1), Hand-To-Hand Attack (-¼)","uid":1671402389923,"type":"Hand-To-Hand Attack","damage":"2d6","range":"","input":"","level":"2","end":"1","active":"10","base":"10","XMLID":"HANDTOHANDATTACK","strMod":false,"class":{"attack":true,"mental":false,"adjustment":false,"bodyaffecting":false,"sensory":false,"move":false,"defense":false,"compound":false,"senseaffecting":false,"special":false},"modifiers":[{"value":"-¼","name":"","uid":1671412309354,"type":"Hand-To-Hand Attack","damage":"2d6","range":"","input":"","level":"0"},{"value":"-1","name":"","uid":1671412309381,"type":"Focus","damage":"2d6","range":"","input":"OAF","level":"0"}],"adders":[]}], "equipment":[], "martialArts":[&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"name":"Other Attacks","gameEdition":6 ,"ocvMod":0,"dcvMod":0,"dice":3,"halfDice":false,"killingAttack":false,"effect":"Normal Attack","time":"½","level":"0","active":"1","targetNumber":0,"targetCheck":false,"stunMultiplierMod":0,"tool":"Other Attacks:½ Phase, +0 OCV, +0 DCV, Normal attack","toHit":true,"againstOCV":false,"toPost":false,"post":"","rngMod":0,"abort":false}], "rolls":[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"name":"Hard Pipe Hitting Fairies","uid":1671402389923,"gameEdition":6,"tool":"2d6, Hand-To-Hand Attack , 1 end.","diceMod":0,"dice":2,"halfDice":false,"killingAttack":false,"targetNumber":0,"targetCheck":false,"strMod":false,"stunMultiplierMod":0}], "lightningReflex":[{"name":"Lightning Reflexes","levels":0,"tool":"No Lightning Reflexes","isActive":false}], "height":"2.01 m", "weight":"99.79 kg", "hair":"Brown", "eye":"Brown", "appearance":"", "background":"Allegro - Quick Happy FairyChord - Motherly FairyForte - Loud FairySonata - Hippy Fairy", "personality":"", "quote":"", "tactics":"", "campUse":""} This is well outside my wheelhouse, so I appreciate all the responses and the ideas to help to see if this can get working again.