Battle of the Bots
This isn't a game against bots. This is a competitive arena for them.
Welcome to the ultimate auto-battler where your code is your champion.
What is Battle of the Bots?
"Battle of the Bots" (BotB) is a strategy game where the primary players are not humans, but the AI scripts (bots) they create. Inspired by the team-building and auto-battle mechanics of games like Splinterlands, BotB scales the complexity by an order of magnitude.
The core gameplay loop is not about fast-twitch reflexes, but deep, programmatic strategy. Bot Makers compete in seasons by designing algorithms that can analyze battle modifiers, compose optimal teams from 20 units, and deploy them in complex formations.
The 20v20 "Horde" Grid
Your bot must command a 20-unit army on a 5x4 tactical grid.
The Bot Maker's Arena (PvP)
Your experience is that of a "Bot Maker." You don't play the game—you program the player. Your bot competes on a live, seasonal ladder against other bots.
The API is the Game
The primary interface is a secure API. Your bot receives a "Match Challenge" (Mana Cap, Rulesets) and must return a complete "Battle Plan."
The Battleground
A ranked, seasonal ladder. Bots are matched 24/7 based on an ELO-style rating. The goal: have the #1-ranked bot at the end of the season.
The Evolving Metagame
As one strategy dominates, others must design counters. The "meta" is a living organism, and the true challenge is constant adaptation.
The API in Action
Your bot isn't just picking cards; it's a script that receives and responds to JSON data. It must parse the `MatchChallenge`, analyze the `rulesets` and `opponent_data`, then build a `BattlePlan`... all in milliseconds.
IN: `MatchChallenge.json`
Your bot receives this. The 'Earthquake' rule means `Flying` units are high value. The opponent's history suggests a `Fire-Lord Zuko` deck.
OUT: `BattlePlan.json`
Your bot wisely counter-picks with a 'Tidal Empress', places units with `Dodge` in the 'Columnar Winds' positions, and uses `Flying` units to avoid `Earthquake` damage.
Boss Breakers (PvE Raid)
This is the sister mode to the PvP Arena. Instead of fighting each other, all bots compete simultaneously to solve a complex "puzzle"—defeating a massive world boss for a community prize. This mode is directly inspired by Bitcoin's "proof-of-work" mining.
The "Proof-of-Damage" Concept
Your bot acts as a "miner," and the boss is the "cryptographic puzzle." Your bot's "hashrate" is its ability to analyze the boss and compose a team to deal the most damage.
Bitcoin Mining
- The Puzzle: Find a complex cryptographic hash.
- The Work: Millions of "miners" race to find the solution.
- The Winner: The first miner to find the hash "solves" the block.
- The Payout: The winner receives the Block Reward + transaction fees.
BotB Boss Breakers
- The Puzzle: A huge Boss with unique weaknesses (e.g., "Weak to Fire," "Immune to Magic").
- The Work: All "bots" analyze the boss and submit optimal 20-card teams.
- The Winner: The bot that deals the *killing blow* "solves" the puzzle.
- The Payout: The winner gets the main **Boss Chest**. All other participants get a **proportional reward** based on damage dealt.
The Boss API
When a new boss appears, your bot receives a `BossChallenge`. It must analyze the boss's attributes and submit a `BossAttackPlan`.
IN: `BossChallenge.json`
Your bot receives this. The key is analyzing `weaknesses` and `abilities` to build a counter-team.
{
"boss_id": "boss-001-fire",
"name": "Ignis, the World-Ender",
"health_pool_remaining": 8450250,
"attributes": {
"faction": "Fire",
"type": "Dragon"
},
"abilities": [
{
"name": "Magma Armor",
"description": "Immune to all 'Magic' damage."
},
{
"name": "Inferno",
"description": "At the start of each round, deals 2 damage to all units."
}
],
"weaknesses": [
{
"type": "Faction",
"value": "Water",
"multiplier": 2.0
},
{
"type": "Attack",
"value": "Melee",
"multiplier": 1.5
}
],
"legal_cards": { ... }
}
OUT: `BossAttackPlan.json`
Your bot submits a 20-card team. The server simulates the fight, records the damage, and reduces the boss's health.
{
"boss_id": "boss-001-fire",
"commander_id": "c-002", // "Tidal Empress" (Water boost!)
"horde": [
// Bot logic avoids Magic (immune)
// Bot logic prioritizes Water & Melee
{ "card_id": "u-010", "position": [1, 1] }, // Water/Melee
{ "card_id": "u-012", "position": [1, 2] }, // Water/Melee
{ "card_id": "u-014", "position": [1, 3] }, // Water/Melee
{ "card_id": "u-016", "position": [1, 4] }, // Water/Melee
{ "card_id": "u-018", "position": [1, 5] }, // Water/Melee
// ... 15 more units, avoiding Magic
]
}
Puzzle Labyrinth (PvE Race)
This is the ultimate test of pure logic. Forget other players. This is your bot versus an **infinitely complex, procedurally generated puzzle.**
The "Singularity" Boss Generator
This mode creates a new, unique boss every day. The "Singularity" generator takes one random Splinterlands card, multiplies its stats by a random number (e.g., x50), and presents it as the puzzle. Can your bot build a 20-card team to defeat a 100-speed `Furious Chicken`?
The Generation Process
- 1. Select Card: The system randomly picks one card from the *entire* Splinterlands pool (e.g., `Lord Arianthus`).
- 2. Select Multiplier: A random number is chosen (e.g., `x30`).
- 3. Create Boss: The card's stats (Health, Speed, Armor) are multiplied. Its abilities (`Void`, `Magic Reflect`, `Thorns`) are scaled up.
- 4. Post Puzzle: The new "Singularity Boss" is posted to the API for all bots to challenge.
The Competition
- The Puzzle: A unique boss with (for example) 120 Health, `Magic Reflect (x5)`, and `Thorns (x5)`.
- The Work: All bots analyze this new threat and submit their 20-card counter-team.
- The Score: The server auto-battles the team and calculates a `Performance Score` based on damage, survival, and speed.
- The Winner: If multiple bots kill the boss, the one with the **fastest clear time (fewest rounds)** wins the grand prize.
The Puzzle API (Dynamic)
Your bot receives a `PuzzleChallenge`. It must be smart enough to parse the `base_card`, the `multiplier`, and the `final_boss_stats` to build a perfect counter-team.
IN: `PuzzleChallenge.json`
The "puzzle" is to build a team that can defeat this `Omega Chicken`. It has massive `Speed` and `Enrage`, but low `Health`.
{
"puzzle_id": "puz-005-chicken",
"generation_method": "Singularity",
"base_card": {
"name": "Furious Chicken",
"splinter": "Neutral",
"attack": 0,
"speed": 1,
"health": 1,
"abilities": ["Enrage"]
},
"multiplier": 75,
"final_boss_stats": {
"name": "OMEGA CHICKEN (x75)",
"attack": 0,
"speed": 75,
"health": 75,
"abilities": [
{
"name": "Enrage",
"description": "Has increased Melee attack and Speed when damaged."
},
{
"name": "Super Dodge",
"description": "Has a 75% chance to evade Melee and Ranged attacks."
}
]
},
"puzzle_rules": [
"Win Condition: Defeat the Boss.",
"Goal: Fastest clear time (fewest rounds)."
]
}
OUT: `PuzzleSolution.json`
A smart bot sees `Super Dodge` and `Enrage`. It must use `Magic` (cannot be Dodged) and try to one-shot it before `Enrage` triggers.
{
"puzzle_id": "puz-005-chicken",
"commander_id": "c-015", // "Archmage of Sure-Strike"
"horde": [
// Bot logic:
// 1. Avoid Melee (Dodge)
// 2. Avoid Ranged (Dodge)
// 3. Stack high-damage Magic units.
// 4. Try to burst 75 HP in one round.
{ "card_id": "u-052", "position": [1, 3] }, // Magic
{ "card_id": "u-053", "position": [2, 3] }, // Magic
{ "card_id": "u-054", "position": [3, 3] }, // Magic
{ "card_id": "u-055", "position": [4, 3] }, // Magic
{ "card_id": "u-056", "position": [1, 2] }, // Magic
// ... 15 more Magic units, stacked
// to alpha-strike the boss.
]
}
Gameplay Mechanics
A. Team Building (The "Draft" Phase)
This is the first challenge for your bot's logic: building the 21-card army.
B. The Battlefield (The "Formation" Phase)
This is the second, more complex, challenge. Your bot must place its 20 units onto a 5x4 Grid.
[C1] [C2] [C3] [C4] [C5]
[R1] o o o o o <- FRONT LINE
[R2] o o o o o <- SUPPORT LINE
[R3] o o o o o <- RANGED LINE
[R4] o o o o o <- ARTILLERY LINE
Formation Matters
- Do you create one "super-column" of 4 synergistic units?
- Do you spread your tanks across the 5 columns in the Front Line?
- Do you hide your healer in the back corner or the protected center?
- Your bot must decide.
C. Combat & Targeting Logic (The "Auto-Battle")
Combat is a deterministic system for your bot to solve. Turn order is based on `Speed`. Targeting is key.
Core Targeting Logic
- A unit will always target the closest enemy in its own column.
- If its column is empty, it will target the closest enemy in an adjacent column.
- This breaks the 20v20 brawl into 5 distinct "fronts," rewarding bots that can win a column and flank.
Key Abilities for a Grid
A Melee attack that hits all units in the target's column.
A Ranged attack that hits all units in the target's row.
Pulls the unit in the back row of a column to the front row.
Unit takes all damage for X adjacent allies (left, right, back).
Gains +1 Attack for each 'Fire' ally in the same Row.
Deals bonus damage if an ally is also adjacent to the target.
The Bot Maker's Journey
Get API Key
Register and get your development key to start building.
Test in "The Foundry"
Use the sandbox to test against AI and your own previous bot versions.
Enter The Labyrinth
Deploy your bot to the live puzzle ladder and submit your first solution.
Analyze & Iterate
Get detailed battle logs to find flaws, improve logic, and dominate.
The Future & Economy
A sustainable economy funds the competition and rewards the best Bot Makers.
True Bot Ownership
The core "bot" itself could be an NFT, storing its ELO, win/loss record, and seasonal history. This is your bot's legacy, owned by you.
Cosmetic Upgrades
Bot Makers can buy or earn cosmetic skins for their battle UI, unique card backs, or special animations for their bot's signature units.
API Tiers
A "Free" tier allows casual competition, while a "Pro" tier unlocks unlimited matches, deep analytics, and entry into high-stakes tournaments.
Pay-to-Compete
All players get a standard set, but new, limited-edition card sets will be released each season to shake up the meta and challenge bot logic.