A module that adds perception vs stealth testing to Foundry's visibility tests. It filters out any objects with the Hidden condition if the viewing Perception value fails to beat the object's Stealth value.
The last stealth and perception rolls for each token or actor is recorded (banked) and used to control token visibility on the canvas. The roll results are displayed in the token HUD for GMs to see as token buttons with an input box on the bottom: perception is on the left, stealth is on the right. Changing the values in these input boxes will alter the stored results for any future visibility tests while that roll remains active.
Perception banking has an overall token control Bank perception rolls which the GM uses to control when perception check banking is enabled. Toggling it off will also clear out all banked perception rolls for the current scene.
A game setting individually controls whether stealth or perception roll results are banked in the actor or token.
- Default for perception
- Banked rolls are deleted by deleting the value in the token button
- No icons are added to the token for a cleaner look
- Default for stealth
- Banked rolls are actually stored in an effect or item on the actor.
- Banked rolls are deleted by deleting the effect they are banked in.
- Rolling a stealth skill check will apply the Hidden effect to the actor and bank the result there for later comparisons, replacing an existing banking if the Hidden effect is already present. Stealthy's default Hidden effect can be overriden by adding a custom Hidden effect in Convenient Effects or Condition Lab & Triggler. See Handling Hidden removal
- Rolling a perception check will add a Spot effect to the actor to bank the roll. The default Spot effect can be overriden as well.
A GM can select which detection modes should be able to be affected by stealth checks. If the Vision5e module is active, the configuration table will include all of the additional detection modes that Vision5e provides.
The GM has options for allowing stealthy tokens to be seen by other tokens of the same disposition.
Automatic Hidden Door detection
Doors can have a detection range that will hide the door control until the viewing token is within the given range. Doors can also have an optional stealth value; tokens with a sufficiently high perception effect will be able to see a hidden door if it beats that door's stealth.
THIS DOES NOT APPLY TO FOUNDRY'S SECRET DOORS!!! I tried and failed to to get the secret doors to play nice - it turns out to be way easier to conditionally hide a regular door from players than to conditionally show a secret door to them.
It doesn't really belong in this module but I want to be able to press the End key to end my turn, and so I added an editable keybinding that will allow owners of the current combatant to do so.
Stealthy supports the following systems (specific notes about a given system are in the Wiki):
I've abandoned trying to get this to work on PF2e. Instead, I use PF2e Perception and built a new module to help with the stealth-as-initiative vs perception checks: PF2e Avoid Notice
Handling Hidden removal
Stealthy will not automatically remove a banked stealth roll - the dnd5e Skulker feat demonstrates why removing Hidden gets complicated without heavier automation support provided by modules like the excellent Midi-QOL which handles this for my games. I suggest Visual Active Effects as an easier way to manually remove it, especially for low automation level games.
Stealthy will adapt to the presence of any of the following modules should they be active: