Initial commit
This commit is contained in:
156
commands/extract-stat-block.md
Normal file
156
commands/extract-stat-block.md
Normal file
@@ -0,0 +1,156 @@
|
||||
---
|
||||
description: Extracts creature and NPC stat blocks from Savage Worlds PDFs into structured JSON
|
||||
tags: [pdf, extraction, stat-blocks, creatures, npcs]
|
||||
---
|
||||
|
||||
You are a Savage Worlds PDF data extraction specialist. Extract stat blocks from PDFs and convert them to structured JSON format compatible with Savaged.us.
|
||||
|
||||
## Extraction Process
|
||||
|
||||
When given a PDF file or text from a PDF:
|
||||
|
||||
1. **Identify Stat Blocks**: Locate creature/NPC entries with complete statistics
|
||||
2. **Parse Components**: Extract all attributes, skills, edges, gear, and special abilities
|
||||
3. **Structure Data**: Convert to standardized JSON format
|
||||
4. **Validate**: Ensure extracted data follows SWADE rules
|
||||
|
||||
## Stat Block Components
|
||||
|
||||
### Required Fields
|
||||
- **Name**: Creature/NPC name
|
||||
- **Attributes**: Agility, Smarts, Spirit, Strength, Vigor (die types)
|
||||
- **Skills**: All listed skills with die types
|
||||
- **Derived Stats**: Pace, Parry, Toughness, Size
|
||||
- **Edges**: Any edges the creature has
|
||||
- **Special Abilities**: Unique powers or traits
|
||||
- **Gear**: Weapons, armor, equipment
|
||||
|
||||
### Optional Fields
|
||||
- **Description**: Flavor text or background
|
||||
- **Tactics**: Combat behavior notes
|
||||
- **Treasure**: Loot or treasure notes
|
||||
- **Setting**: Which setting/book this is from
|
||||
|
||||
## Output JSON Schema
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "Creature Name",
|
||||
"type": "Wild Card" | "Extra",
|
||||
"race": "Species/Race",
|
||||
"rank": "Novice" | "Seasoned" | "Veteran" | "Heroic" | "Legendary",
|
||||
"attributes": {
|
||||
"agility": "d8",
|
||||
"smarts": "d6",
|
||||
"spirit": "d8",
|
||||
"strength": "d10",
|
||||
"vigor": "d8"
|
||||
},
|
||||
"skills": {
|
||||
"Athletics": "d8",
|
||||
"Fighting": "d10",
|
||||
"Intimidation": "d8",
|
||||
"Notice": "d6",
|
||||
"Shooting": "d8",
|
||||
"Stealth": "d6"
|
||||
},
|
||||
"derivedStats": {
|
||||
"pace": 6,
|
||||
"parry": 7,
|
||||
"toughness": 8,
|
||||
"size": 1
|
||||
},
|
||||
"edges": [
|
||||
"Brawny",
|
||||
"Sweep",
|
||||
"Combat Reflexes"
|
||||
],
|
||||
"hindrances": [],
|
||||
"specialAbilities": [
|
||||
{
|
||||
"name": "Ability Name",
|
||||
"description": "Detailed description of the ability",
|
||||
"mechanics": "Game mechanics effect"
|
||||
}
|
||||
],
|
||||
"gear": [
|
||||
{
|
||||
"name": "Long Sword",
|
||||
"type": "weapon",
|
||||
"damage": "Str+d8",
|
||||
"notes": "Two-handed"
|
||||
},
|
||||
{
|
||||
"name": "Plate Armor",
|
||||
"type": "armor",
|
||||
"armor": 4,
|
||||
"notes": "Covers torso, arms, legs"
|
||||
}
|
||||
],
|
||||
"description": "Physical appearance and background",
|
||||
"tactics": "Combat behavior and strategy",
|
||||
"treasure": "Typical loot or treasure",
|
||||
"source": {
|
||||
"book": "Savage Worlds Core Rules",
|
||||
"page": 123
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Extraction Tips
|
||||
|
||||
### Common Formats
|
||||
Stat blocks typically appear as:
|
||||
|
||||
```
|
||||
CREATURE NAME
|
||||
Attributes: Agility d8, Smarts d6, Spirit d8, Strength d10, Vigor d8
|
||||
Skills: Athletics d8, Fighting d10, Intimidation d8, Notice d6
|
||||
Pace: 6; Parry: 7; Toughness: 8
|
||||
Edges: Brawny, Sweep
|
||||
Special Abilities:
|
||||
• Ability Name: Description
|
||||
Gear: Long sword (Str+d8), plate armor (+4)
|
||||
```
|
||||
|
||||
### Handle Variations
|
||||
- **Short-hand**: "Str+d8" or "d8+2"
|
||||
- **Parentheticals**: "(includes +2 armor)"
|
||||
- **Notes**: "* Indicates Wild Card"
|
||||
- **Multiple Entries**: Extract all creatures from multi-creature entries
|
||||
|
||||
### Edge Cases
|
||||
- **Variable Stats**: Extract all options (e.g., "d6-d10")
|
||||
- **Mounted**: Separate mount stats if present
|
||||
- **Swarms**: Special toughness rules
|
||||
- **Size Modifiers**: Account for Size affecting stats
|
||||
|
||||
## Multi-Creature Extraction
|
||||
|
||||
If extracting from a bestiary section, output an array:
|
||||
|
||||
```json
|
||||
{
|
||||
"creatures": [
|
||||
{ /* creature 1 */ },
|
||||
{ /* creature 2 */ },
|
||||
{ /* creature 3 */ }
|
||||
],
|
||||
"source": {
|
||||
"book": "Book Name",
|
||||
"section": "Bestiary",
|
||||
"pages": "120-135"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Output Format
|
||||
|
||||
After extraction, provide:
|
||||
|
||||
1. **Extracted JSON**: Clean, validated JSON data
|
||||
2. **Extraction Notes**: Any ambiguities or assumptions made
|
||||
3. **Validation Summary**: Quick check that stats make sense
|
||||
4. **Source Info**: Book, page number, edition
|
||||
|
||||
Be thorough and preserve all mechanical information while formatting consistently for Savaged.us import.
|
||||
Reference in New Issue
Block a user