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+

1488286017
Kryx
Pro
Sheet Author
API Scripter
Jim W. said: Kryx said: Jim W. said: I tested a Dragon breath weapon - recharge 5-6 When I am using the Targets Name and Targets AC options the dragon breath weapon also asks for a target even though it is not versus AC but a save.&nbsp; I can only select one target.&nbsp; I can work with this, but wondered if there was anything I was missing The number of uses is updated - great :) but how do I reset the uses - is it manually via edit sheet [which seems clumsy compared to how everything else works] or am I misisng something? Target is always used for attacks and saving throws if you have the Target Name option. There is no way to disginguish between a single target save or multiple target and this case is really only where it applies. Lucian and I talked about some kind of tie-in with the initiative tracker to roll the roll at the start of the character's turn. I'm unsure if he used that method or some other method. Best wait to see how he responds. I've noticed that the examples I found so far do not have Attack ticked, so have raised a suggestion:-&nbsp; <a href="https://github.com/symposion/roll20-shaped-scripts" rel="nofollow">https://github.com/symposion/roll20-shaped-scripts</a>... Hopefully this is simple enough to be done, unless the community feel it is a move in the wrong direction... This is not a script issue - it's a sheet issue. You have misunderstood. Target name uses target for all attacks and saving throws. Always. Saving throws often have targets and often don't. You're welcome to open a suggestion on my issue tracker, but I'm not very keen on the user manually identifying the type of saving throw or trying to parse it somehow all for a niche setting that very few people use.
Kryx said: You have misunderstood. Target name uses target for all attacks and saving throws. Always. Saving throws often have targets and often don't. You're welcome to open a suggestion on my issue tracker, but I'm not very keen on the user manually identifying the type of saving throw or trying to parse it somehow all for a niche setting that very few people use. I thought I had a suggestion that might fly, but was (rightly as it turns out) worried I was missing something.&nbsp; The AC is shown when not needed - but a small price to pay for the facilties offered by script/sheet. Saving throws that have no target?&nbsp; There will be one or more I'm sure else who is saving... anyway no hardship to click any target in AOE. I will not open a suggestion, unless and until I can come up with a suggestion that I think can be done without adding extra complication.&nbsp;
1488288337

Edited 1488288356
Lucian said: On (2) I do have the skeleton of something in place that allows you to do this, but I need to flesh it out. You can currently do !shaped-rest --type turn with a token selected, or add --character @{CHARACTER_NAME|character_id} if you want to do it in a macro (replace CHARACTER_NAME with the character name, obviously). This will recharge X/Turn powers, and currently will also reset all Recharge 5-6-type powers as well. I need to modify it to actually make the roll for each power and only recharge if that roll is high enough. I can do that today probably. Separately to that, I discussed with Kryx the idea of triggering this 'turn recharge' automatically when each character come to the head of the turn tracker. The problem with doing this is that it won't work straightforwardly if you are using API scripts like TurnMarker or TrackerJacker to work with the turn order; scripts don't get notifications of changes to the turn order if those changes are made by other scripts. Aaron has included a listener thing in TurnMarker that I could hook into to get notifications, but if people use other Turn tracking script then this functionality won't work. I'll do what I can but it will have to come with a warning... Would not putting it in token actions make more sense? If you can write the code, and add it as a token action that would be great... Would be fairly easy I would think ... to then provide example script text to include any available triggers to avoid having to do it manually at the start of each turn... Not sure if reactions are tracked, but could be included here as well. On further thought this might not work well, if you have creatures like Orcs with many tokens per char sheet - having to create a seperate character sheet for every dragon is sensible I think, but not for orcs, lol.
1488289420

Edited 1488289466
Jim W. said: Lucian said: On (2) I do have the skeleton of something in place that allows you to do this, but I need to flesh it out. You can currently do !shaped-rest --type turn with a token selected, or add --character @{CHARACTER_NAME|character_id} if you want to do it in a macro (replace CHARACTER_NAME with the character name, obviously). This will recharge X/Turn powers, and currently will also reset all Recharge 5-6-type powers as well. I need to modify it to actually make the roll for each power and only recharge if that roll is high enough. I can do that today probably. Separately to that, I discussed with Kryx the idea of triggering this 'turn recharge' automatically when each character come to the head of the turn tracker. The problem with doing this is that it won't work straightforwardly if you are using API scripts like TurnMarker or TrackerJacker to work with the turn order; scripts don't get notifications of changes to the turn order if those changes are made by other scripts. Aaron has included a listener thing in TurnMarker that I could hook into to get notifications, but if people use other Turn tracking script then this functionality won't work. I'll do what I can but it will have to come with a warning... Would not putting it in token actions make more sense? If you can write the code, and add it as a token action that would be great... Would be fairly easy I would think ... to then provide example script text to include any available triggers to avoid having to do it manually at the start of each turn... Not sure if reactions are tracked, but could be included here as well. On further thought this might not work well, if you have creatures like Orcs with many tokens per char sheet - having to create a seperate character sheet for every dragon is sensible I think, but not for orcs, lol. You can make a macro show to all player and put this into the Text slot. !shaped-rest --type ?{Rest type|Short,short|Long,long} Should work for all players and npcs.
1488289527

Edited 1488289694
@ Jim W. Also this macro works wonders. (I Do not show this to players) /w gm &{template:5e-shaped} {{title=}}{{ Advantage Tracker [Long](!shaped-abilities --advantageTracker ) [Short](!shaped-abilities --TrackerShort ) [Shortest](!shaped-abilities --advantageTrackerShortest ) [Shortest](!shaped-abilities --advantageTrackerQuery ) Attacks [Token Actions](!shaped-abilities --attacks ) [In Chat](!shaped-abilities --attacksMacro ) Traits [Token Actions](!shaped-abilities --traits ) [In Chat](!shaped-abilities --traitsMacro ) Actions [Token Actions](!shaped-abilities --actions ) [In Chat](!shaped-abilities --actionsMacro ) Reactions [Token Actions](!shaped-abilities --reactions ) [In Chat](!shaped-abilities --reactionsMacro ) Legendary Actions [Token Actions](!shaped-abilities --legendaryActions ) [In Chat](!shaped-abilities --legendaryactionsMacro ) Ability Checks [In Chat](!shaped-abilities --abilityChecks ) [Query](!shaped-abilities --abilityChecksQuery ) Saves [In Chat](!shaped-abilities --saves ) [Query](!shaped-abilities --savesQuery ) Misc [Lair Actions](!shaped-abilities --lairActions ) [Regional Effects](!shaped-abilities --regionalEffects ) [Initiative](!shaped-abilities --initiative ) [Statblock](!shaped-abilities --statblock ) [Rests](!shaped-abilities --rests ) [Delete All Abilities](!shaped-abilities --DELETE ) }}
Salicar said: You can make a macro show to all player and put this into the Text slot. !shaped-rest --type ?{Rest type|Short,short|Long,long} Should work for all players and npcs. Sorry but we were talking about recharge mainly, not rests.&nbsp;
Jim W. said: Salicar said: You can make a macro show to all player and put this into the Text slot. !shaped-rest --type ?{Rest type|Short,short|Long,long} Should work for all players and npcs. Sorry but we were talking about recharge mainly, not rests.&nbsp; Ah sorry.
1488290366

Edited 1488290454
Lucian
Pro
API Scripter
Jim W. said: Would not putting it in token actions make more sense? If you can write the code, and add it as a token action that would be great... Would be fairly easy I would think ... to then provide example script text to include any available triggers to avoid having to do it manually at the start of each turn... I'm not 100% sure I've understood what you mean by all of this.&nbsp; I can certainly add a turn recharge token action to !shaped-abilities and the default token action options for new character, that just runs !shaped-rest --type turn. The stuff about example script text doesn't really make any sense to me though. I don't think it's especially realistic to expect people writing generic turn tracker scripts to explicitly call something on the 5e Shaped Companion, if that's what you're suggesting; nor is it realistic to expect end users to customise said scripts because asking end users to edit Javascript is a recipe for the kind of support requests I'm not interested in dealing with. The correct way of doing this is for authors of turn tracker scripts to include a listener framework as Aaron did for TurnMarker. In fact, the really correct way is for Roll20 to allow scripts to elect to make certain changes "non-silent" for this purpose, but I suspect that isn't going to happen any time soon. Not sure if reactions are tracked, but could be included here as well. On further thought this might not work well, if you have creatures like Orcs with many tokens per char sheet - having to create a seperate character sheet for every dragon is sensible I think, but not for orcs, lol. Yes, this is a fundamental error in the Roll20 data model, I'm afraid. The original design was based on the idea that every token linked to a character was just a different representation of the same individual - which is exactly what you want for a PC moving between maps. Unfortunately, for most monsters, you want each instance to be a separate individual,&nbsp; at which point you need to store data about it at the token level. This was fine when character sheets were very simple and the only thing people really bothered tracking at a token level was HP. But now character sheets have become mini-applications in their own right with complex logic and a data model; for this functionality to work properly for mooks, it needs to be possible to have either a complete copy or an overriding "shadow" of the monsters attributes at the token level, so that edits made to that individual apply only to it, rather than all instances of the same monster. Sadly, I'd guess this would involve a massive and extremely disruptive rewrite of some pretty fundamental parts of the Roll20 system, so I don't see if happening any time soon either :-( A possible alternative would be to have a script that automatically created duplicate characters whenever you dragged a mook character to the tabletop, but this would rapidly get extremely confusing and would also result in bloated, slow campaigns.
Salicar said: Jim W. said: Salicar said: You can make a macro show to all player and put this into the Text slot. !shaped-rest --type ?{Rest type|Short,short|Long,long} Should work for all players and npcs. Sorry but we were talking about recharge mainly, not rests.&nbsp; Ah sorry. No worries, your script though looks very useful.&nbsp; Added it to my game, and trying to work out why my hin sherrif's deputy has no attacks when he clearly should!
1488290547
Lucian
Pro
API Scripter
Jim W. said: No worries, your script though looks very useful.&nbsp; Added it to my game, and trying to work out why my hin sherrif's deputy has no attacks when he clearly should! Remember attacks != actions. NPCs don't have attacks, they have actions.
Mark W. said: There's a lot of capability built into this script. &nbsp;I'm only just now scratching the surface. &nbsp;Cheers! Yeah, i am starting to figure that out. Thanks!
Lucian said: A possible alternative would be to have a script that automatically created duplicate characters whenever you dragged a mook character to the tabletop, but this would rapidly get extremely confusing and would also result in bloated, slow campaigns. If I was to ask for a way to handle this it would be to add Status Markers to the token from the script.&nbsp;
Lucian said: Jim W. said: No worries, your script though looks very useful.&nbsp; Added it to my game, and trying to work out why my hin sherrif's deputy has no attacks when he clearly should! Remember attacks != actions. NPCs don't have attacks, they have actions. Thanks Lucian, had not even had a chance to look at it and you have an answer... which worked!
Lucian said: Jim W. said: Would not putting it in token actions make more sense? If you can write the code, and add it as a token action that would be great... Would be fairly easy I would think ... to then provide example script text to include any available triggers to avoid having to do it manually at the start of each turn... I'm not 100% sure I've understood what you mean by all of this.&nbsp; I can certainly add a turn recharge token action to !shaped-abilities and the default token action options for new character, that just runs !shaped-rest --type turn. Will this eventually roll for recharge?&nbsp; If so then bril - I was thinking they were different to rests but I guess handling them as rests makes sense from a logical point of view if not "thematically".
1488291304
Lucian
Pro
API Scripter
Jim W. said: Lucian said: A possible alternative would be to have a script that automatically created duplicate characters whenever you dragged a mook character to the tabletop, but this would rapidly get extremely confusing and would also result in bloated, slow campaigns. If I was to ask for a way to handle this it would be to add Status Markers to the token from the script.&nbsp; This is all very well, but it doesn't help the sheet behave differently because it doesn't have access to any information about the token. If you mark a monster as having disadvantage using a status marker, none of the sheet rolls will respect that until you change it on the sheet... which then changes it for every instance of that monster. You can give yourself reminders/prompts using status markers, but it's really very far from a proper solution. This is only going to get worse as the sheet gets more intelligent. If and when, e.g. the sheet implements conditions such that applying a condition actually modifies things like speed, disadvantage on certain rolls etc, this is going to be pretty useless for monsters.&nbsp; Aaron's TokenMod script (available through 1-click) is your friend
1488291508
Lucian
Pro
API Scripter
Jim W. said: Will this eventually roll for recharge?&nbsp; If so then bril - I was thinking they were different to rests but I guess handling them as rests makes sense from a logical point of view if not "thematically". That's the idea, was going to try and implement later today. Yeah, lumping them with rests is slightly lazy but it makes sense for my code because they do the same thing basically. I'll make an alias called !shaped-recharge to make it clearer to people.
I'm in the same boat with 7.0.0 not functioning. Script 7.0.0, sheet 10.0.1 Upon API startup, I I get the error reported previously in this thread about imgsrc needing to be in my library. Configuration version is detected as 4 Entering the game and trying !shaped-config, I get: "5eShapedCompanion 1488291240298 ERROR : Error: Error: Unrecognised command !shaped-config" Same for rests. I'm unsure where I'd be presented with an upgrade option (config version 4.1?), I haven't seen one in an obvious place.
1488291619
Lucian
Pro
API Scripter
Thorsten B. said: I'm in the same boat with 7.0.0 not functioning. Script 7.0.0, sheet 10.0.1 Upon API startup, I I get the error reported previously in this thread about imgsrc needing to be in my library. Configuration version is detected as 4 Entering the game and trying !shaped-config, I get: "5eShapedCompanion 1488291240298 ERROR : Error: Error: Unrecognised command !shaped-config" Same for rests. I'm unsure where I'd be presented with an upgrade option (config version 4.1?), I haven't seen one in an obvious place. Hi Thorsten, Are you the GM of the game?
1488291773
Lucian
Pro
API Scripter
Lucian said: Hi Thorsten, Are you the GM of the game? If you are, restart the API sandbox. When you do, you should see a message in the chat window giving you the chance to update the config. Until you do, none of the commands will work.
Lucian said: Jim W. said: Will this eventually roll for recharge?&nbsp; If so then bril - I was thinking they were different to rests but I guess handling them as rests makes sense from a logical point of view if not "thematically". That's the idea, was going to try and implement later today. Yeah, lumping them with rests is slightly lazy but it makes sense for my code because they do the same thing basically. I'll make an alias called !shaped-recharge to make it clearer to people. Until I distracted you eh?&nbsp; opps sorry.. and thanks!
1488292344

Edited 1488292717
Thorsten
KS Backer
I am the GM, I left the game, restarted the sandbox, entered the game. No message in chat that I can see. Is there an interaction where the game has to be open while changing the API? I'll give that a try. And that worked. So the issue was that I didn't see the chat notice when the API was updated while the game was shut down (no one in it, neither player nor GM), even after re-entering the game. A possible solution could be to trigger that upgrade chat notice whenever shaped is invoked. Instead of reacting to !shaped-command with "unrecognized", have that trigger the upgrade prompt. Would that work? any idea on what the error re imgsrc is about? "5eShapedCompanion 1488292538926 INFO : -=&gt; ShapedScripts v7.0.0 &lt;=-" "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."
Thorsten B. said: I am the GM, I left the game, restarted the sandbox, entered the game. No message in chat that I can see. Is there an interaction where the game has to be open while changing the API? I'll give that a try. And that worked. So the issue was that I didn't see the chat notice when the API was updated while the game was shut down (no one in it, neither player nor GM), even after re-entering the game.ou use an image that is in your Roll20 Library. See the API documentation for more info." Oddly different to my experience.&nbsp; I always update with game closed, and [hopefully] no one in it.&nbsp; The message came up when I entered the game - although it was very quckly after I had made the changes... in another tab.&nbsp; Using Firefox not sure if that makes any difference.
Jim W. said: Oddly different to my experience.&nbsp; I always update with game closed, and [hopefully] no one in it.&nbsp; The message came up when I entered the game - although it was very quckly after I had made the changes... in another tab.&nbsp; Using Firefox not sure if that makes any difference. In my case it was the same tab, and Chrome in Incognito Mode (because Lastpass). It could be there's a race condition here somewhere.
1488294168
Lucian
Pro
API Scripter
Next version will have a default command handler in place when upgrade hasn't been done: all commands will prompt for upgrade instead of just saying 'unknown command'. I knew I ought to have done this when I wrote the code originally, but I was being lazy. Sigh.
Thanks @Lucian! It'll pay off, less people asking for help in your thread. There'll still be plenty of them, just -- a few less. :)
Thorsten B. said: Jim W. said: Oddly different to my experience.&nbsp; I always update with game closed, and [hopefully] no one in it.&nbsp; The message came up when I entered the game - although it was very quckly after I had made the changes... in another tab.&nbsp; Using Firefox not sure if that makes any difference. In my case it was the same tab, and Chrome in Incognito Mode (because Lastpass). It could be there's a race condition here somewhere. OK so still Firefox - but same tab and game not running.... same issue - no convert yes/no box.&nbsp; Not even in chat archive.&nbsp; I see Lucian has upgrade for prompt coming in from any command use which means no need to raise an issue.
Is there a guide on how to create the JSON scripts to import monsters and spells? I haven't been able to find even one of these supposed fan-created docs as a reference guide through googling. There's some homebrew and third party stuff I want to try importing.
1488296291
Zym
Sheet Author
Hi. I am pretty sure this is not broken its just me who needs some help. I have a stat block I need Legendary and Lair Actions to populate via Shaped Companion. I think I am missing a space or punctuation mark somewhere. The Stat Block : Omou Medium humanoid (mongrelfolk), neutral evil Armor Class 17 Hit Points 136 (21d8 + 42) Speed 40 ft. STR 13 (+1) DEX 18 (+4) CON 15 (+2) INT 16 (+3) WIS 17 (+3) CHA 12 (+1) Saving Throws Str +4, Dex +7, Int +6, Wis +6 Skills Arcana +6, Insight +6, Perception +6, Stealth +7 Damage Resistance psychic Condition Immunities charmed, frightened Senses passive Perception 16 Languages Common Challenge 10 (5,900 XP) Darkness Breeds Darkness. Omou has advantage on ability checks and attack rolls against characters with the Touched by the Mists story award. Similarly, such characters have disadvantage on any saving throw made against Omou. Innate Spellcasting (Psionics). Omou's spellcasting ability is Wisdom (spell save DC 15, +7 to hit with spell attacks). He can innately cast the following spells, requiring no components: At will: mage hand (the hand is invisible) 3/day each: featherfall, jump, see invisibility, shield 1/day each: phantasmal killer, plane shift Legendary Resistance (3/day). If Omou fails a saving throw, he succeeds on it instead. Mimicry. The mongrelfolk can mimic any sounds it has heard, including voices. A creature that hears the sounds can tell they are imitations with a successful DC 12 Wisdom (Insight) check. Obsessive Punishment. If Omou deals damage to a target with the Touched by the Mists story award, Omou deals an additional 1d6 damage for each dark gift the character possesses, to a maximum of 4d6 additional damage. Probing Telepathy. If a creature communicates telepathically with Omou, he learns the creature's greatest desires if he can see the creature. If the target has the Touched by the Mists story award, Omou learns them without the need to communicate telepathically. Psychic Defense. While Omou is wearing no armor and wielding no shield, its AC includes its Wisdom modifier. Standing Leap. The mongrelfolk's long jump is up to 20 feet and its high jump is up to 10 feet, with or without a running start. Actions Multiattack. Omou makes three melee attacks. Unarmed Strike. Melee Weapon Attack: +8 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) bludgeoning, piercing, or slashing damage (fists, beak, or claws) plus 13 (3d8) psychic damage. This is a magic weapon attack. Telekinetic Ray. If the target is a creature, it must succeed on a DC 16 Strength saving throw or Omou moves it up to 30 feet in any direction. It is restrained by the ray's telekinetic grip until the start of Omou's next turn or until Omou is incapacitated. If the target is an object weighing 300 pounds or less that isn't being worn or carried, it is moved up to 30 feet in any direction. Omou can also exert fine control on objects with this ray, such as manipulating a simple tool or opening a door or a container. Mind Blast (Recharge 5-6). Omou magically emits psychic energy in a 60-foot cone. Each creature in that area must succeed on a DC 15 Intelligence saving throw or take 22 (4d8 + 4) psychic damage and be stunned for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. Legendary Actions. Omou can take 3 Legendary Actions, choosing from the options below. Only one legendary action option can be used at a time, and only at the end of another creature's turn. Omou regains spent Legendary Actions at the start of her turn. Omou can't use the same legendary action twice in consecutive rounds. Keen Eyes. Omou makes a Wisdom (Perception) check. Punishing Dash. Omou moves his speed and makes an unarmed strike. This movement does not provoke opportunity attacks. Endless Battery (Costs 2 actions). Omou makes an unarmed strike against every creature within 5 feet of him. Psychic Drain (Costs 3 actions). Any creature stunned by Omou's mind blast takes 10 (3d6) psychic damage. Omou regains hit points equal to the damage the creatures take. Lair Actions. On initiative count 20 (losing initiative ties), Omou takes a lair action to cause one of the following effects; Omou can't use the same effect two rounds in a row: All of the paintings in the room shriek in anger. Any creature except Omou that can hear the paintings must succeed on a DC 15 Wisdom saving throw or be frightened. Part of the ceiling collapses above one creature that Omou can see within 120 feet of him. The creature must succeed on a DC 15 Dexterity saving throw or take 10 (3d6) bludgeoning damage and be knocked prone and buried. The buried target is restrained and unable to breathe or stand up. A creature can take an action to make a DC 10 Strength check, ending the buried state on a success. A strong wind emanates from the huge carving of Esmae and blows around Omou. Each creature within 60 feet of Omou must succeed on a DC 15 Strength saving throw or be pushed 15 feet away from Omou and knocked prone. Gases and vapors are dispersed by the wind, and unprotected flames are extinguished. Protected flames, such as lanterns, have a 50 percent chance of being extinguished. I thought this was correct. I removed the 'period' punctuation mark after Lair Actions, etc. But this didn't help.
1488297753
Lucian
Pro
API Scripter
@Alexander You're very close :-) Remove the periods after the titles and then put an asterisk and a space in front of each lair action and it will work.
1488298193

Edited 1488299175
Lucian said: @Alexander You're very close :-) Remove the periods after the titles and then put an asterisk and a space in front of each lair action and it will work. I was playing with this as I have never tried this before, getting to where Alexander had got when you posted.&nbsp; I did the fixes you suggest above and get:- Field legendaryActions should have appeared 1 more times So I added one more * and space and the text none - same error. EDIT: Now, not sure how, making progress lol
1488299171
Lucian
Pro
API Scripter
Jim W. said: Lucian said: @Alexander You're very close :-) Remove the periods after the titles and then put an asterisk and a space in front of each lair action and it will work. I was playing with this as I have never tried this before, getting to where Alexander had got when you posted.&nbsp; I did the fixes you suggest above and get:- Field legendaryActions should have appeared 1 more times So I added one more * and space and the text none - same error. Sorry, I should have been clearer. Remove the periods *only* after the titles 'Lair Actions' and 'Legendary Actions'. The periods after the Action/Trait names are significant and must be retained.
Lucian said: @Alexander You're very close :-) Remove the periods after the titles and then put an asterisk and a space in front of each lair action and it will work. This works: Omou Medium humanoid (mongrelfolk), neutral evil Armor Class 17 Hit Points 136 (21d8 + 42) Speed 40 ft. STR 13 (+1) DEX 18 (+4) CON 15 (+2) INT 16 (+3) WIS 17 (+3) CHA 12 (+1) Saving Throws Str +4, Dex +7, Int +6, Wis +6 Skills Arcana +6, Insight +6, Perception +6, Stealth +7 Damage Resistance psychic Condition Immunities charmed, frightened Senses passive Perception 16 Languages Common Challenge 10 (5,900 XP) Darkness Breeds Darkness. Omou has advantage on ability checks and attack rolls against characters with the Touched by the Mists story award. Similarly, such characters have disadvantage on any saving throw made against Omou. Innate Spellcasting (Psionics). Omou's spellcasting ability is Wisdom (spell save DC 15, +7 to hit with spell attacks). He can innately cast the following spells, requiring no components: At will: mage hand (the hand is invisible) 3/day each: featherfall, jump, see invisibility, shield 1/day each: phantasmal killer, plane shift Legendary Resistance (3/day). If Omou fails a saving throw, he succeeds on it instead. Mimicry. The mongrelfolk can mimic any sounds it has heard, including voices. A creature that hears the sounds can tell they are imitations with a successful DC 12 Wisdom (Insight) check. Obsessive Punishment. If Omou deals damage to a target with the Touched by the Mists story award, Omou deals an additional 1d6 damage for each dark gift the character possesses, to a maximum of 4d6 additional damage. Probing Telepathy. If a creature communicates telepathically with Omou, he learns the creature's greatest desires if he can see the creature. If the target has the Touched by the Mists story award, Omou learns them without the need to communicate telepathically. Psychic Defense. While Omou is wearing no armor and wielding no shield, its AC includes its Wisdom modifier. Standing Leap. The mongrelfolk's long jump is up to 20 feet and its high jump is up to 10 feet, with or without a running start. Actions Multiattack. Omou makes three melee attacks. Unarmed Strike. Melee Weapon Attack: +8 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) bludgeoning, piercing, or slashing damage (fists, beak, or claws) plus 13 (3d8) psychic damage. This is a magic weapon attack. Telekinetic Ray. If the target is a creature, it must succeed on a DC 16 Strength saving throw or Omou moves it up to 30 feet in any direction. It is restrained by the ray's telekinetic grip until the start of Omou's next turn or until Omou is incapacitated. If the target is an object weighing 300 pounds or less that isn't being worn or carried, it is moved up to 30 feet in any direction. Omou can also exert fine control on objects with this ray, such as manipulating a simple tool or opening a door or a container. Mind Blast (Recharge 5-6). Omou magically emits psychic energy in a 60-foot cone. Each creature in that area must succeed on a DC 15 Intelligence saving throw or take 22 (4d8 + 4) psychic damage and be stunned for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. Legendary Actions Omou can take 3 Legendary Actions, choosing from the options below. Only one legendary action option can be used at a time, and only at the end of another creature's turn. Omou regains spent Legendary Actions at the start of her turn. Omou can't use the same legendary action twice in consecutive rounds. * Keen Eyes. Omou makes a Wisdom (Perception) check. Punishing Dash. Omou moves his speed and makes an unarmed strike. This movement does not provoke opportunity attacks. Endless Battery (Costs 2 actions). Omou makes an unarmed strike against every creature within 5 feet of him. Psychic Drain (Costs 3 actions). Any creature stunned by Omou's mind blast takes 10 (3d6) psychic damage. Omou regains hit points equal to the damage the creatures take. Lair Actions On initiative count 20 (losing initiative ties), Omou takes a lair action to cause one of the following effects; Omou can't use the same effect two rounds in a row: * All of the paintings in the room shriek in anger. Any creature except Omou that can hear the paintings must succeed on a DC 15 Wisdom saving throw or be frightened. * Part of the ceiling collapses above one creature that Omou can see within 120 feet of him. The creature must succeed on a DC 15 Dexterity saving throw or take 10 (3d6) bludgeoning damage and be knocked prone and buried. The buried target is restrained and unable to breathe or stand up. A creature can take an action to make a DC 10 Strength check, ending the buried state on a success. * A strong wind emanates from the huge carving of Esmae and blows around Omou. Each creature within 60 feet of Omou must succeed on a DC 15 Strength saving throw or be pushed 15 feet away from Omou and knocked prone. Gases and vapors are dispersed by the wind, and unprotected flames are extinguished. Protected flames, such as lanterns, have a 50 percent chance of being extinguished.
1488302496
Zym
Sheet Author
Cheers and Cheers again ! Cookies all around. Now I know for sure! :-)
1488325616
Lucian
Pro
API Scripter
I have a question about how people use the sheet output options. Does anyone play with PCs whispering sheet output to the GM? The reason I ask is because I recently changed a bunch of things like the Uses Police, HD restore etc. These used to output publicly, but now, if the original message that tiggered them was whispered, they whisper as well. The problem is that the sheet does /w GM for all the whispers. This is fine because the sheet is triggered by a player, so the whisper will be seen by both the GM and the sending player (which will be the same person in the case of NPCs/monsters). When the script whispers, however, it's only seen by the target of the whisper. Now, to me, it seems like this doesn't matter a whole lot, because I can't imagine that many people are playing with PCs whispering output to the GM... that would be kind of odd. What do other people think? If it is a problem there are two solutions I can think of. I could do two whispers, one to the GM and one to the original player (assuming that they're different). Or I could change it to whisper to the affected characters, and then if the GM needs to see PCs whispers in a game that works like this, he just needs to add himself to the controlled by for those characters.
The only experience with hidden rolls was when we wanted to hide ability checks. That is when somebody makes ability check the result should be visible to GM and player who triggered it (and optionally sometimes only to GM). And that was only for ability checks, other rolls were supposed to be visible for all. There was no ready to go solution that would work because the ony option in the sheet hides rolls with CSS. I ended up making a little script that wispers the result to the person who rolled and have GM reveal hidden rolls in his browser, but it was mostly incovenient and we decided to just show results. It would be nice to rework "Hide Info" section of the sheet to work with wispers but I'm not sure how hard it would be.
Just started using the Companion script and...wow, this thing does a lot. Like, a whole lot. &nbsp;Its pretty damn amazing. &nbsp;I am getting a kick out of monser import bit everytime I use it. &nbsp;So, good on ya, and thank you very much for the huge amount of work you have put into it. &nbsp;
1488329110

Edited 1488329576
Lucian said: I have a question about how people use the sheet output options. I generally prefer rolls that involve players to be known to the player.&nbsp; In some cases it is good to hide the info from other players though.&nbsp; In very few cases would I hide it from the player concerned - although I know GMs sometimes do this for any rogue-like skill so, for example, they do not know if there was no trap, or if the trap was not found! I have not quite processed what the scripts output is though.&nbsp; The uses police message?&nbsp; The HD result - if this is added to HP automatically then no worries, else it would be a pain - and I'd prefer it not whispered in that case.&nbsp; [Actually I don't see much cause to whisper Hit Dice except for NPCs I control....].&nbsp; Does it include rolls made from the token, or only message that are generated subsequently by triggering events - of which I can think of almost none? Edit: can think of: The police message thing Rests kicking off rolls? Multiattack? Extra damage if done as a macro? What am I missing? I guess the way to find out is to play with it... see how it plays out in a game.&nbsp; Edit 2: I'd say not to stress over it.&nbsp; Make and release the change and we will adapt.&nbsp; Then we as a community can suggest if a solution is needed, and discuss what it might be!
I only have PCs whisper Death Saves and only for the tension it creates. For NPCs I roll behind the screen so everything is hidden, easy-peasy. I thought about PCs whispering ability checks and saves and stuff but it seems to me in the realm of mitigating meta-gaming, which is a player/social issue. And I may be lucky my players generally don't meta-game (lest they feel the brutal wrath of the DM). I use the latter option, make myself a 'controlled by' &nbsp;for PCs.&nbsp;
1488356983
Lucian
Pro
API Scripter
So, to clarify, there are a few different classes of output for the script: Results of GM-only script commands, like !shaped-import-monster. Any output is whispered to the GM Results of commands not-limited to GM, such as !shaped-rest or !shaped-import-spell. Currently, these are whispered to the player that issued them. In the case of !shaped-rest, it could be argued that they should also be shown to the GM. Unprompted script messages - startup errors etc. These are always whispered to GM. Messages that result from changes to attributes/tokens. Currently these are the advantage tracker announcing changes to Roll settings - which has it's own settings in !shaped-config and can either announce publicly or just to the GM; and the HP roller, which always whispers to GM Messages that result from actions taken in response to roll template output from the sheet. When you cast a spell, roll a death save, roll HD, use a trait, etc, etc, the script reads the chat message that results from this, and takes some action, like decrementing spell slots. Sometimes, the script needs to output a message as a result, such as telling you you have no spell slots left.&nbsp; At the moment, the script checks to see if the original message that triggered it was a whisper (which will be determined by sheet settings). If it was, then the script whispers any messages it might have to the player who did the original roll; otherwise it sends messages publicly.&nbsp; After a certain amount of chewing this over, I've decided that I'm going to change 2 and 5 (when in whisper mode). Instead of whispering to the issuing player, they will now whisper to the GM, and then, if the player that issued the original command/roll was not a GM, they will also whisper to that player. This produces the closest behaviour to the sheet whisper functionality and is relatively simple to implement. It's not as helpful as it could be for characters controlled by several players, but then nor is the sheet, so I don't see this as a serious downside; putting in something that worked out who to whisper to based on inferring which characters are affected and checking controlled by and all that will be quite complicated for what seems like an unusual edge case.
1488357656
Jakob
Sheet Author
API Scripter
Wow, !shaped-update-character --all alone is a game changer. Very nice work, Lucian! I also think that your decision about whispers is a wise change. Not everyone needs to see the trait police.
1488366656
Lucian
Pro
API Scripter
7.1.0 (2017-03-01) Bug Fixes config: All commands warn when config is not upgraded ( 27384c1 ), closes #370 import: Ensure saves/skills always include PB ( 8e53615 ), closes #366 output: Ensure GM sees whispered output as well ( 85009cb ) Features output: Whisper results if original command/trigger was whispered ( 12eb86c ), closes #367 rests: Implement recharge 5-6 style recharges ( 46bb64b ), closes #374 There are actually some quite big changes under the covers in this release - so I'd advise testing with a test game first. I'd also appreciate it if people who use whispering a lot could try it with their players to make sure it "feels right" the way I've changed it. Kevin, if you could retest your monster imports that were getting the wrong save modifiers, that would be helpful. I've made a change that I hope will help, but, to be honest, unless there's something very broken on the Roll20 end, I'm struggling to understand how you got the behaviour you saw. @Jim W. Turn-based recharge should now work. This feature is quite fragile and potentially relies on interactions with other scripts, so I'd expect there to be problems with it initially. Testing would be appreciated! When the turn tracker is open, advancing the turn order should trigger a "Turn Recharge" for the character that moves to the head of the initiative order. If this is a monster with Recharge X-6 type powers, it will automatically roll a d6 for each power (using API rolls, so no 3d dice) and tell you whether or not the power was recharged, and what the passing/failing roll was. Things like dragons are not ideal in that the Recharge is listed on a "dummy action" that doesn't actually do anything, but is a heading for all of the other breath weapons. I don't think there's much Kryx and I can do about this within the current Roll20 framework. You'll have to click the "Breath Weapons" action first, and then click onto the actual one you want each time. Clicking the "Breath Weapons" action will warn you if it isn't recharged and decrement the uses if it is.
Lucian - I tested with 10.1.0 and 7.1.0. &nbsp;The issue is resolved for saving throws, strangely though the problem still occurs with skills. &nbsp;Unfortunately I am leaving for a business trip for a couple of days. &nbsp;I will try to dig into this a bit more over the weekend. &nbsp;The behavior is quite reproducible in my testing campaign though (maybe size of the campaign is a factor, as I have 127 character journals).
Lucian said: @Jim W. Turn-based recharge should now work. This feature is quite fragile and potentially relies on interactions with other scripts, so I'd expect there to be problems with it initially. I will do some over the next day or so.
Is there a option to set all npc's at the same time to hide freetext and content?
1488406365
Lucian
Pro
API Scripter
Salicar said: Is there a option to set all npc's at the same time to hide freetext and content? Sure. Set up the defaults you want for your npcs in !shaped-config. Drag them to the tabletop, select all and do !shaped-apply-defaults. I guess it would be easy if there was a !shaped-apply-defaults --all NPC ... but there isn't at the moment :-)
1488406714
Jakob
Sheet Author
API Scripter
Easier way, without dragging, would be: 1.Install ChatSetattr 2. !setattr --hide_content|{{hide_content=1}} --hide_freetext|{{hide_freetext=1}} --allgm
1488407094
Lucian
Pro
API Scripter
Jakob said: Easier way, without dragging, would be: 1.Install ChatSetattr 2. !setattr --hide_content|{{hide_content=1}} --hide_freetext|{{hide_freetext=1}} --allgm Oh jolly good, someone else has written it already, I don't need to add it the script. That's a much better system :-) Lucian
Jakob said: Easier way, without dragging, would be: 1.Install ChatSetattr 2. !setattr --hide_content|{{hide_content=1}} --hide_freetext|{{hide_freetext=1}} --allgm That's cool!&nbsp; How did you know what attributes to set to get that result?&nbsp; I want to do the same thing to set all my NPCs settings to "Automatically revert (dis)advantage," "automatically expend spell resources," and "Character name on all roll templates."&nbsp; Some of them were created with these settings enabled, and some were disabled.&nbsp; I looked on the attributes and abilities tab, but couldn't find attributes that corresponded to these settings.&nbsp; Is this something that ChatSetattr would do, or do I need to drag and apply defaults?
1488442487
Jakob
Sheet Author
API Scripter
Right click the checkbox in question and select "Inspect". In the html on the side, the corresponding input will be selected. It has a name property (e.g. name="attr_hide_content") and a value property (e.g. value="{{hide_content=1}}"). That's where you get the attribute names from (name, minus the "attr_" prefix), as well as the value to set the attribute to (0 for unchecked, or whatever is in the value field for checked).
Ok, so taking the auto-revert advantage for example, I see the properties in question are: name="attr_auto_revert_advantage" value="1" (that's for when it's checked) So then, following your above example, would the api command be: !setattr --auto_revert_advantage|{{auto_revert_advantage=1}} --allgm Yes?