Skip to content

Releases: robocode-dev/tank-royale

1.0.2

18 May 15:09

Choose a tag to compare

[1.0.2] - 2026-05-18 - Minor bug fix for GUI

🐞 Bug Fixes

  • GUI:

    • #214: Fixed crash when playing sound effects on Linux systems where the audio format of the
      sound files (PCM 24000 Hz) is not supported by the system's audio mixer. The error was
      propagating uncaught from the audio playback path and crashing the WebSocket thread. Sound
      playback failures are now silently ignored so the game continues normally without sound.
  • Bot API (Java, .NET, Python, TypeScript):

    • #215: Fixed a NullPointerException that could occur randomly when a bot called a blocking
      method (e.g. turnGunLeft) from inside an event handler that triggered a nested dispatch.

Robocode Tank Royale 1.0.2

🚀 Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+Download GUIGet sample botsStart 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-1.0.2.msi
🍎 macOS robocode-tank-royale-gui-1.0.2.pkg
🐧 Linux robocode-tank-royale-gui-1.0.2.rpm (RPM) / robocode-tank-royale-gui-1.0.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-1.0.2.jar

Running: java -jar robocode-tankroyale-gui-1.0.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-1.0.2.zip Python 3.10 or newer
🔷 C# sample-bots-csharp-1.0.2.zip Microsoft .NET SDK 8 or newer
Java sample-bots-java-1.0.2.zip Any Java SDK 11 or newer
🟦 TypeScript sample-bots-typescript-1.0.2.zip Node.js 22 or newer

📦 Bot API

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

🐍 Python

pip install robocode-tank-royale==1.0.2

☕ Java

Maven:

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

Gradle:

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

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

🔷 .NET (C#, F#, VB.NET)

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

🟦 TypeScript / JavaScript

npm install @robocode.dev/tank-royale-bot-api

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

🔊 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


1.0.1

08 May 15:36

Choose a tag to compare

[1.0.1] - 2026-05-08 - Minor bug fix for GUI

🐞 Bug Fixes

  • GUI:
    • #212: Fixed NullPointerException on Nix OS when starting a battle. Game setup defaults were
      not being properly initialized if the properties file was empty or corrupted, causing the
      application to crash when attempting to start a game.

Robocode Tank Royale 1.0.1

🚀 Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+Download GUIGet sample botsStart 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-1.0.1.msi
🍎 macOS robocode-tank-royale-gui-1.0.1.pkg
🐧 Linux robocode-tank-royale-gui-1.0.1.rpm (RPM) / robocode-tank-royale-gui-1.0.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-1.0.1.jar

Running: java -jar robocode-tankroyale-gui-1.0.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-1.0.1.zip Python 3.10 or newer
🔷 C# sample-bots-csharp-1.0.1.zip Microsoft .NET SDK 8 or newer
Java sample-bots-java-1.0.1.zip Any Java SDK 11 or newer
🟦 TypeScript sample-bots-typescript-1.0.1.zip Node.js 22 or newer

📦 Bot API

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

🐍 Python

pip install robocode-tank-royale==1.0.1

☕ Java

Maven:

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

Gradle:

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

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

🔷 .NET (C#, F#, VB.NET)

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

🟦 TypeScript / JavaScript

npm install @robocode.dev/tank-royale-bot-api

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

🔊 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


1.0.0

03 May 15:21

Choose a tag to compare

[1.0.0] - 2026-05-03 - Version 1: Stable release with dark and light themes

This is a major milestone: version 1.0.0 marks Robocode Tank Royale as a stable, production-ready
game. The 1.0 release introduces full dark and light theme support in the GUI, powered by the
FlatLaf look-and-feel library, making the interface polished and visually consistent across
platforms. From this release onward, the project follows semantic versioning with a commitment to
API stability.

🐞 Bug Fixes

  • GUI:

    • Fixed the Tank Color Mode setting ("Bot Colors (default)") reverting to "Bot Colors
      (Debug Only)" after restarting the GUI. The Options dialog was re-saving the color mode
      from the radio button state on OK, which could override the immediately saved selection
      if the dialog state had been refreshed in between.
    • Fixed Bot Colors (Once) not reliably locking the first bot-defined color for each tank
      part, causing late color updates to fall back to default colors instead.
    • Fixed the graphical debugging toggle and breakpoint mode toggle resetting to off when a
      battle is restarted. Both toggles now retain their state and re-apply the policy to the
      new game automatically. Toggle preferences are stored in persistent in-memory maps keyed
      by the bot's stable WebSocket session ID, so they survive frame recreation, console
      close/reopen, and bot ID reassignment across restarts.
  • Server:

    • Fixed "unsupported gameType: custom" error when starting a game with the Custom game type
      preset. The server now accepts all four built-in game types (classic, 1v1, melee,
      custom) by default instead of only classic. Use the --games flag to restrict the
      server to specific game types when needed (e.g., for competition servers).
  • Runner:

    • Fixed BattleRunner ignoring BattleSetup.defaultTurnsPerSecond and always starting
      battles at max speed instead.
  • Bot API (.NET):

    • Fixed C# bots sometimes losing turn-1 movement, colors, and debug painting when a battle
      was restarted from the GUI, which could show up on every second restart.
  • Bot API (Java, Python, TypeScript):

    • Fixed stale debug graphics being resent after debugging was disabled, which could make old
      debug painting reappear on later turns or restarts.
    • Fixed turn-1 event handlers running before run() had initialized bot state, which could
      corrupt movement or colors set at the start of a round.
  • Sample Bots (Java, .NET, Python, TypeScript):

    • Fixed PaintingBot drawing ghost circles at the previous round's last-known target position
      at the start of each new round. The scanned-bot state was not reset between rounds, causing
      onTick to draw a stale circle until a new scan occurred. Fixed by resetting scannedTime
      to 0 at the start of run().

Robocode Tank Royale 1.0.0

🚀 Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+Download GUIGet sample botsStart 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-1.0.0.msi
🍎 macOS robocode-tank-royale-gui-1.0.0.pkg
🐧 Linux robocode-tank-royale-gui-1.0.0.rpm (RPM) / robocode-tank-royale-gui-1.0.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-1.0.0.jar

Running: java -jar robocode-tankroyale-gui-1.0.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-1.0.0.zip Python 3.10 or newer
🔷 C# sample-bots-csharp-1.0.0.zip Microsoft .NET SDK 8 or newer
Java sample-bots-java-1.0.0.zip Any Java SDK 11 or newer
🟦 TypeScript sample-bots-typescript-1.0.0.zip Node.js 22 or newer

📦 Bot API

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

🐍 Python

pip install robocode-tank-royale==1.0.0

☕ Java

Maven:

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

Gradle:

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

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

🔷 .NET (C#, F#, VB.NET)

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

🟦 TypeScript / JavaScript

npm install @robocode.dev/tank-royale-bot-api

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

🔊 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.42.0

22 Apr 20:46

Choose a tag to compare

[0.42.0] - 2026-04-22 - First release of the TypeScript Bot API

This is the first official release of the TypeScript Bot API, making TypeScript a first-class
member of the Bot API family alongside Java, .NET, and Python. The groundwork was laid in 0.41.0;
this release ships the TypeScript API as a fully supported platform for writing bots.

🐞 Bug Fixes

  • Bot API (Java):

    • Fixed JDK reflection warning about Gson mutating final fields in Point during
      deserialization. Gson now constructs Point via its constructor instead of reflective
      field mutation, which will be blocked in a future JDK release.
  • Bot API (Java, .NET, Python, TypeScript):

    • #202, #210: Fixed events (ScannedBotEvent, TickEvent, etc.) firing one turn late.
      The bot API dispatched events after go() returned, so run() loop code could read
      the new tick state before the corresponding events had fired. Events now fire before
      execute() returns, matching Classic Robocode semantics: events for turn N always fire
      before the bot reads turn N state in run().
  • GUI:

    • Fixed ArrayIndexOutOfBoundsException in BasicListUI caused by SortedListModel
      returning inconsistent sizes during concurrent updates.
  • Booter:

    • Removed misleading bot-dir prefix from per-line stderr output; fixed Log atomicity.
  • TypeScript Bot API:

    • Fixed debug graphics not appearing in PaintingBot.
  • Bot API (Java, .NET, Python, TypeScript):

    • Fixed setGunTurnRate(), setRadarTurnRate(), setTurnRate(), and setTargetSpeed()
      values being silently reset to zero after the first turn when using the continuous
      (rate-based) movement API on Bot. Bots that set a turn or speed rate in run() and
      relied on it persisting across turns now behave correctly for the full round.
  • Sample bots:

    • Renamed VelocityBotVelociBot on all platforms (Java, .NET, Python, TypeScript),
      matching the original classic Robocode VelociRobot name more closely.
    • Fixed VelociBot not shooting at scanned bots. An erroneous setRadarTurnRate(15) call
      caused the radar to spin at 30°/turn while the gun spun at 15°/turn, so the gun was never
      aimed at the enemy when a scan event fired. Removed the redundant radar rate — the radar
      already follows the gun automatically since the radar turn rate is cumulative on top of
      the gun turn rate.

Robocode Tank Royale 0.42.0

🚀 Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+Download GUIGet sample botsStart 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.42.0.msi
🍎 macOS robocode-tank-royale-gui-0.42.0.pkg
🐧 Linux robocode-tank-royale-gui-0.42.0.rpm (RPM) / robocode-tank-royale-gui-0.42.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.42.0.jar

Running: java -jar robocode-tankroyale-gui-0.42.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.42.0.zip Python 3.10 or newer
🔷 C# sample-bots-csharp-0.42.0.zip Microsoft .NET SDK 8 or newer
Java sample-bots-java-0.42.0.zip Any Java SDK 11 or newer
🟦 TypeScript sample-bots-typescript-0.42.0.zip Node.js 22 or newer

📦 Bot API

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

🐍 Python

pip install robocode-tank-royale==0.42.0

☕ Java

Maven:

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

Gradle:

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

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

🔷 .NET (C#, F#, VB.NET)

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

🟦 TypeScript / JavaScript

npm install @robocode.dev/tank-royale-bot-api

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

🔊 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.41.0

19 Apr 21:28

Choose a tag to compare

[0.41.0] - 2026-04-19 - Bot API library updater and stability improvements

This release lays the groundwork for an upcoming TypeScript Bot API. The TypeScript API is
functional but still under test and lacks documentation, so it is not included in this release.
The cross-platform test infrastructure, semantic alignment across all Bot APIs, and Python internals
refactoring introduced here were all necessary steps to make the TypeScript API a first-class
member of the Bot API family — that work is already done and waiting.

✨ Features

  • GUI:

    • #207: Added bot API library updater. On startup, the GUI scans all configured bot
      directories for outdated or missing library files (Java .jar, .NET .nupkg,
      Python .whl, TypeScript .tgz) and offers to update them in one click.
      A "Don't ask again" option is available for users who manage libraries manually.
  • Bot API (Java, .NET, Python, TypeScript):

    • #208: Added missing rules constants to the Constants class: INACTIVITY_ZAP (0.1),
      RAM_DAMAGE (0.6), STARTING_GUN_HEAT (3.0), TEAM_MESSAGE_MAX_SIZE (32768), and
      MAX_NUMBER_OF_TEAM_MESSAGES_PER_TURN (10).

🐞 Bug Fixes

  • Bot API (Python):

    • Fixed Python bots failing to connect to the server when the server's handshake included
      a features field — the JSON deserializer crashed with KeyError: 'dict' and the bot
      never joined the game.
    • Fixed Python bots throwing BotException: Tick event is not available at round
      boundaries, which could cause the bot thread to terminate unexpectedly or silently skip
      event handlers (e.g. on_scanned_bot) between rounds.
  • Bot API (Java, .NET, Python, TypeScript):

    • #202: Fixed radar and gun commands set in run() before the first go() being silently
      dropped on turn 1. Commands such as setTurnRadarRight(Double.MAX_VALUE) in run() now
      take effect from turn 1 as expected.

🔧 Changes

  • Server / GUI:

    • Raised the default ready timeout from 1 second to 10 seconds. This prevents bots using
      runtimes that need startup time (JVM, Python, .NET) from being silently excluded from a
      battle when the server starts before they have finished loading. The setting remains
      adjustable in the Setup Rules dialog.
  • Bot API (Java, .NET, Python, TypeScript) / Server:

    • Significantly expanded the test bed for both the server and all Bot API implementations,
      adding cross-platform conformance tests that verify all four Bot APIs behave identically for
      the same inputs — making it easier to catch regressions and keep the APIs in sync across
      languages. As part of this work, the Python Bot API internals were refactored to align more
      closely with the Java, .NET, and TypeScript implementations, achieving true 1-to-1 semantic
      parity across all platforms and making the codebase easier to maintain and debug going
      forward.

Robocode Tank Royale 0.41.0

🚀 Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+Download GUIGet sample botsStart 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.41.0.msi
🍎 macOS robocode-tank-royale-gui-0.41.0.pkg
🐧 Linux robocode-tank-royale-gui-0.41.0.rpm (RPM) / robocode-tank-royale-gui-0.41.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.41.0.jar

Running: java -jar robocode-tankroyale-gui-0.41.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.41.0.zip Python 3.10 or newer
🔷 C# sample-bots-csharp-0.41.0.zip Microsoft .NET SDK 8 or newer
Java sample-bots-java-0.41.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.41.0

☕ Java

Maven:

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

Gradle:

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

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

🔷 .NET (C#, F#, VB.NET)

dotnet add package Robocode.TankRoyale.BotApi --version 0.41.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.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 GUIGet sample botsStart 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 GUIGet sample botsStart 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 GUIGet sample botsStart 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 GUIGet sample botsStart 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 GUIGet sample botsStart 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