This module will add the ability to set conditional covers and visibility between tokens on a scene, it will also automates covers, light exposure, darkness and more
or Stripe directly
Important Notes:
- using the
Shared party vision
PF2e metagame setting will break the conditional visibilities for players. - the module doesn't add, modify or remove any data on the actors themselves, it only adds a very small amount of data on tokens. due to the temporary nature of tokens and with the module preventing its own data from being copied from one token to another, the module's footprint on your world is insignificant
- to achieve everything that was needed, quite a lot of core foundry and pf2e system parts have been overridden, because of that, it may not play well with some other modules, especially any module that also modify the detection part of foundry (sight, hearring, ...), those will most likely see issues when paied with this module
Bullet points:
-
the GM can use a new icon (eye) in the token HUD to open the Perception menu for that token, in that menu, you can manually select the conditional covers and visibilities this token has against the other tokens in the scene
-
hovering over a token will display the conditional covers and visibilities other tokens in the scene have gainst this one
-
the module will automatically set newly created hidden tokens (holding
alt
before dropping it onto the scene) asunnoticed
from all targeted tokens -
the module will hide tokens that are undetected from the currently selected tokens for the GM
-
the module will hide tokens that are undetected from any owned token in the scene for the players
-
the module allows players to target undetected tokens from the combat tracker
-
the module can automatically check if a token is in bright light, dim light or in darkness
-
the module can automatically check for standard covers (2 methods to test it are offered)
-
the module can automatically check for covers generated by other tokens, it only applies if there a minimum distance of 1 square between the attacker and the target
-
you can override conditional and automated covers in the attack modifiers window (the one that automatically appear on all attacks or when holding shift)
-
the module automatically applies covers modifiers on attacks
-
the module automatically applies the flat-footed modifier on attack when a token is hidden/undetected from another token
-
the module automatically roll a flat-check roll before an attack on a token that is concealed/hidden from the attacker and will cancel the attack when failed
-
the module handles attacking an undetected token by rolling a blind flat-check and attack roll
-
the module override the
Take Cover
system action, when used with targets, conditional covers will be applied instead of using the system effect -
the module override the
Hide
system action to be able to apply conditional hidden, the module will automatically roll against the other token's perception DC ; you can target tokens to narrow down which should be affected -
the module override the
Seek
system action, it will offer the ability to create a template that will automatically be used to target undetected/hidden token and roll against their stealth DC -
the module add the
Point Out
action, which can be found with the other system actionsgame.pf2e.actions.get('point-out')
, if you have a target when using it, the module will modify the target's conditional visibility against the allies of the actor that initiated the action -
there is a lot of functions exposed in
game.modules.get('pf2e-perception')
that can be used, some even have a debug mode to display the computation likegetCreatureCover
,hasStandardCover
orinBrightLight
-
the module handles darkness by using templates, some spells will see their templates automatically turned into darkness templates and you can create darkness templates yourself via the API
-
the module handles mist templates the same way it does for darkness ones
-
the module handle the
invisible
condition by forcing thehidden
state on the token if not already
- you can register you own wall/creature cover calculation function if you need something different or more in depth (it needs to be registered after the foundry
init
hook)
game.modules.get("pf2e-perception").custom.getWallCover = (
originToken,
targetToken,
debug = false
) => "none" | "lesser" | "standard" | "greater" | "greater-prone";
game.modules.get("pf2e-perception").custom.getCreatureCover = (
originToken,
targetToken,
{ perception: PerceptionRules, debug = false }
) => "none" | "lesser" | "standard" | "greater" | "greater-prone";
take a look at the wiki to learn how the module's Rule Element
works and also some already pre-designed feats, effects and macros to illustrate it
the list of all the function exposed in the global can be found in the wiki
You can see the changelog HERE