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

Player checking party hp

Using the standard 5e character sheets. As the DM I have a macros that pulls up the current and max health of the entire party in one click. I want to share that with my party healer. I'm over the healer constantly asking everyone their HP, and this character is a kalashtar who could use her telepathic ability to determine this anyway. It seems like this macros doesn't work for a player, perhaps because they don't have the same permissions as the DM. So I'm looking for a fix.
Why not have the characters' HP shown on their tokens? It can be tied directly to the character sheets so as the HP changes on one (the token or the sheet) it will change on the other. You'd have to go into the advanced token settings to make sure the HP bar is visible to Everyone, as well as the Text of the Bar, so the healer (and the entire party) will be able to see everyone's HP. You'd also be able to see their HP yourself and won't need to rely on a macro. You can also set up the enemies' tokens for their HP to show, but obviously don't set them to be seen by Everybody so the players don't see the enemies' health, only you. Also, don't tie the an NPC's health to their sheet unless they are unique, otherwise every token based on the same sheet will use the same health pool. The best benefit of tracking HP on the tokens is you don't need to math when the target is hurt or healed. Just click on the token, click on the circle representing their current health and type -X for taking damage or +X for being healed.
1599010411
Oosh
Sheet Author
API Scripter
The only way to get this to work for a player (without granting them all permissions on each others' characters, which is a bad idea) is to use a {target} call, and they have to click the tokens. It's a pain to use, since you have to hard-code the number of target clicks, making the macro very clunky if the number of characters changes. Or you can just make it a single-click macro. Do you want your players aware of this functionality though? Nothing is stopping them from using it on monster tokens. &{template:default}{{name=HP Check}}{{@{target|t1|token_name}=**@{target|t1|hp}/@{target|t1|hp|max} HP**}} As Dakota said, just setting their HP to be visible to everyone is the best solution.
1599012889
GiGs
Pro
Sheet Author
API Scripter
If you can use a macro, but your players cant, it's likely a permission issue in the macro. Each macro you create can have permissions set, just like character sheets. Open the macro to edit it, and then scroll down - the permissions option might be off the bottom of the screen.
GiGs, its not the permission at the bottom of the macros. the player has permission, so the macros button is there for him. It just comes back with "No attribute was found for...." for each character. Dakota, I'm letting everyone see the health bars without hard numbers as they could tell their friend is looking fairly beat up. However, I only want to let the kalashtar to have access to the exact numbers. It wouldn't be a big deal except there is at least one spell that requires exact hp number knowledge to know how much below 50% each character is. I am running the monster tokens exactly how you said. Oosh, you macros is actually a really cool, but unfortunately it does allow the player to at least click on a monster and determine its average max health.  Weirdly enough, I think the solution is just giving her permissions on all the other character's sheets. Obviously not good in many groups, but we're all good friends. I'll just drop the others in different folder she never has to open.  Thanks for all the quick and helpful responses. 
1599017801

Edited 1599018328
Oosh
Sheet Author
API Scripter
Osiris said: Weirdly enough, I think the solution is just giving her permissions on all the other character's sheets. Obviously not good in many groups, but we're all good friends. I'll just drop the others in different folder she never has to open.  Bear in mind this will give her hive-mind vision on the map, and she will see any /gmrolls from or /whispers to every character. If she's clicking other people's tokens to check the HP, there's plenty of potential for moving the wrong token or taking HP off the wrong one, too. Here's another option, the above macro modified so it returns zeroes on an NPC: &{template:default}{{name=HP Check}}{{@{target|t1|token_name}=**[[[[abs(@{target|t1|npc}-1)*@{target|t1|hp}]]]]/[[[[abs(@{target|t1|npc}-1)*@{target|t1|hp|max}]]]] HP**}}
1599058598

Edited 1599058636
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
You could also just hard code a "report" macro, assuming the party complement doesn't change too often: /w gm &{template:default} {{name=Health report}} {{Demona= @{Demona|hp} / @{Demona|hp|max}}}{{Kurtak=@{Kurtak|hp} / @{Kurtak|hp|max}}}{{Draenoq= @{Draenoq|hp} / @{Draenoq|hp|max}}}{{Kestrel=@{Kestrel|hp} / @{Kestrel|hp|max}}} Replace the names above with the names in the party, of course. You might also want to change the whisper so that it whispers to the player running the macro, as well. You could go a step further and figure percentages if you like.
Wow. I didn't even think about the vision issue with giving the player all those permissions.  Oosh, that works. She may have to check each player separately, but still better than asking everyone. Keith, I was using something very similar to that. (Probably got it from you in another post.) But it only works for the GM, since players don't have access to other players info without full permission.  Thanks again.
1599155843
The Aaron
Roll20 Production Team
API Scripter
Osiris said: Keith, I was using something very similar to that. (Probably got it from you in another post.) But it only works for the GM, since players don't have access to other players info without full permission.  Permissions only affect access to the journal contents, they do not prevent direct queries against attributes on characters.  If you know the name of any character in the journal, you can output the contents of any attribute you know the name of.
1599156464

Edited 1599156741
Kraynic
Pro
Sheet Author
The Aaron said: Osiris said: Keith, I was using something very similar to that. (Probably got it from you in another post.) But it only works for the GM, since players don't have access to other players info without full permission.  Permissions only affect access to the journal contents, they do not prevent direct queries against attributes on characters.  If you know the name of any character in the journal, you can output the contents of any attribute you know the name of. Unless something has changed recently, that is only true if a player is using @{target| to get an attribute.  If you don't have edit privileges to a sheet and try to pull an attribute by sheet name (as a player), you will get an error because you don't have permission to access the attributes. Edit:  Attempting to pull the strength attribute in a pathfinder 1 game (in which I am a player) from the party paladin:
1599158656
The Aaron
Roll20 Production Team
API Scripter
Seems to be working to me.  Perhaps "strength" isn't an attribute in your test?  Note that it said "No attribute was found".
1599158942

Edited 1599158978
Kraynic
Pro
Sheet Author
The Aaron said: Seems to be working to me.  Perhaps "strength" isn't an attribute in your test?  Note that it said "No attribute was found". @{strength} is the attribute.  If I run it as @{target|strength}, I get the value of 14. I'm not sure why it would be different for you, but I've never seen anyone (as a player) able to pull an attribute value from a sheet for which they don't have edit permissions without using target.
1599160886
David M.
Pro
API Scripter
Yeah, it works as GM (and maybe GM re-joined as player, can't remember), but direct non-target attribute references always barf for me as a player unless I have edit permissions.
1599161161

Edited 1599161301
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
My findings concur with Kraynic. I did not know it worked that way. Edit : Rejoining as player does allow name-based attribute calls. Just being a player does not.
1599172438
The Aaron
Roll20 Production Team
API Scripter
hmm.  In my test, I'm using an alter user that is only a player.
1599181726
Kraynic
Pro
Sheet Author
The Aaron said: hmm.  In my test, I'm using an alter user that is only a player. I'm just going to assume that Roll20 was afraid you would script it into submission, so just decided to comply in preemptive self defense...  :p
1599187187

Edited 1599187248
Oosh
Sheet Author
API Scripter
Kraynic said: I'm just going to assume that Roll20 was afraid you would script it into submission, so just decided to comply in preemptive self defense...  :p This theory gets my vote. Pretty sure it's just you Aaron, I've had to get the GM to give me permission to my macro characters a couple of times when Ability macros wouldn't fire, and when I first started playing I tried using @{partymember|hp} macros to get party status. They've definitely never worked. That said, you can have permission on a sheet but not visibility, enabling you to call Attributes and Abilities from sheets that you can't see in the Journal.
Another option to consider is using Keith's macro but instead of whispering the gm you send it directly to the character.  Admittedly this means you have to click the button, but as long as the character isn't asking all the time, it might be manageable.  
1599222126
David M.
Pro
API Scripter
LOL!!! Kraynic said: The Aaron said: hmm.  In my test, I'm using an alter user that is only a player. I'm just going to assume that Roll20 was afraid you would script it into submission, so just decided to comply in preemptive self defense...  :p
keithcurtis said: You could also just hard code a "report" macro, assuming the party complement doesn't change too often: /w gm &{template:default} {{name=Health report}} {{Demona= @{Demona|hp} / @{Demona|hp|max}}}{{Kurtak=@{Kurtak|hp} / @{Kurtak|hp|max}}}{{Draenoq= @{Draenoq|hp} / @{Draenoq|hp|max}}}{{Kestrel=@{Kestrel|hp} / @{Kestrel|hp|max}}} Replace the names above with the names in the party, of course. You might also want to change the whisper so that it whispers to the player running the macro, as well. You could go a step further and figure percentages if you like. This would have been my sort of solution. Of course, it doesn't work if a player doesn't have access to those attributes. I have no idea if this would work,  I'm at work at the moment - but here's an idea to get around it. Create a new character sheet, edit the attributes and set some of the attributes in the background to be calls from the other players' character sheets HP and max HP values, hopefully this will cause the attributes to be dynamically updated and stored on the dummy character sheet. Give the player edit permissions to that dummy character sheet and see if the macro will allow the player to pull the redirected HPs when they use it. Unless somebody beats me to it, I'll test it later.
1599232140

Edited 1599232174
Oosh
Sheet Author
API Scripter
Neat idea, but with the Attribute calls being replaced, I think it would go "@{dummySheet|attribute}"  === replaced with ===> "@{blockedSheet|attribute}" === replaced with ===> Attribute not found. The Attribute call on the dummy sheet wouldn't actually calculate, it would just be a pointer to the blocked sheet, which is still blocked for the player.
1599236285

Edited 1599236531
Oosh said: Neat idea, but with the Attribute calls being replaced, I think it would go "@{dummySheet|attribute}"  === replaced with ===> "@{blockedSheet|attribute}" === replaced with ===> Attribute not found. The Attribute call on the dummy sheet wouldn't actually calculate, it would just be a pointer to the blocked sheet, which is still blocked for the player. I would expect this behaviour too, but it's roll20 and I've found that playing around with alternative ideas like that sometimes works. Perhaps having the attributes stored as inline rolls might have the desired effect, if I remember rightly there's a specific heirarchy as to what gets processed first, so if you can convert the block sheet's attribute to a result first, then reference it, I hope it would get around the issue.