PF2e Perception & Stealth

Flow of Control Reference — Player Core

Stealth Actions Flow

From the stealther’s perspective — how detection states change based on actions you take

Observed
Hidden
Undetected
Unnoticed
Action / Roll
%%{init: {'theme':'dark','themeVariables':{'background':'#161210','primaryColor':'#193a14','primaryTextColor':'#e8d5b0','primaryBorderColor':'#3a7c32','lineColor':'#9a7e56','secondaryColor':'#3e2e06','tertiaryColor':'#1a2840','edgeLabelBackground':'#211a13','clusterBkg':'#211a13'}}}%% flowchart LR classDef obs fill:#193a14,stroke:#3a7c32,color:#b8e8b0,rx:30 classDef hid fill:#3e2e06,stroke:#a07a10,color:#f0e060 classDef und fill:#3e1a06,stroke:#a04010,color:#f0a868 classDef unn fill:#300c0c,stroke:#8a1010,color:#f07070 classDef act fill:#1a2840,stroke:#4080b0,color:#90c0e8 classDef roll fill:#201828,stroke:#6040a0,color:#c0a0e8 OBS(["OBSERVED"]):::obs HID(["HIDDEN"]):::hid UND(["UNDETECTED"]):::und UNN(["UNNOTICED"]):::unn HIDE["HIDE - needs cover or concealment - secret Stealth roll vs Perception DC - Standard cover +2 - Greater cover +4"]:::act SNEAK["SNEAK - cover at START and END - move ≤ half Speed - secret Stealth roll vs Perception DC"]:::act OBS --> HIDE HIDE -->|"✓ Success"| HID HIDE -->|"✗ Failure"| OBS HID --> SNEAK HID -->|"Non-stealthy action or STRIKE"| OBS HID -->|"STEP with cover / concealment"| HID HID -->|"Unobtrusive action GM may require Stealth"| HID SNEAK -->|"✓ Success"| UND SNEAK -->|"✗ Failure"| HID SNEAK -->|"✗✗ Crit Failure (not invisible)"| OBS UND -->|"SNEAK ✓ Success"| UND UND -->|"Speak or make loud noise"| OBS UNN -.->|"may also be"| UND UNN -->|"Speak, loud noise or non-stealthy action"| OBS

Key Rules

  • HIDE only rolls against creatures that are currently observing you. If a creature already considers you hidden or undetected, you simply retain that condition — HIDE does not improve your state from undetected.
  • SNEAK requires cover or concealment at both the start and end of your movement. You move up to half your Speed.
  • Taking any non-unobtrusive action while hidden immediately makes you Observed.
  • A STRIKE from a hidden or undetected position makes you Observed after the attack (target now knows your location).
  • An Invisible creature that critically fails a Sneak roll becomes Hidden rather than Observed, since it cannot be seen.
  • AVOID NOTICE (Exploration): Roll Stealth to start an encounter Hidden or Undetected rather than Observed.

Detection & Targeting Flow

From the detector’s perspective — how to determine a creature’s condition and what you can do about it

Observed
Hidden
Undetected
Unnoticed
Action / Roll
Decision
%%{init: {'theme':'dark','themeVariables':{'background':'#161210','primaryColor':'#193a14','primaryTextColor':'#e8d5b0','primaryBorderColor':'#8b6914','lineColor':'#a08060','secondaryColor':'#3e2e06','tertiaryColor':'#1a2840','edgeLabelBackground':'#211a13','clusterBkg':'#211a13'}}}%% flowchart TD classDef obs fill:#193a14,stroke:#3a7c32,color:#b8e8b0 classDef hid fill:#3e2e06,stroke:#a07a10,color:#f0e060 classDef und fill:#3e1a06,stroke:#a04010,color:#f0a868 classDef unn fill:#300c0c,stroke:#8a1010,color:#f07070 classDef act fill:#1a2840,stroke:#4080b0,color:#90c0e8 classDef dec fill:#2a2010,stroke:#806040,color:#d0c0a0 START(["What can you perceive?"]):::dec Q1["Can your precise sense detect it?"]:::dec Q2["Do you know it is nearby?"]:::dec Q3["Do you know which space?"]:::dec OBS(["OBSERVED Target normally If concealed: DC 5 flat check"]):::obs HID(["HIDDEN You know the space You are off-guard to it DC 11 flat check to target"]):::hid UND(["UNDETECTED You do not know the space You are off-guard to it Guess a square - GM rolls secretly"]):::und UNN(["UNNOTICED No idea it exists Cannot target at all"]):::unn SEEK_HID["SEEK from Hidden Perception vs Stealth DC rolled secretly by GM"]:::act SEEK_UND["SEEK from Undetected Perception vs Stealth DC rolled secretly by GM"]:::act START --> Q1 Q1 -->|YES| OBS Q1 -->|NO| Q2 Q2 -->|NO| UNN Q2 -->|YES| Q3 Q3 -->|YES| HID Q3 -->|NO| UND HID -->|Use SEEK| SEEK_HID UND -->|Use SEEK| SEEK_UND SEEK_HID -->|Critical Success| OBS SEEK_HID -->|Success precise sense| OBS SEEK_HID -->|Success imprecise or invisible| HID SEEK_HID -->|Failure| HID SEEK_UND -->|Critical Success| OBS SEEK_UND -->|Success| HID SEEK_UND -->|Failure| UND

Targeting Summary

  • Observed: Attack normally. If also concealed, attempt a DC 5 flat check before rolling — fail means no effect.
  • Hidden: Attempt a DC 11 flat check before rolling. On a fail, your actions (and spell slots, resources) are wasted. You remain off-guard to the creature regardless.
  • Undetected: Declare a square to attack. The GM secretly rolls both the flat check and your attack roll. The GM will not say whether you missed due to the flat check, the attack roll, or choosing the wrong square.
  • Unnoticed: You cannot target the creature directly. Area effects still work normally against undetected creatures.
  • Invisible creature starts as Hidden if you were already observing it when it turned invisible (you last know where it was). It can then Sneak to become Undetected.
  • Off-guard: When a creature is hidden or undetected from you, you are off-guard to it — you take a −2 circumstance penalty to your AC against its attacks. The hidden/undetected creature is not automatically off-guard to you.

Situation Simulator

Step through detection state changes interactively — choose an action to see what happens next

Start as:
Current State
Observed
What happens?
History