Three related gaps in existing PF2e stat block sections where Foundry VTT data is available but currently discarded during normalization.
Attack effects
Melee items have system.attackEffects.value (e.g., ["grab"], ["lich-siphon-life"]) linking on-hit effects to attacks. In official PF2e format, attacks read "Damage 2d12+7 piercing plus Grab". Currently the damage is shown but the "plus Grab" part is missing. The ability itself (Grab, Knockdown, etc.) is visible as a separate entry, but the inline link to the specific attack is not.
Ability frequency
Action items have system.frequency with max and per fields (e.g., {max: 1, per: "day"}). Without this, limited-use abilities like Drain Soul Cage appear unlimited. Should render as "(1/day)" or "(1/round)" alongside the ability name.
Perception details
system.perception.details contains qualifying text like "smoke vision" that should appear on the perception line alongside senses. Currently only the senses array is extracted.
Acceptance Criteria
Attack lines show inline on-hit effects (e.g., "plus Grab", "plus Siphon Life") after the damage
Limited-use abilities display their frequency (e.g., "(1/day)", "(1/round)") alongside the ability name
Perception details text (e.g., "smoke vision") appears on the perception line alongside senses
Attacks without on-hit effects and abilities without frequency limits render unchanged
## Summary
Three related gaps in existing PF2e stat block sections where Foundry VTT data is available but currently discarded during normalization.
### Attack effects
Melee items have `system.attackEffects.value` (e.g., `["grab"]`, `["lich-siphon-life"]`) linking on-hit effects to attacks. In official PF2e format, attacks read "Damage 2d12+7 piercing **plus Grab**". Currently the damage is shown but the "plus Grab" part is missing. The ability itself (Grab, Knockdown, etc.) is visible as a separate entry, but the inline link to the specific attack is not.
### Ability frequency
Action items have `system.frequency` with `max` and `per` fields (e.g., `{max: 1, per: "day"}`). Without this, limited-use abilities like Drain Soul Cage appear unlimited. Should render as "(1/day)" or "(1/round)" alongside the ability name.
### Perception details
`system.perception.details` contains qualifying text like "smoke vision" that should appear on the perception line alongside senses. Currently only the `senses` array is extracted.
## Acceptance Criteria
- [x] Attack lines show inline on-hit effects (e.g., "plus Grab", "plus Siphon Life") after the damage
- [x] Limited-use abilities display their frequency (e.g., "(1/day)", "(1/round)") alongside the ability name
- [x] Perception details text (e.g., "smoke vision") appears on the perception line alongside senses
- [x] Attacks without on-hit effects and abilities without frequency limits render unchanged
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Three related gaps in existing PF2e stat block sections where Foundry VTT data is available but currently discarded during normalization.
Attack effects
Melee items have
system.attackEffects.value(e.g.,["grab"],["lich-siphon-life"]) linking on-hit effects to attacks. In official PF2e format, attacks read "Damage 2d12+7 piercing plus Grab". Currently the damage is shown but the "plus Grab" part is missing. The ability itself (Grab, Knockdown, etc.) is visible as a separate entry, but the inline link to the specific attack is not.Ability frequency
Action items have
system.frequencywithmaxandperfields (e.g.,{max: 1, per: "day"}). Without this, limited-use abilities like Drain Soul Cage appear unlimited. Should render as "(1/day)" or "(1/round)" alongside the ability name.Perception details
system.perception.detailscontains qualifying text like "smoke vision" that should appear on the perception line alongside senses. Currently only thesensesarray is extracted.Acceptance Criteria