Skip to content

Releases: robocode-dev/tank-royale

0.40.2

14 Apr 21:43

Choose a tag to compare

[0.40.2] - 2026-04-14 - Bot API stability and intent fixes

🐞 Bug Fixes

  • Bot API (Java):

    • #207: Fixed Java 26 warning about mutating final fields via reflection during
      deserialization of RoundStartedEvent and RoundEndedEvent. Gson now deserializes
      into the mutable schema classes first, then constructs the immutable bot API event
      objects via their constructors.
  • Bot API (Java, .NET, Python, TypeScript):

    • #202: Fixed bots receiving a SkippedTurnEvent on turn 1 when the OS scheduler delayed
      the bot thread's first time slice by more than the turn timeout. The bot API now sends
      default intent immediately after the bot thread wakes up for the first turn, ensuring turn 1
      is never skipped due to scheduling latency.
    • #202: Fixed an edge case where the pre-warmed bot thread could bypass the tick-arrival
      wait at the start of rounds 2+ if the previous round's tick state was still set.
  • Bot API (.NET):

    • Fixed console output is becoming corrupted after a bot reconnects to the server in a
      multi-game session.
    • Fixed a rare crash where an interrupted thread flag could leak into unrelated operations
      after a bot disconnects.
  • Bot API (Java, .NET, Python):

    • Fixed rescan() / setRescan() having no effect. The rescan flag was cleared internally
      before the intent was sent to the server, so the server never received it.

Robocode Tank Royale 0.40.2

πŸš€ Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+ β†’ Download GUI β†’ Get sample bots β†’ Start battling!

πŸ“– Complete documentation: robocode.dev | Advanced strategies: book.robocode.dev

πŸ›  Installing Robocode

Requirements: Java 11+ (whichjdk.com) | Detailed setup: robocode.dev/installation

Choose Your Installation Method

You have two options to install and run the Robocode GUI:

  1. Native Installers (Recommended) – Installs as a native application with desktop shortcuts
  2. Portable JAR File – Run directly from the command line without installation

Both options require Java 11 or newer.


Option 1: Native Installers (Recommended)

Download for your platform:

Platform Installer
πŸͺŸ Windows robocode-tank-royale-gui-0.40.2.msi
🍎 macOS robocode-tank-royale-gui-0.40.2.pkg
🐧 Linux robocode-tank-royale-gui-0.40.2.rpm (RPM) / robocode-tank-royale-gui-0.40.2.deb (DEB)

⚠️ Note: Installers are unsigned (normal for open-source projects). Your OS may show security warnings - choose "Run anyway" or similar. Verify using SHA256SUMS if needed.

Option 2: Portable JAR File

Download: robocode-tankroyale-gui-0.40.2.jar

Running: java -jar robocode-tankroyale-gui-0.40.2.jar

πŸ“ Tip: Create a dedicated folder for better organization. See GUI documentation for details.

πŸ€– Sample Bots

Download pre-built bots to start battling immediately:

  1. Download the archive for your preferred language
  2. Extract to a directory (e.g., C:\Robocode\bots\python)
  3. In GUI: Config β†’ Bot Root Directories β†’ Add the extracted directory
Language Download Requirements
🐍 Python sample-bots-python-0.40.2.zip Python 3.10 or newer
πŸ”· C# sample-bots-csharp-0.40.2.zip Microsoft .NET SDK 8 or newer
β˜• Java sample-bots-java-0.40.2.zip Any Java SDK 11 or newer

πŸ“¦ Bot API

Ready to develop your own bots? Install the API for your preferred language:

🐍 Python

pip install robocode-tank-royale==0.40.2

β˜• Java

Maven:

<dependency>
    <groupId>dev.robocode.tankroyale</groupId>
    <artifactId>robocode-tankroyale-bot-api</artifactId>
    <version>0.40.2</version>
</dependency>

Gradle:

implementation 'dev.robocode.tankroyale:robocode-tankroyale-bot-api:0.40.2'

Direct JAR: robocode-tankroyale-bot-api-0.40.2.jar

πŸ”· .NET (C#, F#, VB.NET)

dotnet add package Robocode.TankRoyale.BotApi --version 0.40.2

More info: robocode.dev/api | PyPI | Maven Central | NuGet

πŸ”Š Sound Effects

Enhance your Robocode experience with sound effects!

Download & Installation: Sounds Repository

Follow the repository instructions to install sounds in the correct location.

πŸ“š Additional Resources


0.40.1

12 Apr 19:30

Choose a tag to compare

[0.40.1] - 2026-04-12 - First-turn skip fix + breakpoint disconnect fix

🐞 Bug Fixes

  • Server:

    • #206: Fixed bots disconnecting from the server after ~80 seconds while paused at a
      debugger breakpoint.
  • Bot API (Java, .NET, Python):

    • #202: Fixed bots receiving a SkippedTurnEvent on turn 1 and missing their first chance
      to act.

Robocode Tank Royale 0.40.1

πŸš€ Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+ β†’ Download GUI β†’ Get sample bots β†’ Start battling!

πŸ“– Complete documentation: robocode.dev | Advanced strategies: book.robocode.dev

πŸ›  Installing Robocode

Requirements: Java 11+ (whichjdk.com) | Detailed setup: robocode.dev/installation

Choose Your Installation Method

You have two options to install and run the Robocode GUI:

  1. Native Installers (Recommended) – Installs as a native application with desktop shortcuts
  2. Portable JAR File – Run directly from the command line without installation

Both options require Java 11 or newer.


Option 1: Native Installers (Recommended)

Download for your platform:

Platform Installer
πŸͺŸ Windows robocode-tank-royale-gui-0.40.1.msi
🍎 macOS robocode-tank-royale-gui-0.40.1.pkg
🐧 Linux robocode-tank-royale-gui-0.40.1.rpm (RPM) / robocode-tank-royale-gui-0.40.1.deb (DEB)

⚠️ Note: Installers are unsigned (normal for open-source projects). Your OS may show security warnings - choose "Run anyway" or similar. Verify using SHA256SUMS if needed.

Option 2: Portable JAR File

Download: robocode-tankroyale-gui-0.40.1.jar

Running: java -jar robocode-tankroyale-gui-0.40.1.jar

πŸ“ Tip: Create a dedicated folder for better organization. See GUI documentation for details.

πŸ€– Sample Bots

Download pre-built bots to start battling immediately:

  1. Download the archive for your preferred language
  2. Extract to a directory (e.g., C:\Robocode\bots\python)
  3. In GUI: Config β†’ Bot Root Directories β†’ Add the extracted directory
Language Download Requirements
🐍 Python sample-bots-python-0.40.1.zip Python 3.10 or newer
πŸ”· C# sample-bots-csharp-0.40.1.zip Microsoft .NET SDK 8 or newer
β˜• Java sample-bots-java-0.40.1.zip Any Java SDK 11 or newer

πŸ“¦ Bot API

Ready to develop your own bots? Install the API for your preferred language:

🐍 Python

pip install robocode-tank-royale==0.40.1

β˜• Java

Maven:

<dependency>
    <groupId>dev.robocode.tankroyale</groupId>
    <artifactId>robocode-tankroyale-bot-api</artifactId>
    <version>0.40.1</version>
</dependency>

Gradle:

implementation 'dev.robocode.tankroyale:robocode-tankroyale-bot-api:0.40.1'

Direct JAR: robocode-tankroyale-bot-api-0.40.1.jar

πŸ”· .NET (C#, F#, VB.NET)

dotnet add package Robocode.TankRoyale.BotApi --version 0.40.1

More info: robocode.dev/api | PyPI | Maven Central | NuGet

πŸ”Š Sound Effects

Enhance your Robocode experience with sound effects!

Download & Installation: Sounds Repository

Follow the repository instructions to install sounds in the correct location.

πŸ“š Additional Resources


0.40.0

11 Apr 19:03

Choose a tag to compare

[0.40.0] - 2026-04-11 - Debug Mode, Breakpoints & Debugger Detection

This release makes Tank Royale a first-class environment for bot development and debugging. The three
new capabilities work together as a system: each Bot API now auto-detects a connected debugger and
advertises it to the server; the server uses that signal to auto-enable breakpoint mode for that
bot, suspending the turn clock whenever the bot hits a breakpoint rather than issuing a
SkippedTurnEvent; and a new debug mode lets any controller (or the GUI) step through the battle
one completed turn at a time, inspecting the full game state before advancing. Together these remove
the friction of debugging a bot under real game conditions β€” no manual setup, no missed turns, no
racing the clock.

✨ Features

  • Server:

    • Added debug mode (EnableDebugMode / DisableDebugMode): turns complete fully before
      pausing; next-turn steps one turn, ResumeGame exits. GamePaused gains a pauseCause
      field (pause, debug_step, or breakpoint).
    • #204: Added breakpoint mode: server waits for a late bot intent instead of issuing
      SkippedTurnEvent; auto-resumes on arrival. Advertised via features.breakpointMode.
      Auto-enabled for bots with debuggerAttached = true.
    • Added server.properties (debugModeSupported, breakpointModeSupported) with CLI
      overrides (--[no-]debug-mode, --[no-]breakpoint-mode). breakpointModeSupported = false
      silently ignores breakpoint requests (tournament safety).
  • GUI:

    • Added a Debug πŸ› toggle to the control panel β€” steps one complete turn per Next Turn click.
    • #205: Added Start paused to the New Battle dialog β€” enters debug mode from turn 1.
    • #204: Added Breakpoint Mode toggle to the Bot Properties panel; auto-enabled and πŸ›-labelled
      when debuggerAttached = true. Hidden when the server doesn't support breakpoint mode.
  • Bot APIs (Java, .NET, Python):

    • #204: Added debugger detection: debuggerAttached: true is included in the bot handshake
      when a debugger is found (JDWP args / Debugger.IsAttached / sys.gettrace()). Overridable
      via ROBOCODE_DEBUG.

🐞 Bug Fixes

  • Sample bots (C#):

    • Fixed PaintingBot.cs with a broken .json file.
  • Bot API (Java, .NET, Python):

    • #202: Fixed race condition in go() / execute() where the WebSocket thread could deliver a new
      tick between event dispatch and intent sending, causing the bot to skip a turn. This produced early
      SkippedTurnEvent at tick 1, prevented the bot from acting at tick 2, and delayed ScannedBotEvent
      delivery by one tick. The fix passes the captured turn number from go() into execute() so both
      use the same consistent tick throughout the call.

Robocode Tank Royale 0.40.0

πŸš€ Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+ β†’ Download GUI β†’ Get sample bots β†’ Start battling!

πŸ“– Complete documentation: robocode.dev | Advanced strategies: book.robocode.dev

πŸ›  Installing Robocode

Requirements: Java 11+ (whichjdk.com) | Detailed setup: robocode.dev/installation

Choose Your Installation Method

You have two options to install and run the Robocode GUI:

  1. Native Installers (Recommended) – Installs as a native application with desktop shortcuts
  2. Portable JAR File – Run directly from the command line without installation

Both options require Java 11 or newer.


Option 1: Native Installers (Recommended)

Download for your platform:

Platform Installer
πŸͺŸ Windows robocode-tank-royale-gui-0.40.0.msi
🍎 macOS robocode-tank-royale-gui-0.40.0.pkg
🐧 Linux robocode-tank-royale-gui-0.40.0.rpm (RPM) / robocode-tank-royale-gui-0.40.0.deb (DEB)

⚠️ Note: Installers are unsigned (normal for open-source projects). Your OS may show security warnings - choose "Run anyway" or similar. Verify using SHA256SUMS if needed.

Option 2: Portable JAR File

Download: robocode-tankroyale-gui-0.40.0.jar

Running: java -jar robocode-tankroyale-gui-0.40.0.jar

πŸ“ Tip: Create a dedicated folder for better organization. See GUI documentation for details.

πŸ€– Sample Bots

Download pre-built bots to start battling immediately:

  1. Download the archive for your preferred language
  2. Extract to a directory (e.g., C:\Robocode\bots\python)
  3. In GUI: Config β†’ Bot Root Directories β†’ Add the extracted directory
Language Download Requirements
🐍 Python sample-bots-python-0.40.0.zip Python 3.10 or newer
πŸ”· C# sample-bots-csharp-0.40.0.zip Microsoft .NET SDK 8 or newer
β˜• Java sample-bots-java-0.40.0.zip Any Java SDK 11 or newer

πŸ“¦ Bot API

Ready to develop your own bots? Install the API for your preferred language:

🐍 Python

pip install robocode-tank-royale==0.40.0

β˜• Java

Maven:

<dependency>
    <groupId>dev.robocode.tankroyale</groupId>
    <artifactId>robocode-tankroyale-bot-api</artifactId>
    <version>0.40.0</version>
</dependency>

Gradle:

implementation 'dev.robocode.tankroyale:robocode-tankroyale-bot-api:0.40.0'

Direct JAR: robocode-tankroyale-bot-api-0.40.0.jar

πŸ”· .NET (C#, F#, VB.NET)

dotnet add package Robocode.TankRoyale.BotApi --version 0.40.0

More info: robocode.dev/api | PyPI | Maven Central | NuGet

πŸ”Š Sound Effects

Enhance your Robocode experience with sound effects!

Download & Installation: Sounds Repository

Follow the repository instructions to install sounds in the correct location.

πŸ“š Additional Resources


0.39.0

06 Apr 14:52

Choose a tag to compare

[0.39.0] - 2026-04-06 - Convention-over-Configuration & Scriptless Bots

✨ Features

  • Booter:

    • Template-based booting for JVM, .NET, and Python β€” bots no longer need .sh/.bat scripts.
      The Booter selects a template from platform, programmingLang, and base in the bot's JSON.
    • Bots without a .json file are now supported: the Booter heuristically detects the platform
      from files in the directory (.java, .py, .cs, JARs, etc.) and boots accordingly.
    • The bot's parent-directory name is used as the default base when not set in JSON.
  • GUI:

    • Boot progress dialog handles no-JSON bots via baseline-snapshot tracking β€” waits for the right
      number of new connections rather than a specific name/version.
    • #201: Added Tank Color Mode to the config dialog (persisted in gui.properties):
      • Bot Colors (default) β€” bot-defined colors apply freely.
      • Bot Colors (Once) β€” the first color set per component is locked for the entire battle.
      • Default Colors β€” system defaults always used; bot colors ignored.
      • Bot Colors (Debug Only) β€” bot colors visible only when Graphical Debugging is active.
  • Bot API (Java, .NET, Python):

    • Runtime validation of required properties (name, version, authors). A BotException with
      a descriptive message is thrown on connection if any are missing.

πŸ”§ Changes

  • Build:

    • #203: Updated release-docs-template.md to use the direct JAR link for the Java Bot API on Maven Central.
  • Sample Bots:

    • Removed generated .cmd/.sh scripts from all standard sample bots β€” they now rely on template-based booting.
    • Added NuGet.Config to C# sample bot distributions for standalone source-based builds.

🐞 Bug Fixes

  • GUI:
    • Fixed double-clicking in the New Battle dialog. The boot-progress dialog was APPLICATION_MODAL,
      blocking the window and stealing focus between clicks. It is now modeless with setAutoRequestFocus(false),
      so the bot list keeps focus and additional double-clicks accumulate in the same dialog.

Robocode Tank Royale 0.39.0

πŸš€ Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+ β†’ Download GUI β†’ Get sample bots β†’ Start battling!

πŸ“– Complete documentation: robocode.dev | Advanced strategies: book.robocode.dev

πŸ›  Installing Robocode

Requirements: Java 11+ (whichjdk.com) | Detailed setup: robocode.dev/installation

Choose Your Installation Method

You have two options to install and run the Robocode GUI:

  1. Native Installers (Recommended) – Installs as a native application with desktop shortcuts
  2. Portable JAR File – Run directly from the command line without installation

Both options require Java 11 or newer.


Option 1: Native Installers (Recommended)

Download for your platform:

Platform Installer
πŸͺŸ Windows robocode-tank-royale-gui-0.39.0.msi
🍎 macOS robocode-tank-royale-gui-0.39.0.pkg
🐧 Linux robocode-tank-royale-gui-0.39.0.rpm (RPM) / robocode-tank-royale-gui-0.39.0.deb (DEB)

⚠️ Note: Installers are unsigned (normal for open-source projects). Your OS may show security warnings - choose "Run anyway" or similar. Verify using SHA256SUMS if needed.

Option 2: Portable JAR File

Download: robocode-tankroyale-gui-0.39.0.jar

Running: java -jar robocode-tankroyale-gui-0.39.0.jar

πŸ“ Tip: Create a dedicated folder for better organization. See GUI documentation for details.

πŸ€– Sample Bots

Download pre-built bots to start battling immediately:

  1. Download the archive for your preferred language
  2. Extract to a directory (e.g., C:\Robocode\bots\python)
  3. In GUI: Config β†’ Bot Root Directories β†’ Add the extracted directory
Language Download Requirements
🐍 Python sample-bots-python-0.39.0.zip Python 3.10 or newer
πŸ”· C# sample-bots-csharp-0.39.0.zip Microsoft .NET SDK 8 or newer
β˜• Java sample-bots-java-0.39.0.zip Any Java SDK 11 or newer

πŸ“¦ Bot API

Ready to develop your own bots? Install the API for your preferred language:

🐍 Python

pip install robocode-tank-royale==0.39.0

β˜• Java

Maven:

<dependency>
    <groupId>dev.robocode.tankroyale</groupId>
    <artifactId>robocode-tankroyale-bot-api</artifactId>
    <version>0.39.0</version>
</dependency>

Gradle:

implementation 'dev.robocode.tankroyale:robocode-tankroyale-bot-api:0.39.0'

Direct JAR: robocode-tankroyale-bot-api-0.39.0.jar

πŸ”· .NET (C#, F#, VB.NET)

dotnet add package Robocode.TankRoyale.BotApi --version 0.39.0

More info: robocode.dev/api | PyPI | Maven Central | NuGet

πŸ”Š Sound Effects

Enhance your Robocode experience with sound effects!

Download & Installation: Sounds Repository

Follow the repository instructions to install sounds in the correct location.

πŸ“š Additional Resources


0.38.3

05 Apr 11:35

Choose a tag to compare

[0.38.3] - 2026-04-05 - TPS Resume Dialog & TimeLeft Fix

🐞 Bug Fixes

  • Bot API (Java, .NET, Python):

    • #202: Fixed getTimeLeft() returning negative values when turns were skipped or the bot was busy.
      The timing now uses the arrival time of the latest tick received by the bot to ensure accurate
      reporting of the time remaining for the current turn.
  • GUI:

    • Fixed JNA restricted native access warning (java.lang.System::load) on Java 16+ when starting the
      booter, server, and recorder subprocesses. The --enable-native-access=ALL-UNNAMED JVM flag is now
      passed automatically when running on Java 16 or later.

πŸ”§ Changes

  • Bot API (Java, .NET, Python, TypeScript) + Schemas:
    • Increased the maximum number of country codes per bot from 5 to 20.

Robocode Tank Royale 0.38.3

πŸš€ Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+ β†’ Download GUI β†’ Get sample bots β†’ Start battling!

πŸ“– Complete documentation: robocode.dev | Advanced strategies: book.robocode.dev

πŸ›  Installing Robocode

Requirements: Java 11+ (whichjdk.com) | Detailed setup: robocode.dev/installation

Choose Your Installation Method

You have two options to install and run the Robocode GUI:

  1. Native Installers (Recommended) – Installs as a native application with desktop shortcuts
  2. Portable JAR File – Run directly from the command line without installation

Both options require Java 11 or newer.


Option 1: Native Installers (Recommended)

Download for your platform:

Platform Installer
πŸͺŸ Windows robocode-tank-royale-gui-0.38.3.msi
🍎 macOS robocode-tank-royale-gui-0.38.3.pkg
🐧 Linux robocode-tank-royale-gui-0.38.3.rpm (RPM) / robocode-tank-royale-gui-0.38.3.deb (DEB)

⚠️ Note: Installers are unsigned (normal for open-source projects). Your OS may show security warnings - choose "Run anyway" or similar. Verify using SHA256SUMS if needed.

Option 2: Portable JAR File

Download: robocode-tankroyale-gui-0.38.3.jar

Running: java -jar robocode-tankroyale-gui-0.38.3.jar

πŸ“ Tip: Create a dedicated folder for better organization. See GUI documentation for details.

πŸ€– Sample Bots

Download pre-built bots to start battling immediately:

  1. Download the archive for your preferred language
  2. Extract to a directory (e.g., C:\Robocode\bots\python)
  3. In GUI: Config β†’ Bot Root Directories β†’ Add the extracted directory
Language Download Requirements
🐍 Python sample-bots-python-0.38.3.zip Python 3.10 or newer
πŸ”· C# sample-bots-csharp-0.38.3.zip Microsoft .NET SDK 8 or newer
β˜• Java sample-bots-java-0.38.3.zip Any Java SDK 11 or newer

πŸ“¦ Bot API

Ready to develop your own bots? Install the API for your preferred language:

🐍 Python

pip install robocode-tank-royale==0.38.3

β˜• Java

Maven:

<dependency>
    <groupId>dev.robocode.tankroyale</groupId>
    <artifactId>robocode-tankroyale-bot-api</artifactId>
    <version>0.38.3</version>
</dependency>

Gradle:

implementation 'dev.robocode.tankroyale:robocode-tankroyale-bot-api:0.38.3'

Direct JAR: robocode-tankroyale-bot-api-0.38.3.jar

πŸ”· .NET (C#, F#, VB.NET)

dotnet add package Robocode.TankRoyale.BotApi --version 0.38.3

More info: robocode.dev/api | PyPI | Maven Central | NuGet

πŸ”Š Sound Effects

Enhance your Robocode experience with sound effects!

Download & Installation: Sounds Repository

Follow the repository instructions to install sounds in the correct location.

πŸ“š Additional Resources


0.38.2

29 Mar 14:19

Choose a tag to compare

[0.38.2] - 2026-03-29 – TPS Resume Dialog & Double-Turn Fixes

🐞 Bug Fixes

  • Server:
    • #199: Fixed double-turn bugs when stepping at TPS=0, rapidly changing TPS, or switching between TPS values.
      The turn-timeout timer is now rescheduled only after the visual delay completes, and nonzero→nonzero TPS
      changes no longer reset the timer.
    • Fixed game freeze on pause/resume and when resuming from TPS=0. Resume now calls resetTurnTimeout()
      directly instead of relying on turnTimeoutTimer.resume(), which could be a no-op depending on timer state.

✨ Features

  • GUI:
    • Resume at TPS=0 now shows a confirmation dialog asking the user to resume at the default TPS instead of
      silently resuming with no visual delay.

πŸ”§ Changes

  • Bot API (Java, .NET, Python) + Schemas:
    • Increased the maximum number of authors per bot from 5 to 20.

♻️ Refactoring

  • Server:
    • Improved thread-safety, model immutability, error handling, and game start validation.
  • Booter:
    • Improved CLI structure and error logging.

Robocode Tank Royale 0.38.2

πŸš€ Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+ β†’ Download GUI β†’ Get sample bots β†’ Start battling!

πŸ“– Complete documentation: robocode.dev | Advanced strategies: book.robocode.dev

πŸ›  Installing Robocode

Requirements: Java 11+ (whichjdk.com) | Detailed setup: robocode.dev/installation

Choose Your Installation Method

You have two options to install and run the Robocode GUI:

  1. Native Installers (Recommended) – Installs as a native application with desktop shortcuts
  2. Portable JAR File – Run directly from the command line without installation

Both options require Java 11 or newer.


Option 1: Native Installers (Recommended)

Download for your platform:

Platform Installer
πŸͺŸ Windows robocode-tank-royale-gui-0.38.2.msi
🍎 macOS robocode-tank-royale-gui-0.38.2.pkg
🐧 Linux robocode-tank-royale-gui-0.38.2.rpm (RPM) / robocode-tank-royale-gui-0.38.2.deb (DEB)

⚠️ Note: Installers are unsigned (normal for open-source projects). Your OS may show security warnings - choose "Run anyway" or similar. Verify using SHA256SUMS if needed.

Option 2: Portable JAR File

Download: robocode-tankroyale-gui-0.38.2.jar

Running: java -jar robocode-tankroyale-gui-0.38.2.jar

πŸ“ Tip: Create a dedicated folder for better organization. See GUI documentation for details.

πŸ€– Sample Bots

Download pre-built bots to start battling immediately:

  1. Download the archive for your preferred language
  2. Extract to a directory (e.g., C:\Robocode\bots\python)
  3. In GUI: Config β†’ Bot Root Directories β†’ Add the extracted directory
Language Download Requirements
🐍 Python sample-bots-python-0.38.2.zip Python 3.10 or newer
πŸ”· C# sample-bots-csharp-0.38.2.zip Microsoft .NET SDK 8 or newer
β˜• Java sample-bots-java-0.38.2.zip Any Java SDK 11 or newer

πŸ“¦ Bot API

Ready to develop your own bots? Install the API for your preferred language:

🐍 Python

pip install robocode-tank-royale==0.38.2

β˜• Java

Maven:

<dependency>
    <groupId>dev.robocode.tankroyale</groupId>
    <artifactId>robocode-tankroyale-bot-api</artifactId>
    <version>0.38.2</version>
</dependency>

Gradle:

implementation 'dev.robocode.tankroyale:robocode-tankroyale-bot-api:0.38.2'

Direct JAR: robocode-tankroyale-bot-api-0.38.2.jar

πŸ”· .NET (C#, F#, VB.NET)

dotnet add package Robocode.TankRoyale.BotApi --version 0.38.2

More info: robocode.dev/api | PyPI | Maven Central | NuGet

πŸ”Š Sound Effects

Enhance your Robocode experience with sound effects!

Download & Installation: Sounds Repository

Follow the repository instructions to install sounds in the correct location.

πŸ“š Additional Resources


0.38.1

23 Mar 20:12

Choose a tag to compare

[0.38.1] - 2026-03-23 – GUI Boot Progress Dialog

✨ Features

  • GUI:
    • Boot progress dialog: when starting a battle, a modal dialog now shows each expected bot identity with a status
      icon (⏳ pending / βœ… connected). For duplicate identities (e.g., 4 droids), the row shows
      MyFirstDroid v1.0 (2/4 connected).
    • Elapsed time label (Elapsed: 12s / 30s) updates every 500 ms during the wait.
    • The cancel button aborts the boot, kills booted bot processes, and returns to the bot selection dialog.
    • Timeout error: after the configured timeout, the status area is replaced with a list of pending bots and
      "Retry" / "Cancel" buttons. "Retry" resets the timer and continues waiting.
    • Boot timeout is now configurable in GUI Options (default: 30 seconds).

🐞 Bug Fixes

  • Python bot API:
    • Fixed AssertionError: No current event to check interruptibility for causing bots to stall after ~200–300
      rounds at high TPS (#196). Root causes: threading race between the bot thread and WebSocket thread in
      dispatch_events (fixed by joining the bot thread in stop_thread()), and a missing None guard on
      current_top_event after a ThreadInterruptedException in the event dispatch loop.

Robocode Tank Royale 0.38.1

πŸš€ Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+ β†’ Download GUI β†’ Get sample bots β†’ Start battling!

πŸ“– Complete documentation: robocode.dev | Advanced strategies: book.robocode.dev

πŸ›  Installing Robocode

Requirements: Java 11+ (whichjdk.com) | Detailed setup: robocode.dev/installation

Choose Your Installation Method

You have two options to install and run the Robocode GUI:

  1. Native Installers (Recommended) – Installs as a native application with desktop shortcuts
  2. Portable JAR File – Run directly from the command line without installation

Both options require Java 11 or newer.


Option 1: Native Installers (Recommended)

Download for your platform:

Platform Installer
πŸͺŸ Windows robocode-tank-royale-gui-0.38.1.msi
🍎 macOS robocode-tank-royale-gui-0.38.1.pkg
🐧 Linux robocode-tank-royale-gui-0.38.1.rpm (RPM) / robocode-tank-royale-gui-0.38.1.deb (DEB)

⚠️ Note: Installers are unsigned (normal for open-source projects). Your OS may show security warnings - choose "Run anyway" or similar. Verify using SHA256SUMS if needed.

Option 2: Portable JAR File

Download: robocode-tankroyale-gui-0.38.1.jar

Running: java -jar robocode-tankroyale-gui-0.38.1.jar

πŸ“ Tip: Create a dedicated folder for better organization. See GUI documentation for details.

πŸ€– Sample Bots

Download pre-built bots to start battling immediately:

  1. Download the archive for your preferred language
  2. Extract to a directory (e.g., C:\Robocode\bots\python)
  3. In GUI: Config β†’ Bot Root Directories β†’ Add the extracted directory
Language Download Requirements
🐍 Python sample-bots-python-0.38.1.zip Python 3.10 or newer
πŸ”· C# sample-bots-csharp-0.38.1.zip Microsoft .NET SDK 8 or newer
β˜• Java sample-bots-java-0.38.1.zip Any Java SDK 11 or newer

πŸ“¦ Bot API

Ready to develop your own bots? Install the API for your preferred language:

🐍 Python

pip install robocode-tank-royale==0.38.1

β˜• Java

Maven:

<dependency>
    <groupId>dev.robocode.tankroyale</groupId>
    <artifactId>robocode-tankroyale-bot-api</artifactId>
    <version>0.38.1</version>
</dependency>

Gradle:

implementation 'dev.robocode.tankroyale:robocode-tankroyale-bot-api:0.38.1'

Direct JAR: robocode-tankroyale-bot-api-0.38.1.jar

πŸ”· .NET (C#, F#, VB.NET)

dotnet add package Robocode.TankRoyale.BotApi --version 0.38.1

More info: robocode.dev/bot-api | PyPI | Maven Central | NuGet

πŸ”Š Sound Effects

Enhance your Robocode experience with sound effects!

Download & Installation: Sounds Repository

Follow the repository instructions to install sounds in the correct location.

πŸ“š Additional Resources


0.38.0

21 Mar 22:37

Choose a tag to compare

[0.38.0] - 2026-03-21 – Identity-Based Bot Matching

✨ Features

  • Runner API:
    • Identity-based bot matching: bots are now matched by name + version from their bot.json rather than by count alone. This fixes incorrect matching when teams, stray bots, or duplicate bot instances are present β€” only bots whose identity matches an expected slot are counted.
    • Configurable boot timeout via botConnectTimeout(java.time.Duration) on BattleRunner.Builder. Default remains 30 seconds. Replaces the previous hard-coded constant.
    • Boot progress reporting: BattleHandle.onBootProgress fires on every BotListUpdate and every 500 ms during the wait loop, delivering a BootProgress snapshot with expected, connected,
      pending identity maps, elapsedMs, and timeoutMs. Intended for GUI progress dialogs.
    • Team member directory validation: BooterManager.validateBotDir() now checks that every directory listed in teamMembers exists as a sibling directory at battle-start time, throwing BattleException with the missing member name before any bot process is launched.
    • Added suppressServerOutput() builder option to opt out of routing embedded server and booter stdout through JUL.
      By default, all output from the embedded server and booter processes is logged at INFO level with [SERVER] and [BOOTER] prefixes. Call suppressServerOutput() on the builder to silence this when you configure your own logging.

🐞 Bug Fixes

  • Runner API:
    • Fixed orphaned stdout reader thread in ServerManager: if the embedded server process died unexpectedly and ensureStarted() was called again, the previous reader thread was overwritten without being joined. The thread is now joined (with a 500 ms timeout) before a new one is started.
    • Embedded server and booter stdout pipes are now always drained regardless of the captureServerOutput setting, preventing OS pipe buffer fill-up when output capture is suppressed.

Robocode Tank Royale 0.38.0

πŸš€ Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+ β†’ Download GUI β†’ Get sample bots β†’ Start battling!

πŸ“– Complete documentation: robocode.dev | Advanced strategies: book.robocode.dev

πŸ›  Installing Robocode

Requirements: Java 11+ (whichjdk.com) | Detailed setup: robocode.dev/installation

Choose Your Installation Method

You have two options to install and run the Robocode GUI:

  1. Native Installers (Recommended) – Installs as a native application with desktop shortcuts
  2. Portable JAR File – Run directly from the command line without installation

Both options require Java 11 or newer.


Option 1: Native Installers (Recommended)

Download for your platform:

Platform Installer
πŸͺŸ Windows robocode-tank-royale-gui-0.38.0.msi
🍎 macOS robocode-tank-royale-gui-0.38.0.pkg
🐧 Linux robocode-tank-royale-gui-0.38.0.rpm (RPM) / robocode-tank-royale-gui-0.38.0.deb (DEB)

⚠️ Note: Installers are unsigned (normal for open-source projects). Your OS may show security warnings - choose "Run anyway" or similar. Verify using SHA256SUMS if needed.

Option 2: Portable JAR File

Download: robocode-tankroyale-gui-0.38.0.jar

Running: java -jar robocode-tankroyale-gui-0.38.0.jar

πŸ“ Tip: Create a dedicated folder for better organization. See GUI documentation for details.

πŸ€– Sample Bots

Download pre-built bots to start battling immediately:

  1. Download the archive for your preferred language
  2. Extract to a directory (e.g., C:\Robocode\bots\python)
  3. In GUI: Config β†’ Bot Root Directories β†’ Add the extracted directory
Language Download Requirements
🐍 Python sample-bots-python-0.38.0.zip Python 3.10 or newer
πŸ”· C# sample-bots-csharp-0.38.0.zip Microsoft .NET SDK 8 or newer
β˜• Java sample-bots-java-0.38.0.zip Any Java SDK 11 or newer

πŸ“¦ Bot API

Ready to develop your own bots? Install the API for your preferred language:

🐍 Python

pip install robocode-tank-royale==0.38.0

β˜• Java

Maven:

<dependency>
    <groupId>dev.robocode.tankroyale</groupId>
    <artifactId>robocode-tankroyale-bot-api</artifactId>
    <version>0.38.0</version>
</dependency>

Gradle:

implementation 'dev.robocode.tankroyale:robocode-tankroyale-bot-api:0.38.0'

Direct JAR: robocode-tankroyale-bot-api-0.38.0.jar

πŸ”· .NET (C#, F#, VB.NET)

dotnet add package Robocode.TankRoyale.BotApi --version 0.38.0

More info: robocode.dev/bot-api | PyPI | Maven Central | NuGet

πŸ”Š Sound Effects

Enhance your Robocode experience with sound effects!

Download & Installation: Sounds Repository

Follow the repository instructions to install sounds in the correct location.

πŸ“š Additional Resources


0.37.0

04 Mar 20:50

Choose a tag to compare

πŸ“¦ 0.37.0 - Battle Runner API – 04-Mar-2026

✨ Features

  • Battle Runner API (documentation):
    • New runner module providing a programmatic API for running battles without the GUI.
    • Supports both embedded server (auto-managed lifecycle) and external server connection modes.
    • Synchronous (runBattle()) and asynchronous (startBattleAsync()) battle execution.
    • Game type presets (Classic, Melee, 1v1, Custom) with full parameter overrides via BattleSetup.
    • Battle recording to .battle.gz replay files compatible with the Recorder module.
    • Intent diagnostics for capturing raw bot-intent messages per bot per turn (opt-in).
    • Battle control: pause, resume, single-step, and stop running battles.
    • Real-time events: tick, round start/end, game start/end, abort, pause/resume.
    • Structured BattleResults with per-bot rankings and detailed scores.
    • Resource management via AutoCloseable for server lifecycle, bot processes, and graceful shutdown.
    • Published to Maven Central as dev.robocode.tankroyale:robocode-tankroyale-runner.

🐞 Bug Fixes

  • GUI:
    • #191: GUI freezes from time to time in 0.36.1
  • Bot APIs (C#, Python):
    • #192: Fixed TimeLeft / time_left returning incorrect (often negative) values on Windows. The start timestamp
      for the turn timeout was being captured on the bot thread at dispatch time, which is after OS scheduling has
      already consumed part of the turn budget. The fix aligns C# and Python with Java: the timestamp is now taken on
      the WebSocket thread when the tick is first received (_ticksStart / tick_start_nano_time), so all time spent
      scheduling and dispatching correctly counts against TurnTimeout.
    • C# only: added timeBeginPeriod(1) (Windows Multimedia API) to set 1 ms timer resolution for the bot process,
      matching the behavior of the JVM and CPython runtimes. This ensures Thread.Sleep durations are accurate to
      ~1 ms instead of the default ~15.6 ms Windows timer granularity.

Robocode Tank Royale 0.37.0

πŸš€ Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+ β†’ Download GUI β†’ Get sample bots β†’ Start battling!

πŸ“– Complete documentation: robocode.dev | Advanced strategies: book.robocode.dev

πŸ›  Installing Robocode

Requirements: Java 11+ (whichjdk.com) | Detailed setup: robocode.dev/installation

Choose Your Installation Method

You have two options to install and run the Robocode GUI:

  1. Native Installers (Recommended) – Installs as a native application with desktop shortcuts
  2. Portable JAR File – Run directly from the command line without installation

Both options require Java 11 or newer.


Option 1: Native Installers (Recommended)

Download for your platform:

Platform Installer
πŸͺŸ Windows robocode-tank-royale-gui-0.37.0.msi
🍎 macOS robocode-tank-royale-gui-0.37.0.pkg
🐧 Linux robocode-tank-royale-gui-0.37.0.rpm (RPM) / robocode-tank-royale-gui-0.37.0.deb (DEB)

⚠️ Note: Installers are unsigned (normal for open-source projects). Your OS may show security warnings - choose "Run anyway" or similar. Verify using SHA256SUMS if needed.

Option 2: Portable JAR File

Download: robocode-tankroyale-gui-0.37.0.jar

Running: java -jar robocode-tankroyale-gui-0.37.0.jar

πŸ“ Tip: Create a dedicated folder for better organization. See GUI documentation for details.

πŸ€– Sample Bots

Download pre-built bots to start battling immediately:

  1. Download the archive for your preferred language
  2. Extract to a directory (e.g., C:\Robocode\bots\python)
  3. In GUI: Config β†’ Bot Root Directories β†’ Add the extracted directory
Language Download Requirements
🐍 Python sample-bots-python-0.37.0.zip Python 3.10 or newer
πŸ”· C# sample-bots-csharp-0.37.0.zip Microsoft .NET SDK 8 or newer
β˜• Java sample-bots-java-0.37.0.zip Any Java SDK 11 or newer

πŸ“¦ Bot API

Ready to develop your own bots? Install the API for your preferred language:

🐍 Python

pip install robocode-tank-royale==0.37.0

β˜• Java

Maven:

<dependency>
    <groupId>dev.robocode.tankroyale</groupId>
    <artifactId>robocode-tankroyale-bot-api</artifactId>
    <version>0.37.0</version>
</dependency>

Gradle:

implementation 'dev.robocode.tankroyale:robocode-tankroyale-bot-api:0.37.0'

Direct JAR: robocode-tankroyale-bot-api-0.37.0.jar

πŸ”· .NET (C#, F#, VB.NET)

dotnet add package Robocode.TankRoyale.BotApi --version 0.37.0

More info: robocode.dev/bot-api | PyPI | Maven Central | NuGet

πŸ”Š Sound Effects

Enhance your Robocode experience with sound effects!

Download & Installation: Sounds Repository

Follow the repository instructions to install sounds in the correct location.

πŸ“š Additional Resources


0.36.1

24 Feb 23:29

Choose a tag to compare

πŸ“¦ 0.36.1 - WonRoundEvent and Python Console Output - 24-Feb-2026

🐞 Bug Fixes

  • Bot API (.NET):

    • #188: Fixed thread-safety issue in RecordingTextWriter where concurrent Console.WriteLine calls from event
      handlers (e.g., OnScannedBot) could cause race conditions, leading to performance degradation, radar lock loss,
      and eventual event queue overflow ("Maximum event queue size has been reached: 256"). The fix adds proper locking
      around all write and read operations, matching the thread-safety pattern used in the Java implementation.
    • Added thread-safety test to verify RecordingTextWriter handles concurrent writes correctly.
  • Bot APIs (Java, C#, Python):

    • #190: Fixed WonRoundEvent not being triggered when a bot wins a round. The onWonRound() handler is now invoked
      even if the server doesn't send a separate WonRoundEvent, by checking the rank in RoundEndedEvent and
      publishing WonRoundEvent when rank equals 1.
  • Bot API (Python):

    • Implemented missing stdout/stderr redirection to bot console. Python bots can now use print() statements and see
      output in the Bot Console, matching Java and C# functionality. This feature was missing since v0.19.0.
  • Bot API (All platforms):

    • Fixed the one-by-one error in the event queue size check. The queue now correctly enforces a maximum of 256 events
      instead of allowing 257 events before showing the error message. Changed the boundary check from
      <= MAX_QUEUE_SIZE to < MAX_QUEUE_SIZE in Java, .NET, and Python implementations.

Robocode Tank Royale 0.36.1

πŸš€ Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+ β†’ Download GUI β†’ Get sample bots β†’ Start battling!

πŸ“– Complete documentation: robocode.dev | Advanced strategies: book.robocode.dev

πŸ›  Installing Robocode

Requirements: Java 11+ (whichjdk.com) | Detailed setup: robocode.dev/installation

Choose Your Installation Method

You have two options to install and run the Robocode GUI:

  1. Native Installers (Recommended) – Installs as a native application with desktop shortcuts
  2. Portable JAR File – Run directly from the command line without installation

Both options require Java 11 or newer.


Option 1: Native Installers (Recommended)

Download for your platform:

Platform Installer
πŸͺŸ Windows robocode-tank-royale-gui-0.36.1.msi
🍎 macOS robocode-tank-royale-gui-0.36.1.pkg
🐧 Linux robocode-tank-royale-gui-0.36.1.rpm (RPM) / robocode-tank-royale-gui-0.36.1.deb (DEB)

⚠️ Note: Installers are unsigned (normal for open-source projects). Your OS may show security warnings - choose "Run anyway" or similar. Verify using SHA256SUMS if needed.

Option 2: Portable JAR File

Download: robocode-tankroyale-gui-0.36.1.jar

Running: java -jar robocode-tankroyale-gui-0.36.1.jar

πŸ“ Tip: Create a dedicated folder for better organization. See GUI documentation for details.

πŸ€– Sample Bots

Download pre-built bots to start battling immediately:

  1. Download the archive for your preferred language
  2. Extract to a directory (e.g., C:\Robocode\bots\python)
  3. In GUI: Config β†’ Bot Root Directories β†’ Add the extracted directory
Language Download Requirements
🐍 Python sample-bots-python-0.36.1.zip Python 3.10 or newer
πŸ”· C# sample-bots-csharp-0.36.1.zip Microsoft .NET SDK 8 or newer
β˜• Java sample-bots-java-0.36.1.zip Any Java SDK 11 or newer

πŸ“¦ Bot API

Ready to develop your own bots? Install the API for your preferred language:

🐍 Python

pip install robocode-tank-royale==0.36.1

β˜• Java

Maven:

<dependency>
    <groupId>dev.robocode.tankroyale</groupId>
    <artifactId>robocode-tankroyale-bot-api</artifactId>
    <version>0.36.1</version>
</dependency>

Gradle:

implementation 'dev.robocode.tankroyale:robocode-tankroyale-bot-api:0.36.1'

Direct JAR: robocode-tankroyale-bot-api-0.36.1.jar

πŸ”· .NET (C#, F#, VB.NET)

dotnet add package Robocode.TankRoyale.BotApi --version 0.36.1

More info: robocode.dev/bot-api | PyPI | Maven Central | NuGet

πŸ”Š Sound Effects

Enhance your Robocode experience with sound effects!

Download & Installation: Sounds Repository

Follow the repository instructions to install sounds in the correct location.

πŸ“š Additional Resources