GeneralHuli / HeroLab-Importer

MIT License
4 stars 0 forks source link

Issue with Importing a Sorcerer with Pets #3

Open macniel opened 1 month ago

macniel commented 1 month ago

First of all, I Love that you took on the mantel to bring this (hlo to foundry) feature back to live!

I wanted to use it to import the characters of my campaign and it works pretty much flawlessly EXCEPT on a character with two pets.

I made a dummy character in herolab for which I can provide the elementToken if it would make it easier to you debugging this.

When I try to import said character, the json i receive via POST /api.herolab.online/v1/character/get shows me three actors in the export. Perhaps that may be the issue?

This is the stacktrace (removed my domain):

Uncaught (in promise) TypeError: actorClass is undefined
[Detected 2 packages: herolab-importer(0.4.1), system:pf2e(6.2.1)]
    updateSpellcastingEntry herolab-importer/src/app/herolab-importer.js:951
    updateActorSpells herolab-importer/src/app/herolab-importer.js:901
    importActorGameValues herolab-importer/src/app/herolab-importer.js:496
    beginHeroLabImport herolab-importer/src/app/herolab-importer.js:279
    async* herolab-importer/src/app/herolab-importer.js:115
    jQuery 8
    <anonymous> herolab-importer/src/app/herolab-importer.js:115
    #call scripts/foundry.js:632
    callAll scripts/foundry.js:589
    _callHooks scripts/foundry.js:5917
    _render scripts/foundry.js:5878
    _render scripts/foundry.js:6571
    _render scripts/foundry.js:7157
    _render systems/pf2e/pf2e.mjs:1341
    maintainFocusInRender systems/pf2e/pf2e.mjs:1341
    _render systems/pf2e/pf2e.mjs:1341
    render scripts/foundry.js:5792
    _onClickEntryName scripts/foundry.js:73940
    jQuery 8
    activateListeners scripts/foundry.js:73129
    activateListeners scripts/foundry.js:73928
    activateListeners systems/pf2e/pf2e.mjs:1617
    _render scripts/foundry.js:5866
    _render scripts/foundry.js:72744
    _render scripts/foundry.js:73089
    _render scripts/foundry.js:73886
    render scripts/foundry.js:5792
    render scripts/foundry.js:12278
    _onModifyContents scripts/foundry.js:12430
    #handleUpdateDocuments scripts/foundry-esm.js:56570
    _updateDocuments scripts/foundry-esm.js:56446
    update scripts/foundry-esm.js:12328
    updateDocuments scripts/foundry-esm.js:11473
    updateDocuments systems/pf2e/pf2e.mjs:1608
    update scripts/foundry-esm.js:11583
    importActorGameValues herolab-importer/src/app/herolab-importer.js:443

And this is the json I get from the herolab.online api

{"wait":5000,"status":2,"export":{"portfolio":{"charId": "mEAeK6PL","version":70,"baseline":0},"metadata":{"gameCode":"pf2","gameName":"Pathfinder Roleplaying Game (Second Edition)","gameMajor":4,"gameMinor":6,"hloVersion":1315,"exportVersion":1,"legal":"Hero Lab and the Hero Lab logo are Registered Trademarks of LWD Technology, Inc. Free demo available at https://herolab.online\nPathfinder and associated marks and logos are trademarks of Paizo Inc., and are used under license."},"actors":{"actor.1":{"name":"DummyPet","player":"","gameValues":{"actXPNet":2000,"actLevelNet":3,"actRace":"gnome","actBackgroundText":"Animal Whisperer","actClassText":"Elementalist Sorcerer 3","actEncumbered":4,"actOverburdened":9,"actMoneyNet":"15 gp","actSize":-1,"actSpace":5,"actReachBase":5,"actReachNet":5,"actSocietyChar":2001,"Trait":"anGnome,trtFey,trtHumanoid"},"items":{"Perception.152":{"name":"Perception","compset":"Derived","components":"Derived","stAbScModifier":3,"stNet":8,"stDC":18,"proLevelBonNet":5,"ProfLevel":"Trained"},"abBloMaFeySor.378":{"name":"Cloak of Ribbons","compset":"Ability","components":"Ability"},"abBloodMagicSor.379":{"name":"Blood Magic","compset":"Ability","components":"Ability"},"abFeySor.364":{"name":"Fey","compset":"Ability","components":"Ability"},"abInnateSurgeFamM.321":{"name":"Innate Surge (1/day)","compset":"Ability","components":"Ability","trkMaximum":1,"Period":"Day"},"abLifelinkFamM.322":{"name":"Lifelink","compset":"Ability","components":"Ability","Action":"Reaction","Trait":"trtConcentrate"},"abLowLightVision.286":{"name":"Low-Light Vision","compset":"Ability","components":"Ability"},"abSorcPotencySor.343":{"name":"Sorcerous Potency","compset":"Ability","components":"Ability"},"abTreatWounds.124":{"name":"Treat Wounds (2d8, DC 15)","useInPlay":"{b}Saving Throw{/b} DC 15 Skill Check{br}{br}{B}Critical Success{/b} The target regains 4d8 Hit Points and loses the wounded condition.{br}{B}Success{/b} The target regains 2d8 Hit Points, and loses the wounded condition.{br}{B}Critical Failure{/b} The target takes 1d8 damage.{br}{b}Healing{/b} 2d8","compset":"Ability","components":"Ability","vaDC":15,"vaSave":"Skill Check","reRequirements":"You’re wearing or holding a healer’s toolkit (page 288).","Trait":"trtExploration,trtHealing,trtManipulate"},"acArmorClass.64":{"name":"Armor Class","compset":"ArmorClass","proLevelBonNet":5,"stAbScModifier":1,"stNet":16,"ProfLevel":"Trained"},"anGnome.285":{"name":"Gnome","compset":"Ancestry","Trait":"anGnome,trtFey,trtHumanoid"},"asCha.32":{"name":"Charisma","compset":"AbilScore","stAbScModifier":3,"stNet":16},"asCon.29":{"name":"Constitution","compset":"AbilScore","stAbScModifier":1,"stNet":12},"asDex.27":{"name":"Dexterity","compset":"AbilScore","stAbScModifier":1,"stNet":12},"asInt.31":{"name":"Intelligence","compset":"AbilScore","stAbScModifier":2,"stNet":14},"asStr.26":{"name":"Strength","compset":"AbilScore","stAbScModifier":-1,"stNet":8},"asWis.30":{"name":"Wisdom","compset":"AbilScore","stAbScModifier":3,"stNet":16},"clSorcerer.326":{"name":"Elementalist Sorcerer","compset":"Class","ProfLevel":"Untrained","Trait":"clSorcerer"},"fsFaerieDust.375":{"name":"Faerie Dust","useInPlay":"{b}Range{/b} 30 feet{br}{b}Area{/b} 5-foot burst or more{br}{b}Duration{/b} 1 round{br}{b}Defense{/b} DC 15 Will{br}{br}{B}Success{/b} The creature is unaffected{br}{B}Failure{/b} The creature can’t use reactions and takes a –2 status penalty to Perception checks and Will saves.{br}{B}Critical Failure{/b} As failure, and the creature also takes a –1 status penalty to Perception checks and Will saves for 1 minute.{br}{br}{b}Cloak of Ribbons{/b} After casting bloodline spell, gain +2 status to Performance or become concealed for 1r.","compset":"FocSpell","spLevelBase":1,"spLevelNet":2,"proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"vaSave":"Will","vaDuraText":"1 round","vaRangeText":"30 feet","vaArea":"5-foot burst or more","Action":"Action1,Action2,Action3","ProfLevel":"Trained","Rarity":"Uncommon","Trait":"clSorcerer,trdPrimal,trtConcentrate,trtFocus,trtManipulate,trtMental"},"ftAnimalAccompGno.311":{"name":"Animal Accomplice","compset":"Feat","components":"Ability","reqLevelNet":1,"Trait":"anGnome"},"ftCatFall.408":{"name":"Cat Fall","compset":"Feat","components":"Ability","reqLevelNet":1,"rePrerequisites":"trained in Acrobatics","Trait":"trtGeneral,trtSkill"},"ftFamiliarSor.407":{"name":"Familiar","compset":"Feat","components":"Ability","reqLevelNet":1,"Trait":"clSorcerer"},"ftPet.313":{"name":"Pet","compset":"Feat","components":"Ability","reqLevelNet":1,"reSpecial":"You can gain a new pet by retraining this feat, releasing any previous pet you have. If you later gain a familiar or other companion that uses the Pet feat, you can immediately retrain this feat.","Trait":"trtGeneral"},"ftSteadyBalance.409":{"name":"Steady Balance","compset":"Feat","components":"Ability","reqLevelNet":1,"rePrerequisites":"trained in Acrobatics","Trait":"trtGeneral,trtSkill"},"ftTrainAnimal.325":{"name":"Train Animal","compset":"Feat","components":"Ability","reqLevelNet":1,"rePrerequisites":"trained in Nature","Trait":"trtDowntime,trtGeneral,trtManipulate,trtSkill"},"hrFeytouchedGno.309":{"name":"Fey-touched Gnome (1/day)","compset":"Heritage","components":"Ability","trkMaximum":1,"Period":"Day","Trait":"anGnome"},"lnCommon.291":{"name":"Common","compset":"Language"},"lnDwarven.397":{"name":"Dwarven","compset":"Language"},"lnElven.398":{"name":"Elven","compset":"Language"},"lnFey.288":{"name":"Fey","compset":"Language"},"lnGnomish.287":{"name":"Gnomish","compset":"Language"},"mvSpeed.290":{"name":"Speed","compset":"Movement","stNet":25,"stMiscMod":25},"nwFist.166":{"name":"Fist","useInPlay":"{b}Melee Strikes{/b} +6 / +2 / -2{br}{b}Melee Damage{/b} 1d4-1 B{br}{b}Melee Crit Damage{/b} ×2","compset":"NaturalWep","wpReach":5,"proLevelBonNet":5,"ProfLevel":"Trained","items":{"wtAgile.183":{"name":"Agile","compset":"WeaponTrait","components":"Ability","containment":"Installed"},"wtFinesse.184":{"name":"Finesse","compset":"WeaponTrait","components":"Ability","containment":"Installed"},"wtNonlethal.185":{"name":"Nonlethal","compset":"WeaponTrait","components":"Ability","containment":"Installed"},"wtUnarmed.182":{"name":"Unarmed","compset":"WeaponTrait","components":"Ability","containment":"Installed"}}},"rvFocusPoints.47":{"name":"Focus Points","compset":"Reserves","rvMax":1,"rvCurrent":1},"rvHeroPoints.49":{"name":"Hero Points","compset":"Reserves","rvMax":3,"rvCurrent":1},"rvHitPoints.225":{"name":"Hit Points","compset":"Reserves","rvMax":29,"rvCurrent":29},"skAcrobatics.79":{"name":"Acrobatics","useInPlay":"{b}Situational bonuses and penalties{/b}{br}{b}Steady Balance{/b}: Successes to Balance are critical successes instead.","compset":"Skill","proLevelBonNet":5,"stAbScModifier":1,"stNet":6,"stDC":16,"ProfLevel":"Trained"},"skArcana.84":{"name":"Arcana","compset":"Skill","proLevelBonNet":5,"stAbScModifier":2,"stNet":7,"stDC":17,"ProfLevel":"Trained"},"skAthletics.91":{"name":"Athletics","compset":"Skill","stAbScModifier":-1,"stNet":-1,"stDC":9,"ProfLevel":"Untrained"},"skCrafting.102":{"name":"Crafting","compset":"Skill","stAbScModifier":2,"stNet":2,"stDC":12,"ProfLevel":"Untrained"},"skDeception.107":{"name":"Deception","compset":"Skill","proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"ProfLevel":"Trained"},"skDiplomacy.112":{"name":"Diplomacy","compset":"Skill","stAbScModifier":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skIntimidation.116":{"name":"Intimidation","compset":"Skill","stAbScModifier":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skLoreDarklands.405":{"name":"Darklands Lore","compset":"Skill","stAbScModifier":2,"stNet":2,"stDC":12,"ProfLevel":"Untrained"},"skLoreSwamp.406":{"name":"Swamp Lore","compset":"Skill","proLevelBonNet":5,"stAbScModifier":2,"stNet":7,"stDC":17,"ProfLevel":"Trained"},"skMedicine.119":{"name":"Medicine","compset":"Skill","proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"ProfLevel":"Trained"},"skNature.125":{"name":"Nature","compset":"Skill","proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"ProfLevel":"Trained"},"skOccultism.127":{"name":"Occultism","compset":"Skill","stAbScModifier":2,"stNet":2,"stDC":12,"ProfLevel":"Untrained"},"skPerformance.128":{"name":"Performance","compset":"Skill","proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"ProfLevel":"Trained"},"skReligion.130":{"name":"Religion","compset":"Skill","stAbScModifier":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skSociety.131":{"name":"Society","compset":"Skill","proLevelBonNet":5,"stAbScModifier":2,"stNet":7,"stDC":17,"ProfLevel":"Trained"},"skStealth.134":{"name":"Stealth","compset":"Skill","stAbScModifier":1,"stNet":1,"stDC":11,"ProfLevel":"Untrained"},"skSurvival.138":{"name":"Survival","compset":"Skill","proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"ProfLevel":"Trained"},"skThievery.142":{"name":"Thievery","compset":"Skill","stAbScModifier":1,"stNet":1,"stDC":11,"ProfLevel":"Untrained"},"spBrambleBush.382":{"name":"Bramble Bush","useInPlay":"{b}Range{/b} 30 feet{br}{b}Area{/b} 5-foot cube{br}{b}Damage{/b} 1d4 P{br}{b}Defense{/b} DC 15 basic Reflex{br}{br}{B}Critical Success{/b} The creature takes no damage.{br}{B}Success{/b} The creature takes half damage.{br}{B}Failure{/b} The creature takes full damage.{br}{B}Critical Failure{/b} The creature takes double damage.","compset":"Spell","spLevelBase":1,"spLevelNet":2,"trkMaximum":4,"proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"vaSave":"basic Reflex","vaRangeText":"30 feet","vaArea":"5-foot cube","Action":"Action2","ProfLevel":"Trained","Rarity":"Uncommon","Trait":"trdPrimal,trtCantrip,trtConcentrate,trtManipulate,trtPlant,trtWood","UsageSpec":"AtWill"},"spCausticBlast.403":{"name":"Caustic Blast","useInPlay":"{b}Range{/b} 30 feet{br}{b}Area{/b} 5-foot burst{br}{b}Damage{/b} 1d8 A{br}{b}Defense{/b} DC 16 basic Reflex{br}{br}{B}Critical Success{/b} The creature takes no damage.{br}{B}Success{/b} The creature takes half damage.{br}{B}Failure{/b} The creature takes full damage.{br}{B}Critical Failure{/b} The creature takes double damage.","compset":"Spell","spLevelBase":1,"spLevelNet":2,"trkMaximum":4,"proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"vaSave":"basic Reflex","vaRangeText":"30 feet","vaArea":"5-foot burst","Action":"Action2","ProfLevel":"Trained","Trait":"trdPrimal,trtAcid,trtCantrip,trtConcentrate,trtManipulate","UsageSpec":"AtWill"},"spCharm.366":{"name":"Charm","useInPlay":"{b}Range{/b} 30 feet{br}{b}Targets{/b} 1 creature{br}{b}Duration{/b} 1 hour{br}{b}Defense{/b} DC 15 Will{br}{br}{B}Critical Success{/b} The target is unaffected and aware you tried to charm it.{br}{B}Success{/b} The target is unaffected but thinks your spell was something harmless instead of {i}charm{/i}, unless it identifies the spell (see Identifying Spells on page 303).{br}{B}Failure{/b} The target’s attitude becomes friendly toward you. If it was friendly, it becomes helpful. It can’t use hostile actions against you.{br}{B}Critical Failure{/b} The target’s attitude becomes helpful toward you, and it can’t use hostile actions against you.{br}{br}{b}Cloak of Ribbons{/b} After casting bloodline spell, gain +2 status to Performance or become concealed for 1r.","compset":"Spell","spLevelBase":1,"spLevelNet":1,"trkMaximum":4,"proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"vaSave":"Will","vaDuraText":"1 hour","vaRangeText":"30 feet","vaTarget":"1 creature","Action":"Action2","ProfLevel":"Trained","Trait":"trdPrimal,trtConcentrate,trtEmotion,trtIncapacitation,trtManipulate,trtMental,trtSubtle"},"spCleanseCuisine.401":{"name":"Cleanse Cuisine","useInPlay":"{b}This is a signature spell. It may be cast using any spell slot from its minimum to your maxium spellcasting level.{/b}{br}{b}Range{/b} 10 feet{br}{b}Targets{/b} 1 cubic foot","compset":"Spell","spLevelBase":1,"spLevelNet":1,"trkMaximum":4,"proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"vaRangeText":"10 feet","vaTarget":"1 cubic foot","Action":"Action2","ProfLevel":"Trained","Trait":"trdPrimal,trtConcentrate,trtManipulate"},"spCleanseCuisine.402":{"name":"Cleanse Cuisine","useInPlay":"{b}Range{/b} 10 feet{br}{b}Targets{/b} 1 cubic foot","compset":"Spell","spLevelBase":1,"spLevelNet":1,"trkMaximum":4,"proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"vaRangeText":"10 feet","vaTarget":"1 cubic foot","Action":"Action2","ProfLevel":"Trained","Trait":"trdPrimal,trtConcentrate,trtManipulate"},"spDancingLights.404":{"name":"Dancing Lights","useInPlay":"{b}Cast{/b} {icon:action2} somatic, verbal{br}{b}Range{/b} 120 feet{br}{b}Duration{/b} sustained","compset":"Spell","spLevelBase":1,"spLevelNet":2,"spCastingText":"{icon:action2} somatic, verbal","trkMaximum":4,"proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"vaDuraText":"sustained","vaRangeText":"120 feet","Action":"Action2","ProfLevel":"Trained","Trait":"trdPrimal,trtCantrip,trtLight","UsageSpec":"AtWill"},"spDetectMetal.323":{"name":"Detect Metal","useInPlay":"{b}Area{/b} 30-foot emanation","compset":"Spell","spLevelBase":1,"spLevelNet":2,"proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"vaArea":"30-foot emanation","Action":"Action2","ProfLevel":"Trained","SpellHelper":"Innate","Trait":"trdPrimal,trtCantrip,trtConcentrate,trtDetection,trtManipulate,trtMetal","UsageSpec":"AtWill"},"spDrawMoisture.383":{"name":"Draw Moisture","useInPlay":"{b}Range{/b} 10 feet{br}{b}Targets{/b} 1 object","compset":"Spell","spLevelBase":1,"spLevelNet":2,"trkMaximum":4,"proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"vaRangeText":"10 feet","vaTarget":"1 object","Action":"Action2","ProfLevel":"Trained","Trait":"trdPrimal,trtCantrip,trtConcentrate,trtManipulate,trtWater","UsageSpec":"AtWill"},"spFigment.365":{"name":"Figment","useInPlay":"{b}Range{/b} 30 feet{br}{b}Duration{/b} sustained","compset":"Spell","spLevelBase":1,"spLevelNet":2,"trkMaximum":4,"proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"vaDuraText":"sustained","vaRangeText":"30 feet","Action":"Action2","ProfLevel":"Trained","Trait":"trdPrimal,trtCantrip,trtConcentrate,trtIllusion,trtManipulate,trtSubtle","UsageSpec":"AtWill"},"spLaughingFit.367":{"name":"Laughing Fit","useInPlay":"{b}This is a signature spell. It may be cast using any spell slot from its minimum to your maxium spellcasting level.{/b}{br}{b}Range{/b} 30 feet{br}{b}Targets{/b} 1 living creature{br}{b}Duration{/b} sustained{br}{b}Defense{/b} DC 18 Will{br}{br}{B}Critical Success{/b} The target is unaffected.{br}{B}Success{/b} The target is plagued with uncontrollable laugher. It can’t use reactions.{br}{B}Failure{/b} The target is slowed 1 and can’t use reactions.{br}{B}Critical Failure{/b} The target falls prone and can’t use actions or reactions for 1 round. It then suffers the failure effects.{br}{br}{b}Cloak of Ribbons{/b} After casting bloodline spell, gain +2 status to Performance or become concealed for 1r.","compset":"Spell","spLevelBase":2,"spLevelNet":2,"trkMaximum":3,"proLevelBonNet":5,"stAbScModifier":3,"stNet":8,"stDC":18,"vaSave":"Will","vaDuraText":"sustained","vaRangeText":"30 feet","vaTarget":"1 living creature","Action":"Action2","ProfLevel":"Trained","Trait":"trdPrimal,trtConcentrate,trtEmotion,trtManipulate,trtMental"},"svFortitude.148":{"name":"Fortitude Save","compset":"Save","proLevelBonNet":5,"stAbScModifier":1,"stNet":6,"stDC":16,"ProfLevel":"Trained"},"svReflex.150":{"name":"Reflex Save","compset":"Save","proLevelBonNet":5,"stAbScModifier":1,"stNet":6,"stDC":16,"ProfLevel":"Trained"},"svWill.149":{"name":"Will Save","compset":"Save","proLevelBonNet":7,"stAbScModifier":3,"stNet":10,"stDC":20,"ProfLevel":"Expert"}}},"actor.2":{"name":"Familiar","gameValues":{"actLevelNet":3,"actRace":"cobble mite","actEncumbered":2.5,"actOverburdened":5,"actMoneyNet":"You have no money!","actSize":-2,"actSpace":2.5,"actSocietyChar":2001,"Trait":"trtAberration,trtEarth,trtMinion"},"items":{"Perception.113":{"name":"Perception","compset":"Derived","components":"Derived","stAbScModifier":3,"stNet":6,"stDC":16,"proLevelBonNet":3,"ProfLevel":"Untrained"},"abLowLightVision.174":{"name":"Low-Light Vision","compset":"Ability","components":"Ability"},"abTreatWounds.85":{"name":"Treat Wounds (2d8, DC 15)","useInPlay":"{b}Saving Throw{/b} DC 15 Skill Check{br}{br}{B}Critical Success{/b} The target regains 4d8 Hit Points and loses the wounded condition.{br}{B}Success{/b} The target regains 2d8 Hit Points, and loses the wounded condition.{br}{B}Critical Failure{/b} The target takes 1d8 damage.{br}{b}Healing{/b} 2d8","compset":"Ability","components":"Ability","vaDC":15,"vaSave":"Skill Check","reRequirements":"You’re wearing or holding a healer’s toolkit (page 288).","Trait":"trtExploration,trtHealing,trtManipulate"},"acArmorClass.25":{"name":"Armor Class","compset":"ArmorClass","proLevelBonNet":5,"stAbScModifier":1,"stNet":16},"cmFamCobbleMite.223":{"name":"Cobble Mite","compset":"AncestryCompFam","Trait":"trtAberration,trtEarth"},"mvBurrow.225":{"name":"Burrow Speed","compset":"Movement","stNet":5,"stMiscMod":5},"mvSpeed.231":{"name":"Speed","compset":"Movement","stNet":25,"stMiscMod":25},"rvHitPoints.166":{"name":"Hit Points","compset":"Reserves","rvMax":15,"rvCurrent":15},"skAcrobatics.40":{"name":"Acrobatics","compset":"Skill","proLevelBonNet":3,"stAbScModifier":3,"stNet":6,"stDC":16,"ProfLevel":"Untrained"},"skArcana.45":{"name":"Arcana","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skAthletics.52":{"name":"Athletics","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skCrafting.63":{"name":"Crafting","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skDeception.68":{"name":"Deception","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skDiplomacy.73":{"name":"Diplomacy","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skIntimidation.77":{"name":"Intimidation","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skMedicine.80":{"name":"Medicine","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skNature.86":{"name":"Nature","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skOccultism.88":{"name":"Occultism","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skPerformance.89":{"name":"Performance","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skReligion.91":{"name":"Religion","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skSociety.92":{"name":"Society","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skStealth.95":{"name":"Stealth","compset":"Skill","proLevelBonNet":3,"stAbScModifier":3,"stNet":6,"stDC":16,"ProfLevel":"Untrained"},"skSurvival.99":{"name":"Survival","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"skThievery.103":{"name":"Thievery","compset":"Skill","proLevelBonNet":3,"stNet":3,"stDC":13,"ProfLevel":"Untrained"},"svFortitude.109":{"name":"Fortitude Save","compset":"Save","proLevelBonNet":5,"stAbScModifier":1,"stNet":6,"stDC":16,"ProfLevel":"Trained"},"svReflex.111":{"name":"Reflex Save","compset":"Save","proLevelBonNet":5,"stAbScModifier":1,"stNet":6,"stDC":16,"ProfLevel":"Trained"},"svWill.110":{"name":"Will Save","compset":"Save","proLevelBonNet":7,"stAbScModifier":3,"stNet":10,"stDC":20,"ProfLevel":"Expert"}}},"actor.3":{"name":"Pet","gameValues":{"actRace":"No Ancestry","actMoneyNet":"You have no money!","actSpace":-1,"actReachBase":-1,"actSocietyChar":2001,"Trait":"trtMinion"},"items":{"Perception.113":{"name":"Perception","compset":"Derived","components":"Derived"},"acArmorClass.25":{"name":"Armor Class","compset":"ArmorClass"},"rvHitPoints.166":{"name":"Hit Points","compset":"Reserves"},"skAcrobatics.40":{"name":"Acrobatics","compset":"Skill"},"skArcana.45":{"name":"Arcana","compset":"Skill"},"skAthletics.52":{"name":"Athletics","compset":"Skill"},"skCrafting.63":{"name":"Crafting","compset":"Skill"},"skDeception.68":{"name":"Deception","compset":"Skill"},"skDiplomacy.73":{"name":"Diplomacy","compset":"Skill"},"skIntimidation.77":{"name":"Intimidation","compset":"Skill"},"skMedicine.80":{"name":"Medicine","compset":"Skill"},"skNature.86":{"name":"Nature","compset":"Skill"},"skOccultism.88":{"name":"Occultism","compset":"Skill"},"skPerformance.89":{"name":"Performance","compset":"Skill"},"skReligion.91":{"name":"Religion","compset":"Skill"},"skSociety.92":{"name":"Society","compset":"Skill"},"skStealth.95":{"name":"Stealth","compset":"Skill"},"skSurvival.99":{"name":"Survival","compset":"Skill"},"skThievery.103":{"name":"Thievery","compset":"Skill"},"svFortitude.109":{"name":"Fortitude Save","compset":"Save"},"svReflex.111":{"name":"Reflex Save","compset":"Save"},"svWill.110":{"name":"Will Save","compset":"Save"}}}}},"callerId":0,"result":0,"severity":1}
GeneralHuli commented 1 month ago

Hi, thank you for using my module!

Having any number of pets/familiars/companions etc. should not effect the import. As it stands, the import will ONLY attempt to parse 'actor.1' from the exported JSON, which corresponds to the character itself. (I don't know if/when I will be able to support importing those as it would require the PF2e Companion Compendia and a whole bunch more work from me. Companions are kind of a nightmare to support.)

Your issue seems to be stemming from the fact that the character class is listed as "Elementalist Sorcerer 3" instead of just "Sorcerer 3". The way my import works is to simply try to find the class in the PF2E Compendiums, and add it to the actor. In your case, there is no "Elementalist Sorcerer" class, and I'm not sure why your export is listed as such. I am unable to reproduce that, even when selecting Element as the bloodline. Unless I am mistaken, that is not a separate class available in PF2e. Did you make a custom class? Or perhaps edit the name of the class for personal preference?

macniel commented 3 weeks ago

Heya sorry for the late response (somehow I didn't got a notification),

No, that isn't a custom class. When i go into the charactersheet (build) the class simply show as Sorcerer, so I don't know where the Elementalist Sorcerer comes from. Must be a bug in HLO then :)