Replace Pf2eTools as the PF2e bestiary data source with the Foundry VTT PF2e system (github.com/foundryvtt/pf2e). Pf2eTools is stagnant (last push Feb 2026, "stagnated at v0.8.5"), has no remaster coverage (missing Monster Core and Monster Core 2), and has incomplete ability data (generic feat references, "As X" stubs, unresolved _copy entries).
Foundry VTT PF2e is actively maintained (daily commits, official Paizo partnership), has full remaster coverage (Monster Core: 492, Monster Core 2: 446, plus all post-remaster books), provides complete ability text in HTML, and carries explicit per-creature license tagging (ORC/OGL). 2,500+ creatures total.
The change is contained to adapter-layer code due to the layered architecture:
Index generation script — rewrite to read Foundry one-file-per-creature JSON from packs/pf2e/
Runtime normalization adapter — rewrite to map Foundry system.* structure + items[] array to Pf2eCreature
Fetch URL construction — update base URL and file naming pattern
Domain types (Pf2eCreature, Pf2eBestiaryIndexEntry), stat block component, cache, search hook, and encounter hook remain unchanged.
Data Source Comparison
Pf2eTools (current)
Foundry VTT PF2e
Status
Stagnant
Active (daily commits)
Remaster
No (B1/B2/B3 only)
Full (MC1, MC2, all post-remaster)
Creatures
~2,500 (pre-remaster)
2,500+ (current)
Ability text
Incomplete (stubs, refs)
Full HTML text
License tagging
None
Per-creature ORC/OGL field
Code license
MIT
Apache 2.0
D&D 5e data stays on 5etools — Foundry VTT 5e only has ~300 SRD creatures vs 3,312 from 5etools.
Acceptance Criteria
Index generation script reads Foundry VTT PF2e creature JSON files (one per creature from packs/pf2e/)
Generated PF2e index contains creatures from Monster Core, Monster Core 2, and post-remaster books
Runtime normalization adapter maps Foundry JSON structure (system.*, items[]) to existing Pf2eCreature type
Creature abilities have full text in stat blocks (no "As X" stubs or generic feat references)
Fetch URLs point to Foundry VTT PF2e repo for on-demand source loading
Legacy/pre-remaster creatures are excluded or clearly marked based on publication.remaster field
Existing domain types, stat block component, cache, and search remain unchanged
PF2e creature count is comparable or higher than current index (~2,500+)
## Summary
Replace Pf2eTools as the PF2e bestiary data source with the Foundry VTT PF2e system (github.com/foundryvtt/pf2e). Pf2eTools is stagnant (last push Feb 2026, "stagnated at v0.8.5"), has no remaster coverage (missing Monster Core and Monster Core 2), and has incomplete ability data (generic feat references, "As X" stubs, unresolved `_copy` entries).
Foundry VTT PF2e is actively maintained (daily commits, official Paizo partnership), has full remaster coverage (Monster Core: 492, Monster Core 2: 446, plus all post-remaster books), provides complete ability text in HTML, and carries explicit per-creature license tagging (ORC/OGL). 2,500+ creatures total.
The change is contained to adapter-layer code due to the layered architecture:
- Index generation script — rewrite to read Foundry one-file-per-creature JSON from `packs/pf2e/`
- Runtime normalization adapter — rewrite to map Foundry `system.*` structure + `items[]` array to `Pf2eCreature`
- Fetch URL construction — update base URL and file naming pattern
Domain types (`Pf2eCreature`, `Pf2eBestiaryIndexEntry`), stat block component, cache, search hook, and encounter hook remain unchanged.
## Data Source Comparison
| | Pf2eTools (current) | Foundry VTT PF2e |
|---|---|---|
| Status | Stagnant | Active (daily commits) |
| Remaster | No (B1/B2/B3 only) | Full (MC1, MC2, all post-remaster) |
| Creatures | ~2,500 (pre-remaster) | 2,500+ (current) |
| Ability text | Incomplete (stubs, refs) | Full HTML text |
| License tagging | None | Per-creature ORC/OGL field |
| Code license | MIT | Apache 2.0 |
D&D 5e data stays on 5etools — Foundry VTT 5e only has ~300 SRD creatures vs 3,312 from 5etools.
## Acceptance Criteria
- [x] Index generation script reads Foundry VTT PF2e creature JSON files (one per creature from `packs/pf2e/`)
- [x] Generated PF2e index contains creatures from Monster Core, Monster Core 2, and post-remaster books
- [x] Runtime normalization adapter maps Foundry JSON structure (system.*, items[]) to existing `Pf2eCreature` type
- [x] Creature abilities have full text in stat blocks (no "As X" stubs or generic feat references)
- [x] Fetch URLs point to Foundry VTT PF2e repo for on-demand source loading
- [x] Legacy/pre-remaster creatures are excluded or clearly marked based on `publication.remaster` field
- [x] Existing domain types, stat block component, cache, and search remain unchanged
- [x] PF2e creature count is comparable or higher than current index (~2,500+)
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
Replace Pf2eTools as the PF2e bestiary data source with the Foundry VTT PF2e system (github.com/foundryvtt/pf2e). Pf2eTools is stagnant (last push Feb 2026, "stagnated at v0.8.5"), has no remaster coverage (missing Monster Core and Monster Core 2), and has incomplete ability data (generic feat references, "As X" stubs, unresolved
_copyentries).Foundry VTT PF2e is actively maintained (daily commits, official Paizo partnership), has full remaster coverage (Monster Core: 492, Monster Core 2: 446, plus all post-remaster books), provides complete ability text in HTML, and carries explicit per-creature license tagging (ORC/OGL). 2,500+ creatures total.
The change is contained to adapter-layer code due to the layered architecture:
packs/pf2e/system.*structure +items[]array toPf2eCreatureDomain types (
Pf2eCreature,Pf2eBestiaryIndexEntry), stat block component, cache, search hook, and encounter hook remain unchanged.Data Source Comparison
D&D 5e data stays on 5etools — Foundry VTT 5e only has ~300 SRD creatures vs 3,312 from 5etools.
Acceptance Criteria
packs/pf2e/)Pf2eCreaturetypepublication.remasterfield