PROJECT DOCUMENTATION

DOCS

Documentation is evolving as the game progresses — expect updates with each new release.

Custom Datapacks

Custom Datapacks

A datapack is a folder containing all the data and images you need to build your own wrestling universe in Booker Blitz. Instead of playing with the default promotions and wrestlers, you can create your own fictional roster, promotions, and championship histories.

Every datapack consists of two JSON files and an images folder.

What You Need

The Core Files

A datapack requires exactly two data files:

  • wrestlers.json — Contains all the individual wrestlers, managers, and staff members in your universe
  • promotions.json — Contains all your wrestling promotions, their brands, championships, shows, and events

The Images Folder

A images folder with three subfolders:

images/
├── people/
│   ├── wrestler-0001.webp
│   ├── wrestler-0002.webp
│   └── ... (one image per wrestler)
├── belts/
│   ├── title-0001.webp
│   ├── title-0002.webp
│   └── ... (one image per championship)
└── logos/
    ├── gaw.png
    ├── krp.png
    └── ... (one image per promotion or brand)

Format notes:

  • people images should be portrait-oriented (headshots or upper-body shots)
  • belts images should show the championship title design clearly
  • logos should be promotion or brand logos
  • Supported formats: PNG, WebP, JPG

Wrestlers.json: Building Your Roster

This file is an array of wrestler objects. Each object represents one person in your world.

Wrestler Structure

{
  "id": 1,
  "name": "John Champion",
  "type": "wrestler",
  "gender": "M",
  "picture": "wrestler-0001.webp",
  "realName": "John Smith",
  "nickname": "The Champion",
  "base": "USA",
  "birthplace": "New York, NY",
  "dateOfBirth": "1990-03-15",
  "debut": "2010-06-20",
  "height": 190,
  "weight": 100,
  "story": "A hometown hero who worked his way up from open challenges to main event status.",
  "style": "all rounder",
  "presentation": "face",
  "ability": 85,
  "potentialAbility": 92,
  "charisma": 78,
  "micSkills": 80,
  "hardcoreAbility": 60,
  "injuryProne": 15,
  "popularity": 75,
  "prestige": "high",
  "morale": "great",
  "finisher": "The Finishinator",
  "finisherType": "power",
  "masked": false,
  "retired": false,
  "promotionId": 1,
  "record": {
    "wins": 150,
    "losses": 45,
    "draws": 5
  },
  "history": {
    "matches": [],
    "jobs": [],
    "titles": []
  },
  "managerId": 0,
  "acceptsIndieBookings": false
}

Key Wrestler Attributes

Identity:

  • id — Unique number for this wrestler (must be unique across the entire file)
  • name — Ring name
  • realName — Real name (optional)
  • nickname — Stage nickname (optional)
  • picture — Filename in the images/people folder

Basics:

  • type — What role they play: wrestler, manager, commentator, interviewer, referee, writer, medic, scout, businessperson
  • genderM, F, or O
  • base — Where they're from (e.g., USA, Japan, Mexico, UK)
  • birthplace — City/region
  • dateOfBirth — Date string (ISO format: YYYY-MM-DD)
  • debut — When they debuted in the industry

Physical:

  • height — In centimeters
  • weight — In kilograms

In-Ring Attributes (0-100):

  • ability — Overall wrestling quality
  • potentialAbility — Maximum they can reach
  • charisma — Star power and crowd connection
  • micSkills — Promo and interview ability
  • hardcoreAbility — Ability in extreme/hardcore matches
  • injuryProne — Higher = more likely to get injured (0-100)

Character:

  • story — A short bio or narrative (1-2 sentences)
  • style — Wrestling style: technical, high flyer, powerhouse, striker, submission, hardcore, all rounder, comedy
  • presentationface (hero), heel (villain), or tweener (neutral)
  • finisher — Name of their finishing move
  • finisherType — How they finish: strike, submission, power, aerial, counter
  • maskedtrue if they wear a mask

Status:

  • morale — Current morale level: broken, poor, fair, good, great, excellent
  • popularity — How over they are (0-100)
  • prestige — Career status: low, mid, high
  • retiredtrue if retired (can return with returnDate)
  • promotionId — Which promotion they work for (reference the ID from promotions.json). Use 0 or leave undefined for free agents

Match Record:

  • record.wins, record.losses, record.draws — Lifetime stats

Management:

  • managerId — ID of their manager (if any)
  • acceptsIndieBookingstrue if they'll book independent shows while signed

Empty Arrays:

  • history.matches — Filled by the game when matches happen
  • history.jobs — Filled by the game with job history
  • history.titles — Filled by the game when they win championships

Staff Members

Non-wrestlers use the same structure but with optional staffAttributes. For example, a GM, road agent, or trainer:

{
  "id": 100,
  "name": "Sarah Booker",
  "type": "writer",
  "gender": "F",
  "picture": "wrestler-0100.webp",
  "base": "USA",
  "birthplace": "Los Angeles, CA",
  "dateOfBirth": "1985-09-10",
  "debut": "2005-01-01",
  "height": 165,
  "weight": 60,
  "story": "A veteran writer known for building consistent feuds.",
  "morale": "excellent",
  "popularity": 40,
  "prestige": "high",
  "promotionId": 1,
  "staffAttributes": {
    "bookingLogic": 85,
    "storytelling": 90,
    "productFit": 75,
    "riskTaking": 65
  },
  "record": {
    "wins": 0,
    "losses": 0,
    "draws": 0
  },
  "history": {
    "matches": [],
    "jobs": [],
    "titles": []
  },
  "managerId": 0,
  "acceptsIndieBookings": false
}

Staff Attributes (0-100, vary by role):

  • GM/Booker: bookingLogic, storytelling, productFit, riskTaking
  • Road Agent/Producer: matchLayout, psychology, workerManagement
  • Trainer/Coach: trainingIntensity, technicalCoaching, characterCoaching
  • Medical: diagnosis, rehabilitation, prevention
  • PR/Social Media: mediaHandling, brandBuilding, socialMediaSavvy
  • Referee: ruleKnowledge, positioning, reactionSpeed, consistency, awareness
  • Scout: judgement

Wrestlers.json Tips

  • Keep wrestler IDs sequential and unique — start at 1 and count up
  • Empty history arrays are important — the game fills these as you play
  • Set promotionId to match a promotion's ID from promotions.json
  • Wrestlers can be free agents (leave promotionId as 0 or undefined)
  • Finisher type matters — it affects how they can win matches
  • Set realistic relative stats — a young talent might have lower ability but high potentialAbility

Promotions.json: Building Your Universe

This file is an array of promotion objects. Each promotion is a wrestling company with brands, championships, shows, and events.

Promotion Structure

{
  "id": 1,
  "fullName": "Global Apex Wrestling",
  "shortName": "GAW",
  "base": "USA",
  "logo": "gaw.png",
  "level": 10,
  "balance": 50000000,
  "momentum": "burning",
  "audienceSize": "big",
  "enforceBrandSplit": true,
  "houseShowAttendance": "big",
  "houseShowCostLevel": "high",
  "houseShowsPerMonth": 12,
  "houseShowsPrestige": "high",
  "houseShowTicketPrice": "premium",
  "houseShowRotation": [],
  "keyStaff": {
    "owner": {
      "name": "Richard Hartley",
      "id": 43,
      "pic": "wrestler-0043.webp"
    },
    "gm": {
      "name": "Jane Manager",
      "id": 400,
      "pic": "wrestler-0400.webp"
    },
    "booker": [],
    "writers": [],
    "scouts": [],
    "medicTeam": [],
    "referees": [],
    "commentators": [],
    "interviewer": []
  },
  "brands": [
    {
      "id": 1,
      "name": "Thunder",
      "prestige": "high",
      "color": "#FF6B00",
      "logo": "thunder.png",
      "roster": [
        {
          "name": "John Champion",
          "id": 1,
          "pic": "wrestler-0001.webp"
        }
      ],
      "titles": [],
      "keyStaff": {
        "gm": null,
        "writers": [],
        "commentators": [],
        "referees": [],
        "booker": [],
        "owner": null,
        "medicTeam": [],
        "scouts": [],
        "interviewer": [],
        "roadAgent": [],
        "producer": []
      }
    }
  ],
  "shows": [
    {
      "name": "Thunder Weekly",
      "prestige": "high",
      "duration": 180,
      "regularity": "weekly",
      "day": "monday",
      "size": "big",
      "attendance": "big",
      "ticketPrice": "medium",
      "rating": 8.5,
      "momentum": "hot",
      "history": [],
      "lastResults": [],
      "keyStaff": {
        "gm": null,
        "writers": [],
        "commentators": [],
        "referees": [],
        "booker": [],
        "owner": null,
        "medicTeam": [],
        "scouts": [],
        "interviewer": []
      }
    }
  ],
  "ppvs": [
    {
      "name": "Apex Summit",
      "prestige": "high",
      "duration": 180,
      "date": "january",
      "size": "big",
      "attendance": "big",
      "ticketPrice": "premium",
      "history": [],
      "lastResults": []
    }
  ],
  "titles": [
    {
      "name": "GAW World Championship",
      "prestige": "high",
      "card": "upper",
      "champion": [
        {
          "name": "John Champion",
          "id": 1,
          "pic": "wrestler-0001.webp"
        }
      ],
      "championName": "Champion",
      "daysHeld": 365,
      "defences": 12,
      "numberOfHolders": 1
    }
  ],
  "storylines": [],
  "teams": [],
  "history": {
    "events": [],
    "monthlyBalance": [],
    "monthlyMomentum": [],
    "departures": [],
    "arrivals": []
  },
  "summary": "A detailed description of your promotion's history, style, and culture.",
  "tournaments": []
}

Key Promotion Attributes

Identity:

  • id — Unique ID (must be unique in promotions.json)
  • fullName — Full promotion name
  • shortName — Abbreviation (e.g., GAW, KRP)
  • base — Where it operates (e.g., USA, Japan, Mexico, UK)
  • logo — Filename in images/logos folder

Business:

  • level — Prestige/tier (1-10, where 10 is world-class)
  • balance — Starting cash in dollars
  • momentum — Current momentum: frozen, low, medium, hot, burning
  • audienceSize — Default crowd size: small, medium, big

House Shows (Smaller Live Events):

  • houseShowAttendance — Expected attendance
  • houseShowCostLevel — How expensive to run: free, low, medium, high, premium
  • houseShowsPerMonth — How many per month
  • houseShowsPrestige — Prestige gain: low, mid, high
  • houseShowTicketPrice — Ticket cost tier

Staff:

  • keyStaff.owner — Company owner
  • keyStaff.gm — General manager
  • keyStaff.booker — Booking committee
  • keyStaff.writers — Story writers
  • keyStaff.scouts — Talent scouts
  • keyStaff.medicTeam — Medical staff
  • keyStaff.referees — Active referees
  • keyStaff.commentators — Broadcast talent
  • keyStaff.interviewer — Interview talent

Each is a reference object with name, id, and optional pic.

Brands

A promotion can have multiple brands (separate rosters/shows). For example, GAW has Thunder and Impact.

{
  "id": 1,
  "name": "Thunder",
  "prestige": "high",
  "color": "#FF6B00",
  "logo": "thunder.png",
  "roster": [
    {
      "name": "John Champion",
      "id": 1,
      "pic": "wrestler-0001.webp"
    }
  ],
  "titles": [],
  "keyStaff": { /* ... */ }
}
  • roster — Array of references to wrestlers assigned to this brand
  • titles — Array of championships exclusive to this brand (use the Title structure)
  • keyStaff — Brand-specific management

Shows (Regular Weekly Events)

{
  "name": "Thunder Weekly",
  "prestige": "high",
  "duration": 180,
  "regularity": "weekly",
  "day": "monday",
  "size": "big",
  "attendance": "big",
  "ticketPrice": "medium",
  "rating": 8.5,
  "momentum": "hot",
  "history": [],
  "lastResults": [],
  "keyStaff": { /* ... */ }
}
  • duration — Minutes per show (e.g., 180 for 3 hours)
  • regularitysingle show, weekly, biweekly, monthly
  • day — Day of week: monday, tuesday, etc.
  • rating — Current show quality (0-10)
  • momentum — Show momentum status

PPVs (Premium Pay-Per-View Events)

{
  "name": "Apex Summit",
  "prestige": "high",
  "duration": 180,
  "date": "january",
  "size": "big",
  "attendance": "big",
  "ticketPrice": "premium",
  "history": [],
  "lastResults": []
}
  • date — Month: january, february, ... december
  • duration — Minutes (typically 180 or higher for PPVs)
  • prestige — Event prestige: low, mid, high

Championships (Titles)

{
  "name": "GAW World Championship",
  "prestige": "high",
  "card": "upper",
  "champion": [
    {
      "name": "John Champion",
      "id": 1,
      "pic": "wrestler-0001.webp"
    }
  ],
  "championName": "Champion",
  "daysHeld": 365,
  "defences": 12,
  "numberOfHolders": 1
}
  • prestige — Title value: low, mid, high
  • card — Where it typically appears on shows: lower, mid, upper (main event)
  • champion — Array of current champion(s) (tag team titles have 2, singles have 1)
  • championName — How to refer to the champion ("Champion", "Champions", etc.)
  • daysHeld — How long current champion(s) have held it
  • defences — Number of defenses in current reign
  • numberOfHolders — How many times it's been won total

Promotion Summary

  • summary — A paragraph describing your promotion's history, style, and culture (show or tell, but make it memorable)
  • storylines — Currently active story arcs (starts empty)
  • teams — Stables and factions (starts empty)
  • tournaments — Special tournaments (starts empty)
  • history — Automatically filled by the game with:
    • events — All events held
    • monthlyBalance — Financial history
    • monthlyMomentum — Momentum changes
    • departures — Wrestlers who left
    • arrivals — Wrestlers who joined

Enum Reference

When building your data, use these exact values:

Base Locations: USA, Canada, Mexico, UK, Germany, Japan, Australia, Europe, Celebrity, Other

Gender: M, F, O

Morale (Wrestlers & Staff): broken, poor, fair, good, great, excellent

Prestige: low, mid, high

Audience Size: small, medium, big

Momentum: frozen, low, medium, hot, burning

Wrestling Style: technical, high flyer, powerhouse, striker, submission, hardcore, all rounder, comedy

Presentation: face, heel, tweener

Card Position: lower, mid, upper

Wrestling Type (Staff Roles): wrestler, manager, commentator, interviewer, referee, writer, businessperson, medic, scout

Finisher Type: strike, submission, power, aerial, counter

Building Your Datapack: Step by Step

1. Plan Your Universe

Write down:

  • How many promotions do you want?
  • How many wrestlers per promotion?
  • What are your championship titles?
  • Do you want multiple brands per promotion?

2. Create Your Folder Structure

my-datapack/
├── wrestlers.json
├── promotions.json
└── images/
    ├── people/ (one image per wrestler)
    ├── belts/ (one image per championship)
    └── logos/ (one image per promotion/brand)

3. Build wrestlers.json

  • Start with your main event stars (IDs 1-20)
  • Add mid-card wrestlers
  • Add undercard jobbers
  • Add managers, referees, and staff
  • Keep IDs sequential starting from 1
  • Make sure each wrestler references their promotion via promotionId

4. Build promotions.json

  • Create your promotions with basic info
  • Assign leadership (owner, GM)
  • Create brands if needed
  • Add shows and PPVs
  • Create championship titles
  • Reference wrestlers in rosters and as champions

5. Gather Images

  • Collect wrestler headshots and save as wrestler-XXXX.webp
  • Collect championship belt designs and save as title-XXXX.webp (or use the same numbering as titles)
  • Collect promotion/brand logos

6. Test Your Datapack

  • Import it into Booker Blitz
  • Check that all wrestler references resolve
  • Verify that all referenced images exist
  • Play a few weeks to see if anything breaks

Best Practices

Keep Names Consistent

  • Use the exact same spelling for wrestler names across both files
  • Use consistent wrestler IDs when referencing them

Reference Images Properly

  • Use the exact filename in the picture field
  • Don't include the folder path, just the filename (e.g., wrestler-0001.webp, not images/people/wrestler-0001.webp)

Set Realistic Stats

  • Superstars should have high ability (80+) and high charisma (70+)
  • Mid-carders: ability 60-75, charisma 50-65
  • Jobbers: ability 30-50, charisma 20-40
  • Staff should have high values in their specialty (75+)

Balance Your Promotions

  • A top-tier promotion should have 30-50 wrestlers
  • Mid-tier: 20-40 wrestlers
  • Smaller promotions should still have enough depth for injury fill-ins

Empty Arrays Are Important Leave these as empty arrays:

"history": {
  "matches": [],
  "jobs": [],
  "titles": []
},
"storylines": [],
"teams": [],
"tournaments": []

The game fills these as you play.

Common Pitfalls

  • Missing image files — All referenced images must exist in the correct folders
  • Duplicate IDs — Each wrestler must have a unique ID
  • Bad references — If a wrestler's promotionId doesn't match an existing promotion ID, they'll be unaffiliated
  • Inconsistent names — "The Rock" vs "Rock Johnson" in different places confuses the game
  • Empty rosters — Make sure brands and promotions have wrestlers assigned

Sharing Your Datapack

Once your datapack is complete and tested:

  1. Zip the folder with both JSON files and the images folder
  2. Share it on the Booker Blitz forums
  3. Include a short description of your universe
  4. Note how many wrestlers and promotions are included
  5. Credits for any images you borrowed

Happy booking!