Developers Hub
Developers Hub lets you compete with your own team binary (the RoboCup way) instead of NFT players. You upload a real RoboCup team, the platform test-plays it against a base team, then once it is verified you can join developer tournaments with it.
How it works
Section titled “How it works”- Open Developers Hub from the left menu.
- Upload a
Team_Name.tar.gz(RoboCup format). You can keep up to 5 versions. Delete one to upload another. A fresh upload sits at pending verification. - The platform runs a short 1-minute test game (two 30-second halves) against the base team. Watch the replay and download the logfiles (rcg) and (rcl) from the same row. You can run one test game at a time. Re-testing a version keeps only its latest test: the previous replay is dropped. A test counts only when both teams connect under their names and the game reaches at least 100 cycles; otherwise the version is marked failed with the reason.
- Once the test game has produced its logfiles, review them. If you are happy, press Verify. A binary stays pending verification until you do this, even if it is your only version.
- Only a verified binary makes you eligible for developer tournaments. The verified version you pick represents you. Other users see it in the public list with its verified status, the test game, the last upload time.
Preparing your binary
Section titled “Preparing your binary”Your archive must follow the RoboCup structure:
- The team name, the folder name inside the archive, the archive file name: these must all match. Example: team
HELIOS_baselives in a folderHELIOS_base/packed asHELIOS_base.tar.gz. The team name means the name your binary registers with rcssserver: the test game checks the names that actually connected, so a binary that plays under a different name fails its test even when the archive and folder match. - Put your binary inside that folder together with its
lib/directory plus the config and formation files your players need. - Include a
startscript that launches your team’s players and the coach (see below). It must read all four launch arguments$1 $2 $3 $4; an upload whosestartignores one of them is refused. - Use
.tar.gz(preferred) or.tar.xz. Maximum size is 100 MB. The name is at most 64 characters and may use only letters, digits,_ - .with no spaces or parentheses. - Your team name is locked across all your versions: every upload must use the same name. To switch names, delete every version in My Binaries first. A name that another developer already holds as their active verified team cannot be verified or activated, since team names are unique across developers.
Archive command:
tar czvfp HELIOS_base.tar.gz HELIOS_base/Example layout:
HELIOS_base/├── lib/ (your shared libraries)├── sample_player├── sample_coach├── player.conf├── coach.conf├── formations-dt└── startThe start file
Section titled “The start file”The runner calls start <host> <basedir> <number> <port> once for each player and once for the coach. Pass the <port> argument through to your player and coach (the coach already receives its own port). Set teamname to your team name:
#!/bin/shHOST=$1BASEDIR=$2NUM=$3PORT=$4
# Make your bundled libraries findable at runtime.LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH
teamname="TEAMNAME"player="./sample_player"coach="./sample_coach"
opt="--player-config ./player.conf -h ${HOST} -p ${PORT} -t ${teamname}"coachopt="--coach-config ./coach.conf -h ${HOST} -p ${PORT} -t ${teamname}"
cd $BASEDIRcase $NUM in 1) $player $opt -g ;; # goalie 12) $coach $coachopt ;; # coach *) $player $opt ;; # field playersesacFoxLeague always generates its own start.sh from your start, overwriting any start.sh you ship. The generated launcher loops start over players 1-11 plus the coach as number 12, passing the game port to each player and port+2 to the coach. An archive with only a start.sh and no start is refused at upload.
If something goes wrong
Section titled “If something goes wrong”When a test game cannot run, the reason shows up in your Developers Hub → My Binaries table. Common causes:
- Name mismatch: the archive name, the folder name, the team name your binary registers with the server are not identical.
- Extract failed: the archive is corrupt or it is not a real tar.gz / tar.xz.
- No start file: there is no
startscript in the team folder. - Will not launch: wrong team name in
start, missing libraries, a binary built for a different OS than Ubuntu 24.04. - Absolute paths in your config: a player config that points at fixed locations like
/home/strategy/formation.confor/home/server/playertype.confwill crash, because those paths do not exist on our servers. Your players connect, then segfault the moment they try to load a missing strategy, formation or player-type file. Use paths relative to your team folder (./strategy/formation.conf) and bundle those files in the archive. A common signature is players that sendinitbut never appear on the field while your coach runs fine. - Timeout or no log: the players never connected or the game did not finish. Check that your binary runs locally first.
Developer tournaments
Section titled “Developer tournaments”When you create a tournament you can turn on Developers Hub (available on all four formats, below the Organizer-only toggle). A developer tournament:
- shows a violet DEVELOPERS badge on its card,
- accepts only teams that have uploaded and verified a binary in Developers Hub section.
If you have not uploaded and verified a binary, the Join button is locked with a note showing Developers Only.
See Royalties System for how a verified team can earn rewards by being used in standard tournaments.
RoboCup resources
Section titled “RoboCup resources”New to RoboCup Soccer Simulation 2D? These are the canonical references for building a team from scratch:
- Soccer Server (rcssserver): releases · the engine that runs the match (11 autonomous players per side).
- Users Manual: rcsoccersim.readthedocs.io · the official server manual.
- Simulator organization: github.com/rcsoccersim · rcsoccersim.github.io
- Monitor (rcssmonitor): github.com/rcsoccersim/rcssmonitor · view a live match or play back a logfile.
- Soccer Simulation 2D League: ssim.robocup.org · robocup.org/leagues/24
- League Discord: discord.gg/7KHCgmPxpT
- Log and Binary Archive: archive.robocup.info · past teams plus their logs.
- RoboCup (official): robocup.org · the international federation behind the competition.
- RoboCup 2026: 2026.robocup.org