Switch PF2e data source from Pf2eTools to Foundry VTT #30

Closed
opened 2026-04-08 12:51:50 +02:00 by dostulata · 0 comments
Owner

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

  • 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+)
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dostulata/initiative#30