View Full Version : 5E - StealthTracker
JustinFreitas
January 8th, 2022, 23:10
This is an extension for FGC/FGU that tracks Stealth rolls via the effect mechanism in the Combat Tracker. A handful of years ago I was running a game where there were many goblins and I kept losing track of which were hiding and what their stealth roll was... so I ended up creating an extension to help me with it and have been expanding it ever since. I run my games on FGC still so that compatibility is important to me. It works with FGU also and I test on both before releasing any new features to the extension. Sometimes I miss things, so if you find any bugs or have some good feature requests, just get a hold of me or post a reply in this forum thread. Big thanks to all of the great people that have helped me with encouragement, bug reports, and features/enhancements... it's been fun and rewarding to implement the changes.
StealthTracker Features:
Track Stealth rolls for PCs and NPCs in the Combat Tracker actor effects (ex. Stealth: 14).
On turn of an actor with Stealth effect it displays who sees that actor to the DM in chat. This comparison is based on the actor's Stealth value vs. the Passive Perception of each CT actor.
On turn of an actor with Stealth effect it displays all targets that might be caught unaware by an attack to the DM in chat.
On turn of an actor it displays who the actor doesn't see to the DM. This comparison is based on the actor's Passive Perception vs. the Stealth value of anyone in the CT with that effect.
On an attack (weapon or spell) by an actor with the Stealth effect, the Stealth effect will be expired (or not, configurable in options).
On an attack (weapon or spell) by an actor with the Stealth effect, the DM will be notified in the chat if the target didn't see the attack coming.
On an attack (weapon or spell) by an actor, the DM will be notified in the chat if the actor can't see the target due to its passive perception being less than the target's Stealth value (it's hidden to the attacker).
Option to show or hide StealthTracker information to players in case a game has tower Stealth roll requirements (player never knows what their actual Stealth value is and doesn't see any StealthTracker chat messages).
Option for Stealth effect expiration... none, action, or action and round to cover a variety of play styles.
NPC sheets will be updated with a Stealth skill if it doesn't already have one when it's that NPC's turn (based on dexterity bonus).
DM can drag any Stealth roll (or Dexterity check) result from the chat to a CT actor and it will set the Stealth effect. This is useful when a player rolls a Stealth out-of-turn or out-of-combat or if a Dexterity check is used instead of a Stealth skill check.
Works for localized versions of the 5E ruleset as it triggers off of translations for 'Stealth' and 'Dexterity', although, the information text will always be in English.
Generic Actions extension Hide action compatibility.
'/stealth' chat command for showing Stealth related information to the DM in chat.
'/stealth clear' chat command for clearing all Stealth information from the Combat Tracker.
Option to allow for out of turn and out of combat stealth processing (default none/off).
Stealth results now filter out same faction with option to disable the Faction Filter.
Debilitating conditions (i.e. incapacitated, unconscious, etc.) will affect the stealth processing now.
Verbose mode option that shows all chat messages when it would otherwise be fairly minimalistic. Also, the ability to turn chat output off completely.
Clearing StealthTracker effects on Initiative Clear is now optional, defaulting to on.
Add Passive Perception greater than zero to the valid actor check. Fixed a bug with the proficiency bonus of NPCs being incorrect in fractional cases and probably other cases also.
Option (enabled by default) to show StealthTracker summary information after the stealth roll (it happens just after the effect gets added to the CT actor).
Considers perception modifying effects during Passive Perception calculations.
Option to frame the StealthTracker chat output. Choices are none (default), chat, story (looks like chat but wider), whisper (most noticable).
As I remember other features, I'll update this list with them.
Option to show the Hidden (eye) Icon in chat messages, defaulting to Off.
The Forge version writes to the extensions folder and not the vault, so it's unencrypted in case you need to tweak stuff or look at things. Of course, it's all up on GitHub in case you wanna see things there. Links below!
Current Version: 5.4, get it from the Forge if you are a Unity user (automatic deployment and update with FGU update) or GitHub releases if you are a Classic user (rename the zip to ext and drop in extensions folder). The version history is available at either link, FG Forge or GitHub.
FG Forge Link: https://forge.fantasygrounds.com/shop/items/165/view
GitHub Link: https://github.com/JustinFreitas/StealthTracker
Ludd_G
January 8th, 2022, 23:46
This is one of my favourite extensions! Double thumbs up! :)
Oh, and just a heads up, if you're using the Requested Rolls extension you can do a 'hidden result' Stealth Check for all your NPCs on the CT and it hooks into this extension to display the correct Stealth effect on the CT. A very quick way I've found to 'pre-Stealth' my NPCs before combat even starts! And if you also use the Combat Groups Extension you can have a whole map's worth of NPCs 'pre-Stealth'd' and ready to go in hardly any time at all! Great stuff!
Thanks to Justin and all the other extension authors out there for making my DMing so much easier and so much more fun!
Cheers,
Simon
JustinFreitas
January 9th, 2022, 00:47
...if you're using the Requested Rolls extension you can do a 'hidden result' Stealth Check for all your NPCs on the CT and it hooks into this extension to display the correct Stealth effect on the CT. A very quick way I've found to 'pre-Stealth' my NPCs before combat even starts! And if you also use the Combat Groups Extension you can have a whole map's worth of NPCs 'pre-Stealth'd' and ready to go in hardly any time at all! Great stuff!
Wow... this is good to know! Thanks for sharing your usage findings/tips!
JustinFreitas
January 9th, 2022, 22:02
A bug was identified by carrierpl where I mistakenly used gMatch instead of gmatch as a function name. I've issued the fix, made the release, and uploaded the build to Forge. v3.4.4 (and then v3.4.5... gmatch was a mistake entirely... reverted to gsub as was originally before I broke it)
nephranka
January 10th, 2022, 21:49
I really like this ext. It is working well. I have only one small point. When I attack from a stealth position, the chat output asks if that should be with advantage when the target has a low pp. By that point the attack has already occurred. It would be better if it asked me that before the attack roll was made. I am not sure that can even be done (off of the targeting? or auto adding ADVATK? Maybe an option?) but I thought I mention it.
No matter what this helps across the boards in so many areas. Thank you!
JustinFreitas
January 10th, 2022, 22:31
I really like this ext. It is working well. I have only one small point. When I attack from a stealth position, the chat output asks if that should be with advantage when the target has a low pp. By that point the attack has already occurred. It would be better if it asked me that before the attack roll was made. I am not sure that can even be done (off of the targeting? or auto adding ADVATK? Maybe an option?) but I thought I mention it.
No matter what this helps across the boards in so many areas. Thank you!
That's a great observation. I didn't want to try and trap the roll from happening for a few reasons... but I wanted to alert the DM of the situation where it might possibly be able to take the attack at advantage. If that's the case, the DM can manually ask the player to make another attack roll and resolve the combat by hand. I'll look at the code again to see if there's anything more I can do here but it will likely remain the way it is now.
nephranka
January 10th, 2022, 23:13
That's a great observation. I didn't want to try and trap the roll from happening for a few reasons... but I wanted to alert the DM of the situation where it might possibly be able to take the attack at advantage. If that's the case, the DM can manually ask the player to make another attack roll and resolve the combat by hand. I'll look at the code again to see if there's anything more I can do here but it will likely remain the way it is now.
Totally get it. Thanks for the info. I thought an option to allow us to trap the roll might be a compromise.
JustinFreitas
January 11th, 2022, 05:03
Totally get it. Thanks for the info. I thought an option to allow us to trap the roll might be a compromise.
Encouraged by your request, I had another peek and I think I found something that I can work with to trap (or modify) the roll... so gimme some time to think it through and see if I can come up with something. As you suggested, an option to allow for automatic ADV marking in that situation would be nice. I'll shoot for something like that. Thanks again!
BushViper
January 11th, 2022, 05:48
I really like this ext. It is working well. I have only one small point. When I attack from a stealth position, the chat output asks if that should be with advantage when the target has a low pp. By that point the attack has already occurred. It would be better if it asked me that before the attack roll was made. I am not sure that can even be done (off of the targeting? or auto adding ADVATK? Maybe an option?) but I thought I mention it.
No matter what this helps across the boards in so many areas. Thank you!
This would be a neat option. However, in my game, my players almost never know what their stealth roll is and when appropriate I add the stealth bonus as a hidden effect so they get the adv to their attacks and disadv to attacks on them, but it'd be great if there was a way for the passive perception of the checked creatures to be compared to the stealth roll in the characters CT entry and apply the adv/disadv where appropriate. Though that's probably way outside of what FGU code is capable of.
JustinFreitas
January 11th, 2022, 05:56
This would be a neat option. However, in my game, my players almost never know what their stealth roll is and when appropriate I add the stealth bonus as a hidden effect so they get the adv to their attacks and disadv to attacks on them, but it'd be great if there was a way for the passive perception of the checked creatures to be compared to the stealth roll in the characters CT entry and apply the adv/disadv where appropriate. Though that's probably way outside of what FGU code is capable of.
That should be possible too... not simple, but possible. This other stuff I'm looking at it starting to get tricky... might be a path I don't wanna go down. Need some more time to mess around with it.
Ludd_G
January 11th, 2022, 10:38
Actually making Adv/DisAdv automatic would be amazing! Fingers crossed!
Cheers,
Simon
nephranka
January 11th, 2022, 10:40
Encouraged by your request, I had another peek and I think I found something that I can work with to trap (or modify) the roll... so gimme some time to think it through and see if I can come up with something. As you suggested, an option to allow for automatic ADV marking in that situation would be nice. I'll shoot for something like that. Thanks again!
Thanks for taking the time to explore the options.
Ludd_G
January 18th, 2022, 22:28
Excellent update today! Double thumbs up!
nephranka
January 18th, 2022, 23:32
A "stealth" update! Great work!
JustinFreitas
January 19th, 2022, 00:33
Thanks Ludd_G and nephranka! It was a lot of work, but I was able to reduce the chattiness significantly. Got some other stuff in there too. Still working on the roll trapping... I have a mechanism, but it is earlier in the process and I'm still trying to get things to do what I want. We'll see how it goes.
nephranka
January 19th, 2022, 00:51
Keep at it!
MrDDT
January 19th, 2022, 18:13
Thanks Ludd_G and nephranka! It was a lot of work, but I was able to reduce the chattiness significantly. Got some other stuff in there too. Still working on the roll trapping... I have a mechanism, but it is earlier in the process and I'm still trying to get things to do what I want. We'll see how it goes.
Could there be an optional setting to have no chat at all? Just keep the basic tool of putting stealth on as an effect, and removing it when they do casting/attacking?
JustinFreitas
January 19th, 2022, 18:20
Could there be an optional setting to have no chat at all? Just keep the basic tool of putting stealth on as an effect, and removing it when they do casting/attacking?
I like it, MrDDT. I think I'd extend the new verbose option for that. So instead of off/on, maybe none/standard/verbose. I'll look into that next so probably a few days or whatever depending on my schedule.
JustinFreitas
January 20th, 2022, 12:54
Could there be an optional setting to have no chat at all? Just keep the basic tool of putting stealth on as an effect, and removing it when they do casting/attacking?
I put an off option in the Verbosity setting that will do this. There is no chat output on rolls and only chat output on administrative actions like the /stealth or /stealth clear commands and also when resetting initiative to let GM know CT is clear or not. It's in v3.6 which is up at all locations now. Enjoy the silence!
MrDDT
January 21st, 2022, 00:45
I put an off option in the Verbosity setting that will do this. There is no chat output on rolls and only chat output on administrative actions like the /stealth or /stealth clear commands and also when resetting initiative to let GM know CT is clear or not. It's in v3.6 which is up at all locations now. Enjoy the silence!
Wow thanks, this is so awesome. I was having to manually edit stuff and I was a few versions back to get it to do this myself. However, this is better as you've done all the stuff I was wanting and more. Thanks again.
MrDDT
January 24th, 2022, 19:05
I noticed that Stealth Tracker with no EXTs or mods loaded, it will display in chat the DC as if it were a roll or like when you roll a save but no one targeted.
[SAVE VS] Acid Splash [DEX DC 10] [MAGIC][TYPE acid] 10
JustinFreitas
January 24th, 2022, 19:14
I noticed that Stealth Tracker with no EXTs or mods loaded, it will display in chat the DC as if it were a roll or like when you roll a save but no one targeted.
Sorry for the problems MrDDT. I'll look into it tonight.
JustinFreitas
January 25th, 2022, 05:20
I noticed that Stealth Tracker with no EXTs or mods loaded, it will display in chat the DC as if it were a roll or like when you roll a save but no one targeted.
I issued the fix along with some changes for deprecated functions and other stuff. Basically, I wasn't handling the casts correctly. I started to fix it and ran into a couple of other things that started to take more time. I went to the rules and looked at what reveals someone hiding and making an attack (or noise) will do the trick. Fortunately, spell attacks (any spell with an attack roll) are handled already as those are attacks. So I removed the flawed cast stealth processing and gonna leave it at that. Any spells that don't have attack rolls will be up to the DM if they wanna expire any stealth effect or whatever. Thanks for the report MrDDT, I appreciate it.
JustinFreitas
January 25th, 2022, 05:25
Oh no... I found another problem in some late testing on a connected client. Gonna fix.
BushViper
January 25th, 2022, 05:27
I issued the fix along with some changes for deprecated functions and other stuff. Basically, I wasn't handling the casts correctly. I started to fix it and ran into a couple of other things that started to take more time. I went to the rules and looked at what reveals someone hiding and making an attack (or noise) will do the trick. Fortunately, spell attacks (any spell with an attack roll) are handled already as those are attacks. So I removed the flawed cast stealth processing and gonna leave it at that. Any spells that don't have attack rolls will be up to the DM if they wanna expire any stealth effect or whatever. Thanks for the report MrDDT, I appreciate it.
Thanks for the continued hard work, Justin.
Also, since you went down the path of trying to figure out (and accommodate) being brought out of Stealth after an attack, I figured I'd add that there are abilities (from Feats, sub-class features, etc.) that prevent an attacker from being revealed. I think there are even a few weapons (for some reason I'm thinking Blowgun) that don't reveal the attacker, but that's a whole different can of worms.
Thanks again!
JustinFreitas
January 25th, 2022, 05:47
Thanks for the continued hard work, Justin.
Also, since you went down the path of trying to figure out (and accommodate) being brought out of Stealth after an attack, I figured I'd add that there are abilities (from Feats, sub-class features, etc.) that prevent an attacker from being revealed. I think there are even a few weapons (for some reason I'm thinking Blowgun) that don't reveal the attacker, but that's a whole different can of worms.
Thanks again!
Yeah, great points. I think I'm just gonna keep it simple for now after revisiting the rules and seeing that.
I fixed the message error problem I mentioned in the other post. Ugggghhhh... I hate it when I create bugs. Anyway, just tested it and it's back to normal. v3.6.2
MrDDT
January 27th, 2022, 02:54
Thanks for the update, I had a chance to test it out, this works great thank you.
@Bushviper's request, I think its best not to code for edge cases, in these cases the player/DM will know they can just put the effect back on them or whatnot.
webdove
March 3rd, 2022, 04:58
Hi, Nice extension! I just tried it and it seems to work with drow vs PC. However, when I added an Acolyte to the CT and map there was no "stealth +0" in the CT entry for it.
51751
51752
Also, would there be any chance of added "opposed rolls" for when creatures are in combat?
PHB 177: “In combat, most creatures stay alert for signs of danger all around, so if you come out of hiding and approach a creature, it usually sees you."
JustinFreitas
March 3rd, 2022, 05:24
Hi, Nice extension! I just tried it and it seems to work with drow vs PC. However, when I added an Acolyte to the CT and map there was no "stealth +0" in the CT entry for it.
51751
51752
Also, would there be any chance of added "opposed rolls" for when creatures are in combat?
PHB 177: “In combat, most creatures stay alert for signs of danger all around, so if you come out of hiding and approach a creature, it usually sees you."
Hi. The Stealth +0 happens when the turn marker in combat advances to that actor. So start combat, click the actor before the acolyte, and press the next turn button to advance the combat. Then it should write it.
Opposed rolls? I probably won't be adding anything major... but if you wanna do it that way, just turn off the expiration of Stealth in the options and do an opposed roll. The information in the chat window is informational only and can be ignored or silenced in the options.
Good luck!
JustinFreitas
March 3rd, 2022, 05:26
Hi, Nice extension! I just tried it and it seems to work with drow vs PC. However, when I added an Acolyte to the CT and map there was no "stealth +0" in the CT entry for it.
51751
51752
Also, would there be any chance of added "opposed rolls" for when creatures are in combat?
PHB 177: “In combat, most creatures stay alert for signs of danger all around, so if you come out of hiding and approach a creature, it usually sees you."
You can also make a Dex check with the actor and drag that result to the actor in the CT and it will log a Stealth effect.
webdove
March 4th, 2022, 02:10
I see why I was confused. The forge description said: " If the NPC sheet is lacking a Stealth skill to roll, it will be added as "Stealth +0" line in their skills section of the sheet (on the Combat Tracker node only, not main NPC sheet)." So I was looking on the CT entry for the NPC.
The "stealth +0" is actually inserted on the main NPC sheet.
51774
JustinFreitas
March 4th, 2022, 03:08
I see why I was confused. The forge description said: " If the NPC sheet is lacking a Stealth skill to roll, it will be added as "Stealth +0" line in their skills section of the sheet (on the Combat Tracker node only, not main NPC sheet)." So I was looking on the CT entry for the NPC.
The "stealth +0" is actually inserted on the main NPC sheet.
51774
Oh, cool. Glad it's working. I tested things with the new FGU version today and it seems fine so far.
webdove
March 4th, 2022, 03:33
You might want to correct the confusing language on the Forge site so it won't confuse others.
JustinFreitas
March 4th, 2022, 03:38
You might want to correct the confusing language on the Forge site so it won't confuse others.
Oh, I see what you mean now... it's technically correct, I don't update the main/module sheet, just the sheet that the CT uses (it's a copy of the main one for that combat). I'll update the readme so that it is more descriptive. Thanks.
nephranka
April 14th, 2022, 01:59
I was testing the new SR Carrier ext in the paid section and found that when this ext is loaded the two do not work together. It took some time for me to narrow it down since it did not throw an error nor warning. It just fails silently. I will be passing this along to SR in his thread as well.
JustinFreitas
April 14th, 2022, 02:02
I was testing the new SR Carrier ext in the paid section and found that when this ext is loaded the two do not work together. It took some time for me to narrow it down since it did not throw an error nor warning. It just fails silently. I will be passing this along to SR in his thread as well.
Yeah, I've worked around some things before but it's difficult to obtain, debug, and fix every time a new extension comes out or changes. It might be a while. Thanks for the report.
nephranka
April 14th, 2022, 02:05
Yeah, I've worked around some things before but it's difficult to obtain, debug, and fix every time a new extension comes out or changes. It might be a while. Thanks for the report.
No worries. Passing it along.
SilentRuin
April 14th, 2022, 02:35
Yeah, I've worked around some things before but it's difficult to obtain, debug, and fix every time a new extension comes out or changes. It might be a while. Thanks for the report.
Not sure what would be conflicting as I've taken care to write it so it was not conflict sensitive (super calls original always) in places I override. I suspect if the order has mine coming last it would work maybe. But really don't know.
SilentRuin
April 14th, 2022, 02:41
Yeah, I've worked around some things before but it's difficult to obtain, debug, and fix every time a new extension comes out or changes. It might be a while. Thanks for the report.
Yeah I'm calling original code in all places. If this helps these are what I override (saves are what is stored - original code - and called as all overrides should do where possible)...
-- Store original CombatManager.onDrop function so we can restore it on close
local saveCMonDrop = nil;
-- Store original TokenManager.linkToken function so we can restore it on close
local savelinkToken = nil;
-- Store original TokenManager.updateTooltip function so we can restore it on close
local saveupdateTooltip = nil;
-- Store original TokenManager.updateVisibilityHelper function so we can restore it on close
local saveupdateVisibilityHelper = nil;
SilentRuin
April 14th, 2022, 02:45
Ok another person who uses it tells me it both work fine together so I'm lost on this. Sorry for the multiple messages I'm assuming its a non issue for now and will stop trying to resolve it.
MrDDT
April 14th, 2022, 03:16
I was testing the new SR Carrier ext in the paid section and found that when this ext is loaded the two do not work together. It took some time for me to narrow it down since it did not throw an error nor warning. It just fails silently. I will be passing this along to SR in his thread as well.
Can you tell us what is failing? I'm using ST and Carrier and not getting any issues. No Error (like you said) and both working.
JustinFreitas
April 14th, 2022, 03:36
Yeah I'm calling original code in all places. If this helps these are what I override (saves are what is stored - original code - and called as all overrides should do where possible)...
-- Store original CombatManager.onDrop function so we can restore it on close
local saveCMonDrop = nil;
-- Store original TokenManager.linkToken function so we can restore it on close
local savelinkToken = nil;
-- Store original TokenManager.updateTooltip function so we can restore it on close
local saveupdateTooltip = nil;
-- Store original TokenManager.updateVisibilityHelper function so we can restore it on close
local saveupdateVisibilityHelper = nil;
I have a CT drop handler I think. Lemme look.
JustinFreitas
April 14th, 2022, 03:39
I have a CT drop handler I think. Lemme look.
Drop handlers get put into a table so they all work (I looked in CoreRPG/manager_combat.lua)... prolly not that then.
SilentRuin
April 14th, 2022, 04:03
Drop handlers get put into a table so they all work (I looked in CoreRPG/manager_combat.lua)... prolly not that then.
As per PM there is no conflict according to MrDDT. Unless new info comes up I'd not worry about it. If your using custom drop then there will be no conflict anyway (as mine wraps around that whole process which gets done before my stuff). Though if anything returns "true" on the process then as the rules state nothing else will process after. I trust nobody is truncating the drop on my CT name drag by stating nothing else should execute if they are not messing with that.
Typical onDrop return mean the following (which I respect and don't execute my stuff if it happens - meaning this will not be my unique CT name field drag/drop anyway):
This function should return true if it handled the event and the processing of the event should be stopped. A value of false indicates that the default framework functionality for the this particular control should not be executed, but the processing should continue for the element below this control, if any. A return value of nil (or the absence of a return statement) indicates that the framework should continue handling the event normally.
JustinFreitas
April 14th, 2022, 04:20
I'll need to switch to an onDrop override then. Fun times.
SilentRuin
April 14th, 2022, 04:25
I'll need to switch to an onDrop override then. Fun times.
? if your stuff works - it works. No need to change it if it works.
Point being - if someone processes something and don't want anyone else to process it (rare) then they will return true and truncate all other processing. I only return the original onDrop calls return code and only process my stuff if it was not true (nil or false) meaning nobody did anything with my CT name drag/drop I'm after. But things are nebulous at best and you just need to do what you need to do. I just try not to mess anyone else over so never return a true in my onDrop unless I really want it to stop processing what I just processed.
SilentRuin
April 14th, 2022, 09:06
MrMDDT verified its a bug in the on drop processing of the CT name field dropped onto another CT field. As I stated, even the custom on drops you use in ruleset code loop (onDropEvent) will terminate all further custom drops if one of them returns true - and I (over all of that processing) also respect that return code coming out of the onDrop cycle of those things to not process if its true. My bet is your returning a return code when you should not be. See my previous cut/paste of onDrop return codes from FGU documentation above.
MrDDT
April 14th, 2022, 09:19
As SR posted, I see the issue, when you try to make a group, it has the "error" (no msg) where it wont make a carrier group.
So if you trying to make it happen and don't understand what SR is saying (I don't get that coding side).
With carrier group, you drag the CT onto another CT and make a carrier group. This is where ST and Carrier are in conflict, with both EXTs loaded, it will not make a carrier group. Without ST, Carrier works fine.
JustinFreitas
April 14th, 2022, 12:33
I pushed a fix (3.6.3) up to the store. Can you check it out again sometime today? The problem stems from me having to work around an FGC bug where the drop handler fires twice. Doesn't happen on FGU, so I had to put in a weird hack to prevent it in FGC instead of returning true. I tested on both and it fires once on both with these changes.
nephranka
April 14th, 2022, 13:19
I will not be able to test it to this evening. Thank you for taking a look and trying to fix it.
JustinFreitas
April 14th, 2022, 14:05
I will not be able to test it to this evening. Thank you for taking a look and trying to fix it.
Thanks for letting me know. Should be ok now but I don't have the other paid extension to test with.
MrDDT
April 14th, 2022, 16:57
I pushed a fix (3.6.3) up to the store. Can you check it out again sometime today? The problem stems from me having to work around an FGC bug where the drop handler fires twice. Doesn't happen on FGU, so I had to put in a weird hack to prevent it in FGC instead of returning true. I tested on both and it fires once on both with these changes.
Checked that this is fixing the issue with Carrier where now we can create carrier groups again while using both exts.
nephranka
April 14th, 2022, 17:08
Checked that this is fixing the issue with Carrier where now we can create carrier groups again while using both exts.
Great news!
JustinFreitas
April 14th, 2022, 17:34
Thanks guys. This effort uncovered a bug in FGC drop handling where it fires twice. I put in a hack to account for the difference between FGC/FGU. I also found flawed version testing in this and my Aspect of the Beast - Bear extension.
SilentRuin
April 14th, 2022, 17:38
Thanks guys. This effort uncovered a bug in FGC drop handling where it fires twice. I put in a hack to account for the difference between FGC/FGU. I also found flawed version testing in this and my Aspect of the Beast - Bear extension.
Thanks :)
nephranka
April 14th, 2022, 23:20
Working good. Thanks again.
Tooting Dog
October 29th, 2022, 00:42
I like this one. Thanks for taking the time to create it. But I do wonder if it might be fruitful to provide a toggle so that a GM can select the text output to show who CAN see the hidden actor rather than a long list of those who cannot. In my group with two rogues, it becomes a process of elimination to find out who can actually see either rogue. By knowing who can see my rogue, I know automatically who cannot; but what matters is knowing who can see the stealthed actor. I even use this with trap icons and secret doors in the CT to get an automatic notice of who detects them; but again, I get a long list of names who cannot see it when all that matters is who can. Thanks for the consideration!
JustinFreitas
October 29th, 2022, 00:48
Interesting thought... let me explore the idea to understand its value and see what I can do to make it happen. Thanks for contributing.
JustinFreitas
October 29th, 2022, 01:14
I like this one. Thanks for taking the time to create it. But I do wonder if it might be fruitful to provide a toggle so that a GM can select the text output to show who CAN see the hidden actor rather than a long list of those who cannot. In my group with two rogues, it becomes a process of elimination to find out who can actually see either rogue. By knowing who can see my rogue, I know automatically who cannot; but what matters is knowing who can see the stealthed actor. I even use this with trap icons and secret doors in the CT to get an automatic notice of who detects them; but again, I get a long list of names who cannot see it when all that matters is who can. Thanks for the consideration!
I think this would be a nice addition and it doesn't seem too difficult to add in. I'd like to make the option tri-state so it has unseen/seen/both, which would cover all the bases. I'll work on it some this weekend. Thanks again.
Ludd_G
October 29th, 2022, 10:32
What a great idea!
JustinFreitas
October 30th, 2022, 03:19
It really is! I've implemented the changes and have been testing with them... it's very nice. I made some other performance improvements and minor fixes too. I'll keep working with it and make a release for it tomorrow. Thanks!
JustinFreitas
October 30th, 2022, 23:33
I like this one. Thanks for taking the time to create it. But I do wonder if it might be fruitful to provide a toggle so that a GM can select the text output to show who CAN see the hidden actor rather than a long list of those who cannot. In my group with two rogues, it becomes a process of elimination to find out who can actually see either rogue. By knowing who can see my rogue, I know automatically who cannot; but what matters is knowing who can see the stealthed actor. I even use this with trap icons and secret doors in the CT to get an automatic notice of who detects them; but again, I get a long list of names who cannot see it when all that matters is who can. Thanks for the consideration!
Ok, just released v3.7 up to the Forge and was able to pull it down in my FGU client. Lemme know if you run into any issues. Thanks y'all.
Tooting Dog
October 31st, 2022, 00:39
Excellent! Much appreciation here. I've attached an image.
I will usually load icons for traps or secret doors onto the map but set to invisible so the players cannot see the icons on the map or CT. I give the icons a stealth rating in the CT which is the score needed to detect them. In the image provided the trap is a DC10 so I set stealth:10 and you can see the entire party can detect it.
However, I have a bodak stealthing around at stealth:25 which no one sees and then one at stealth:21 which Annazan spots. All I need to know is exactly who spots these things and so this is a wonderful modification to your code!
(Yes, my party is playing Tomb of the 9 Gods and their names morphed with their hosted gods so I know who is who.)
This is great! I love it. Thank you so much.
54930
JustinFreitas
October 31st, 2022, 01:12
I will usually load icons for traps or secret doors onto the map but set to invisible so the players cannot see the icons on the map or CT. I give the icons a stealth rating in the CT which is the score needed to detect them. In the image provided the trap is a DC10 so I set stealth:10 and you can see the entire party can detect it.
However, I have a bodak stealthing around at stealth:25 which no one sees and then one at stealth:21 which Annazan spots. All I need to know is exactly who spots these things and so this is a wonderful modification to your code!
54930
These are really good ideas. Thanks for sharing and I'm so happy you are happy with the changes.
EllivasKram
November 10th, 2022, 23:38
Hi. I just had a player report they saw a script error. Occur on his player side (only his side) when he rolled stealth with ADV for stealth rolls in his effects lost on CTracker. He was controlling 2x characters one rolled fine with no errors (with no ADV) and the one character who had the ADV effect on stealth saw the scripts errors. He mentioned the error was about negative numbers.
The stealth still seems to populate in the characters CTracker.
JustinFreitas
November 11th, 2022, 00:23
Hi. I just had a player report they saw a script error. Occur on his player side (only his side) when he rolled stealth with ADV for stealth rolls in his effects lost on CTracker. He was controlling 2x characters one rolled fine with no errors (with no ADV) and the one character who had the ADV effect on stealth saw the scripts errors. He mentioned the error was about negative numbers.
The stealth still seems to populate in the characters CTracker.
Thanks for the report bud. I'll try to replicate it in the next day or two and get it fixed up!
JustinFreitas
November 11th, 2022, 00:24
Hi. I just had a player report they saw a script error. Occur on his player side (only his side) when he rolled stealth with ADV for stealth rolls in his effects lost on CTracker. He was controlling 2x characters one rolled fine with no errors (with no ADV) and the one character who had the ADV effect on stealth saw the scripts errors. He mentioned the error was about negative numbers.
The stealth still seems to populate in the characters CTracker.
Was it a dice tower roll or out in the open?
EllivasKram
November 11th, 2022, 08:07
It would have a stealth roll into the tower. They are good at doing that.
JustinFreitas
November 11th, 2022, 10:20
It would have a stealth roll into the tower. They are good at doing that.
Ok, I’ll check that scenario too. There was a known FG bug recently with Adv/disadv on rolls in the tower. Unsure of its status but wanted to mention. I’ll know more tonigh, thanks again.
JustinFreitas
November 12th, 2022, 01:22
It would have a stealth roll into the tower. They are good at doing that.
Hi EllivasKram.
I was able to reproduce the issue that you reported. Unfortunately, I was also able to reproduce it without any extensions installed. As I suspected, you are running into the known FGU ADV/DISADV in Tower bug. Here is a link to the thread that discusses the issue:
https://www.fantasygrounds.com/forums/showthread.php?75605-(5e)-New-Dice-ADV-DIS-Dice-Tower-throws-console-errors&highlight=Index+was+out+of+range+Must+be+non-negative+and+less+than+the+size+of+the+collection
Below is the error that I see in the player's console when I make a roll at advantage or disadvantage in the Tower. It happens on the GM side also. Hopefully, they'll get it fixed soon.
[ERROR] API: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
JustinFreitas
November 12th, 2022, 01:34
It would have a stealth roll into the tower. They are good at doing that.
Quick update... I tried this on the new test version and it's already fixed. So when they release that to everyone in a few days or so, you should be good to go.
EllivasKram
November 12th, 2022, 07:48
Thanks for confirming it isn’t your extn. On my testing I found it very random and couldn’t get a handle on the scenario. So good to know it’s fixed in the future release of client.
Tooting Dog
November 19th, 2022, 01:50
Did something change? I thought it would only show what can be seen by the character/creature.
In the image, as an example, I do not need to be told that Grog cannot see something. By the very fact that it does not state that he detects the trap, I know he does not see it. I thought the setting aware _only_ showed what they are aware of.
55164
Also, did the CT: Expire Stealth Effect change? I didn't think it cleared from my CT before when set to None.
JustinFreitas
November 19th, 2022, 01:55
Did something change? I thought it would only show what can be seen by the character/creature.
In the image, as an example, I do not need to be told that Grog cannot see something. By the very fact that it does not state that he detects the trap, I know he does not see it. I thought the setting aware _only_ showed what they are aware of.
55164
I didn't change anything... maybe the new version changed things. I'll look into it this weekend.
JustinFreitas
November 19th, 2022, 04:48
Also, did the CT: Expire Stealth Effect change? I didn't think it cleared from my CT before when set to None.
No, but it does clear if you end combat by Initiative->Clear Initiative. Would you like that to be optional also? I'm guessing so based on your statement. I think that would be an easy change. I'll look into it while I check on the other.
JustinFreitas
November 19th, 2022, 05:53
Did something change? I thought it would only show what can be seen by the character/creature.
In the image, as an example, I do not need to be told that Grog cannot see something. By the very fact that it does not state that he detects the trap, I know he does not see it. I thought the setting aware _only_ showed what they are aware of.
I just messed around with it and it looks to me like I never met your requirements to begin with. Now I see what you are saying and can change it around this weekend so that it works the way you need it to.
JustinFreitas
November 19th, 2022, 16:05
I just messed around with it and it looks to me like I never met your requirements to begin with. Now I see what you are saying and can change it around this weekend so that it works the way you need it to.
I think I have what you want working in my testing here. I'll probably have it out later today if I don't find any issues.
55167
MrDDT
November 19th, 2022, 16:45
Love it thanks for all the hard work!
JustinFreitas
November 20th, 2022, 00:33
Ok, I posted that 3.8 version to the Forge (and GitHub). If you have any problems lemme know.
Dalantar
December 18th, 2022, 20:48
Whenever I call for stealth roll from my players once in a while an "effect" will be added to the CT for "stealth: <# rolled>" but it only shows up for one player randomly. Nobody else gets the effect. Is this a Stealth Tracker effect or is it another extension? If it's a Stealth Tracker function how do i get it to work for everyone? thanks all!
JustinFreitas
December 18th, 2022, 21:01
If the options for StealthTracker are set so, players can roll their stealth and have it show in the Combat Tracker even if it’s not their turn in combat or if no combat is even running. I’m away from the keyboard but will look into this more tonight. Thanks for chiming in with your issue.
spencerg
January 19th, 2023, 04:06
apologies if I missed it, but is there a demo video>?
JustinFreitas
January 19th, 2023, 04:35
apologies if I missed it, but is there a demo video>?
There isn't a demo video but it is a good idea. Lemme see what I can do.
In a nutshell, it tracks stealth rolls in combat. It lets the DM know things like who is hidden from who and some other tidbits as the characters take turns throughout the rounds.
Xerophilex
April 7th, 2023, 21:42
Wonderful extension. The Sees Actor Summary Verbosity option seems to be bugged though. When off, the message shows all actors who can AND can't see the current actor. Setting it to Aware, Unaware, or Both just disables the sees actor message entirely.
Would it be possible to recalculate and redisplay the stealth info messages after a creature rolls stealth on their turn. For example, on her turn a rogue can initially be seen by everyone. Then she uses cunning action to hide and then attack. I would love to be able to see who can and cannot see her after she hides and before she attacks on that same turn.
JustinFreitas
April 7th, 2023, 21:44
Wonderful extension. The Sees Actor Summary Verbosity option seems to be bugged though. When off, the message shows all actors who can AND can't see the current actor. Setting it to Aware, Unaware, or Both just disables the sees actor message entirely.
Would it be possible to recalculate and redisplay the stealth info messages after a creature rolls stealth on their turn. For example, on her turn a rogue can initially be seen by everyone. Then she uses cunning action to hide and then attack. I would love to be able to see who can and cannot see her after she hides and before she attacks on that same turn.
Excellent suggestion! I'll see what I can do about both the bug for Sees Actor and the recalculation after stealth roll. I'll have some time on the weekend to look at it more closely and I'll let ya know how I progress. Thanks!
JustinFreitas
April 8th, 2023, 01:46
Wonderful extension. The Sees Actor Summary Verbosity option seems to be bugged though. When off, the message shows all actors who can AND can't see the current actor. Setting it to Aware, Unaware, or Both just disables the sees actor message entirely.
Would it be possible to recalculate and redisplay the stealth info messages after a creature rolls stealth on their turn. For example, on her turn a rogue can initially be seen by everyone. Then she uses cunning action to hide and then attack. I would love to be able to see who can and cannot see her after she hides and before she attacks on that same turn.
You were 100% right on the bug report and the feature suggestion. I implemented both and will be releasing it to the Forge after some testing.
Xerophilex
April 8th, 2023, 08:12
You were 100% right on the bug report and the feature suggestion. I implemented both and will be releasing it to the Forge after some testing. Here's a preview copy if you want to use it immediately.
StealthTracker v3.9 (https://justin.dynu.com/files/StealthTracker.ext)
Thank you! EDIT: Just tested it and it works great.
JustinFreitas
April 9th, 2023, 16:37
In my game last night, a player rolled stealth and I didn't get the summary. I had to manually type /stealth to see it. After the game, I went back in to figure out what happened and noticed I had Verbosity setting on Standard. Putting that setting to Max allowed me to see all of the output I wanted to see. I might change the default from Standard to Max for that setting in a fix version soon.
Xerophilex
April 9th, 2023, 21:54
Strange, when I did my testing the summary popped up and I had verbosity at Standard. Looks like I might fool around with the extension some more before our games this week. Thanks for all your hard work!
JustinFreitas
April 30th, 2023, 15:52
I posted an update to both FG Forge and GitHub. Happy gaming, y'all.
FG Forge Link: https://forge.fantasygrounds.com/shop/items/165/view
GitHub Link: https://github.com/JustinFreitas/StealthTracker
v3.10 - Changed the in-combat firing of the stealth functionality from onTurnStart to requestActivation. Now, it works when you click the left CT bar to activate an actor that way (and still works when using the Next Actor button too). I'll be applying this change to all of my Tracker extensions. Updated the option names to be more understandable and have correct casing. Updated the unidentified creature name usage to be correct if an NPC is unidentified. It will now use the unidentified name in that case so chat matches CT name, reducing confusion.
Xerophilex
April 30th, 2023, 16:10
Thank you! This is an essential extension.
Would it be possible for Stealth Tracker to automatically detect dim light and apply disad to passive perception checks?
JustinFreitas
April 30th, 2023, 16:24
Thank you! This is an essential extension.
Would it be possible for Stealth Tracker to automatically detect dim light and apply disad to passive perception checks?
You are welcome! I use it in my games too. :) I'm running on Classic though... so for your feature request I might have to base it off of an effect (like Dim Light that could be put by Aura Effects) in FGC rather than from the LoS systems in FGU if I want to maintain some type of feature parity between the two. I'll think about it and see what we can do.
Maldev
June 5th, 2023, 04:35
G'day. This looks awesome!
Does it work/Could it work for d&d 4E?
It is in my extension folder, but doesn't show up in the FGU load screen.
JustinFreitas
June 5th, 2023, 04:44
G'day. This looks awesome!
Does it work/Could it work for d&d 4E?
It is in my extension folder, but doesn't show up in the FGU load screen.
Yeah, it's for 5E. I don't know the 4E stealth rules and I'd have to look into what would be involved with a 4E port. I'll try a couple of things (like enable it on 4E) but there's some 5E stuff in there that probably won't agree with that plan. We'll see what happens. Thanks for the suggestion.
Maldev
June 5th, 2023, 04:51
Thanks for the quick reply.
4E has Passive Perception built in, but as you say it's tricky if you are not familiar with the ruleset.
Any love for 4E is always appreciated, cheers
jkeller
June 11th, 2023, 00:09
Hey Justin -
I think there may be a conflict between StealhTracker and "Crits and Fumbles" (my extension). I'm very new to FG and LUA, so I'm not sure how to avoid it.
I think it might be because of the way this StealthTracker function works:
ActionSkill_onRoll = ActionSkill.onRoll
ActionSkill.onRoll = onRollSkill
function onRollSkill(rSource, rTarget, rRoll)
. . .
-- Call the default action that happens when a skill roll occurs in the ruleset.
ActionSkill_onRoll(rSource, rTarget, rRoll)
. . .
end
and this C&F function:
ActionsManager.registerResultHandler("skill", my_onRoll); -- skill checks
function my_onRoll(rSource, rTarget, rRoll) -- override to enhance SKILL check
ActionSkill.onRoll(rSource, rTarget, rRoll); -- call super
. . .
end
Any ideas what I (or you) could change?
Thanks!
-J
JustinFreitas
June 11th, 2023, 00:22
I'm sure we can figure something out! I'll take a peek and let ya know. Thanks, Justin
JustinFreitas
June 11th, 2023, 00:35
I loaded up your extension with mine and wasn't able to see the symptom of the problem with a Stealth roll, even when waiting for a 1 to come up. So I came back here and looked at your post again... I noticed that you are registering as a result handler. You might consider using an override instead. Based on the comment in your my_onRoll() function, you might be trying to do just that. If so, follow the approach of storing the original function to be overridden (ActionSkill_onRoll = ActionSkill.onRoll) and then replacing it with your function (ActionSkill.onRoll = my_onRoll). Then, like you have in your my_onRoll(), call the overridden method when you need to pass through to the default/original behavior. You can do your logic before or afterwards... I recommend afterwards since you were registered as a result handler anyway. Then you would no longer need the registerResultHandler call. There are prolly other ways to do it but that's what first came to mind. Lemme know if you need anything else. Good luck!
jkeller
June 11th, 2023, 17:57
Thanks. I loaded both extensions, and even when I roll a 20, mine does not get called.
So I changed my code as you suggested, and I think it's working now, thanks!
local ActionSkill_onRoll
function onInit()
ActionSkill_onRoll = ActionSkill.onRoll
ActionSkill.onRoll = onRollSkill
end
function onRollSkill(rSource, rTarget, rRoll) -- override to enhance SKILL check
ActionSkill_onRoll(rSource, rTarget, rRoll); -- call super
. . . - do my stuff
end
JustinFreitas
June 11th, 2023, 18:04
Looks about right at a glance. I'm not sure what's up but I'll check it out in more detail today and see what's wrong. Sorry for the issues... talk soon.
jkeller
June 11th, 2023, 18:15
The issues were mine; should be all good now, thanks!
JustinFreitas
June 11th, 2023, 18:17
The issues were mine; should be all good now, thanks!
I'm surprised I'm registering my onRoll handler as a result handler after the override in my onInit. Gonna look later regardless. Thanks for the interesting observations!
JustinFreitas
November 5th, 2023, 17:52
Updated StealthTracker to v3.16 to have an option to frame the chat message using a chat frame style. The options are none (default), chat, story (looks like chat but wider), and whisper (my favorite and the most differentiating). This will help frame the sometimes long StealthTracker output in hopes to make it easier to follow. It's live on the Forge and GitHub. Enjoy.
Gawain the Great
April 27th, 2024, 02:58
I just love the Stealth Tracker. I heard Mr.DDT on Discord mention--back in 2022--that the ST co-ops the Saving Rolls. I think I've experienced that. Is that still the case?
Thanks for the increadible access to info with this Ext.
JustinFreitas
April 27th, 2024, 03:03
Hey, that makes me happy. Thanks! I'm not sure I understand the co-op the Saving Rolls, but I just look for when a Stealth roll is made and assign it to the CT actor with an effect. Then, as the turns go by in the Combat Tracker, I compare that number in the effect to all those various scenarios. I hope that helps answer your question.
nephranka
June 26th, 2024, 01:42
I think I found a bug. When I apply the effect: "Silvery Barbs; ADVATK; ADVSKILL; ADVCHK; ADVSAV" (DUR=1 min, expires next roll) from the actions tab of a character sheet to a target, as soon as the CT moves to the target the effect expires. It does not do this with no exts loaded. Also, If I only apply "Silvery Barbs; ADVATK; ADVSAV" it works as expected.
JustinFreitas
June 26th, 2024, 01:44
I think I found a bug. "Silvery Barbs; ADVATK; ADVSKILL; ADVCHK; ADVSAV" (DUR=1 min, expires next roll) from the actions tab of a character sheet to a target, as soon as the CT moves to the target the effect expires. It does not do this with no exts loaded. Also, If I only apply "Silvery Barbs; ADVATK; ADVSAV" it works as expected.
I'll check it out... thanks for the report!
nephranka
June 26th, 2024, 01:46
I'll check it out... thanks for the report!
Cool!
JustinFreitas
June 26th, 2024, 03:51
I think I found a bug. When I apply the effect: "Silvery Barbs; ADVATK; ADVSKILL; ADVCHK; ADVSAV" (DUR=1 min, expires next roll) from the actions tab of a character sheet to a target, as soon as the CT moves to the target the effect expires. It does not do this with no exts loaded. Also, If I only apply "Silvery Barbs; ADVATK; ADVSAV" it works as expected.
Wow... you are good nephranka! There was 100% a bug... I was calling EffectManager5E.hasEffectCondition() which indirectly has a condition that can expire effects. I replaced those with calls to EffectManager.hasEffect() instead, which doesn't have that side effect.
Go ahead and pull the latest from Forge and verify that your issue is fixed (it is in my testing).
Nice Catch and Thanks Again,
Justin
JustinFreitas
June 26th, 2024, 03:56
My build tool didn't pull some things into the archive... lemme fix that up real quick. Sorry about that.
Edit: Ok, should be good with v3.17 on the Forge. Lemme know if you have more issues with it.
nephranka
June 26th, 2024, 10:30
My build tool didn't pull some things into the archive... lemme fix that up real quick. Sorry about that.
Edit: Ok, should be good with v3.17 on the Forge. Lemme know if you have more issues with it.
3.17 looks to be working now. Thanks for the quick fix! I am glad I could help.
Farratto
September 10th, 2024, 16:41
Hi. Very nice extension, by the way. I'm just wondering if you have plans to automate the new way to "stealth" in 5e 2024? Here is a link to the 2024 free rules for reference:
https://www.dndbeyond.com/sources/dnd/free-rules/rules-glossary#HideAction
JustinFreitas
September 10th, 2024, 18:18
Hi. Very nice extension, by the way. I'm just wondering if you have plans to automate the new way to "stealth" in 5e 2024? Here is a link to the 2024 free rules for reference:
https://www.dndbeyond.com/sources/dnd/free-rules/rules-glossary#HideAction
That is a great question. Thanks for the heads-up. I'll look into it.
JustinFreitas
September 10th, 2024, 18:30
Based on those rules, it looks like it's resolved when the actor takes the Hide action. So Stealth Tracker might not even be necessary with the new ruleset. I'll keep thinking about it and do whatever makes the most sense for the new rules. Thanks again for bringing it up.
Farratto
September 10th, 2024, 18:51
Based on those rules, it looks like it's resolved when the actor takes the Hide action. So Stealth Tracker might not even be necessary with the new ruleset. I'll keep thinking about it and do whatever makes the most sense for the new rules. Thanks again for bringing it up.
I was thinking your existing code could still help quite a bit. Although the initial hide action is just a DC15 Stealth check, the stealth roll outcome is still saved and used as a DC for perception checks for creatures trying to "find" the hidden creature. That is actually quite similar to 2014.
Maybe adding a feature for convenience that would give the invisible condition upon rolling a stealth check 15 or higher? I don't know how hard that would be to add.
What do you think?
JustinFreitas
September 11th, 2024, 00:35
Yeah, I could see the usefulness still. And I could add the Invisible effect if the new ruleset doesn't do that automagically somehow.
BaneTBC
September 11th, 2024, 06:45
And don't forget about the folks who won't actually update to 2024 for various reasons. So the functionality they enjoy today would be desirable going forward, but you'd still want to test things against Test to see if anything gets impacted as is. Not sure if there will be a real way to check against 2014 vs 2024 module\rules being used, so might even be something to look at an options toggle because I would imagine you will use one version or the other, not both. Fantasy Grounds looks to be settling on using 2024 or Legacy between the two.
JustinFreitas
September 11th, 2024, 13:13
And don't forget about the folks who won't actually update to 2024 for various reasons. So the functionality they enjoy today would be desirable going forward, but you'd still want to test things against Test to see if anything gets impacted as is. Not sure if there will be a real way to check against 2014 vs 2024 module\rules being used, so might even be something to look at an options toggle because I would imagine you will use one version or the other, not both. Fantasy Grounds looks to be settling on using 2024 or Legacy between the two.
Yep, sounds good. I'll make sure that it works for 5e players. Thanks for the input.
rocketvaultgames
January 16th, 2025, 19:30
This extension is fantastic.
A couple of questions though...
Would it be possible to add the symbol for 'hidden message' (crossed out eye / red eye depending on theme) to these messages?
63241
63242
Just looking for consistency and to be sure on the GM side of what is being shown to the players.
Separately: If the GM rolls stealth from a PC sheet (double clicking in the TOTAL column of the Skills tab) it forces the roll into the tower. When the player does the same it does not.
Is there any way to force this from the player side as well? You mention in the extension info that you can't do this with scripting, but I was wondering if maybe there is a way these days...
Tangentially, I'd be very interested in being able to force specific roll types by players into the tower so they just never have to do it. (in my case Deception, Insight, Investigation, Perception, Persuasion, Stealth)
It might be beyond the scope of this extensions, but comparing the aforementioned rolls to appropriate passives just like for stealth might be pretty useful (Deception vs. Insight for example).
JustinFreitas
January 16th, 2025, 19:40
Hi rocketvaultgames, I'll see what I can do to fulfill your requests. I had some family stuff come up so any new build might be delayed a week but I know you are a long-time user and would like to accommodate your requests if I can figure out how to do it. More Soon, Justin
rocketvaultgames
January 16th, 2025, 19:43
Hi rocketvaultgames, I'll see what I can do to fulfill your requests. I had some family stuff come up so any new build might be delayed a week but I know you are a long-time user and would like to accommodate your requests if I can figure out how to do it. More Soon, Justin
No worries. Thank you for the help and let me know if there is anything I can do to help test.
MrDDT
January 16th, 2025, 19:54
This extension is fantastic.
A couple of questions though...
Would it be possible to add the symbol for 'hidden message' (crossed out eye / red eye depending on theme) to these messages?
63241
63242
Just looking for consistency and to be sure on the GM side of what is being shown to the players.
Separately: If the GM rolls stealth from a PC sheet (double clicking in the TOTAL column of the Skills tab) it forces the roll into the tower. When the player does the same it does not.
Is there any way to force this from the player side as well? You mention in the extension info that you can't do this with scripting, but I was wondering if maybe there is a way these days...
Tangentially, I'd be very interested in being able to force specific roll types by players into the tower so they just never have to do it. (in my case Deception, Insight, Investigation, Perception, Persuasion, Stealth)
It might be beyond the scope of this extensions, but comparing the aforementioned rolls to appropriate passives just like for stealth might be pretty useful (Deception vs. Insight for example).
All these issues are fixed if you use this ext.
https://forge.fantasygrounds.com/shop/items/1754/view
MrDDT
January 16th, 2025, 20:01
After talking to him more about it on discord, I'm further understanding what he is saying.
He isn't really say about the player can see the summary, or the effect info. Just the fact there is no red eye to show it's hidden from the players so at a glance it's scary to know if it was or wasn't hidden.
MrDDT
January 16th, 2025, 20:47
Reported the non hidden ICON thing to Moonwizard, he is going to look into it.
It's an issue overall for FG, not just this ext. Effects applied even if they are set to GM only, are not displaying the eye in the chat.
JustinFreitas
January 17th, 2025, 23:36
Thanks guys. Yeah, MrDDT, I know what he's saying about the eye in the chat message. I think I might have intentionally hidden that in order to gain chat message usable text width. I might be able to make that show and was just gonna look at it now since I have a few minutes. I'll let y'all know if I get it figured out. Thanks for the suggestion on the other extension to put the other skill rolls to default to tower. Seems useful!
JustinFreitas
January 18th, 2025, 01:49
Ok, v3.18 on the Forge has a new option to show the Hidden (eye) Icon... it defaults to Off, so be sure to flip that option to On to see the Hidden Icon when you use it rocketvaultgames. Enjoy, Justin
rocketvaultgames
January 18th, 2025, 18:32
This is perfect. Thank you for the fast response!
I'm excited to see what's possible on forcing rolls to the tower on other skills if you decide to pursue that.
I think SW still needs to get that 'eyecon' to show for the effect placement, but sounds like Moonwizard is looking into it.
63252
Thanks!
rocketvaultgames
January 21st, 2025, 21:50
Testing this out in our game last night... everything appeared to work correctly except: The player rolling stealth (in the tower) said they were able to see the effect applied to their CT entry (e.g. "Stealth: 26") flash on their screen for a fraction of a second... just long enough to be able to read it...
So it seems like the effect is getting added as VSBL and then getting switched to GM only after being added... at the speed of processing?
Ludd_G
March 5th, 2025, 23:05
Hi Justin,
firstly still loving this extension, it's such a time saver, so thanks again!
I have it set up to allow out of turn and combat stealth, which works just as I'd expect. But if possible I'd still like to be able to manually clear all stealth using the chat command /stealth clear, and it seems that the turn and combat setting is prevent this? Is this as intended, and would it be possible to have the chat command override this and clear all CT stealth entries?
Cheers,
Simon
JustinFreitas
March 5th, 2025, 23:07
I can do that for you Simon. Also, I have my own Clock Adjuster branch that also works on FGC... I saw your post in the other thread and dunno if it's anything you want or not. If so, just say. Gimme a little bit and I'll get the clear added for you... prolly a day or so depending on what comes up in life. Talk Soon, Justin
JustinFreitas
March 5th, 2025, 23:08
Testing this out in our game last night... everything appeared to work correctly except: The player rolling stealth (in the tower) said they were able to see the effect applied to their CT entry (e.g. "Stealth: 26") flash on their screen for a fraction of a second... just long enough to be able to read it...
So it seems like the effect is getting added as VSBL and then getting switched to GM only after being added... at the speed of processing?
I'll look into it when I add the clear for Simon. Thanks for the heads-up.
JustinFreitas
March 6th, 2025, 00:40
Hi Justin,
firstly still loving this extension, it's such a time saver, so thanks again!
I have it set up to allow out of turn and combat stealth, which works just as I'd expect. But if possible I'd still like to be able to manually clear all stealth using the chat command /stealth clear, and it seems that the turn and combat setting is prevent this? Is this as intended, and would it be possible to have the chat command override this and clear all CT stealth entries?
Cheers,
Simon
Give it a shot now... should be what you want. v3.19
RocketVaultGames, I looked at that code and when I add the effect, it's done in one felled swoop... so I'm not sure why the effect is changing after it's added. It should be like that from the get go if the 'Player: Show Stealth Info' option is set to None.
rocketvaultgames
March 6th, 2025, 04:11
Testing this out in our game last night... everything appeared to work correctly except: The player rolling stealth (in the tower) said they were able to see the effect applied to their CT entry (e.g. "Stealth: 26") flash on their screen for a fraction of a second... just long enough to be able to read it...
So it seems like the effect is getting added as VSBL and then getting switched to GM only after being added... at the speed of processing?
Hey, just wanted to check if you were able to replicate this at all... Thanks!
JustinFreitas
March 6th, 2025, 04:55
Not sure what's going on there... as I mentioned in the post above yours, I call a single function, addEffect, so not sure I can do anything about that. Do you have any extensions that override addEffect? Maybe something like that is going on.
Ludd_G
March 6th, 2025, 13:21
Give it a shot now... should be what you want. v3.19
Works brilliantly now!
Cheers,
Simon
rocketvaultgames
March 7th, 2025, 17:03
Not sure what's going on there... as I mentioned in the post above yours, I call a single function, addEffect, so not sure I can do anything about that. Do you have any extensions that override addEffect? Maybe something like that is going on.
Thank you for the reply.
I don't know for sure, but I'm wondering if the way 'addEffect' works... there is a window of time where the effect can be displayed before it realizes it's GMonly and hides it... Usually the window is so small that no one notices, but with lag (or a large db.xml) that window can become perceivable...
nephranka
March 25th, 2026, 11:07
Have you checked this out on TEST? It seems to silent fail. I assume it is because the effect system was overhauled and that might be an issue for this ext.
JustinFreitas
March 25th, 2026, 14:29
Nope, haven't looked. I'll have to check this one out... no timeline for a fix yet. Thanks for letting me know.
JustinFreitas
March 25th, 2026, 14:45
I'm showing it firing correctly so far in some limited testing on the Test environment. I'll do more testing later tonight but some functionality does appear to still be working. More soon...
66933
nephranka
March 25th, 2026, 16:12
False alarm. I missed the last couple of settings and now that they are dialed in it is working fine. Sorry about that!
JustinFreitas
March 25th, 2026, 17:36
All good bud. I'll still take a peek later to make sure it's working correctly. Thanks again.
bwatford
April 27th, 2026, 07:01
In the test channel i am getting this error:
[ERROR] Script execution error: [string "StealthTracker:scripts/stealthtracker.lua"]:706: attempt to call field 'getAbilityEffectsBonus' (a nil value)
JustinFreitas
April 27th, 2026, 12:31
Thanks. I'll have to check it out when I can find some time this week.
JustinFreitas
April 27th, 2026, 14:16
They moved a call to a different location. I put a fix up on the Test environment and if that works, I'll move it to Live (made it backward compatible). Thanks for the heads-up.
bwatford
April 28th, 2026, 07:26
They moved a call to a different location. I put a fix up on the Test environment and if that works, I'll move it to Live (made it backward compatible). Thanks for the heads-up.
Just ran another trial from test
Now getting 1112: attempt to call upvalue 'ActionSkill_onRoll' (a nil value)
JustinFreitas
April 28th, 2026, 14:00
Ok, thanks... got that fixed and had the AI look for any other issues. Updated the version and pushed to the test env. You should have better results this time... your reports have been very helpful.
bwatford
April 28th, 2026, 18:49
Looks like you got it that time.
What would be nice for the 2024 5e ruleset, we know the DC is 15, so if it could apply the stealth score with a invisible effect
Stealth (16); Invisible
and if the roll was below 15 it didn't add the Invisible part, and since it last until the end of their next turn, have it expire after their next turn or if they attack, cast a spell, etc.
That would be full automation.
I actually make them roll in secret so an option to apply the effect GM only would be nice as well.
JustinFreitas
April 28th, 2026, 19:08
Good info... I can look into that. I don't use 2024 so I'm a bit ignorant on those rules and I appreciate you pointing out the differences. The secret option should be doable also. I'll try to do this stuff soon. I noticed other extensions I have need similar treatment. It's always somethin!
Lord Skrolk
May 6th, 2026, 06:11
Just to let you know I am getting an error message for the stealth tracker while rolling skill checks.
The issue I am getting with Stealth Tracker, is if you roll a skill check it doesn't register. It rolls the dice, but no output to FG.
JustinFreitas
May 6th, 2026, 15:11
Thanks for the report. I'll try to get that fixed real soon.
bwatford
May 21st, 2026, 05:20
Is this one been fixed as of yet?
Lord Skrolk
May 21st, 2026, 05:52
Is this one been fixed as of yet?
I believe so, it is working for me again with no issues.
JustinFreitas
May 21st, 2026, 12:33
Should be... report any issues you come across and we'll get them addressed.
MrDDT
June 9th, 2026, 02:31
I noticed there was an update today, but not sure what was updated with this ext.
JustinFreitas
June 9th, 2026, 03:03
Some bugfixes. Details on the forge item page. See problems lemme know.
JustinFreitas
June 9th, 2026, 03:04
v5.3 - Corrected the fallback passive Perception calculation to 10 + Wisdom modifier per 5e RAW (no longer over-adding proficiency for non-proficient creatures), made exhaustion handling FGC/FGU-aware to avoid double-counting under the 2024 ruleset, and hardened several edge cases (nil-safe stealth summary, boolean conversion, and consistent unidentified-name handling for the source actor).
MrDDT
June 9th, 2026, 05:38
Thanks for your hard work.
Powered by vBulletin® Version 4.2.1 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.