
Just want to say thank you for your continued support of it. My players are loving all the additional functions and how organized it is once they get used to it. There are always a few hiccups, but that happens with any complex system.
Sorry, all I have looked but see it.
Is there a way to make bulk changes to the scripts, or merge a JSON. Specifically, i am looking at adding spell fx to the 'monsters' that have casting abilities, what I would rather not do is go through each individual character sheet and add the effect to each spell. I also would rather not modify your base JSON as obviously these will be lost when the next update happens.
Hi Jon,
I'm not 100% sure what you're trying to achieve here. If I understand right, the best way to achieve what you're looking for would be to include some sort of info about FX in the JSON for each spell so that when you import monsters that use those spells, it sets the FX up automatically for you. If I remember rightly, we thought about adding some default FX to the spells JSON to do this ages ago but never got round to it.
The problem is that the importer doesn't currently have any functionality to process any such additional info from the JSON - I'd have to add that to the script. If this is what you're looking for then you can make an enhancement request on BitBucket and I'll have a look at it when I have time - but it's probably not going to be in the very near future.
If you want to code something up yourself then probably your best bet would be to just create a new script with an array of spells with corresponding FX and then have an API command you can fire off to "fix" characters after they've been imported. A bit more manual but still a lot quicker than doing it by hand. You can search through all the spells that the character has, and if any match, you can create the relevant attributes to populate the FX section. It's not especially hard if you're a JS coder and know the basics of the Roll20 API. You can find the attributes you need by poking around with the browser inspector looking at the FX fields.
Hi Lucian,
That was basically it, trying not to corrupt your JSON from the shaped script as I realise this updates each time, so an additional JSON of just spell effects for certain spells that would benefit from it I think would be the way to go, and I am happy to do this myself.
I am assuming if I look through your script I will see the way of doing this?
Hey Jon,
If you're willing to do the work of updating the JSON, then what I suggest you do is extract the SRD JSON from the script, and add the data for your effects in an object property for those spells where it makes sense. Something along the lines of
...For the pointsOfOrigin value, use SOURCE_TO_TARGET, TARGET_TO_SOURCE, SOURCE or TARGET. When you're done, send it back to me (in a gist or something like that) and we'll sort out making it work automatically. It's useful functionality so we might as well make it work for everyone...
"fx": {
"color": "fire",
"type": "explode",
"pointsOfOrigin": "SOURCE_TO_TARGET"
}
...
Hi Lucian,
that's great thank you, I will take a look if sharing I will try to keep it to the standard types.
Many thanks again
So - opened up a new campaign yesterday. Discovered a couple of things ...
1) Found out that you must install and run the Companion API >>~~~> BEFORE <~~~<< installing any other API's, otherwise you get a constant API shutdown with the "unexpected token" error. Disabling the other APIs won't help. Disabling the Companion API does - however; that defeats the point of having it ...
Running script version: 13.7.0
Running sheet version: 19.1.3
2) As I was setting up my config options: found a unique little setting I wanted to inquire about ... the path being: !shaped-config > Char Sheet Enhancements > Track Spell Component Usage. That looks tasty to me if it does what I want it to do. But, so far, I don't know how to make it do anything, other than toggle the configuration on and off. Any tips on how to make use of this tidbit? (**Rubs Hands In Anticipation**)
3) Any way to get the chat prompt of the API into silent mode? It's kinda useful to a point, but after a while gets redundant. If it included a menu of important commands like "!shaped-config", and only fired until you turned it off in the config menu, that'd be one thing. But the constant redundancy is a little on the rough side. Version info should be readily available in the Config Menu information though.
Hey Wolf,
1) This usually means that one of your scripts is missing a semi-colon or blank line at the end. It's possible that it's the Companion but it's equally possible that it's another one. You should be aware that the order that you install scripts is not necessarily the order that they're put together by Roll20 so your workaround it unlikely to be reliable. I will double check the latest script to be sure but it may also be that you've missed the final blank line when you copy-pasted it or another script.
2) Please see the documentation https://bitbucket.org/mlenser/5eshapedscript/wiki/Home
3) No, not at the moment. The script should only print version info at startup, and the message isn't persisted in the chat log. When you're not testing stuff and constantly restarting the game I really don't find it particularly intrusive. The script also takes a while to initialise, so the message serves to confirm that commands will be received - and conversely that something is wrong if it isn't displayed. Kryx and I made a deliberate decision to have the message display every time because it makes it much more likely that users will actually include this information when asking for help. Right now I don't have any plans to change it; if I feel very enthusiastic I might get round to including a config switch to allow it to be turned off - maybe you can add an enhancement request on Bitbucket.
Hello there Lucian,
First of I want to thank you so much for all of the work you and Kryx have put into the 5E Shaped sheet and companion script! They make being a DM online so easy and I love the amount of automation!
I do have one question though, is it possible to update the companion script config manually? I have one game that is exceptionally large and I am getting constant 'Possible infinite loop detected, shutting down.' errors when trying to use the script. I have tried to delete and re-add the script from Github but I am unable to change the config with chat commands.
I believe the size of the game is the issue because everything is working incredibly well in every other of my game instances. The game currently has ~650 monster+NPC sheets and tokens.
Any advice on how to update the config would be most appreciated. I have attached a screenshot of what I am getting below. Thanks again for all of your great work!
-Lukebev
LukeBev said:
Hello there Lucian,
First of I want to thank you so much for all of the work you and Kryx have put into the 5E Shaped sheet and companion script! They make being a DM online so easy and I love the amount of automation!
I do have one question though, is it possible to update the companion script config manually? I have one game that is exceptionally large and I am getting constant 'Possible infinite loop detected, shutting down.' errors when trying to use the script. I have tried to delete and re-add the script from Github but I am unable to change the config with chat commands.
I believe the size of the game is the issue because everything is working incredibly well in every other of my game instances. The game currently has ~650 monster+NPC sheets and tokens.
Any advice on how to update the config would be most appreciated. I have attached a screenshot of what I am getting below. Thanks again for all of your great work!
-Lukebev
I would suggest creating a backup of the game and only having in the active game the NPCs you will be using. Then if you need one adhoc you can always Transmogrify it in quickly. That really really helps speed up things.
I can confirm - its best to limit the number of sheets.
Use additional Game spaces for Monster, NPCs ... Even different ones for TYPES of monsters if you go the full all Monster Manual, Volo's, Mordenkainen, 5th edition Foes, Monster a Day, Each module, Creature Codex, etc etc. set of Tokens and associated character sheets.
If you code all those into a custom JSON, then you'll have all that already at a moment's notice.
I'd suggest staying under 100 where possible. or simplifying so that the tokens have the sheets in the notes field versus the full character sheet increase of the database per entry.
If you're pulling more than 100 creatures/NPCs for a session - usually not more than 6 hours in length. You're approaching Gardens of the Moon level of character development/narrative complexity and you may wish to double check with the players - who are likely having loading issues.
It sounds like the problem is not getting things to run, but configuring the script? Further, that this is just a library campaign, with no intent to run anything?You could create a new game, configure the script, add in all other APIs, and save it as a blank template. Make a duplicate of that, and transmogrify all content from your 600+ monster backup campaign into the duplicate. It might be best to do that in stages.
I suggest the duplicate, because then you will always have a configured backup template to start with if you need to update or do it again.
Hey Luke,
Any chance you could PM me an invite to the game and then let me access as a GM? Updating the config really shouldn't take any time at all and it shouldn't scale with game size either. My guess is that there's something else going on at startup that is causing your problem and it would be good to find out what that is...
Cheers,
Thanks everybody for your suggestions and help!
@Jerry, that is exactly what I made this game for, a library of monsters to transmogrify into the current active game.
And @Modnar and Keith, those are great suggestions. I will have to break this up into a few smaller games and everything should work. And the API JSON import does make it super easy to create what is needed in the fly.
@Lucian, I just sent you a PM and will promote you to gm when you joins. Thabks again!
-Lukebev
I'm having trouble using the script. When I install it from the raw code it forces me to update it, which I find strange.
I'm also having trouble getting the ammo/spell tracking to work. I'm following all documentation, but I can't get it to reduce the ammo in the inventory by 1.
If you haven't updated the script in a while there is an underlying element for data compatibility that the script needs to make.
If you don't do the update/upgrade you'll not get it to work (well) and you'll be prompted.
Are you getting the prompt more than once?
What are you doing (configuration wise) to setup and test the ammo tracking?
(and have you confirmed the API sandbox is running and/or do you get any errors messages?)
I thought that the version in the github was the most recent one, so when I copy and paste that I assumed that would be fine, but I get the message in chat saying it needs updating.
For the ammo tracking I've made sure that the ammo tracking dot is ticked in the individual character sheet, and drag and drop a ranged weapon from the compendium, and then click on the macro for longbow (for example) and expect the number of arrows to drop by one (I've had it work before in an older game). When I had this problem before it was because I was whispering all my dice rolls to myself so as not to clog chat, but thats not the issue here. I can't think of what else to check.
I found an error! (I just don't know what it is!)
"Sheet Worker ERROR: Unable to find valid character with ID -LMiBpXnf_8CJ4ixeITk"
Richard B. said:
I thought that the version in the github was the most recent one, so when I copy and paste that I assumed that would be fine, but I get the message in chat saying it needs updating.
For the ammo tracking I've made sure that the ammo tracking dot is ticked in the individual character sheet, and drag and drop a ranged weapon from the compendium, and then click on the macro for longbow (for example) and expect the number of arrows to drop by one (I've had it work before in an older game). When I had this problem before it was because I was whispering all my dice rolls to myself so as not to clog chat, but thats not the issue here. I can't think of what else to check.
Richard B. said:
I thought that the version in the github was the most recent one, so when I copy and paste that I assumed that would be fine, but I get the message in chat saying it needs updating.
I think you're getting a bit confused here. Yes, the github script is the latest one. Once you copy-paste that into your scripts and start up your game, you will get a prompt to Update your data. This is because your data from the old version of the script needs to be converted to the latest data structure in order to work. The script will not function until you do this. So click Update when you're prompted and you should get a message saying it's been updated, and then the script should work (and you likely won't have your ammo tracking issue)
Richard B. said:
I found an error! (I just don't know what it is!)
"Sheet Worker ERROR: Unable to find valid character with ID -LMiBpXnf_8CJ4ixeITk"
Richard B. said:
I thought that the version in the github was the most recent one, so when I copy and paste that I assumed that would be fine, but I get the message in chat saying it needs updating.
For the ammo tracking I've made sure that the ammo tracking dot is ticked in the individual character sheet, and drag and drop a ranged weapon from the compendium, and then click on the macro for longbow (for example) and expect the number of arrows to drop by one (I've had it work before in an older game). When I had this problem before it was because I was whispering all my dice rolls to myself so as not to clog chat, but thats not the issue here. I can't think of what else to check.
RE: Chat message. Yes. Agree to it. and do it. Until you do, the script will not function - hence what is likely the ammo issue.
RE: Sandbox error.
"Sheet Worker ERROR: Unable to find valid character with ID -LMiBpXnf_8CJ4ixeITk"It does that. If I remember correctly its an internal test to see what version of character sheet that the Game is using.
When I updated, it went though fine. When I load it up now it tells me I'm running script 13.7.0 and sheet 19.1.3
In terms of what works - Long rests bring me back up to full health, and recover expended spell slots. But still no ammo or spell resource tracking. It drops in the textbox output (for ammo), but not on the sheet. The tick boxes are definitely ticked in the settings section.
Thanks for reading and giving suggestions by the way
Modnar Wylde said:
Richard B. said:
I found an error! (I just don't know what it is!)
"Sheet Worker ERROR: Unable to find valid character with ID -LMiBpXnf_8CJ4ixeITk"
Richard B. said:
I thought that the version in the github was the most recent one, so when I copy and paste that I assumed that would be fine, but I get the message in chat saying it needs updating.
For the ammo tracking I've made sure that the ammo tracking dot is ticked in the individual character sheet, and drag and drop a ranged weapon from the compendium, and then click on the macro for longbow (for example) and expect the number of arrows to drop by one (I've had it work before in an older game). When I had this problem before it was because I was whispering all my dice rolls to myself so as not to clog chat, but thats not the issue here. I can't think of what else to check.
RE: Chat message. Yes. Agree to it. and do it. Until you do, the script will not function - hence what is likely the ammo issue.
RE: Sandbox error."Sheet Worker ERROR: Unable to find valid character with ID -LMiBpXnf_8CJ4ixeITk"It does that. If I remember correctly its an internal test to see what version of character sheet that the Game is using.
Do the update.
RE: AMMO - see the update comment - and then, do the update and confirm the script is running, check the spell slots as well and Long/Short Rest.
If ANY of those are working and AMMO tracking doesn't then check to confirm you assigned the correct ammo to the weapon ( and that the ammo has available rounds/units left). If none of them do.
Your script isn't running. Try deleting the current API copy you have of the script - Copy the raw text again and repaste the code.
In general
What happens when you confirm your desire to update in the Chat window?
I find it to be working, there must be a configuration error on your workstation.
Try making a new character for it, and seeing if you have a problem with the sheet.
Richard B. do you have the ammo listed in both places it needs to be? In other words, you need to have a trackable ammo item called "bolts", and your weapon needs to have the ammo field filled in with the word "bolts", and a number that tells how many to use each time the weapon is fired. Just checking, because it is an easy step to miss. If they are filled in, make sure there are no extraneous spaces in either name.
keithcurtis said:
Richard B. do you have the ammo listed in both places it needs to be? In other words, you need to have a trackable ammo item called "bolts", and your weapon needs to have the ammo field filled in with the word "bolts", and a number that tells how many to use each time the weapon is fired. Just checking, because it is an easy step to miss. If they are filled in, make sure there are no extraneous spaces in either name.
He did the drag and drop - which populates the ammo type.
( i didn't know it did that, which is cool... but... yeah, cannot really mess that up.)
The ONLY two things I can think of are
1) Sheet corruption.
2) The ammo section error(s)
No, I get it.
I dunno with this. I tested locally - it works, so its a user/configuration error.
I'm inclined to go the whole
'Do it again. From the beginning'
or - "give me access to the game and a sheet therein."
Totally separate thing - Keith, I REALLY like seeing what you've been doing on the forums and your work to community build.
Its people like you (and Kryx, and the Aaron, and Lucian,and... and..) that make the product more of a community and service not just a VTT product.
Thanks.
Thanks. :) Those names you mention (and others) gave me a lot of help when I first started getting seriously interested in this place, so I try to pay it forward.
BTW, Just in case anyone else was following and is interested - I finally got round to looking at Luke's issue with config updating. As expected, it's a game size problem.
I'd just like to re-iterate for people for the avoidance of doubt: Roll20 does not work with hundreds of character objects in the journal, particularly with the Shaped Sheet that uses lots of attributes. Luke had the entire Monster Manual and then some in his journal. Even with a single, one-line script that just printed "Ready" when the API sandbox was loaded, it took several minutes for the API sandbox to spin up.
The bottom line here is that Roll20 was designed to scale with lots of users, but it was never designed to scale with game size. The platform appears to have some fairly fundamental limitations that prevent it from supporting big games in a performant way. This is especially true of the API server, which is, AIUI, a relatively modest piece of hardware that has to run lots of sandboxes in parallel.
Up until now, this isn't something that Roll20 have shown much interest in changing. My guess is that it would involve some major architectural changes that don't make business sense right now. If Roll20 start building bigger and bigger modules themselves for WotC this might change, but they may just find privileged ways of optimising their own content without changing things for user-generated stuff.
TL;DR: huge library games of content don't work on Roll20 and are unlikely to do so any time soon. The official Roll20 approach is: use the Compendium; if you want to make your own monster library games, you're probably going to have to split them up to avoid performance problems.
Hey Lucian,
Thanks so much for taking the time to look at my Monster Manual game! I figured it was caused the number of sheets. I'll have to take some time to break the game into smaller chunks.
I would like to second Modnar's appreciation of the Shaped Sheel communtiy! You all are doing such great work to make fellow DM'so lives easy!
-Luke
Hey getting parser errors when runing !shaped-statblock-import on the following.
AMNIZU
Medium fiend (devil), lawful evil
Armor Class 21 (natural armor)
Hit Points 202 (27d8 + 81)
Speed 30 ft., fly 40 ft.
STR 11 (+0)
DEX 13 (+1)
CON 16 (+3)
INT 20 (+S)
WIS 12 (+1)
CHA 18 (+4)
Saving Throws Dex +7, Con +9, Wis +7, Cha +10
Skills Perception +7
Damage Resistances cold; bludgeoning, piercing, and slashing
from nonmagical attacks that aren't silvered
Damage Immunities fire, poison
Condition Immunities charmed, poisoned
Senses darkvision 120 ft. , passive Perception 17
Languages Common, Infernal, telepathy 1 ,000 ft.
Challenge 18 (20,000 XP)
Magic Resistance. The amnizu has advantage on saving throws
against spells and other magical effects.
Devil's Sight. Magical darkness doesn't impede the amnizu's
darkvision.
Innate Spellcasting. The amnizu's innate spellcasting ability
is Intelligence (spell save 19, + 11 to hit with spell attacks). The
amnizu can innately cast the following spells, requiring no material
components:
At will: charm person, command
3/day each: dominate person, fireball
l/day each: dominate monster,feeblemind
ACTIONS
Multiattack. The amnizu uses Poison Mind. It also makes two
attacks: one with its whip and one with its Disruptive Touch.
Taskmaster Whip. Melee Weapon Attack: +11 to hit, reach 10 ft.,
one target. Hit: 10 (2d4 + 5) slashing damage plus 33 (6dl0)
force damage.
Disruptive Touch. Melee Spell Attack: +11 to hit, reach 5 ft. , one
target. Hit: 44 (8dl0) necrotic damage.
Poison Mind. The amnizu targets one or two creatures that it
can see within 60 feet of it. Each target must succeed on a DC
19 Wisdom saving throw or take 26 (4dl2) necrotic damage and
be blinded until the start of the amnizu's next turn .
Forgetfulness (Recharge 6). The amnizu targets one creature
it can see within 60 feet of it. That creature must succeed on
a DC 18 Intelligence saving throw or become stunned for l
minute. A stunned creature repeats the saving throw at the end
of each of its turns, ending the effect on itself on a success. If
the target is stunned for the full minute, it forgets everything it
sensed, experienced, and learned during the last 5 hours.
REACTIONS
Instinctive Charm. When a creature within 60 feet of the amnizu
makes an attack roll against it, and another creature is
within the attack's range, the attacker must make a DC 19
Wisdom saving throw. On a failed save, the attacker must
target the creature that is closest to it, not including the amnizu
or itself. If multiple creatures are closest, the attacker
chooses which one to target. If the saving throw is successful,
the attacker is immune to the amnizu's Instinctive Charm
for 24 hours.
Please help.
Shaped Scripts Error
I just checked your statblock and it works fine for me. Could you first of all make sure you are using the latest script: 13.7.0; if not please try again with the latest version.
If you are already on latest, or it still doesn't work when you upgrade, please PM me an invite to a game that contains a token with the offending statblock already pasted in by you (and tell me which token that is) and I will take a look. Hopefully I can work out where the line breaks are causing an issue and introduce some code to deal with it.
Is there a macro or a way to use the !shaped-statblock command to add new Traits and Skill/Save profs to a creature? I'm currently setting up sheets for a druid's wildshapes and manually editing each creature is a bit tedious.
Not really. It can add and subtract spells, but isn't set up for traits, etc. You could look into ChatSetAttr for that. Here is a spreadsheet and documentation to get you started. It's set up specifically for the Shaped Sheet.
EDIT: Looking at your issue more carefully, it's also possible to pull the druid token to the side and just pull the appropriate beast from the Compendium/Monster Manual. If you need to use a Wisdom save that requires a macro, just grab the druid token for that and then go back to using the beast token. Not as automatic, but MUCH simpler to set up on the fly.
I know this adds number of sheets to the game, but I create copies for the druid and then change the Int, Wis and Cha to Druid stats, I also update the CR to match their level for PB.
keithcurtis said:
Richard B. do you have the ammo listed in both places it needs to be? In other words, you need to have a trackable ammo item called "bolts", and your weapon needs to have the ammo field filled in with the word "bolts", and a number that tells how many to use each time the weapon is fired. Just checking, because it is an easy step to miss. If they are filled in, make sure there are no extraneous spaces in either name.
Apologies I've only just gotten round to checking the forums again!
I'm still having trouble with ammo and spell tracking in this game running the Tomb of Annihilation module, but I set up a game using the same scripts with the Lost Mine of Phandelver module, but getting no problems at all on that one. As far as I can tell everything is set up the same in both games, but it works in one and not the other. It's not game breaking in any way, but irritating!
Richard B. said:
keithcurtis said:
Richard B. do you have the ammo listed in both places it needs to be? In other words, you need to have a trackable ammo item called "bolts", and your weapon needs to have the ammo field filled in with the word "bolts", and a number that tells how many to use each time the weapon is fired. Just checking, because it is an easy step to miss. If they are filled in, make sure there are no extraneous spaces in either name.
Apologies I've only just gotten round to checking the forums again!
I'm still having trouble with ammo and spell tracking in this game running the Tomb of Annihilation module, but I set up a game using the same scripts with the Lost Mine of Phandelver module, but getting no problems at all on that one. As far as I can tell everything is set up the same in both games, but it works in one and not the other. It's not game breaking in any way, but irritating!
As a matter of interest, it doesn't work when I switch over to the OGL sheet either!
Jerry F. said:
I know this adds number of sheets to the game, but I create copies for the druid and then change the Int, Wis and Cha to Druid stats, I also update the CR to match their level for PB.
I just use a blank character sheet - assign token actions which refer to the Druid's sheet for mental saves/skills, spell slot usage and the rest from the wildshape.
They can then drag the beast from Compendium onto their Wildform sheet when they change forms - the token actions macros remain either way.and with shaped, the other shaped sheet macros for attacks will shift with the new form's abilties - none of the beasts, to my knowledge have benefits from mental stats for their attacks so it works out.
Ez - Pz
keithcurtis said:
Hi Richard, At this point you should probably include screen shots of all settings.
My API Output Console is now throwing this error at me (I've not seen an error before) which I can only assume is a good thing from the point of being able to diagnose things?
"5eShapedCompanion 1540799342628 ERROR : TypeError: Cannot read property 'timeoutId' of undefined\n at resolvePending (apiscript.js:6475:30)\n at eventDispatcher.registerAttributeChangeHandler (apiscript.js:6489:19)\n at handlerWrapper (apiscript.js:7319:33)\n at forEach.handler (apiscript.js:7235:82)\n at Array.forEach (native)\n at EventDispatcher.roll20.on (apiscript.js:7235:63)\n at eval (eval at <anonymous> (/home/node/d20-api-server/api.js:151:1), <anonymous>:65:16)\n at Object.publish (eval at <anonymous> (/home/node/d20-api-server/api.js:151:1), <anonymous>:70:8)\n at TrackedObj.set (/home/node/d20-api-server/api.js:1028:14)\n at updateLocalCache (/home/node/d20-api-server/api.js:1318:18)"
I've also got a handful of screenshots from the in game settings:
I appreciate people taking the time to try and fix errors and I realise I'm being quite annoying! If theres anything else you think a screenshot would be good of then please let me know.
I don't have an answer for the longbow--I can't see the edit mode, which would show the expected ammo type. You don't have any spell slots available on the bless. (Those bubbles should be filled in.)
This might be the time for Lucien or Kryx to step in and save the day.
keithcurtis said:
I don't have an answer for the longbow--I can't see the edit mode, which would show the expected ammo type. You don't have any spell slots available on the bless. (Those bubbles should be filled in.)
This might be the time for Lucien or Kryx to step in and save the day.
Actually quite the opposite on the bubbles. They fill with an X when you expend a spell slot.