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 universepromotions.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 namerealName— Real name (optional)nickname— Stage nickname (optional)picture— Filename in theimages/peoplefolder
Basics:
type— What role they play:wrestler,manager,commentator,interviewer,referee,writer,medic,scout,businesspersongender—M,F, orObase— Where they're from (e.g.,USA,Japan,Mexico,UK)birthplace— City/regiondateOfBirth— Date string (ISO format:YYYY-MM-DD)debut— When they debuted in the industry
Physical:
height— In centimetersweight— In kilograms
In-Ring Attributes (0-100):
ability— Overall wrestling qualitypotentialAbility— Maximum they can reachcharisma— Star power and crowd connectionmicSkills— Promo and interview abilityhardcoreAbility— Ability in extreme/hardcore matchesinjuryProne— 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,comedypresentation—face(hero),heel(villain), ortweener(neutral)finisher— Name of their finishing movefinisherType— How they finish:strike,submission,power,aerial,countermasked—trueif they wear a mask
Status:
morale— Current morale level:broken,poor,fair,good,great,excellentpopularity— How over they are (0-100)prestige— Career status:low,mid,highretired—trueif retired (can return withreturnDate)promotionId— Which promotion they work for (reference the ID from promotions.json). Use0or leave undefined for free agents
Match Record:
record.wins,record.losses,record.draws— Lifetime stats
Management:
managerId— ID of their manager (if any)acceptsIndieBookings—trueif they'll book independent shows while signed
Empty Arrays:
history.matches— Filled by the game when matches happenhistory.jobs— Filled by the game with job historyhistory.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
historyarrays are important — the game fills these as you play - Set
promotionIdto match a promotion's ID from promotions.json - Wrestlers can be free agents (leave
promotionIdas 0 or undefined) - Finisher type matters — it affects how they can win matches
- Set realistic relative stats — a young talent might have lower
abilitybut highpotentialAbility
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 nameshortName— Abbreviation (e.g., GAW, KRP)base— Where it operates (e.g.,USA,Japan,Mexico,UK)logo— Filename inimages/logosfolder
Business:
level— Prestige/tier (1-10, where 10 is world-class)balance— Starting cash in dollarsmomentum— Current momentum:frozen,low,medium,hot,burningaudienceSize— Default crowd size:small,medium,big
House Shows (Smaller Live Events):
houseShowAttendance— Expected attendancehouseShowCostLevel— How expensive to run:free,low,medium,high,premiumhouseShowsPerMonth— How many per monthhouseShowsPrestige— Prestige gain:low,mid,highhouseShowTicketPrice— Ticket cost tier
Staff:
keyStaff.owner— Company ownerkeyStaff.gm— General managerkeyStaff.booker— Booking committeekeyStaff.writers— Story writerskeyStaff.scouts— Talent scoutskeyStaff.medicTeam— Medical staffkeyStaff.referees— Active refereeskeyStaff.commentators— Broadcast talentkeyStaff.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 brandtitles— 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)regularity—single show,weekly,biweekly,monthlyday— 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, ...decemberduration— 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,highcard— 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 itdefences— Number of defenses in current reignnumberOfHolders— 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 heldmonthlyBalance— Financial historymonthlyMomentum— Momentum changesdepartures— Wrestlers who leftarrivals— 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
picturefield - Don't include the folder path, just the filename (e.g.,
wrestler-0001.webp, notimages/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
promotionIddoesn'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:
- Zip the folder with both JSON files and the images folder
- Share it on the Booker Blitz forums
- Include a short description of your universe
- Note how many wrestlers and promotions are included
- Credits for any images you borrowed
Happy booking!