Quickfire keeps the normal BattleTabs rules and takes away the wait: every ship's ability is ready on every turn. It's four small changes to four ships, and no mod code runs during a match.
The player's request:
Make a BattleTabs mod called Quickfire where every ship can use its ability every turn.
We gave an AI agent that one sentence and the public mod tool, and watched it build the mod from scratch. It took 18 calls to the mod tool, three versions and one wrong turn, and the wrong turn taught the most.
All in one go: Paste this into your agent with the battletabs-mod tool connected, and it runs the whole loop by itself: build, test, tune.
Make a BattleTabs mod called Quickfire where every ship can use its ability every turn.
Read the battletabs-mod ship-mods docs first, and only use ships that are allowed in the Arcade.
Typecheck it, then play a few test games on different seeds and check the rule works.
Run 500 bot games and compare the win split and game length with normal rules. If one side wins much more often, or games run much longer, change it and test again.
Save it as case-quickfire, then tell me what you changed along the way and why.Or step by step, as we did it: Going one prompt at a time lets you look at each result and steer, the way the decisions on this page were made. Some prompts react to what came back, so read the result before you send the next one.
Make a BattleTabs mod called Quickfire where every ship can use its ability every turn.Read the ship-mods docs first, and only use ships that are allowed in the Arcade and have an active ability.Typecheck it, then play a few test games on different seeds and show me what happens.Run 200 bot games and tell me the win split and how long games last compared with normal rules.Can it be more explosive? Try swapping the Kayak for the Longboat combo ship and run 200 games again.Games got longer, so go back to the first fleet and list the ships on the rules card.Run 500 games for a final read, and show me a picture of one ship using its ability two turns in a row.Save it as case-quickfire.Prompt 1
Make a BattleTabs mod called Quickfire where every ship can use its ability every turn.get_docs (ship-mods)cooldown is how many of its owner's turns pass between uses, so cooldown: 1 means every turn. You can't change what an ability does, only how often it fires. Passive ships like the Crab have no ability and need cooldown: 0.cooldown: 1 on four ships".Prompt 2
Read the ship-mods docs first, and only use ships that are allowed in the Arcade and have an active ability.list_ships (arcade_only)Prompt 3
Typecheck it, then play a few test games on different seeds and show me what happens.classic.ship(id, { cooldown: 1 }) overrides and no hooks.get_docs (examples/quick-dolphin), save_mod, typecheckPrompt 3
Typecheck it, then play a few test games on different seeds and show me what happens.play_once (seeds 1, 2 and 3)Prompt 4
Run 200 bot games and tell me the win split and how long games last compared with normal rules.simulate_n (200 games)Prompt 5
Can it be more explosive? Try swapping the Kayak for the Longboat combo ship and run 200 games again.save_mod, typecheck, simulate_n (200 games)Prompts 6 to 8
Games got longer, so go back to the first fleet and list the ships on the rules card.Run 500 games for a final read, and show me a picture of one ship using its ability two turns in a row.Save it as case-quickfire.save_mod, typecheck, simulate_n (500 games), render_state, play_once (seed 4)The Longboat swap was meant to make Quickfire more explosive. The Longboat did fire twice as often, but it's a 4-tile ship and the Kayak is 2, so each side had 2 more cells to find and sink. Ship size moved game length more than ability speed did.
Fix: Revert to the first fleet. Compare game length after every fleet change.
In the logs, the Medium Galleon appears as two moves in a row. That's easy to read as a free extra turn.
Fix: No fix needed: it's the Galleon's own "attacks twice" ability. Check the ability text before you "fix" something.
The bots used abilities only about 10 times a game in total, even when they could fire every turn. In the first 200 games the Kayak was used less than under normal rules (2.4 against 3.1), because the bigger abilities took its place.
Fix: Use simulate_n for fairness, errors and relative length, and the play_once logs or render_state to prove the rule works. A person will fire far more often than the bots.
Putting the passive Crab in an "every ability, every turn" fleet and giving it cooldown: 1 would have been an error.
Fix: The guide and list_ships both say the Crab is passive, so it stayed out of the fleet.
500 bot games on the final version, seeds 1 to 500, against normal rules on the same fleets and seeds.
| Quickfire | Normal rules | |
|---|---|---|
| Wins, seat 0 / seat 1 | 262 / 238 (52% / 48%) | 262 / 238 (52% / 48%) |
| First mover won | 282 (56%) | 292 (58%) |
| Average turns played | 25.9 | 29.7 |
| Draws / errors | 0 / 0 | 0 / 0 |
Every version along the way:
| Version | Change | Result | Kept? |
|---|---|---|---|
| v1 | 4 ships at cooldown 1 | 26.4 turns (normal 29.9), 200 games | Yes |
| v2 | Longboat in place of the Kayak | 32.9 turns (normal 35.4), 200 games | No, longer games |
| v3 | v1 fleet plus a fuller rules card | 25.9 turns (normal 29.7), 500 games | Final |
TODO: in-game screenshot of this game in the BattleTabs Arcade.
The mod tool's render_state draws the boards as 2D pictures. Dark red cells are a sunk ship.


The whole mod, as saved by save_mod. Copy it into your own mods folder to start from it.
import { classic, defineShipMod } from "@battletabs/mod-api";
// Quickfire: the real Battleship rules, but no ability ever waits.
// cooldown: 1 means "usable every one of the owner's turns" (see get_docs ship-mods).
export default defineShipMod({
id: "case-quickfire",
apiVersion: 1,
classicVersion: "classic-2",
rules: {
pitch: "No waiting: every ship can use its ability every single turn.",
bullets: [
"Sink every enemy ship to win",
"Every ship's ability is ready every turn",
"Fleet: Kayak, Sailboat, Raft and Medium Galleon",
],
},
maxTurns: 200,
// Small, fast fleet: every ship has an active ability (no passive Crab),
// and short hulls keep games quick.
fleet: ["kayak", "sailboat", "raft", "galleonmedium"],
ships: [
classic.ship("kayak", { cooldown: 1 }),
classic.ship("sailboat", { cooldown: 1 }),
classic.ship("raft", { cooldown: 1 }),
classic.ship("galleonmedium", { cooldown: 1 }),
],
});
Install the mod tools and connect your agent with the Arcade guide. Then paste the prompts above into your agent, all in one go or one at a time. To play against the bot yourself, ask your agent to open the play page.