Releases: robocode-dev/tank-royale
1.0.2
[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.
- #214: Fixed crash when playing sound effects on Linux systems where the audio format of the
-
Bot API (Java, .NET, Python, TypeScript):
- #215: Fixed a
NullPointerExceptionthat could occur randomly when a bot called a blocking
method (e.g.turnGunLeft) from inside an event handler that triggered a nested dispatch.
- #215: Fixed a
Robocode Tank Royale 1.0.2
🚀 Quick Start
New to Robocode Tank Royale?
- 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:
- Native Installers (Recommended) – Installs as a native application with desktop shortcuts
- 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:
- Download the archive for your preferred language
- Extract to a directory (e.g.,
C:\Robocode\bots\python) - 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-apiMore 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
- Documentation: robocode.dev
- GitHub Repository: robocode-dev/tank-royale
- Issue Tracker: Report bugs or request features
1.0.1
[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.
- #212: Fixed NullPointerException on Nix OS when starting a battle. Game setup defaults were
Robocode Tank Royale 1.0.1
🚀 Quick Start
New to Robocode Tank Royale?
- 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:
- Native Installers (Recommended) – Installs as a native application with desktop shortcuts
- 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:
- Download the archive for your preferred language
- Extract to a directory (e.g.,
C:\Robocode\bots\python) - 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-apiMore 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
- Documentation: robocode.dev
- GitHub Repository: robocode-dev/tank-royale
- Issue Tracker: Report bugs or request features
1.0.0
[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.
- Fixed the Tank Color Mode setting ("Bot Colors (default)") reverting to "Bot Colors
-
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 onlyclassic. Use the--gamesflag to restrict the
server to specific game types when needed (e.g., for competition servers).
- Fixed
-
Runner:
- Fixed
BattleRunnerignoringBattleSetup.defaultTurnsPerSecondand always starting
battles at max speed instead.
- Fixed
-
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.
- Fixed C# bots sometimes losing turn-1 movement, colors, and debug painting when a battle
-
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.
- Fixed stale debug graphics being resent after debugging was disabled, which could make old
-
Sample Bots (Java, .NET, Python, TypeScript):
- Fixed
PaintingBotdrawing 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
onTickto draw a stale circle until a new scan occurred. Fixed by resettingscannedTime
to 0 at the start ofrun().
- Fixed
Robocode Tank Royale 1.0.0
🚀 Quick Start
New to Robocode Tank Royale?
- 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:
- Native Installers (Recommended) – Installs as a native application with desktop shortcuts
- 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:
- Download the archive for your preferred language
- Extract to a directory (e.g.,
C:\Robocode\bots\python) - 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-apiMore 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
- Documentation: robocode.dev
- GitHub Repository: robocode-dev/tank-royale
- Issue Tracker: Report bugs or request features
0.42.0
[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
finalfields inPointduring
deserialization. Gson now constructsPointvia its constructor instead of reflective
field mutation, which will be blocked in a future JDK release.
- Fixed JDK reflection warning about Gson mutating
-
Bot API (Java, .NET, Python, TypeScript):
- #202, #210: Fixed events (
ScannedBotEvent,TickEvent, etc.) firing one turn late.
The bot API dispatched events aftergo()returned, sorun()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 inrun().
- #202, #210: Fixed events (
-
GUI:
- Fixed
ArrayIndexOutOfBoundsExceptioninBasicListUIcaused bySortedListModel
returning inconsistent sizes during concurrent updates.
- Fixed
-
Booter:
- Removed misleading bot-dir prefix from per-line stderr output; fixed
Logatomicity.
- Removed misleading bot-dir prefix from per-line stderr output; fixed
-
TypeScript Bot API:
- Fixed debug graphics not appearing in
PaintingBot.
- Fixed debug graphics not appearing in
-
Bot API (Java, .NET, Python, TypeScript):
- Fixed
setGunTurnRate(),setRadarTurnRate(),setTurnRate(), andsetTargetSpeed()
values being silently reset to zero after the first turn when using the continuous
(rate-based) movement API onBot. Bots that set a turn or speed rate inrun()and
relied on it persisting across turns now behave correctly for the full round.
- Fixed
-
Sample bots:
- Renamed
VelocityBot→VelociBoton all platforms (Java, .NET, Python, TypeScript),
matching the original classic RobocodeVelociRobotname more closely. - Fixed
VelociBotnot shooting at scanned bots. An erroneoussetRadarTurnRate(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.
- Renamed
Robocode Tank Royale 0.42.0
🚀 Quick Start
New to Robocode Tank Royale?
- 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:
- Native Installers (Recommended) – Installs as a native application with desktop shortcuts
- 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:
- Download the archive for your preferred language
- Extract to a directory (e.g.,
C:\Robocode\bots\python) - 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-apiMore 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
- Documentation: robocode.dev
- GitHub Repository: robocode-dev/tank-royale
- Issue Tracker: Report bugs or request features
0.41.0
[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.
- #207: Added bot API library updater. On startup, the GUI scans all configured bot
-
Bot API (Java, .NET, Python, TypeScript):
- #208: Added missing rules constants to the
Constantsclass: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).
- #208: Added missing rules constants to the
🐞 Bug Fixes
-
Bot API (Python):
- Fixed Python bots failing to connect to the server when the server's handshake included
afeaturesfield — the JSON deserializer crashed withKeyError: 'dict'and the bot
never joined the game. - Fixed Python bots throwing
BotException: Tick event is not availableat round
boundaries, which could cause the bot thread to terminate unexpectedly or silently skip
event handlers (e.g.on_scanned_bot) between rounds.
- Fixed Python bots failing to connect to the server when the server's handshake included
-
Bot API (Java, .NET, Python, TypeScript):
- #202: Fixed radar and gun commands set in
run()before the firstgo()being silently
dropped on turn 1. Commands such assetTurnRadarRight(Double.MAX_VALUE)inrun()now
take effect from turn 1 as expected.
- #202: Fixed radar and gun commands set in
🔧 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.
- Raised the default ready timeout from 1 second to 10 seconds. This prevents bots using
-
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.
- Significantly expanded the test bed for both the server and all Bot API implementations,
Robocode Tank Royale 0.41.0
🚀 Quick Start
New to Robocode Tank Royale?
- 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:
- Native Installers (Recommended) – Installs as a native application with desktop shortcuts
- 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:
- Download the archive for your preferred language
- Extract to a directory (e.g.,
C:\Robocode\bots\python) - 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.0More 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
- Documentation: robocode.dev
- GitHub Repository: robocode-dev/tank-royale
- Issue Tracker: Report bugs or request features
0.40.2
[0.40.2] - 2026-04-14 - Bot API stability and intent fixes
🐞 Bug Fixes
-
Bot API (Java):
- #207: Fixed Java 26 warning about mutating
finalfields via reflection during
deserialization ofRoundStartedEventandRoundEndedEvent. Gson now deserializes
into the mutable schema classes first, then constructs the immutable bot API event
objects via their constructors.
- #207: Fixed Java 26 warning about mutating
-
Bot API (Java, .NET, Python, TypeScript):
- #202: Fixed bots receiving a
SkippedTurnEventon 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.
- #202: Fixed bots receiving a
-
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.
- Fixed console output is becoming corrupted after a bot reconnects to the server in a
-
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.
- Fixed
Robocode Tank Royale 0.40.2
🚀 Quick Start
New to Robocode Tank Royale?
- 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:
- Native Installers (Recommended) – Installs as a native application with desktop shortcuts
- 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:
- Download the archive for your preferred language
- Extract to a directory (e.g.,
C:\Robocode\bots\python) - 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.2More 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
- Documentation: robocode.dev
- GitHub Repository: robocode-dev/tank-royale
- Issue Tracker: Report bugs or request features
0.40.1
[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.
- #206: Fixed bots disconnecting from the server after ~80 seconds while paused at a
-
Bot API (Java, .NET, Python):
- #202: Fixed bots receiving a
SkippedTurnEventon turn 1 and missing their first chance
to act.
- #202: Fixed bots receiving a
Robocode Tank Royale 0.40.1
🚀 Quick Start
New to Robocode Tank Royale?
- 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:
- Native Installers (Recommended) – Installs as a native application with desktop shortcuts
- 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:
- Download the archive for your preferred language
- Extract to a directory (e.g.,
C:\Robocode\bots\python) - 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.1More 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
- Documentation: robocode.dev
- GitHub Repository: robocode-dev/tank-royale
- Issue Tracker: Report bugs or request features
0.40.0
[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-turnsteps one turn,ResumeGameexits.GamePausedgains apauseCause
field (pause,debug_step, orbreakpoint). - #204: Added breakpoint mode: server waits for a late bot intent instead of issuing
SkippedTurnEvent; auto-resumes on arrival. Advertised viafeatures.breakpointMode.
Auto-enabled for bots withdebuggerAttached = true. - Added
server.properties(debugModeSupported,breakpointModeSupported) with CLI
overrides (--[no-]debug-mode,--[no-]breakpoint-mode).breakpointModeSupported = false
silently ignores breakpoint requests (tournament safety).
- Added debug mode (
-
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
whendebuggerAttached = true. Hidden when the server doesn't support breakpoint mode.
-
Bot APIs (Java, .NET, Python):
- #204: Added debugger detection:
debuggerAttached: trueis included in the bot handshake
when a debugger is found (JDWP args /Debugger.IsAttached/sys.gettrace()). Overridable
viaROBOCODE_DEBUG.
- #204: Added debugger detection:
🐞 Bug Fixes
-
Sample bots (C#):
- Fixed
PaintingBot.cswith a broken .json file.
- Fixed
-
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
SkippedTurnEventat tick 1, prevented the bot from acting at tick 2, and delayedScannedBotEvent
delivery by one tick. The fix passes the captured turn number fromgo()intoexecute()so both
use the same consistent tick throughout the call.
- #202: Fixed race condition in
Robocode Tank Royale 0.40.0
🚀 Quick Start
New to Robocode Tank Royale?
- 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:
- Native Installers (Recommended) – Installs as a native application with desktop shortcuts
- 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:
- Download the archive for your preferred language
- Extract to a directory (e.g.,
C:\Robocode\bots\python) - 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.0More 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
- Documentation: robocode.dev
- GitHub Repository: robocode-dev/tank-royale
- Issue Tracker: Report bugs or request features
0.39.0
[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/.batscripts.
The Booter selects a template fromplatform,programmingLang, andbasein the bot's JSON. - Bots without a
.jsonfile 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
basewhen not set in JSON.
- Template-based booting for JVM, .NET, and Python — bots no longer need
-
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.
- Boot progress dialog handles no-JSON bots via baseline-snapshot tracking — waits for the right
-
Bot API (Java, .NET, Python):
- Runtime validation of required properties (
name,version,authors). ABotExceptionwith
a descriptive message is thrown on connection if any are missing.
- Runtime validation of required properties (
🔧 Changes
-
Build:
- #203: Updated
release-docs-template.mdto use the direct JAR link for the Java Bot API on Maven Central.
- #203: Updated
-
Sample Bots:
- Removed generated
.cmd/.shscripts from all standard sample bots — they now rely on template-based booting. - Added
NuGet.Configto C# sample bot distributions for standalone source-based builds.
- Removed generated
🐞 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 withsetAutoRequestFocus(false),
so the bot list keeps focus and additional double-clicks accumulate in the same dialog.
- Fixed double-clicking in the New Battle dialog. The boot-progress dialog was
Robocode Tank Royale 0.39.0
🚀 Quick Start
New to Robocode Tank Royale?
- 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:
- Native Installers (Recommended) – Installs as a native application with desktop shortcuts
- 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:
- Download the archive for your preferred language
- Extract to a directory (e.g.,
C:\Robocode\bots\python) - 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.0More 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
- Documentation: robocode.dev
- GitHub Repository: robocode-dev/tank-royale
- Issue Tracker: Report bugs or request features
0.38.3
[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.
- #202: Fixed
-
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-UNNAMEDJVM flag is now
passed automatically when running on Java 16 or later.
- Fixed JNA restricted native access warning (
🔧 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?
- 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:
- Native Installers (Recommended) – Installs as a native application with desktop shortcuts
- 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:
- Download the archive for your preferred language
- Extract to a directory (e.g.,
C:\Robocode\bots\python) - 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.3More 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
- Documentation: robocode.dev
- GitHub Repository: robocode-dev/tank-royale
- Issue Tracker: Report bugs or request features