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+

1488638879
Lucian
Pro
API Scripter
7.3.0 (2017-03-04) Bug Fixes token-defaults: Only use default token label for new imports ( f8b4513 ) Features ammo: Prompt for ammo recovery at end of combat ( 5fe2d81 ), closes #74 New feature, requested a long time ago! If you open the turn tracker before combat, either manually or with !group-init, the script will start tracking who many items of each type of ammo each character uses (assuming they have auto-ammo tracking turned on). When you close the tracker at the end of combat (either manually or using !group-init --clear) it will whisper the number of each type used to the GM, and provide a button for him to click to recover them. The recover button pops up an input that shows the number to be recovered, defaulting to half the number used (rounded down). Accepting this will add that number of ammo items back to the relevant ammo quantity, and whisper that fact to the character in question.
1488645268
Kryx
Pro
Sheet Author
API Scripter
Sorry for spamming this thread about group initiative, but since we talked about it earlier: Aaron released a version of group-init that fixes the issues:&nbsp; <a href="https://app.roll20.net/forum/permalink/4725216/" rel="nofollow">https://app.roll20.net/forum/permalink/4725216/</a> If you follow the instructions in the documentation it should work. If not address it on that group-init thread please.
Maybe I'm dumb, but I cannot get the companion script to recognize my custom spells database. I'm generating no errors in the API, but the script outputs:&nbsp; Shaped Scripts Error Could not find any spells. Please ensure you have a properly formatted spells json file. I've looked all over for documentation on the proper formatting and installation instructions, but this information is eluding me. Can anyone offer any help?
Also sometimes when applying token abilities to a pc the actial sacript for the ability, for example, for intiative does not start with the characters identying name but a list of random characters, doesn't seem to effect the operation of the macro though.
1488814561
Kryx
Pro
Sheet Author
API Scripter
Random characters is the ID of the creature I believe. That prevents sheets with the same name from interfering with one another.
1488815326
Jakob
Sheet Author
API Scripter
Kryx said: Random characters is the ID of the creature I believe. That prevents sheets with the same name from interfering with one another. It also means that when you change the name of the creature, all the abilities will continue to work.
Is it possible to add support for --all option in&nbsp; !shaped-apply-defaults command? Also readme states that it should be supported for&nbsp; !shaped-expand-spells but it doesn't seem to be working with 7.3.0
1488924279
Lucian
Pro
API Scripter
Roman said: Is it possible to add support for --all option in&nbsp; !shaped-apply-defaults command? I could, but it will come with a health warning - any changes that you make to token settings will not be applied in this case, since it will be operating solely on characters from the journal, not selected tokens. It might be possible to instantiate default tokens automatically and then update them, but I'm not sure if Roll20 lets me do this or not, I'll have to check Also readme states that it should be supported for&nbsp; !shaped-expand-spells but it doesn't seem to be working with 7.3.0 Hmmm. It looks like I updated the Readme and then forgot to implement that feature. Woops. Will fix that for the next release!
1488947643

Edited 1488947864
Can someone tell me what is wrong with the following command: !shaped-import-monster --Knight Every time I run it I get&nbsp; Shaped Scripts Error Unrecognised or poorly formed option Knight I do have a unassigned token selected when I click enter. Never mind
1489050784

Edited 1489052170
Lucian
Pro
API Scripter
7.3.1 (2017-03-09) Bug Fixes import: Rework --all options and limit !shaped-import-spell-list ( 7f2bd9a ) Ok, so I think this one is going to cause some wailing and gnashing of teeth. I have removed the --all option from !shaped-import-monster. I have no idea if anyone was using it, but it's just too dangerous now (see below for a general discussion of why). I have also put a limit on !shaped-import-spell-list. If an import will result in a character having more than 35 spells, it will refuse to run. Separately, I have added a --all option that was missing to !shaped-expand-spells. Note that this limit only applies when doing !shaped-import-spell-list, to try and discourage people from misusing this command. If you import spells 1 by 1 using !shaped-import-spell you can still add as many as you want (but think before you do!) Up until know, I've been happy to turn a blind eye to the fact that some people ignore the recommendations about spell count and campaign size. In the end, it only affects their campaigns and their players, and if they want to wait for 30 seconds to open their character sheet, so be it. Unfortunately, with the recent changes to the script and the character sheet, this has become an issue for all of us. When you run script commands that make changes to characters, they run on the API server.&nbsp; The new API sheetworkers functionality means that these changes will update everything just as if you'd made the changes manually on the client. This is all well and good, but the sheet is now a big hairy javascript gorilla, and some of those updates actually do a lot of work, fetching, modifying, transforming and saving attributes behind the scenes. Riley has been dropping hints for a while now that the intention of this functionality is not to allow lots of processing to be moved out of the browser and on to the API server - it was merely to try and make sure that changes made in one place would be equivalent to the other. Unfortunately, because we have no (nice) way to automate a lot of the changes&nbsp; in the browser, we have ended up doing exactly what Riley didn't really want us to do. When you do !shaped-update-character --all (and I understand that it's a very appealing thing to do), you are tying up a server that doesn't appear to be very powerful for an extended period of time. The same is true when you do !shaped-import-spell-list --classes cleric. If enough of us do this enough times, Roll20 are going to look into why their servers are on fire, and they're going to ask us, more or less politely, to stop doing it. Eventually, they might take some more radical action, and none of us want that. I've tried to reach out to Riley about what a more sustainable alternative might be in the future that still results in a good user experience, but that's going to be a very long term thing. In the meantime, people need to be aware that running these heavyweight commands has consequences for us all. With that in mind, here are some guidelines to follow: Don't import whole spell lists for classes. Sorry, I know it's appealing, but it's bad for the sheet, it's an expensive operation and it makes everything that subsequently gets done with that character more expensive. Try to keep your campaigns as small as possible, ideally by modularising them into several smaller campaigns that can be worked with separately.&nbsp; If possible, do major operations like !shaped-update-character in batches - do all the tokens on a page rather than the whole campaign at once. Think about when you're running those big bulk commands. Roll20s servers have peak times when more people are gaming. Don't whip out your SKT campaign on a Sunday afternoon and do !shaped-update-character --all:&nbsp; it's the computational equivalent of turning up at a party and taking a big dump in the middle of the living room floor. Do it on a Monday morning when the impact on others will be minimised. In general, if you're running a command that takes minutes to complete, remember that it's affecting everyone else, and ask yourself whether there's a practical alternative that might put less strain on the API server. Sorry, I wish there was a better alternative, but at the moment this is what we're stuck with.
Good update! I doubt many of us realized that what went on in our own campaigns could also be affecting other campaigns.
While I am very sad to see the !shaped-update-character --all go away, the explanation makes complete sense. &nbsp;Thanks for the clear, concise update.
1489068857

Edited 1489069494
Kryx
Pro
Sheet Author
API Scripter
!shaped-update-character --all isn't going away. It's currently recommended to not use it during peak times, but it's not being removed. --all was only removed from&nbsp;!shaped-import-monster. To explain the conversation Lucian and I have been having around --classes: Simply put: Lots of spells is bad for performance of the sheet and for API server load. As a result players should try to minimize the amount of spells on a sheet to the necessary spells. No Cleric will ever use all 99 Cleric spells, nor will a Druid use all 126 Druid spells. Users purposefully choosing which spells to add to the sheet (via a method like "!shaped-spell --bless, spiritual weapon, spirit guardians") naturally limits the amount of spells to the spells used by the caster instead of the sheet having all the spells, of which only a small portion are used. Because of that I advocated the removal of "--classes" as it's only purpose is to bulk add lots of spells, but the limiter is the strategy currently being used. I think the limited strategy will be insuffienct when a Cleric adds all 1st and 2nd level spells via the "--classes" option (32) total and then tries to add all 3rd level spells and gets the error. They'll then have to go back through and remove spells which is harder to do than choosing which spells to add. That said a Wizard has 44+ spells by level 20 even if they don't add new spells from other sources. A sheet having that many spells for those less common cases (high level) is perfectly fine and not something to be discouraged.
1489069064
Jakob
Sheet Author
API Scripter
Kryx said: !shaped-update-character --all isn't going away. It's currently recommended to not use it during peak times, but it's not being removed. --all was only removed from&nbsp;!shaped-import-monster. And, to be honest, !shaped-import-monster --all has always been a fairly insane option.
Kryx said: !shaped-update-character --all isn't going away. It's currently recommended to not use it during peak times, but it's not being removed. --all was only removed from&nbsp;!shaped-import-monster. Blargh... my mistake, that is what I get for reading things too quickly!
Speaking of spells, is it possible for the script to remove spells? Something like !shaped-remove-spell --Fireball maybe? Or say clear all 2nd level spells?&nbsp; If so, I could then make a macro to, say, swap out spell sets. Or even a macro to swap out one spell for another.
1489099052

Edited 1489099067
Kryx
Pro
Sheet Author
API Scripter
That would defeat the purpose as removing and adding spells would tax the API. In that case it'd be better to have the spells always on the sheet. Lucian and I discussed that removing the "Import" button may have been the wrong choice if we're concerned about the API processing. I don't quite know what other usage API as sheetworkers would have if any calls are too much for the API. Hopefully Lucian can get some info from Roll20.
I'm wondering if it might be possible to have multiple sheets for spell caster PCs, so as to spread the load.&nbsp; One per spell level may be extreme... The problem is that it would not work with token buttons for the spells, and spell usage updates. I hesitate to raise a suggestion for such support from the Companion Script without discussion here.
1489100788
Kryx
Pro
Sheet Author
API Scripter
I think that method is a method to try to avoid the whole concept of "you don't need all 99 cleric spells". If that's your goal, there isn't much we can do to stop you, but I'd really recommend not doing so.
Not my goal, my players...My goal is to be able to open the character sheet for clerics etc.
1489103724
Kryx
Pro
Sheet Author
API Scripter
That goal is at odds with how Roll20's system is setup. Any method to accomplish that goal will be met with "that shouldn't be done". I'd suggest they consider a different process.
I'm happy to pass on any advice, but before we knew this was an issue the standard approach was to add all the spells!
1489105638

Edited 1489105657
Kryx
Pro
Sheet Author
API Scripter
I've been saying that people shouldn't add lots of unnecessary spells to their sheet since I created my sheet. it isn't a new suggestion.
Jim W. said: Not my goal, my players...My goal is to be able to open the character sheet for clerics etc. Cleric / Druids / Spellcasters in general are still very easily playable with this sheet, you just have to remove and re-add spells as needed. My players just keep their prepared spells on their sheet, and every rest they remove what they don't want, import what they do. May take a minute or two but I'd rather that than them crashing because their sheet has too many attributes from too many spells.
We have just finished a long campaign with an obsolete sheet and only realised what was causing one players sheets to open slowly after seeing comments for Shaped.&nbsp; He had a Cleric and a Druid and had added every spell.&nbsp; The issue is not specific to this shaped sheet, and at least this sheet makes it easier to add spells than the one we were using. Having slept on this the answer is to add those spells not in the compendium that you want and keep them; then add/remove those in the compendium as prepared.&nbsp; Of course need to note, somehow, which are not in the compendium in this.method.&nbsp; The trick is, then, to advise players early on!
1489142087
Lucian
Pro
API Scripter
7.4.0 (2017-03-10) Features spell-import: Add command to delete spells ( c37de93 ), closes #391 You can now do !shaped-remove-spell --fireball or !shaped-remove-spell --all with a token selected to remove spells from that character. At some point I might also add --level option to give you more flexibility about what you remove.
1489142613

Edited 1489142777
@Lucian would it be possible for&nbsp; !shaped-expand-spells to respect spell level instead of overriding it? Not sure if it should be a separate option or not. There are very short lifespan NPCs who are suppose to use magic as cantrips to avoid spell slot management and right now I have to manually change every spell to cantrip after import.
1489144003
Kryx
Pro
Sheet Author
API Scripter
If you don't want spell slot tracking then you can turn it off. Changing all spells to cantrips to avoid it isn't necessary.
1489144073
Lucian
Pro
API Scripter
Roman said: @Lucian would it be possible for&nbsp; !shaped-expand-spells to respect spell level instead of overriding it? Not sure if it should be a separate option or not. There are very short lifespan NPCs who are suppose to use magic as cantrips to avoid spell slot management and right now I have to manually change every spell to cantrip after import. Do you have an example of this? I assume if you're using !shaped-expand-spells then you're pulling from the compendium, but I've never seen any WotC material that redefines the level of a spell as part of a stat block. Unfortunately I haven't bought the MM or any modules because I don't have the $$$ to burn and there's no discount/test access programme for script/sheet authors :-( Some monsters obviously have at will or x/day powers that cast spells, which we're intending to support - need to see if/when Kryx is up for doing that. Redefining a spell as a cantrip to get round the spell slot management is asking for trouble anyway. Anything that has a higher-level query will get broken by this, and anything else that makes use of the level in the future will also be broken by altering the level of the spell. Is there any reason why you can't just turn off the spell slot management for those creatures? It's a per-character setting. (I'd still like to know more about where this data is coming from so I can understand if we need to do something to support it)
1489144701

Edited 1489144804
&gt;If you don't want spell slot tracking then you can turn it off Oops, sort of forgot you can do that with individual character. But even so, there might be a case where you only want to track sertain spells. I agree it's got to be pretty rare but still can be considered a low priority improvement. EDIT: On second thought I can alway manually make sertain spells cantrips... So yeah, might no be that usefull after all.
1489145044

Edited 1489145616
Lucian
Pro
API Scripter
Ok, I hadn't realised that Innate Spellcasting parsed spells in as cantrips - that's probably where this is coming from. Will need to look at this more closely to work out how best to approach.
1489145165

Edited 1489145221
&gt;I'd still like to know more about where this data is coming from It's a third party module from the market. They have NPC with a few cleric spells that are defined as cantrips in OGL. Apparently their data is flawed and they don't have spell casting ability set up properly so after conversion to shaped sheet all spells descriptions are gone. Luckly your companios script came to the rescue. &gt;Is there any reason why you can't just turn off the spell slot management for those creatures? There is not. I totaly forgot I can do that. It pretty much solves all problems.
1489146646
Kryx
Pro
Sheet Author
API Scripter
Roman said: Apparently their data is flawed and they don't have spell casting ability set up properly so after conversion to shaped sheet all spells descriptions are gone. Luckly your companios script came to the rescue. Spell descriptions shouldn't be lost without the spellcasting trait/ability. Sorry if I said so - I haven't had as much time to spend on issues the last few days. Are spell descriptions that appear on the OGL sheet currently being lost? If you're referring to the issue I saw the description of attacks remained (even though they were rather poorly formatted). I didn't look at spells closely though. If the spell descriptions appear on the OGL sheet and are lost can you open a new issue and import a character to my test campaign? I'll have some time tonight to look at these kind of issues. Thanks
@Kryx I tried multiple times and everything works as intended... If there was an issue it's either fixed now or was a screw up on my side somehow. Sorry about that.
1489148249
Kryx
Pro
Sheet Author
API Scripter
Ok, no worries. As Lucian said we'll investigate innate spellcasting as cantrips and fidn a better solution, but glad to hear it doesn't affect this case.
I get the desire to encourage a lower number of spells, and the impact this stuff could have on the API server and thus the future of the script and sheet. At the same time: 35? I do choose which spells to import. Here's an example of my Sorc 1 / Cleric 8. This is everything he knows and has prepared, plus a number of utility spells that have come in handy on occasion and which he can prepare ad-hoc (one preparation slot left free each day for that kind of use). I count 45 spells at Level 9, 14 of which are "might use these situationally" spells. Domain spells, cantrips and known spells certainly add to that number, as does the "maximized shatter" I stuck in there for convenience. I'm not sure how to find the happy medium here, but man, 35 is restrictive. It really is.
1489169443
Lucian
Pro
API Scripter
Thorsten B. said: I'm not sure how to find the happy medium here, but man, 35 is restrictive. It really is. Hey Thorsten, This stuff will change soon, I need to think a little more about how it's going to work, but for now, you need to remember that this limit *only* applies to importing via !shaped-import-spell-list, and it's there to prevent people thoughtlessly importing huge numbers of spells. There is no fundamental limit on how many spells the sheet will allow, and if you import them individually, either using !shaped-import-spell or from the SRD, you can add as many as you like. Cheers, Lucian
@Lucian Regarding making some spells not use a spell slot. A sort of relevant case would be Fiendish Vigor Eldrich Invocation. Although in this particular case I also made it a cantrip, since it should only be cast as 1 level, but you can see how it can be a problem. If you also have it available as a spell you might chose to expand higher level spell slot instead of getting benefit of 1st level for free.
Lucian said: There is no fundamental limit on how many spells the sheet will allow, and if you import them individually, either using !shaped-import-spell or from the SRD, you can add as many as you like. Right on. I didn't understand that. I thought the script refused to import any more once you have 35 total in the sheet. I'm good, then. I don't mind individual imports, I was just starting to worry I wouldn't be able to import additional spells if I'm over a limit.
1489698982
Tim
Pro
Sheet Author
Compendium Curator
I'm just thinking out loud here, please don't view this as a request or a demand, but here's one possible solution. What if there was a "Change Prepared" macro, similar to the Spells macro, that shows you what spells you have prepared (loaded into the sheet) and which you have available (stored in a separate field). Clicking a prepared spell would "unprepare" it (and run&nbsp;!shaped-remove-spell in the background) and clicking an unprepared spell would prepare it (and run&nbsp;!shaped-add-spell). That way it would be easy to ensure the sheet only holds the minimum number of spells needed, but also make it easy to keep track of which spells you know vs. which you have prepared, without having to keep a separate google doc or piece of paper or something (a situation I'd like to avoid if possible).&nbsp; Anyway, thanks again for all your hardwork, it is much appreciated!
1489699412
Lucian
Pro
API Scripter
Tim said: I'm just thinking out loud here, please don't view this as a request or a demand, but here's one possible solution. What if there was a "Change Prepared" macro, similar to the Spells macro, that shows you what spells you have prepared (loaded into the sheet) and which you have available (stored in a separate field). Clicking a prepared spell would "unprepare" it (and run&nbsp;!shaped-remove-spell in the background) and clicking an unprepared spell would prepare it (and run&nbsp;!shaped-add-spell). That way it would be easy to ensure the sheet only holds the minimum number of spells needed, but also make it easy to keep track of which spells you know vs. which you have prepared, without having to keep a separate google doc or piece of paper or something (a situation I'd like to avoid if possible).&nbsp; Anyway, thanks again for all your hardwork, it is much appreciated! WATCH. THIS. SPACE. ;-)
1489699472
Tim
Pro
Sheet Author
Compendium Curator
Hah! Will do, cheers.
1489939649
Lucian
Pro
API Scripter
8.0.0 (2017-03-19) Bug Fixes import: Minor tweaks to improve efficiency of import ( 85f755d ) Chores Bump to next major sheet version ( 115ebc0 ) BREAKING CHANGES This script will now require 11.x sheet versions
1489942839
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Question: I have started updating your script manually, but continue to use the pushed version of the character sheet. There are just too many versions of the sheet that change little things that I'd prefer fewer updates. Is that a realistic work path? What pitfalls should I look out for. Also, thanks for your work on this. Your script is one of the reasons I became a paid subscriber.
1489948408
Lucian
Pro
API Scripter
Hi Keith, Things that will bite you: The script occasionally relies on recently released features of the character sheet that may not have made it into the roll20 repo versions The script currently (but we're going to be changing this soon) only works with one major version series of the sheet. When a new major version of the sheet is released, I currently have to push a new update of the script that will accept the new major version. In the gap between Kryx pushing his major version to Github and it ending up in the Roll20 repo, none of the script releases will work for you (This is the important one) You have no control over when and how your campaign gets updated. Seriously, this is really bad. Every major release of the sheet brings cries of anguished users who have had their sheets changed just as they opened them on game night. Usually this is just frustration with new layouts/ways of doing things, but occasionally upgrades do go wrong and you're left with a broken campaign when you least need it. If you are manually updating the sheet, you can copy your campaign and try it out first at your leisure before you apply to the live game; if you're just going with the pushed version, this happens when Roll20 choose to merge Kryx's changes, and there's nothing you can do to back it out. Item (1) I can't do anything about, but I do flag this up very explicitly in my release posts. Whenever this happens I bump the major version of the script and call out which version of the character sheet is required for the new script. As I say, I'm going to be improving on item (2) so that the script will continue to work with new versions of the sheet, but will warn you when major sheet changes have been made that will potentially break script functionality. Item 3 is down to you. I completely understand that the pace of sheet updates can be quite daunting. But bear in mind that updating manually doesn't entail that you *have* to install every version. It just means you get to pick which versions you install. Keep half an eye on the sheet thread, and if you're in doubt, ask Kryx about the stability of the current version/proposed roadmap and make your decision based on his reply. If the sheet thread is also a bit too high-traffic for you. You could try watching the RSS feed: <a href="https://github.com/Roll20/roll20-character-sheets/commits/master/5eShaped.atom" rel="nofollow">https://github.com/Roll20/roll20-character-sheets/commits/master/5eShaped.atom</a> which will get updated every time a new version of the sheet gets pushed to roll20. When that happens you can then go and manually test/install it.
1489953572
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Thanks for the detailed response. I would fervently hope that Roll20 would never do an update just before a weekend (when I imagine the majority of games happen.) That would be a nightmare. Thank you very much for the RSS link. I have bookmarked it. I'll continue to monitor both threads, and weigh my decisions accordingly.
Strange occurance- Using character sheet 11.0.0 and companion script 8.0 the spells macro doesn't seem to work. Made sure the sheet was updated. (even did an update all just to make sure) deleted the existing macros just to make sure they didn't rely on an attribute broken in the update 11.0.0 ran !shaped-abilities --spells than tried !shaped-apply-defaults &nbsp;..... nothing worked
1489961547
Kryx
Pro
Sheet Author
API Scripter
Gary, chat macros are the responsibility of the sheet. Can you open an issue on the sheet's issue tracker - providing steps to reproduce the issue on a clean character. Thanks
Cannot reproduce it- a clean character is working- but none of my characters imported from version 10 have a working spell macro. Will try an play with it a bit and see- maybe will need to delete the spells and reimport.&nbsp;
1489967410
Kryx
Pro
Sheet Author
API Scripter
This is a sheet related issue, please post it on my issue tracker. This thread is for the script. After you have opened an issue I'll need you to upload a character who has this occurs to my test campaign.