Introduction

BotArena is a sister project to my DeckBot project. Both projects use the same MTG engine to enforce rules, perform AI plays, retrieve card definitions etc. Unlike DeckBot, BotArena has a full graphical user interface with the following features:
- Rule enforced (both DeckBot and BotArena)
- Mana usage aware (both DeckBot and BotArena) which means the engine can automatically pass for you because you don't have enough mana to cast any spells or perform any abilities
- Play with computer (both DeckBot and BotArena)
- Play with another player over the net
- Deck constructions
- Define 'usage pattern' per ability per card to tell the application when not to ask you to play an ability (e.g. you only want to ping someone at the end of your opponent's turn)
- Drag and drop cards to perform single targeted operations (e.g. Shock, block an attacker)
The goal of BotArena and DeckBot is not so much about player vs player but about how to improve AI play with a computer player. As computers are getting more powerful, BotArena will get better automatically.
I have the following near term goals for BotArena
- Bug fixes
- 10th Edition additions (also for DeckBot)
- Multi-core CPU support for AI plays (also for DeckBot)
It is a work in progress. For more information, see also DeckBot.
MTG Images
Since all the MTG images are copyrighted, BotArena doesn't include any such imagees. However, follow these steps to get BotArena up and running with resources on the web (as usual, download at your own risk):
- To get MTG font:
- Download Shandalar at: http://www.the-underdogs.info/game.php?id=1550
- Unzip the downloaded file and run magic.part1.exe to extract all the files into a temporary directory
- Find the True Type font file Magis___.ttf
- Right click on the file and choose Copy
- Go to C:/Windows/Fonts in Windows Explorer and paste the file there to install the font
- To get MTG card images:
- Download MWS images:
- Go to http://www.mwsdata.com/forum/viewforum.php?f=4
- Follow the instructions outlined in the forum on how to get HQ images for MWS
- Currently you only need the following files:
- MWS+6E+Fulls.zip (or MWSHQ+6E+Fulls.zip if you can find it)
- MWSHQ+7E+Fulls.zip
- MWSHQ+8E+Fulls.zip
- MWSHQ+9E+Fulls.zip
- MWSHQ+U+Fulls.zip
- MWSHQ+PLC+Fulls.zip
- Create a folder called 'MWS' under your BotArena install directory
and extract all the MWS files under it. You want to maintain the
edition folder to separate images in each edition:

- Download a good quality card back image. You can find one at:
http://id.wikipedia.org/wiki/Magic:_The_Gathering
- Save the card back image file to \Program Files\BotArena\CardBack.jpg
- For token images:
Put token images under a \TK folder. You will need to do a little bit of renaming to get this to work. First identify the token image file. If you want to use a 1/1 Goblin token image (e.g. Goblin Warrens), you want to name the image file "Goblin1-1.full.jpg". BotArena will try to locate this file first. If this file is not found, it will try the name without the power-toughness, i.e. "Goblin.full.jpg". Since BotArena cover-up the power-toughness area of the image anyway, there is really no need to match the image's power/toughness with the token.
- Download MWS images:
- To get some nice wallpapers, try Wizards: http://www.wizards.com/magic/magazine/downloads.aspx?x=mtg/daily/downloads/wallpapers

Download
I no longer distribute BotArena because of the legality of the application. The download link is now disabled. DeckBot will continue to be available because of the text-based approach and no rules text is included.
1.1.8 changes:
- Deflection: now can deflect to targets in graveyards
- Swords to Plowshares: now correctly credit life gain for pumped creatures
- Terramorphic Expanse: fixed bug which allows searching of dual lands
- New 10th Edition Cards: Icatian Priest, Prodigal Pyromancer (already in PLC), Rage Weaver, Karplusan Strider, Shunt, Shivan Hellkite, Stun, Viashino Runner, Deluge, Doomed Necromancer, Viashino Sandscout, Vampire Bats, Thrull Surgeon, Sylvan Scrying, Snapping Drake, Skyhunter Patrol, Sky Weaver, Shimmering Wings
- New Unlimited cards: Braingeyser
- Card info fixes:
- Mortal Combat, Spark Elemental
1.1.7 changes:
- Bandage: fixed missing card
- Cowardice: fixed targeting bug when the targeting is done in a triggered action
- Crypt Rats, Crimson Hellkite, Consume Spirit: fixed mana bug
- Peek: fixed draw card bug
- Recollect: fixed casting cost
- Card shuffling: adjusted shuffling count to compensate for decks with lots of cards
- Trample: fixed multiple blocker bug
- New 10th Edition Cards: Distress, Furnace Whelp, Heart of Light, Mortal Combat, Persuasion, Phyrexian Rager, Pincher Beetles, Recover, Root Maze, Scion of the Wild, Spark Elemental, Time Stretch, Treasure Hunter, Whispersilk Cloak, Robe of Mirrors, Razormane Masticore, Terramorphic Expanse, Field Marshal, Chromatic Star
- New Unlimited cards: Control Magic
1.1.6 changes:
- Deflection & Boomerang: fixed card return bug
- Exhaustion: should affect creatures now
- Recall: should return the same number of cards discarded now
- New 10th Edition Cards: Crucible of Worlds, Aura of Silence, Cho-Manno, Juggernaut, Platinum Angel, Peek, Incinerate, Cryoclasm, Mobilization, Rule of Law, Leonin Scimitar, Hate Weaver, Rain of Tears, Fists of the Anvil, Flashfreeze, Ghost Warden, Recollect, Thundering Giant, Reviving Dose, Afflict, Aggressive Urge, Mind Stone, Smash, Spirit Weaver, Steadfast Guard, True Believer, Angelic Wall, Arcanis the Omnipotent, Bandage, Cloud Elemental, Cloud Sprite, Kamahl, Pit Fighter, Mogg Fanatic, Mirri, Cat Warrior, Molimo, Maro-Sorcerer, Mantis Engine, Might Weaver, Dragon Roost, Essence Drain, Flamewave Invoker
- New Unlimited cards: Lightning Bolt, Dark Ritual, Juggernaut, Mind Twist, Swords to Plowshares, Nevinyrral's Disk
- Added new user constructed decks
1.1.5 changes:
- UI changes:
-
- Small tweak in the search box in the deck dialog to return results faster
- Agonizing Memories: caster now orders discarded cards
- Ambassador Laquatus: hopefully fixed all the bugs now...
- Gaseous Form: should not deal combat damage now
- Quicksand: fixed regeneration bug
- Rowen: should reveal card even if the card is not a basic land
- Star Compass (and Fellwar Stone): should work as expected
- Storage Matrix: fixed token untap bug
- Weird Harvest: fixed crash when there are not enough cards to be found
- Wild Growth: should work with non-basic lands now
- Withering Gaze: can only target opponents now
- New 10th Edition Cards: Quirion Dryad
- New Unlimited cards: dual lands, Wheel of Fortune, Sol Ring, Demonic Tutor, Regrowth, Black Vise
- Card info fixes:
-
- Phage the Untouchable
1.1.4 changes:
- UI changes:
-
- Deck list now group same cards into the same row
- Added some decks posted in forums
- New deck file format: same cards are grouped; creature, non-creature and land cards are groups into separate sections
- Ambassador Laquatus: fixed activated ability cost; fixed legendary rule with other opponent legends
- City of Brass: changed to preventable damage
- Drudge Skeletion (and other regeneration abilities): fixed multiple regenerations used by computer during triggered abilities
- Ensnaring Bridge: should use the correct player's hand size now
- Horseshoe Crab: can now untap with 'all actions' on when card is untapped
- Mindslicer: now only triggers when going to graveyards
- Primal Plasma and Primal Clay: no longer a triggered effect when comes into play
- Puppeteer: targeting itself will now need to use 'All actions'
- Quicksand: computer should use it now
- Rathi Dragon: computer should use it now
- Ivory Mask: now also prevent triggered targeting abilities
- Silklash Spider: should deal damage instead of give toughness
- Zealous Inquisitor: fixed some damage redirection bugs and may be a crash
- New 10th Edition Cards: Phage the Untouchable, Assassinate, Composite Golem, Deathmark, Starlight Invoker
1.1.3 changes:
- UI changes:
-
- Disabled "Copy *" and usage pattern menu options when a card is facing down (cheaters!)
- Cruel Edict: Can no longer target controller
- Gaea's Herald: Can cast against creature spells now (requires All Actions) but will not do anything during resolution
- Karplusan Yeti: Now receives damage from the targeted creature
- Thran Golem: Changed to non-triggered effects
- New 10th Edition cards: Dross Crocodile, Earth Elemental, Mass of Ghouls, Wall of Wood, Wild Griffin, Youthful Knight, Bloodrock Cyclops, Horseshoe Crab, Cancel
- New game mechanic: added one legendary creature, Ambassador Laquatus, as a pilot to test the legendary rule
- Fixed a bug which may prevent a network game to play ("inconsistent state")
- Card info fixes:
-
- Form of the Dragon, Pyrohemia, Skirk Shaman
1.1.2 changes:
- UI changes:
-
- Targeted/related cards no longer associates with a spell/ability
- Reduced avatar animation quality
- Added avatar customization
- Your avatar image is now used remotely also
- Fixed incorrectly positioned casting cost text on rendered card images
- Balance of Power: no longer can target non-opponents
- Pride of Lions (and similar cards): interacts with removed-from-combat blockers correctly now, i.e. you can still assign damage to defending player after the blocking creature is removed
- Soul Net (and similar cards): fixed bug which prevents usage in post-combats
- Stupor: no longer can target caster
- Tainted AEther: fixed bug which causes selected cards to become illegal
- Added 10th Edition cards which have already been implemented in other editions. Card text and minor changes are updated to the 10th Edition wordings (e.g. Goblin King, Stalking Tiger, The Hives, etc)
1.1.1 changes:
- Crusade (reported as bug in Darkest Hour): now monitor card type changes
- Death Pits of Rath: triggered abilities are handled now at the end of the combat damage step (first strike)
- Emperor Crocodile: correctly triggered when cards have change of control
- Fertile Ground: addition of mana is immediate and no longer involves the stack
- Persecute: no need to manually select cards now but you will still see the opponent's hand
- Star Compass (and Fellwar Stone): lands removed now correctly affect mana produced
1.1.0 changes:
- UI changes:
-
- Red dot: red dot in the phase/step window now overrides the 'auto' setting so the game will always stop in that phase
- Damage prevention: removed duplicate options
- Rewind: you can now click on cards to untap again
- Install: no need to uninstall before installing a newer version (reason for the version number jump)
1.0.6.19 changes:
- UI changes:
-
- Changed links between attacker and blocker to arrows
- Damage prevention spells/abilities: fixed bugs introduced in the previous release
- Crash: tweaked something to try to prevent a crash when switching from full screen mode
- Multi-player: fixed game state bug
1.0.6.18 changes:
- UI changes:
-
- Shortcut keys added: Ctrl+A - all-actions; Ctrl+T - auto untap; Ctrl+O - action auto select
- Fixed card layout bug which sometimes put cards beyond the right edge of the table
- Added MWS token image support: put token images under a \TK folder. You will need to do a little bit of renaming to get this to work. First identify the token image file. If you want to use a 1/1 Goblin token image (e.g. Goblin Warrens), you want to name the image file "Goblin1-1.full.jpg". BotArena will try to locate this file first. If this file is not found, it will try the name without the power-toughness, i.e. "Goblin.full.jpg". Since BotArena cover-up the power-toughness area of the image anyway, there is really no need to match the image's power/toughness with the token.
- AI: fixed bug which prevented in-play cards to be casted post-combat
- Damage prevention spells/abilities: non-damage sources are now hidden if all-actions is not checked.
- Flame Wave: fixed spell type from Instant to Sorcery
- Sage Owl: the 'inconsistent game state' error should be fixed
- Wall of Wonder: no longer getting Haste when its ability is used
- Cruel Edict: fixed crash when used on a player with no creatures
- Counterspell spells: fixed bug which was causing inconsistent result
1.0.6.17 changes:
- UI changes:
-
- Added modification of computer name (Gameplay options)
- Full card info in card tips
- Added drag-n-drop targeting support to avatars (single target only for now)
- Added drag-n-drop support for triggered ability selections
- Chat message input box no longer interfere with hot keys in the application as long as the focus is in the input box
- Revised priority player assignments and added checking for multiple player lost condition
- Calciderm: can be targeted in non-in-play zones now
- Delusions of Mediocrity: changed to use all triggered abilities
- Elvish Piper: no longer targeting cards
- Mindslicer (and similar multi-player triggered actions): all players now discard at the resolution
- Noble Purpose: changed to allow triggering by controller only
- Phantasmal Terrain: can now enchant on all lands
- Rowen: now triggers by all draw kinds and not just normal draws
- Rukh Egg: no longer triggers when removed from game
- Seedborn Muse: no longer a triggered ability
- Sleight of Hand (and other reveal type cards): fixed non-draw status
- Skirk Shaman: changed to allow blocking by red creatures
- Underworld Dreams (reported as a bug in Timetwiser): fixed triggering condition when a draw is initiated by an opponent
- Card info fixes:
-
- Llanowar Wastes
1.0.6.16 changes:
- UI changes:
-
- Multi-row layout of cards: all vertical space in the screen is used to lay down cards. The algorithm puts cards in another row if any cards in a group are overlapped. Groups are: creatures, creatures with summoning sickness, lands and others.
- Moved life counter on the table towards the center of the screen
- Added library counter on the table
- Added phase icon and text on the table
- Added avatar image on the table which also indicates the priority player when blinking (replace avatar1.png and avatar2.png for your own images)
- Added right click context menu to card list in the Deck Builder dialog and also to cards on the table. You can now copy card name and rules text etc. to clipboard. You can also get rulings through Crystal Keep.
- Added green blinking color to the Phases window (previously known as the Graph window) when the application needs a player's selection
- Updated the status bar at the bottom of the window to show either "Waiting for XXXX..." or "Your attention needed" to make it more useful and capable of replacing the Phases window if one wishes to just view the status bar
- Life indicators on the game table are always on top
- Elder Druid (and Twiddle): fixed bug for tapping and untapping; also changed tap or untap selection until at resolution
- Regeneration: regeneration shield no longer can be used against non-damage life loss
- Rewind: allows you to untap opponent's cards by choosing 'all actions'
- Storage Matrix: not a triggered ability anymore and effects the untap correctly in the untap phase
- Verduran Enchantress (and Mesa Enchantress): triggers by both aura enchantment and global enchantment spells; triggers by controller spells only
1.0.6.15 changes:
- UI changes:
- Fixed auto untap bug which is introduced in v14
- Graveyard cards now stacked more closely together Added menu items (main and right-click) to show your/opponent's graveyard/removed-from-game zones (shortcut: G to view your graveyard)
1.0.6.14 changes: 1.0.6.14 changes:
- New: added filtering by text in any fields in deck editor
- New: all windows will be hidden in full screen mode; also the Actions window will appear automatically if some of the actions cannot be performed on a card
- New: undo tapping mana can be done on a card by double clicks now (if double click option is enabled, otherwise right click will see the undo action)
- Combat damage assignments: simple assignments are now automatic if the 'Auto' option is checked
- AI: computer should be able to do overkills during combats (new default option in Game play->overkill)
- AI: computer should not mind losing some life at early stage (new default option in Game play->conserve life)
- Mulligan: reduced land expectation from computer player by 1 (7 cards -> expect 2, 6 cards -> expect 1, 5 cards -> stop)
- Fixed missing rendered card back image
- Equipment: fixed incorrect ability type (again)
- Losing condition check (reported as a bug in Corrupt): check added between any switch to the priority player
- Counterspell (and similars): added code to remove countered spells from stack
- Gift of Estates (and Weird Harvest): allows selection of less than 3 cards
- Goblin Elite Infantry (and similars): shouldn't trigger Furnace of Rath now
- Plow Under: fixed target card type to lands instead of creatures
- Recall: discard is now before search (reverted changes in 1.0.6.11)
- Reprocess (reported as bug in Sacred Ground): fixed incorrect performed-by player information
- Sea's Claim: now targets all land types
- Western Paladin: fixed target card type to white creatures only
- UI or minor fixes:
- Double click to perform an action is now the default (instead of zoom) if you install a fresh copy of BotArena
- Card info fixed: Dwarven Demolition Team, Saltblast, Counsel of the Soratami
Changes in 1.0.6.13:
- New: now supports mulligan
- New: card size can be customized in the Appearance options
- New: added UI link to equipement and equipped creature
- Blocking action: blocked status of an attacking creature is maintained if a blocking creatre is removed from combat at the end of the Declare Blockers Step
- Regeneration action (reported in Drudge Skeletons): regenerated creatures retains +/- values until of turn
- Equipments (reported as a bug in Mogg Sentry): changed ability type to Activated instead of Sorcery
- Ivory Cup (and similars): fixed bug which is preventing ability usage
- Jester's Cap: updated logic to tag zone Removed From Game as something bad
- Sustainer of the Realm (reported as a bug in Sword Dancer): added missing Flying ability
- Threaten, Confiscate (and similar control cards): removed creature power and toughness reset after gaining control of a creature
- The Hive: added tap cost
- Wildfire: fixed bug which was causing more than 4 cards to be discarded; can now cast without using 'all actions' when there are no opponent creatures
- UI or minor fixes:
- Fixed broken sorting function in the Action list
- Shivan Reef
Changes in 1.0.6.12:
- Changed end game check to whenever a player receives priority instead of when the stack is cleared
- Changed 10th Edition cards to use the abbrevation '10th' instead of 'X'
- Caltrops: fixed missing damage deal
- Dwarven Demolition Team: changed activated ability to has tap cost intead of (R)
- Shard Phoenix: removed damage to players
- Skull of Orm: fixed card move to hand instead of in-play
- Spirit Link (and similar): fixed not working life gain
- Story Circle: removed colorless as a selection option
- Treasure trove: removed tap cost
- Tempest of Light: changed spell type from Sorcery to Instant
- Warmth: removed optional choice when triggered
Changes in 1.0.6.11 (thanks to Franavalon, Dinghammer and others for all the bug reports):
- Added missing 8th Edition pre-constructed decks: Speed Scorch, Heavy Hitters
- Key 'C' assigned to enter a combat phase
- Declare blockers and combat damage steps are skipped when no attackers are declared
- These enchant cards' abilities are now properly used from the enchant
card instead of the enchanted card:
- Vampiric Link
- Psychic Venom
- Blight
- Pariah
- Granite Grip
- Blanchwood Armor
- Spreading Algae
- Fertile Ground
- Contaminated Bond
- Keen Sense
- Curiosity
- Regeneration
- Firebreathing
- Balduvian Horde: discard is done during triggered ability resolution (triggered ability fix)
- Coastal Hornclaw: multiple usage possible through 'all actions'
- Confiscate: now goes to graveyard for illegal targets
- Delusions of Mediocrity: control change now do not trigger the ability
- Dream Cache: now asks for the placement choice
- Evil Eye of Orms-by-Gore: updated to the Time Spiral rule so that multiple Eyes can attack
- Fecundity (and similars): 'all actions' no longer needed to choose not to draw
- Flash, Ostracize: only creature cards can be selected now (fix applies to all single card selection spells/abilities)
- Foul Imp: fixed life deduction to life loss instead of normal damage
- Furnace of Rath:
- second Furnace of Rath can now be cast without using 'all actions'
- damage is now calculated correctly according to dinghammer's explanation
- Guerrilla Tactics: should not be triggered when not discarded by opponents
- Hammer of Bogardan: fixed spell type to Sorcery instead of Instant (originally reported as a bug in Magnivore)
- Hecatomb + Festering Goblin: sacrificing creatures are done during triggered ability resolution and the triggered abilities of Festering Goblin are triggered afterward (triggered ability fix)
- Hidden Horror: discard is done during triggered ability resolution (triggered ability fix)
- Howling Mine: now triggers after the normal draw
- Infernal Contract, Doomsday, Murderous Betrayal: life lose correctly rounded
- Index: can be used without using 'all actions'
- Lesser Gargadon + Coastal Hornclaw: land sacrifice in resolution (triggered ability fix)
- Loxodon Warhammer: now gives trample
- Mana Breach: land selection now done during triggered ability resolution (triggered ability fix)
- Nantuko Husk: now gets +2/+2 when used
- Natural Affinity: land creatures now can attack if they have no summoning sickness
- Persecute: fixed all multiple card selection validations
- Primeval Force: sacrificing now done in resolution (triggered ability fix)
- Rag Man: now shows opponent's hand before random discard
- Rathi Dragon: land sacrifices now done during resolution (triggered ability fix)
- Recall: swapped selection order so now you couldn't select cards just discarded
- Snake Basket: corrected token color
- Star Compass: control changes of basic lands now functional
- Teferi's Puzzle Box: Opponent's discarded card names are no longer available
- Trade Routes: card movements from in-play zone to hand no longer requires checking 'all actions'
- UI or minor fixes: Tidal Kraken(8th), Flowstone Slide, Goblin Balloon Brigade, Sift (9th), Collective Unconscious, Ley Druid
Changes in 1.0.6.10 (thanks to Franavalon and many others for all the bug reports and suggestions):
- You can now click on a spell/pseudo spell in the stack to see the associated card image in the Preview window
- Double clicking in the deck builder will add/remove cards
- Added more board (table top) sizes: 2000x700, 1600x700
- Bug fix: Memory leak - all missing bitmap and memory leak issues should be resolved
- Bug fix: Thorn Elemental and similar cards now deal damage instead of give life
- Bug fix: Sunlance now correctly gather legal targets and no more crash because of that
- Bug fix: Tariff and simliar special mana payment cards - fixed crash
- Bug fix: Coat of Arms now correctly identify shared creature types
- Bug fix: Wildfire no longer deals damage to players
- Bug fix: Inspiration and other simliar cards now correctly draw cards to the targeted opponent
- Bug fix: River Bear now has Islandwalk instead of Forestwalk
- Bug fix: Contaminated Bond's life loss is now not preventable
- Bug fix: Mindslicer now triggers correctly
- Bug fix: Groundbreaker now has trample
- Bug fix: Sleight of Hand now discards to the bottom of the library
- Bug fix: Crystal Vein no longer comes into play tapped
- Bug fix: Nightmare and similar cards now monitor in-play changes correctly
- Bug fix: Aven Cloudchaser has the correct casting cost now
- Bug fix: Living Lands and similar cards - crash fixed
- Bug fix: UIs and minor fixes - Nantuko Disciple, Mind Sludge, Intruder Alarm, Vampiric Link, Disorder, Tidal Kraken, Reminisce
Known Issues:
- Contaminated Bond, Consume Spirit, Guerrilla tactics, Sleight of hand
Changes in 1.0.6.8:
- Bug fix: targeted spells can now be countered correctly (thanks franavalon)
- Bug fix: menus now show 'View Actions' instead of 'View Moves' (thanks mstram)
Changes in 1.0.6.7:
- Bug fix: Until end of turn effect now affects only cards at casting time (thanks dinghammer)
- Bug fix: Phyrexian Gargantua is now 4/4 (thanks dinghammer)
- Bug fix: Casting Enfeeblement on small creatures now remove Enfeeblement from play (thanks dinghammer)
Changes in 1.0.6.6:
- Bug fix: Until end of turn spells/abilities are now limited to the active player's turn instead of caster's turn (thanks dinghammer)>
- Bug fix: Combat damage is now preventable (thanks dinghammer)
- You can now use the space key to pass (thanks franavalon and mstram)
Changes in 1.0.6.5:
- Added support for card back image file
- Added icons for phases and steps
Changes in 1.0.6.4:
- Added support for MWS image files
Changes in 1.0.6.3:
- First release
Disclaimer
BotArena is not published or endorsed by Wizard of the Coast, Inc.
Wizards of the Coast, Magic: The Gathering, and Magic are registered trademarks of Wizards of the Coast, Inc. Classic, the play level logos, the tap symbol, the mana symbols, and the pentagon of colors are trademarks of Wizard of the Coast, Inc.