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
This post has been closed. You can still view previous posts, but you can't post any new replies.

5e Shaped Companion v6+

February 24 (8 years ago)
Lucian
Pro
API Scripter
This script is designed to enhance the 5e Shaped Character sheet by Kryx. It provides a variety of import methods, token & character configuration services, and dynamic sheet enhancements (ammo, death save, HD processing etc).

Full details of the functionality can be found in the documentation available on github, along with a changelog listing fixes and features for each version.

Installation

You can find the latest script from my github - you can also see the latest changelog and up-to-date documentation there as well.Copy the raw text of 5eShapedCompanion.js into a new script in your API settings (or paste it over your previous version if updating).

Please note that installation by 1-Click is not particularly recommended because you will have no control how and when the script updates, which could cause you unexpected problems just before game night. You have been warned!

Usage

Please see the Github Documentation for full details on available command and other functionality.

Problems and Bugs

If you're having trouble getting set up, don't understand something, or just need a bit of guidance, post here in this thread and I or someone else will try to help you. Please note that everyone here volunteers their time freely and without compensation; it is a basic courtesy to ensure that you have familiarised yourself with the available documentation for Roll20 in general and the script in particular before asking for help. You may feel like you don't have time to read everything and just want a quick answer; and you might get lucky and find someone in a patient mood who is willing to copy and paste the relevant section of the docs back to you; but remember that not having time to be courteous and respectful can cut both ways ;-) If you read the docs and don't understand them, that's a bug with the docs - so please let me know and I will try to make them clearer.

If you believe you've found a bug, the preferred method of reporting it is to create a GitHub issue. First of all, please check the issue list to see if the bug in question has already been reported. If you don't see an existing report, you can add a new one by clicking the "New Issue" button on the issue list page. Please try to be as detailed as possible when reporting bugs; a bug which just says "Import Doesn't Work" will most likely just be ignored. As a minimum you should include with you report:
  • The complete and exact steps you took to produce the problem, including the full API commands that you ran - ideally you will have tried these again to ensure that they reliably reproduce it. If I can't reproduce your problem I can't fix it.
  • Any messages that were generated in your API log when the problem occurred + any API crash error (also reported on the API script page)
  • The exact version of the script that you are running (printed in the API log when the API starts up) and the exact version of the character sheet you are using (displayed on the sheet itself)
  • For statblock import problems, please also include the complete text of the statblock, exactly as it appears in the GM notes of the token

Feature Requests

If you have a suggestion for a feature or an enhancement, you can post it here or you can submit it as a Github issue (see above). Please note that this script is designed to be a support script for the 5e Shaped Sheet, not a "Run your whole Campaign" UberScript - so if your request is something that isn't specific to the sheet I'm likely to suggest you put a separate script request out on the API forum rather than including it in this script.
February 24 (8 years ago)
Lucian
Pro
API Scripter

6.0.0 (2017-02-24)

Bug Fixes

  • import: Import wasn't whispering to GM/player (1977527)
  • import: Workaround roll20 bug with max values under API sheetworkers (d9c7292), closes #317
  • spell-import: Fix crash bug with !shaped-import-spell (4ae2344)
  • spell-slots: Fix problem with Cantrips (36df7ca)
  • uses: Fix crash when per_use is a non-integer value (19aeb05)

Features

  • config: Add all latest 9.x options to !shaped-config (d226e04), closes #298
  • import: Add command that imports based on token names (f03c5a8), closes #311
  • import: Support API sheetworkers for cleaner import (beacb13)
  • rests: Support new recharge field for use recovery (4864c10), closes #264
  • spell-import: Add command to expand empty spells (f20b305)
  • spell-slots: Auto-decrement spell slots (4516bd6), closes #16
  • token-actions: Add option for showing recharge on token actions (c5c3648), closes #272
  • upgrade: Script-driven sheet update for all character sheets (5401c56), closes #300
  • uses: Decrement legendary points + restore on turn recharge (d451c2a), closes #312
  • uses: Use uses for everything that has them (e123718), closes #260

BREAKING CHANGES

  • This script no longer works correctly with version of the sheet below 9.2.0 (only just released on Github), you have been warned!
This is a major overhaul of the script that introduces some significant improvements.
  • Importing is massively improved - you no longer have to open each character and click the overlay to finish the import.
  •  Spell slot decrementing works again.
  • There's a command !shaped-update-character that will run all pending sheet updates for the selected characters - useful for bulk updating characters without having to open them all and wait for the update to finish!
  • Also check out the new !shaped-import-by-token - see the documentation for more details on this
Enjoy!
February 24 (8 years ago)
Lucian
Pro
API Scripter
I guess it was a moderator who closed my old thread having seen this new one. Any chance that a mod could quickly reopen it and post a link to this thread so that everyone following it can see there's a new thread/new release? Cheers.
February 24 (8 years ago)
9.2.0 is already out? *rushes to get it*
February 24 (8 years ago)
Kryx
Pro
Sheet Author
API Scripter

Lucian said:

  • There's a command !shaped-update-character that will run all pending sheet updates for the selected characters - useful for bulk updating characters without having to open them all and wait for the update to finish!
Is it possible to do this type of command, but for all sheets, not just those selected?

Could be quite useful.
February 24 (8 years ago)

Edited February 24 (8 years ago)

Lucian said:

Any chance that a mod could quickly reopen it and post a link to this thread so that everyone following it can see there's a new thread/new release? Cheers.

Done.
February 24 (8 years ago)

Edited February 24 (8 years ago)
Checking the documentaion !shaped-update-character --all should update all - and without the paramater does "selected characters".

I have no idea how to select characters, except by opening them?

Using 9.2.0 of sheet

If I use the --all I get an error, and log shows :-

"5eShapedCompanion 1487896897740 INFO : -=> ShapedScripts v6.0.0 <=-"
"5eShapedCompanion 1487896897742 INFO : Checking config for upgrade, starting state: {\"version\":3.6,\"config\":{\"genderPronouns\":[{\"matchPattern\":\"^f$|female|girl|woman|feminine\",\"nominative\":\"she\",\"accusative\":\"her\",\"possessive\":\"her\",\"reflexive\":\"herself\"},{\"matchPattern\":\"^m$|male|boy|man|masculine\",\"nominative\":\"he\",\"accusative\":\"him\",\"possessive\":\"his\",\"reflexive\":\"himself\"},{\"matchPattern\":\"^n$|neuter|none|construct|thing|object\",\"nominative\":\"it\",\"accusative\":\"it\",\"possessive\":\"its\",\"reflexive\":\"itself\"}],\"logLevel\":\"INFO\",\"tokenSettings\":{\"number\":false,\"bar1\":{\"attribute\":\"hp\",\"max\":true,\"link\":true,\"showPlayers\":true},\"bar2\":{\"attribute\":\"ac\",\"max\":false,\"link\":true,\"showPlayers\":false},\"bar3\":{\"attribute\":\"perception_passive\",\"max\":false,\"link\":true,\"showPlayers\":false},\"aura1\":{\"radius\":\"\",\"color\":\"#FFFF99\",\"square\":false},\"aura2\":{\"radius\":\"\",\"color\":\"#59e594\",\"square\":false},\"light\":{\"radius\":\"\",\"dimRadius\":\"\",\"otherPlayers\":false,\"hasSight\":false,\"angle\":360,\"losAngle\":360,\"multiplier\":1},\"showName\":true,\"showNameToPlayers\":true,\"showAura1ToPlayers\":true,\"showAura2ToPlayers\":true},\"newCharSettings\":{\"sheetOutput\":\"***default***\",\"deathSaveOutput\":\"***default***\",\"initiativeOutput\":\"/w GM\",\"showNameOnRollTemplate\":\"{{show_character_name=1}}\",\"rollOptions\":\"***default***\",\"initiativeRoll\":\"***default***\",\"initiativeToTracker\":\"***default***\",\"breakInitiativeTies\":false,\"showTargetAC\":true,\"showTargetName\":true,\"autoAmmo\":true,\"autoRevertAdvantage\":true,\"houserules\":{\"mediumArmorMaxDex\":2,\"saves\":{\"useCustomSaves\":false,\"useAverageOfAbilities\":false,\"fortitude\":{\"fortitudeStrength\":false,\"fortitudeDexterity\":false,\"fortitudeConstitution\":false,\"fortitudeIntelligence\":false,\"fortitudeWisdom\":false,\"fortitudeCharisma\":false},\"reflex\":{\"reflexStrength\":false,\"reflexDexterity\":false,\"reflexConstitution\":false,\"reflexIntelligence\":false,\"reflexWisdom\":false,\"reflexCharisma\":false},\"will\":{\"willStrength\":false,\"willDexterity\":false,\"willConstitution\":false,\"willIntelligence\":false,\"willWisdom\":false,\"willCharisma\":false},\"savingThrowsHalfProf\":false},\"baseDC\":\"***default***\",\"expertiseAsAdvantage\":false,\"inspirationMultiple\":false,\"criticalDamageHouserule\":\"***default***\",\"proficiencyDice\":false,\"psionics\":false,\"customClasses\":false,\"honorToggle\":false,\"sanityToggle\":false},\"tab\":\"***default***\",\"tokenActions\":{\"initiative\":true,\"abilityChecks\":\"abilityChecksQuery\",\"advantageTracker\":null,\"savingThrows\":\"savingThrowsQuery\",\"attacks\":\"attacks\",\"statblock\":true,\"traits\":\"traits\",\"actions\":\"actions\",\"reactions\":\"reactions\",\"legendaryActions\":\"legendaryActions\",\"lairActions\":\"lairActions\",\"regionalEffects\":\"regionalEffects\",\"rests\":true,\"spells\":true,\"showRecharges\":false,\"racialFeatures\":null,\"classFeatures\":null,\"feats\":null},\"textSizes\":{\"spellsTextSize\":\"text\",\"abilityChecksTextSize\":\"text\",\"savingThrowsTextSize\":\"text\"},\"hide\":{\"hideAttack\":\"***default***\",\"hideDamage\":\"***default***\",\"hideAbilityChecks\":\"***default***\",\"hideSavingThrows\":\"***default***\",\"hideSavingThrowDC\":\"***default***\",\"hideSpellContent\":\"***default***\",\"hideSavingThrowFailure\":\"***default***\",\"hideSavingThrowSuccess\":\"***default***\",\"hideRecharge\":\"***default***\",\"hideFreetext\":\"***default***\",\"hideCost\":\"***default***\"},\"applyToAll\":true,\"hitDiceOutput\":\"***default***\",\"display\":{\"showPassiveSkills\":false,\"showWeight\":\"***default***\",\"showEmote\":false,\"showFreetext\":false,\"showFreeform\":false,\"showDiceModifiers\":false,\"showCritRange\":false,\"extraOnACrit\":false,\"showRests\":\"***default***\"},\"measurementSystems\":{\"distanceSystem\":\"***default***\",\"weightSystem\":\"***default***\",\"encumbranceMultiplier\":1},\"automaticHigherLevelQueries\":\"***default***\"},\"advTrackerSettings\":{\"showMarkers\":true,\"ignoreNpcs\":false,\"advantageMarker\":\"green\",\"disadvantageMarker\":\"red\",\"output\":\"whisper\"},\"sheetEnhancements\":{\"rollHPOnDrop\":true,\"autoHD\":true,\"autoSpellSlots\":true,\"autoTraits\":true},\"defaultGenderIndex\":2,\"variants\":{\"rests\":{\"longNoHpFullHd\":false}}}}"
"Error: No attribute or sheet field found for character_id -JQ44lYXPW6iPuqoGFFe named sheet_opened"
"5eShapedCompanion 1487896905263 ERROR : TypeError: Cannot read property 'stream' of undefined"
"5eShapedCompanion 1487896905267 ERROR : TypeError: Cannot read property 'stream' of undefined\n at Importer.runImportStage (apiscript.js:18005:19)\n at apiscript.js:18249:15\n at process._tickCallback (node.js:406:9)"

I'm gonna try in a new, nearly empty, campaign before I log it
February 24 (8 years ago)

Edited February 24 (8 years ago)
Jim, just as a first check, did you update your sheet to 9.2.0? It's only compatable with the very newest sheet on Github

EDIT: Also, regarding selecting characters to update, you can drag the sheet's token out onto the tabletop without opening the sheet, then run the command after selecting the token/tokens you've dragged out
February 24 (8 years ago)

Edited February 24 (8 years ago)
Yes and edited to include that in my post to make it clear.  The campaign has a variety of versions of char sheets as some updated to 9.2 and others to older versions.  Also has other scripts hence trying a new camaign to see if issues remain, etc.

As for your edit - erm... that might work but is not something I do. 

Edit: OK drag and drop does work, once I work out how to do it.  Thanks.
February 24 (8 years ago)

Edited February 24 (8 years ago)
Ok so test with new campaign - drag and drop Abjurer from VG1 - and converts to 9.2.0
Close sheet
Run !shaped-update-character --all 
error message
API Log:
"5eShapedCompanion 1487898476159 ERROR : TypeError: Cannot read property 'stream' of undefined\n at Importer.runImportStage (apiscript.js:6745:19)\n at apiscript.js:6989:15\n at process._tickCallback (node.js:406:9)"


Logged issue : https://github.com/symposion/roll20-shaped-scripts/issues/321

February 24 (8 years ago)
You're the man, Lucian!
Having a problem with multiple ammo objects being created:


Logged an issue on github.
February 24 (8 years ago)

Edited February 24 (8 years ago)
Lucian
Pro
API Scripter

6.0.1 (2017-02-24)

Bug Fixes

  • update-character: Fix bug on update character (cf625cd), closes #321
Sorry, this was a total oversight, the command completely didn't work on 6.0.0 because I change the output code at the last minute without testing. That'll teach me to release at gone midnight :-/

Will check out the ammo thing a bit later.
February 24 (8 years ago)
Thank you so much for that sheet update command! Made updating all my sheets to 9.2.0 a breeze
February 24 (8 years ago)
Thanks Lucian.  I'll test it after the game I'm just running...oops should have started 2 minutes ago lol.
February 24 (8 years ago)
Lucian
Pro
API Scripter

6.1.0 (2017-02-24)

Bug Fixes

  • import: Make lair actions import properly again (49a42b3), closes #313

Features

  • import: Add option to use same label for all tokens (89ed6b8), closes #276
February 24 (8 years ago)
Finally able to sit and play around with 9.2 sheet and 6.1, really great so far, opening one issue, but also have one question.

I noticed that if you have a multi-class Warlock/Spellcaster, if automatically tracking spells, the Warlock slots are used first.  I assume that this is by design given that Warlock spell slots recharge on a short rest, but just wanted to confirm.
February 24 (8 years ago)
Lucian
Pro
API Scripter

Kevin said:

Finally able to sit and play around with 9.2 sheet and 6.1, really great so far, opening one issue, but also have one question.

I noticed that if you have a multi-class Warlock/Spellcaster, if automatically tracking spells, the Warlock slots are used first.  I assume that this is by design given that Warlock spell slots recharge on a short rest, but just wanted to confirm.

Yes, this is by design. In theory, it might be possible to construct convoluted scenarios in which it makes sense to use normal spell slots first, but I think it's such a rare edge case that it's not worth bothering with.

There are limitations with the system at the moment in that there are various situations in which casting a spell shouldn't decrement slots - racial spells and other special powers. Kryx has plans to include uses and recharges to spells in future to model this but until then people will just have to make do with manually fiddling or not using the feature.

I'll try and fix the Scorching Ray case if I have enough information from the roll template to do so, otherwise I may need to ask Kryx to modify it.
February 24 (8 years ago)
Thanks Lucian!  Makes complete sense to me and figured this was the case.

As far as the Scorching Ray use case (along with quite a few others) it's definitely tough to handle.  My hope was that there was something from the roll template link that would hopefully be picked up from the script to prevent auto decreasing the spell slot, but if not, it's no big deal.
I tried to do an "update all" on my copied campaign, and got this error:

"5eShapedCompanion 1487945414616 ERROR : TypeError: Cannot read property 'stream' of undefined\n at Importer.runImportStage (apiscript.js:6745:19)\n at apiscript.js:6989:15\n at process._tickCallback (node.js:406:9)"
February 24 (8 years ago)

Edited February 24 (8 years ago)

Gozer the Gozerian said:

I tried to do an "update all" on my copied campaign, and got this error:

"5eShapedCompanion 1487945414616 ERROR : TypeError: Cannot read property 'stream' of undefined\n at Importer.runImportStage (apiscript.js:6745:19)\n at apiscript.js:6989:15\n at process._tickCallback (node.js:406:9)"

Have you updated to the 6.1.0 script as this error occurred in 6.0.0 and was fixed.

Edit: Tested and runs under 6.1.0 - just waiting on the long list!

Edit 2: 34th character failed:

"5eShapedCompanion 1487947652799 ERROR : Error: Asked for a single attribute but more than 1 was found matching attributes: {\"characterid\":\"-KZCGnrriyI3ESZFC0TH\",\"name\":\"processing\"}"
"5eShapedCompanion 1487947652800 ERROR : Error: Asked for a single attribute but more than 1 was found matching attributes: {\"characterid\":\"-KZCGnrriyI3ESZFC0TH\",\"name\":\"processing\"}\n at Roll20Wrapper.getOrCreateObj (apiscript.js:11408:16)\n at Roll20Wrapper.getOrCreateAttr (apiscript.js:11436:18)\n at Roll20Wrapper.setAttrWithWorker (apiscript.js:11526:24)\n at apiscript.js:18034:28\n at Function._.each._.forEach (/home/node/d20-api-server/node_modules/underscore/underscore.js:158:9)\n at apiscript.js:18033:16"

Sadly I cannot work out which character this is. It's probbaly related to the mismatch of versions and testing, or is two with same public name?

Edit 3: Deleted a half-dozen or so duplicate named characters [copy of commoner etc] and reran - crashed on #34 again!
February 24 (8 years ago)

Edited February 24 (8 years ago)
@Jim W. - So not a perfect solution, but to debug further on your own, you could pull out suspected tokens, select them then run @{selected|character_id} and compare it with the one that is failing.  This will at least help you identify the sheet.  Would be easier though to write a small api script that took the character_id as a parameter and spit out the name.
February 24 (8 years ago)

Edited February 24 (8 years ago)
Thanks Kevin but not every Character has a Token - or is that the issue?
February 24 (8 years ago)
No not necessarily... it was just a way to try to figure out which character was causing the failure.
February 24 (8 years ago)

Edited February 24 (8 years ago)
OK so logic must dictate an order of processing, so I checked the order of characters processd against the transmogrifier and same order. Checked next two characters, and no issues.

Then I tried the last character converted - and this is the one reporting the error.. even though says completed.  Also it does have a token on current map.

Sheet shows 9.2.0 when opened, but also converts.. from 9.1.2 and seems to just 'hang'

Edit: deleted processing field and all seems ok now.  All 127 now done!

Edit 2: Issues with a few sheets already known still exist - but good news is that these did not stop/break the --all run
February 24 (8 years ago)
Lucian
Pro
API Scripter
Ok, so this is an issue that other people are running into as well:
https://github.com/symposion/roll20-shaped-scripts...

It appears that in some situations duplicate attributes are being created, and this is causing the script to bug out. It's not clear yet whether this is a script bug, a sheet bug or a Roll20 bug. What is clear is that it's non-deterministic and very hard to test. Sigh.
February 24 (8 years ago)
Lucian
Pro
API Scripter
Hey guys,
I need your help! Several people have run across a somewhat non-deterministic bug where the script fails when it finds duplicate attributes. It seems like most commonly it happens with the 'processing' attribute (used for the processing overlay) and the edit_mode attribute. On the face of it, this should be impossible, and I suspect that there's some oddness going on with Roll20s API sheetworker implementation.

What I need you guys to do is to install version 6.1.1 (release post to follow very shortly) from github, and then run the following command in your campaign:
!logLevel 5eShapedCompanion DEBUG

This will turn on debug logging. Now go about your business, importing, updating, creating, editing, chopping, changing and whatever else it is that you good people do :-) If you get an error about 'Asked for a single attribute but more than 1 was found', could you copy and paste the entire contents of your API console output into the bug here: https://github.com/symposion/roll20-shaped-scripts... . Hopefully I'll be able to get enough evidence together to track down what causes this to happen!

Cheers,
Lucian
February 24 (8 years ago)
Lucian
Pro
API Scripter

6.1.1 (2017-02-24)

Bug Fixes

  • logging: Improve logging output to track down odd bugs (4162fba)
Ok guys, if you could install this and do some testing and try and reproduce this, that would be great. I'd guess that big batches of !shaped-update-character or !shaped-expand-spells on characters with lots of spells may well be the most likely things to show it up.

Cheers,
February 24 (8 years ago)
Gah!  seems the log is too big to copy and paste!

I've had to restart, so will do some more targetted testing!
February 24 (8 years ago)
Lucian
Pro
API Scripter

Jim W. said:

Gah!  seems the log is too big to copy and paste!

I've had to restart, so will do some more targetted testing!

So in this case one thing you can do is just to copy from the bottom up to the last "API Sandbox Restarting" message (in white, so it's easy to spot). That will reduce the amount of log you have to copy.
February 24 (8 years ago)

Edited February 24 (8 years ago)
By then it was too late - had to restart laptop!

Anyway targetted what I thought was the characters, but no help

That's gonna be way too big still, as would be 99% of the text.  I copied a block and adding to the bug sheet, and even this was enough to cause my PC to freeze for 20 seconds!
February 24 (8 years ago)

Edited February 24 (8 years ago)
Error when trying to create token action buttons using a macro;

Shaped Scripts Error
Unrecognised or poorly formed option initiative

Macro code:
!shaped-config --initiative
!shaped-config --attacksMacro
!shaped-config --traitsMacro
!shaped-config --savingThrows
!shaped-config --abilityChecks
!shaped-config --spells
!shaped-config --statblock

I ran the debug command first and the API output is

"5eShapedCompanion 1487958611399 DEBUG : Matching options: {} against triggerFields [\"character\",\"spell\",\"castAsLevel\"]"


Sheet: 9.2.1
Script: 6.1.1

Steps to reproduce:
  1. Create new character, add class and levels to populate class features
  2. Drag weapon from SRD
  3. Link sheet to token via Represents Character
  4. Select token and run macro
EDIT: I cleared my cache, restarted sandbox, ran the macro again and got three errors (the first three commands in the macro) and this API output;

"5eShapedCompanion 1487959606814 DEBUG : {\"content\":\" {{title=Shaped Scripts Error}}{{content=Unrecognised or poorly formed option traitsMacro}}\",\"playerid\":\"API\",\"rolltemplate\":\"5e-shaped\",\"target\":\"-KFFEoWEtEUkUfSQZ0tg\",\"target_name\":\"Doug E.\",\"type\":\"whisper\",\"who\":\"\"}"
February 24 (8 years ago)
Lucian
Pro
API Scripter
@Doug

!shaped-config is the wrong command. You want !shaped-abilities.
February 24 (8 years ago)

Edited February 25 (8 years ago)
D'OH!
With all my cutting and pasting...
Thanks Lucian

EDIT: works now. Except only created the first two, init and Attacks. It coughed up 
  • Traits: Not present for character

  Traits does not capture Class features nor Race nor Feats. Is there a separate command option for these not in the documentation?

Development:
I put something in Traits and it was happy but stopped this time at the saving throws. It did not generate abilities button or any of the ones after, but there is no indication in chat as to why. I have run the macro a few times, running the DELETE option first each time to start fresh. It seems to randomly pick token actions to create (but always init - the first on the list).


Update: The commands work individually, just not in one big macro calling all the commands. But, after playing with config, running these commands is not necessary. Applying defaults to token works great.
February 25 (8 years ago)
Lucian
Pro
API Scripter
@Doug E You can ask for multiple abilities in one command: !shaped-abilities --traits --attacks --saves --abilChecks
February 25 (8 years ago)
Lucian
Pro
API Scripter
Hey Testing Army!

Thanks to all who have posted on the weird import/update bug - that's great! I have enough data now, so you can stop posting new dumps on the bug thread. The bad news is that I have a strong suspicion that this is a Roll20 bug; the good news is that I think I have a workaround; the other bad news is that the workaround will make things a bit slower for updating lots of characters with !shaped-update-character. Hopefully it's something that Riley can track down and nail fairly quickly.

Cheers,
February 25 (8 years ago)
Lucian
Pro
API Scripter

6.2.0 (2017-02-25)

Bug Fixes

  • import: Attempt to dedup attributes more aggressively. (4da25ce)
  • slots: Don't decrement for repeat casts (requires 9.2.2) (53314f7), closes #329
  • spell-import: Importing Spell List gives an error (88019de), closes #12 #334

Features

  • slots: Handle spell points as well (696a269)
I'm hoping that this release will fix the problems people have been seeing with duplicate attributes. I've also introduce some checking that prevents you from running commands other than !shaped-update-character on character that are not already up to date with the latest sheet. This should prevent people have odd issues with commands expecting a certain data structure and not finding it.
February 25 (8 years ago)
Lucian
Pro
API Scripter
EEEEK. Don't install 6.2.0! Something get merged out just before I released! 6.2.1 will be here in a few minutes.
Now he tells us!  :)  Hopefully it won't do anything game destroying?
February 25 (8 years ago)

Gozer the Gozerian said:

Now he tells us!  :)  Hopefully it won't do anything game destroying?

We should always make a backup game before a new release anyway.....

Also... with the amount of work these guys are doing.. for free... we can forgive a few hiccups?

I know you smiling when you say that... Gozer.... just some might not  realize ;)
Yes, was just kidding.  I actually have this script and the latest shaped sheet installed on a copy campaign for now, until they settle down a bit.  Sorry if anyone took it another way.  Definitely very appreciative of all the work both Lucian and Kryx are doing.
February 25 (8 years ago)
Lucian
Pro
API Scripter

6.2.1 (2017-02-25)

Bug Fixes

  • spell-import: Added changes that got merged out before last release (c40c952)
Sorry for the delay - got a bit distracted!
February 26 (8 years ago)
Shaped sheet version 9.2.2
Just tried to update companion script and getting following error with 6.2 and 6.2.1
6.1.1 Works fine. Any advice?
"5eShapedCompanion 1488067317447 INFO : -=> ShapedScripts v6.2.1 <=-"
"5eShapedCompanion 1488067317448 INFO : Checking config for upgrade, starting state: {\"version\":3.7,\"config\":{\"genderPronouns\":[{\"matchPattern\":\"^f$|female|girl|woman|feminine\",\"nominative\":\"she\",\"accusative\":\"her\",\"possessive\":\"her\",\"reflexive\":\"herself\"},{\"matchPattern\":\"^m$|male|boy|man|masculine\",\"nominative\":\"he\",\"accusative\":\"him\",\"possessive\":\"his\",\"reflexive\":\"himself\"},{\"matchPattern\":\"^n$|neuter|none|construct|thing|object\",\"nominative\":\"it\",\"accusative\":\"it\",\"possessive\":\"its\",\"reflexive\":\"itself\"}],\"logLevel\":\"INFO\",\"tokenSettings\":{\"number\":false,\"bar1\":{\"attribute\":\"HP\",\"max\":true,\"link\":false,\"showPlayers\":false},\"bar2\":{\"attribute\":\"speed\",\"max\":false,\"link\":true,\"showPlayers\":false},\"bar3\":{\"attribute\":\"\",\"max\":false,\"link\":false,\"showPlayers\":false},\"aura1\":{\"radius\":\"\",\"color\":\"#FFFF99\",\"square\":false},\"aura2\":{\"radius\":\"\",\"color\":\"#59e594\",\"square\":false},\"light\":{\"radius\":\"\",\"dimRadius\":\"\",\"otherPlayers\":false,\"hasSight\":true,\"angle\":360,\"losAngle\":360,\"multiplier\":1},\"showName\":true,\"showNameToPlayers\":false,\"showAura1ToPlayers\":true,\"showAura2ToPlayers\":true,\"monsterTokenName\":\"\"},\"newCharSettings\":{\"sheetOutput\":\"***default***\",\"deathSaveOutput\":\"***default***\",\"initiativeOutput\":\"***default***\",\"showNameOnRollTemplate\":\"***default***\",\"rollOptions\":\"***default***\",\"initiativeRoll\":\"***default***\",\"initiativeToTracker\":0,\"breakInitiativeTies\":false,\"showTargetAC\":false,\"showTargetName\":false,\"autoAmmo\":true,\"autoRevertAdvantage\":false,\"houserules\":{\"mediumArmorMaxDex\":2,\"saves\":{\"useCustomSaves\":false,\"useAverageOfAbilities\":false,\"fortitude\":{\"fortitudeStrength\":false,\"fortitudeDexterity\":false,\"fortitudeConstitution\":false,\"fortitudeIntelligence\":false,\"fortitudeWisdom\":false,\"fortitudeCharisma\":false},\"reflex\":{\"reflexStrength\":false,\"reflexDexterity\":false,\"reflexConstitution\":false,\"reflexIntelligence\":false,\"reflexWisdom\":false,\"reflexCharisma\":false},\"will\":{\"willStrength\":false,\"willDexterity\":false,\"willConstitution\":false,\"willIntelligence\":false,\"willWisdom\":false,\"willCharisma\":false},\"savingThrowsHalfProf\":false},\"baseDC\":\"***default***\",\"expertiseAsAdvantage\":false,\"inspirationMultiple\":false,\"criticalDamageHouserule\":\"***default***\",\"proficiencyDice\":false,\"psionics\":false,\"customClasses\":false,\"honorToggle\":false,\"sanityToggle\":false},\"tab\":\"***default***\",\"tokenActions\":{\"initiative\":false,\"abilityChecks\":null,\"advantageTracker\":null,\"savingThrows\":null,\"attacks\":null,\"statblock\":false,\"traits\":null,\"actions\":null,\"reactions\":null,\"legendaryActions\":null,\"lairActions\":null,\"regionalEffects\":null,\"rests\":false,\"spells\":false,\"showRecharges\":false,\"racialFeatures\":null,\"classFeatures\":null,\"feats\":null},\"textSizes\":{\"spellsTextSize\":\"***default***\",\"abilityChecksTextSize\":\"text\",\"savingThrowsTextSize\":\"text\"},\"hide\":{\"hideAttack\":\"***default***\",\"hideDamage\":\"***default***\",\"hideAbilityChecks\":\"{{hide_ability_checks=1}}\",\"hideSavingThrows\":\"{{hide_saving_throws=1}}\",\"hideSavingThrowDC\":\"***default***\",\"hideSpellContent\":\"***default***\",\"hideSavingThrowFailure\":\"***default***\",\"hideSavingThrowSuccess\":\"***default***\",\"hideRecharge\":\"***default***\",\"hideFreetext\":\"***default***\",\"hideCost\":\"***default***\"},\"applyToAll\":false,\"hitDiceOutput\":\"***default***\",\"display\":{\"showPassiveSkills\":false,\"showWeight\":\"***default***\",\"showEmote\":false,\"showFreetext\":false,\"showFreeform\":false,\"showDiceModifiers\":false,\"showCritRange\":false,\"extraOnACrit\":false,\"showRests\":\"***default***\"},\"measurementSystems\":{\"distanceSystem\":\"***default***\",\"weightSystem\":\"***default***\",\"encumbranceMultiplier\":1},\"automaticHigherLevelQueries\":\"***default***\"},\"advTrackerSettings\":{\"showMarkers\":false,\"ignoreNpcs\":false,\"advantageMarker\":\"green\",\"disadvantageMarker\":\"red\",\"output\":\"silent\"},\"sheetEnhancements\":{\"rollHPOnDrop\":true,\"autoHD\":true,\"autoSpellSlots\":true,\"autoTraits\":true},\"defaultGenderIndex\":2,\"variants\":{\"rests\":{\"longNoHpFullHd\":false}}}}"
"ERROR: You cannot set the imgsrc or avatar of an object unless you use an image that is in your Roll20 Library. See the API documentation for more info."
"ERROR: You cannot set the imgsrc or avatar of an object unless you use an image that is in your Roll20 Library. See the API documentation for more info."
"initialize.sheetOpened"
"abilities.update"
"abilityChecks.updateInitiative"
"savingThrows.updateMacro"
TypeError: Cannot read property 'attribs' of undefined
TypeError: Cannot read property 'attribs' of undefined
    at correctRepeatingFieldCase (/home/node/d20-api-server/api.js:2665:22)
    at /home/node/d20-api-server/api.js:2701:29
    at Function._.each._.forEach (/home/node/d20-api-server/node_modules/underscore/underscore.js:158:9)
    at Worker.onmessage (/home/node/d20-api-server/api.js:2680:13)
    at ChildProcess.<anonymous> (/home/node/d20-api-server/node_modules/tiny-worker/lib/index.js:39:21)
    at emitTwo (events.js:100:13)
    at ChildProcess.emit (events.js:185:7)
    at handleMessage (internal/child_process.js:695:10)
    at Pipe.channel.onread (internal/child_process.js:440:11)
February 26 (8 years ago)

Edited February 26 (8 years ago)
Thanks for the great work, Lucian. Here is my log after installing 6.2.1 on 9.2.2. Note the two ERROR lines; doesnt seem to hurt anything, looks to be working fine. These errors might not even be from your script, can't really tell... if not, please disregard. Cheers!

Spinning up new sandbox...
"Starting webworker script..."
"Loading 873 translation strings to worker..."
"It's A Trap!: Registered TrapTheme - default."
"5eShapedCompanion 1488067380445 INFO : -=> ShapedScripts v6.2.1 <=-"
"5eShapedCompanion 1488067380448 INFO : Checking config for upgrade, starting state: {\"version\":3.3,\"config\":{\"genderPronouns\":[{\"matchPattern\":\"^f$|female|girl|woman|feminine\",\"nominative\":\"she\",\"accusative\":\"her\",\"possessive\":\"her\",\"reflexive\":\"herself\"},{\"matchPattern\":\"^m$|male|boy|man|masculine\",\"nominative\":\"he\",\"accusative\":\"him\",\"possessive\":\"his\",\"reflexive\":\"himself\"},{\"matchPattern\":\"^n$|neuter|none|construct|thing|object\",\"nominative\":\"it\",\"accusative\":\"it\",\"possessive\":\"its\",\"reflexive\":\"itself\"}],\"logLevel\":\"INFO\",\"tokenSettings\":{\"number\":false,\"bar1\":{\"attribute\":\"HP\",\"max\":true,\"link\":false,\"showPlayers\":false},\"bar2\":{\"attribute\":\"speed\",\"max\":false,\"link\":true,\"showPlayers\":false},\"bar3\":{\"attribute\":\"\",\"max\":false,\"link\":false,\"showPlayers\":false},\"aura1\":{\"radius\":\"\",\"color\":\"#FFFF99\",\"square\":false},\"aura2\":{\"radius\":\"\",\"color\":\"#59e594\",\"square\":false},\"light\":{\"radius\":\"\",\"dimRadius\":\"\",\"otherPlayers\":false,\"hasSight\":true,\"angle\":360,\"losAngle\":360,\"multiplier\":1},\"showName\":true,\"showNameToPlayers\":true,\"showAura1ToPlayers\":true,\"showAura2ToPlayers\":true},\"newCharSettings\":{\"sheetOutput\":\"***default***\",\"deathSaveOutput\":\"***default***\",\"initiativeOutput\":\"***default***\",\"showNameOnRollTemplate\":\"{{show_character_name=1}}\",\"rollOptions\":\"***default***\",\"initiativeRoll\":\"***default***\",\"initiativeToTracker\":\"***default***\",\"breakInitiativeTies\":\"***default***\",\"showTargetAC\":true,\"showTargetName\":true,\"autoAmmo\":true,\"autoRevertAdvantage\":false,\"houserules\":{\"mediumArmorMaxDex\":2,\"saves\":{\"useCustomSaves\":false,\"useAverageOfAbilities\":false,\"fortitude\":{\"fortitudeStrength\":false,\"fortitudeDexterity\":false,\"fortitudeConstitution\":false,\"fortitudeIntelligence\":false,\"fortitudeWisdom\":false,\"fortitudeCharisma\":false},\"reflex\":{\"reflexStrength\":false,\"reflexDexterity\":false,\"reflexConstitution\":false,\"reflexIntelligence\":false,\"reflexWisdom\":false,\"reflexCharisma\":false},\"will\":{\"willStrength\":false,\"willDexterity\":false,\"willConstitution\":false,\"willIntelligence\":false,\"willWisdom\":false,\"willCharisma\":false},\"savingThrowsHalfProf\":false},\"baseDC\":\"***default***\",\"expertiseAsAdvantage\":false},\"tab\":\"***default***\",\"tokenActions\":{\"initiative\":true,\"abilityChecks\":\"abilityChecksQuery\",\"advantageTracker\":\"advantageTracker\",\"savingThrows\":\"savingThrowsQuery\",\"attacks\":\"attacksMacro\",\"statblock\":true,\"traits\":\"traitsMacro\",\"actions\":\"actionsMacro\",\"reactions\":\"reactionsMacro\",\"legendaryActions\":null,\"lairActions\":null,\"regionalEffects\":null,\"rests\":true,\"spells\":true},\"textSizes\":{\"spellsTextSize\":\"***default***\",\"abilityChecksTextSize\":\"***default***\",\"savingThrowsTextSize\":\"***default***\"},\"hide\":{\"hideAttack\":\"***default***\",\"hideDamage\":\"***default***\",\"hideAbilityChecks\":\"***default***\",\"hideSavingThrows\":\"***default***\",\"hideSavingThrowDC\":\"***default***\",\"hideSpellContent\":\"***default***\",\"hideSavingThrowFailure\":\"***default***\",\"hideSavingThrowSuccess\":\"***default***\",\"hideRecharge\":\"***default***\",\"hideFreetext\":\"***default***\",\"hideCost\":\"***default***\"},\"applyToAll\":false,\"hitDiceOutput\":\"***default***\",\"showRests\":\"***default***\"},\"advTrackerSettings\":{\"showMarkers\":true,\"ignoreNpcs\":false,\"advantageMarker\":\"green\",\"disadvantageMarker\":\"red\",\"output\":\"silent\"},\"sheetEnhancements\":{\"rollHPOnDrop\":true,\"autoHD\":true,\"autoSpellSlots\":true,\"autoTraits\":true},\"defaultGenderIndex\":2,\"variants\":{\"rests\":{\"longNoHpFullHd\":false}}}}"
"5eShapedCompanion 1488067380449 INFO : Upgrading schema to version 3.4"
"5eShapedCompanion 1488067380449 INFO : Upgrade initiative settings"
"5eShapedCompanion 1488067380450 INFO : Post-upgrade state: {\"version\":3.4,\"config\":{\"genderPronouns\":[{\"matchPattern\":\"^f$|female|girl|woman|feminine\",\"nominative\":\"she\",\"accusative\":\"her\",\"possessive\":\"her\",\"reflexive\":\"herself\"},{\"matchPattern\":\"^m$|male|boy|man|masculine\",\"nominative\":\"he\",\"accusative\":\"him\",\"possessive\":\"his\",\"reflexive\":\"himself\"},{\"matchPattern\":\"^n$|neuter|none|construct|thing|object\",\"nominative\":\"it\",\"accusative\":\"it\",\"possessive\":\"its\",\"reflexive\":\"itself\"}],\"logLevel\":\"INFO\",\"tokenSettings\":{\"number\":false,\"bar1\":{\"attribute\":\"HP\",\"max\":true,\"link\":false,\"showPlayers\":false},\"bar2\":{\"attribute\":\"speed\",\"max\":false,\"link\":true,\"showPlayers\":false},\"bar3\":{\"attribute\":\"\",\"max\":false,\"link\":false,\"showPlayers\":false},\"aura1\":{\"radius\":\"\",\"color\":\"#FFFF99\",\"square\":false},\"aura2\":{\"radius\":\"\",\"color\":\"#59e594\",\"square\":false},\"light\":{\"radius\":\"\",\"dimRadius\":\"\",\"otherPlayers\":false,\"hasSight\":true,\"angle\":360,\"losAngle\":360,\"multiplier\":1},\"showName\":true,\"showNameToPlayers\":true,\"showAura1ToPlayers\":true,\"showAura2ToPlayers\":true},\"newCharSettings\":{\"sheetOutput\":\"***default***\",\"deathSaveOutput\":\"***default***\",\"initiativeOutput\":\"***default***\",\"showNameOnRollTemplate\":\"{{show_character_name=1}}\",\"rollOptions\":\"***default***\",\"initiativeRoll\":\"***default***\",\"initiativeToTracker\":\"***default***\",\"breakInitiativeTies\":false,\"showTargetAC\":true,\"showTargetName\":true,\"autoAmmo\":true,\"autoRevertAdvantage\":false,\"houserules\":{\"mediumArmorMaxDex\":2,\"saves\":{\"useCustomSaves\":false,\"useAverageOfAbilities\":false,\"fortitude\":{\"fortitudeStrength\":false,\"fortitudeDexterity\":false,\"fortitudeConstitution\":false,\"fortitudeIntelligence\":false,\"fortitudeWisdom\":false,\"fortitudeCharisma\":false},\"reflex\":{\"reflexStrength\":false,\"reflexDexterity\":false,\"reflexConstitution\":false,\"reflexIntelligence\":false,\"reflexWisdom\":false,\"reflexCharisma\":false},\"will\":{\"willStrength\":false,\"willDexterity\":false,\"willConstitution\":false,\"willIntelligence\":false,\"willWisdom\":false,\"willCharisma\":false},\"savingThrowsHalfProf\":false},\"baseDC\":\"***default***\",\"expertiseAsAdvantage\":false},\"tab\":\"***default***\",\"tokenActions\":{\"initiative\":true,\"abilityChecks\":\"abilityChecksQuery\",\"advantageTracker\":\"advantageTracker\",\"savingThrows\":\"savingThrowsQuery\",\"attacks\":\"attacksMacro\",\"statblock\":true,\"traits\":\"traitsMacro\",\"actions\":\"actionsMacro\",\"reactions\":\"reactionsMacro\",\"legendaryActions\":null,\"lairActions\":null,\"regionalEffects\":null,\"rests\":true,\"spells\":true},\"textSizes\":{\"spellsTextSize\":\"***default***\",\"abilityChecksTextSize\":\"***default***\",\"savingThrowsTextSize\":\"***default***\"},\"hide\":{\"hideAttack\":\"***default***\",\"hideDamage\":\"***default***\",\"hideAbilityChecks\":\"***default***\",\"hideSavingThrows\":\"***default***\",\"hideSavingThrowDC\":\"***default***\",\"hideSpellContent\":\"***default***\",\"hideSavingThrowFailure\":\"***default***\",\"hideSavingThrowSuccess\":\"***default***\",\"hideRecharge\":\"***default***\",\"hideFreetext\":\"***default***\",\"hideCost\":\"***default***\"},\"applyToAll\":false,\"hitDiceOutput\":\"***default***\",\"showRests\":\"***default***\"},\"advTrackerSettings\":{\"showMarkers\":true,\"ignoreNpcs\":false,\"advantageMarker\":\"green\",\"disadvantageMarker\":\"red\",\"output\":\"silent\"},\"sheetEnhancements\":{\"rollHPOnDrop\":true,\"autoHD\":true,\"autoSpellSlots\":true,\"autoTraits\":true},\"defaultGenderIndex\":2,\"variants\":{\"rests\":{\"longNoHpFullHd\":false}}}}"
"5eShapedCompanion 1488067380450 INFO : Upgrading schema to version 3.5"
"5eShapedCompanion 1488067380450 INFO : Adding property config.newCharSettings.tokenActions.showRecharges with value false"
"5eShapedCompanion 1488067380451 INFO : Post-upgrade state: {\"version\":3.5,\"config\":{\"genderPronouns\":[{\"matchPattern\":\"^f$|female|girl|woman|feminine\",\"nominative\":\"she\",\"accusative\":\"her\",\"possessive\":\"her\",\"reflexive\":\"herself\"},{\"matchPattern\":\"^m$|male|boy|man|masculine\",\"nominative\":\"he\",\"accusative\":\"him\",\"possessive\":\"his\",\"reflexive\":\"himself\"},{\"matchPattern\":\"^n$|neuter|none|construct|thing|object\",\"nominative\":\"it\",\"accusative\":\"it\",\"possessive\":\"its\",\"reflexive\":\"itself\"}],\"logLevel\":\"INFO\",\"tokenSettings\":{\"number\":false,\"bar1\":{\"attribute\":\"HP\",\"max\":true,\"link\":false,\"showPlayers\":false},\"bar2\":{\"attribute\":\"speed\",\"max\":false,\"link\":true,\"showPlayers\":false},\"bar3\":{\"attribute\":\"\",\"max\":false,\"link\":false,\"showPlayers\":false},\"aura1\":{\"radius\":\"\",\"color\":\"#FFFF99\",\"square\":false},\"aura2\":{\"radius\":\"\",\"color\":\"#59e594\",\"square\":false},\"light\":{\"radius\":\"\",\"dimRadius\":\"\",\"otherPlayers\":false,\"hasSight\":true,\"angle\":360,\"losAngle\":360,\"multiplier\":1},\"showName\":true,\"showNameToPlayers\":true,\"showAura1ToPlayers\":true,\"showAura2ToPlayers\":true},\"newCharSettings\":{\"sheetOutput\":\"***default***\",\"deathSaveOutput\":\"***default***\",\"initiativeOutput\":\"***default***\",\"showNameOnRollTemplate\":\"{{show_character_name=1}}\",\"rollOptions\":\"***default***\",\"initiativeRoll\":\"***default***\",\"initiativeToTracker\":\"***default***\",\"breakInitiativeTies\":false,\"showTargetAC\":true,\"showTargetName\":true,\"autoAmmo\":true,\"autoRevertAdvantage\":false,\"houserules\":{\"mediumArmorMaxDex\":2,\"saves\":{\"useCustomSaves\":false,\"useAverageOfAbilities\":false,\"fortitude\":{\"fortitudeStrength\":false,\"fortitudeDexterity\":false,\"fortitudeConstitution\":false,\"fortitudeIntelligence\":false,\"fortitudeWisdom\":false,\"fortitudeCharisma\":false},\"reflex\":{\"reflexStrength\":false,\"reflexDexterity\":false,\"reflexConstitution\":false,\"reflexIntelligence\":false,\"reflexWisdom\":false,\"reflexCharisma\":false},\"will\":{\"willStrength\":false,\"willDexterity\":false,\"willConstitution\":false,\"willIntelligence\":false,\"willWisdom\":false,\"willCharisma\":false},\"savingThrowsHalfProf\":false},\"baseDC\":\"***default***\",\"expertiseAsAdvantage\":false},\"tab\":\"***default***\",\"tokenActions\":{\"initiative\":true,\"abilityChecks\":\"abilityChecksQuery\",\"advantageTracker\":\"advantageTracker\",\"savingThrows\":\"savingThrowsQuery\",\"attacks\":\"attacksMacro\",\"statblock\":true,\"traits\":\"traitsMacro\",\"actions\":\"actionsMacro\",\"reactions\":\"reactionsMacro\",\"legendaryActions\":null,\"lairActions\":null,\"regionalEffects\":null,\"rests\":true,\"spells\":true,\"showRecharges\":false},\"textSizes\":{\"spellsTextSize\":\"***default***\",\"abilityChecksTextSize\":\"***default***\",\"savingThrowsTextSize\":\"***default***\"},\"hide\":{\"hideAttack\":\"***default***\",\"hideDamage\":\"***default***\",\"hideAbilityChecks\":\"***default***\",\"hideSavingThrows\":\"***default***\",\"hideSavingThrowDC\":\"***default***\",\"hideSpellContent\":\"***default***\",\"hideSavingThrowFailure\":\"***default***\",\"hideSavingThrowSuccess\":\"***default***\",\"hideRecharge\":\"***default***\",\"hideFreetext\":\"***default***\",\"hideCost\":\"***default***\"},\"applyToAll\":false,\"hitDiceOutput\":\"***default***\",\"showRests\":\"***default***\"},\"advTrackerSettings\":{\"showMarkers\":true,\"ignoreNpcs\":false,\"advantageMarker\":\"green\",\"disadvantageMarker\":\"red\",\"output\":\"silent\"},\"sheetEnhancements\":{\"rollHPOnDrop\":true,\"autoHD\":true,\"autoSpellSlots\":true,\"autoTraits\":true},\"defaultGenderIndex\":2,\"variants\":{\"rests\":{\"longNoHpFullHd\":false}}}}"
"5eShapedCompanion 1488067380451 INFO : Upgrading schema to version 3.6"
"5eShapedCompanion 1488067380452 INFO : Adding new properties for 9.x sheet settings"
"5eShapedCompanion 1488067380452 INFO : Moving property from config.newCharSettings.showRests to config.newCharSettings.display.showRests"
"5eShapedCompanion 1488067380454 INFO : Post-upgrade state: {\"version\":3.6,\"config\":{\"genderPronouns\":[{\"matchPattern\":\"^f$|female|girl|woman|feminine\",\"nominative\":\"she\",\"accusative\":\"her\",\"possessive\":\"her\",\"reflexive\":\"herself\"},{\"matchPattern\":\"^m$|male|boy|man|masculine\",\"nominative\":\"he\",\"accusative\":\"him\",\"possessive\":\"his\",\"reflexive\":\"himself\"},{\"matchPattern\":\"^n$|neuter|none|construct|thing|object\",\"nominative\":\"it\",\"accusative\":\"it\",\"possessive\":\"its\",\"reflexive\":\"itself\"}],\"logLevel\":\"INFO\",\"tokenSettings\":{\"number\":false,\"bar1\":{\"attribute\":\"HP\",\"max\":true,\"link\":false,\"showPlayers\":false},\"bar2\":{\"attribute\":\"speed\",\"max\":false,\"link\":true,\"showPlayers\":false},\"bar3\":{\"attribute\":\"\",\"max\":false,\"link\":false,\"showPlayers\":false},\"aura1\":{\"radius\":\"\",\"color\":\"#FFFF99\",\"square\":false},\"aura2\":{\"radius\":\"\",\"color\":\"#59e594\",\"square\":false},\"light\":{\"radius\":\"\",\"dimRadius\":\"\",\"otherPlayers\":false,\"hasSight\":true,\"angle\":360,\"losAngle\":360,\"multiplier\":1},\"showName\":true,\"showNameToPlayers\":true,\"showAura1ToPlayers\":true,\"showAura2ToPlayers\":true},\"newCharSettings\":{\"sheetOutput\":\"***default***\",\"deathSaveOutput\":\"***default***\",\"initiativeOutput\":\"***default***\",\"showNameOnRollTemplate\":\"{{show_character_name=1}}\",\"rollOptions\":\"***default***\",\"initiativeRoll\":\"***default***\",\"initiativeToTracker\":\"***default***\",\"breakInitiativeTies\":false,\"showTargetAC\":true,\"showTargetName\":true,\"autoAmmo\":true,\"autoRevertAdvantage\":false,\"houserules\":{\"mediumArmorMaxDex\":2,\"saves\":{\"useCustomSaves\":false,\"useAverageOfAbilities\":false,\"fortitude\":{\"fortitudeStrength\":false,\"fortitudeDexterity\":false,\"fortitudeConstitution\":false,\"fortitudeIntelligence\":false,\"fortitudeWisdom\":false,\"fortitudeCharisma\":false},\"reflex\":{\"reflexStrength\":false,\"reflexDexterity\":false,\"reflexConstitution\":false,\"reflexIntelligence\":false,\"reflexWisdom\":false,\"reflexCharisma\":false},\"will\":{\"willStrength\":false,\"willDexterity\":false,\"willConstitution\":false,\"willIntelligence\":false,\"willWisdom\":false,\"willCharisma\":false},\"savingThrowsHalfProf\":false},\"baseDC\":\"***default***\",\"expertiseAsAdvantage\":false,\"inspirationMultiple\":false,\"criticalDamageHouserule\":\"***default***\",\"proficiencyDice\":false,\"psionics\":false,\"customClasses\":false,\"honorToggle\":false,\"sanityToggle\":false},\"tab\":\"***default***\",\"tokenActions\":{\"initiative\":true,\"abilityChecks\":\"abilityChecksQuery\",\"advantageTracker\":\"advantageTracker\",\"savingThrows\":\"savingThrowsQuery\",\"attacks\":\"attacksMacro\",\"statblock\":true,\"traits\":\"traitsMacro\",\"actions\":\"actionsMacro\",\"reactions\":\"reactionsMacro\",\"legendaryActions\":null,\"lairActions\":null,\"regionalEffects\":null,\"rests\":true,\"spells\":true,\"showRecharges\":false,\"racialFeatures\":null,\"classFeatures\":null,\"feats\":null},\"textSizes\":{\"spellsTextSize\":\"***default***\",\"abilityChecksTextSize\":\"***default***\",\"savingThrowsTextSize\":\"***default***\"},\"hide\":{\"hideAttack\":\"***default***\",\"hideDamage\":\"***default***\",\"hideAbilityChecks\":\"***default***\",\"hideSavingThrows\":\"***default***\",\"hideSavingThrowDC\":\"***default***\",\"hideSpellContent\":\"***default***\",\"hideSavingThrowFailure\":\"***default***\",\"hideSavingThrowSuccess\":\"***default***\",\"hideRecharge\":\"***default***\",\"hideFreetext\":\"***default***\",\"hideCost\":\"***default***\"},\"applyToAll\":false,\"hitDiceOutput\":\"***default***\",\"display\":{\"showPassiveSkills\":false,\"showWeight\":\"***default***\",\"showEmote\":false,\"showFreetext\":false,\"showFreeform\":false,\"showDiceModifiers\":false,\"showCritRange\":false,\"extraOnACrit\":false,\"showRests\":\"***default***\"},\"measurementSystems\":{\"distanceSystem\":\"***default***\",\"weightSystem\":\"***default***\",\"encumbranceMultiplier\":1},\"automaticHigherLevelQueries\":\"***default***\"},\"advTrackerSettings\":{\"showMarkers\":true,\"ignoreNpcs\":false,\"advantageMarker\":\"green\",\"disadvantageMarker\":\"red\",\"output\":\"silent\"},\"sheetEnhancements\":{\"rollHPOnDrop\":true,\"autoHD\":true,\"autoSpellSlots\":true,\"autoTraits\":true},\"defaultGenderIndex\":2,\"variants\":{\"rests\":{\"longNoHpFullHd\":false}}}}"
"5eShapedCompanion 1488067380454 INFO : Upgrading schema to version 3.7"
"5eShapedCompanion 1488067380454 INFO : Adding property config.tokenSettings.monsterTokenName with value "
"5eShapedCompanion 1488067380455 INFO : Post-upgrade state: {\"version\":3.7,\"config\":{\"genderPronouns\":[{\"matchPattern\":\"^f$|female|girl|woman|feminine\",\"nominative\":\"she\",\"accusative\":\"her\",\"possessive\":\"her\",\"reflexive\":\"herself\"},{\"matchPattern\":\"^m$|male|boy|man|masculine\",\"nominative\":\"he\",\"accusative\":\"him\",\"possessive\":\"his\",\"reflexive\":\"himself\"},{\"matchPattern\":\"^n$|neuter|none|construct|thing|object\",\"nominative\":\"it\",\"accusative\":\"it\",\"possessive\":\"its\",\"reflexive\":\"itself\"}],\"logLevel\":\"INFO\",\"tokenSettings\":{\"number\":false,\"bar1\":{\"attribute\":\"HP\",\"max\":true,\"link\":false,\"showPlayers\":false},\"bar2\":{\"attribute\":\"speed\",\"max\":false,\"link\":true,\"showPlayers\":false},\"bar3\":{\"attribute\":\"\",\"max\":false,\"link\":false,\"showPlayers\":false},\"aura1\":{\"radius\":\"\",\"color\":\"#FFFF99\",\"square\":false},\"aura2\":{\"radius\":\"\",\"color\":\"#59e594\",\"square\":false},\"light\":{\"radius\":\"\",\"dimRadius\":\"\",\"otherPlayers\":false,\"hasSight\":true,\"angle\":360,\"losAngle\":360,\"multiplier\":1},\"showName\":true,\"showNameToPlayers\":true,\"showAura1ToPlayers\":true,\"showAura2ToPlayers\":true,\"monsterTokenName\":\"\"},\"newCharSettings\":{\"sheetOutput\":\"***default***\",\"deathSaveOutput\":\"***default***\",\"initiativeOutput\":\"***default***\",\"showNameOnRollTemplate\":\"{{show_character_name=1}}\",\"rollOptions\":\"***default***\",\"initiativeRoll\":\"***default***\",\"initiativeToTracker\":\"***default***\",\"breakInitiativeTies\":false,\"showTargetAC\":true,\"showTargetName\":true,\"autoAmmo\":true,\"autoRevertAdvantage\":false,\"houserules\":{\"mediumArmorMaxDex\":2,\"saves\":{\"useCustomSaves\":false,\"useAverageOfAbilities\":false,\"fortitude\":{\"fortitudeStrength\":false,\"fortitudeDexterity\":false,\"fortitudeConstitution\":false,\"fortitudeIntelligence\":false,\"fortitudeWisdom\":false,\"fortitudeCharisma\":false},\"reflex\":{\"reflexStrength\":false,\"reflexDexterity\":false,\"reflexConstitution\":false,\"reflexIntelligence\":false,\"reflexWisdom\":false,\"reflexCharisma\":false},\"will\":{\"willStrength\":false,\"willDexterity\":false,\"willConstitution\":false,\"willIntelligence\":false,\"willWisdom\":false,\"willCharisma\":false},\"savingThrowsHalfProf\":false},\"baseDC\":\"***default***\",\"expertiseAsAdvantage\":false,\"inspirationMultiple\":false,\"criticalDamageHouserule\":\"***default***\",\"proficiencyDice\":false,\"psionics\":false,\"customClasses\":false,\"honorToggle\":false,\"sanityToggle\":false},\"tab\":\"***default***\",\"tokenActions\":{\"initiative\":true,\"abilityChecks\":\"abilityChecksQuery\",\"advantageTracker\":\"advantageTracker\",\"savingThrows\":\"savingThrowsQuery\",\"attacks\":\"attacksMacro\",\"statblock\":true,\"traits\":\"traitsMacro\",\"actions\":\"actionsMacro\",\"reactions\":\"reactionsMacro\",\"legendaryActions\":null,\"lairActions\":null,\"regionalEffects\":null,\"rests\":true,\"spells\":true,\"showRecharges\":false,\"racialFeatures\":null,\"classFeatures\":null,\"feats\":null},\"textSizes\":{\"spellsTextSize\":\"***default***\",\"abilityChecksTextSize\":\"***default***\",\"savingThrowsTextSize\":\"***default***\"},\"hide\":{\"hideAttack\":\"***default***\",\"hideDamage\":\"***default***\",\"hideAbilityChecks\":\"***default***\",\"hideSavingThrows\":\"***default***\",\"hideSavingThrowDC\":\"***default***\",\"hideSpellContent\":\"***default***\",\"hideSavingThrowFailure\":\"***default***\",\"hideSavingThrowSuccess\":\"***default***\",\"hideRecharge\":\"***default***\",\"hideFreetext\":\"***default***\",\"hideCost\":\"***default***\"},\"applyToAll\":false,\"hitDiceOutput\":\"***default***\",\"display\":{\"showPassiveSkills\":false,\"showWeight\":\"***default***\",\"showEmote\":false,\"showFreetext\":false,\"showFreeform\":false,\"showDiceModifiers\":false,\"showCritRange\":false,\"extraOnACrit\":false,\"showRests\":\"***default***\"},\"measurementSystems\":{\"distanceSystem\":\"***default***\",\"weightSystem\":\"***default***\",\"encumbranceMultiplier\":1},\"automaticHigherLevelQueries\":\"***default***\"},\"advTrackerSettings\":{\"showMarkers\":true,\"ignoreNpcs\":false,\"advantageMarker\":\"green\",\"disadvantageMarker\":\"red\",\"output\":\"silent\"},\"sheetEnhancements\":{\"rollHPOnDrop\":true,\"autoHD\":true,\"autoSpellSlots\":true,\"autoTraits\":true},\"defaultGenderIndex\":2,\"variants\":{\"rests\":{\"longNoHpFullHd\":false}}}}"
"ERROR: You cannot set the imgsrc or avatar of an object unless you use an image that is in your Roll20 Library. See the API documentation for more info."
"ERROR: You cannot set the imgsrc or avatar of an object unless you use an image that is in your Roll20 Library. See the API documentation for more info."
"Starting Fumbler v0.2.0"
"-=> TokenMod v0.8.25 <=- [Sat Feb 11 2017 05:03:11 GMT+0000 (UTC)]"
"It's A Trap!: Registered TrapTheme - 5E-Shaped."
"initialize.sheetOpened"
"abilities.update"
"abilityChecks.updateInitiative"
"savingThrows.updateMacro"
"initialize.generateSkills"
"abilityChecks.updateMacro"
"☒☠☒ Initialized It's A Trap! using theme '5E-Shaped' ☒☠☒"
"abilityChecks.updateSkill"
"abilityChecks.updateMacro"
"5eShapedCompanion 1488067381974 INFO : Detected sheet version as : 9.2.2"
February 26 (8 years ago)

Edited February 26 (8 years ago)
Lucian
Pro
API Scripter
Urgh. This is the API sheetworker callback randomly getting called too early. I'll have to workaround this with a timeout. Not going to be before tomorrow now though.
No worries; as I said it doesnt seem to affect anything (that I have noticed so far).
February 26 (8 years ago)
Lucian
Pro
API Scripter
Hi Gerry,

My message was directed at Roman - your message crossed with mine. The two errors in your log are from Roll20 and aren't really errors at all. Unfortunately I can't suppress them but you can ignore them safely.

Roman's error is more serious but is non-deterministic and will only happen sometimes to some people. I'm going to workaround it by putting an extra delay in on startup until Riley can really fix the problem.
Right on, thanks again!
February 26 (8 years ago)
Thanks Lucian. I'll keep checkng the thread and let you know if my issue is fixed or not with the next update.
February 26 (8 years ago)

Edited February 26 (8 years ago)
Lucian
Pro
API Scripter

6.3.0 (2017-02-26)

Bug Fixes

  • startup: Introduce delay to workaround Roll20 bug causing crash at startup

Features

  • config: Check against sheet version on startup (35ba538), closes #12

Ok guys, I'm hoping that this will fix a number of the outstanding problems with 6.2.2. I've done some fairly substantial refactoring as part of this release; I did check most of the functionality quickly, but there may be some things that slipped through. I'd treat this as potentially a little unstable until more people have tested it.



February 26 (8 years ago)

Roman said:

Thanks Lucian. I'll keep checkng the thread and let you know if my issue is fixed or not with the next update.

Unfortunatelly error is still there...
"initialize.sheetOpened"
"abilities.update"
"abilityChecks.updateInitiative"
"savingThrows.updateMacro"
"initialize.generateSkills"
"abilityChecks.updateMacro"
"5eShapedCompanion 1488116909744 INFO : Detected sheet version as : 9.2.3"
"abilityChecks.updateSkill"
"abilityChecks.updateMacro"
TypeError: Cannot read property 'attribs' of undefined
TypeError: Cannot read property 'attribs' of undefined
    at /home/node/d20-api-server/api.js:2714:22
    at Function._.each._.forEach (/home/node/d20-api-server/node_modules/underscore/underscore.js:158:9)
    at Worker.onmessage (/home/node/d20-api-server/api.js:2680:13)
    at ChildProcess.<anonymous> (/home/node/d20-api-server/node_modules/tiny-worker/lib/index.js:39:21)
    at emitTwo (events.js:100:13)
    at ChildProcess.emit (events.js:185:7)
    at handleMessage (internal/child_process.js:695:10)
    at Pipe.channel.onread (internal/child_process.js:440:11)