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.
- 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. - 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). - Use
.tar.gz(preferred) or.tar.xz. Maximum size is 100 MB. The name may use only letters, digits,_ - .with no spaces or parentheses.
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 playersesacIf your team only has the standard start and no start.sh, FoxLeague generates a start.sh for you that loops this start over players 1-11 and the coach, passing the right port to each.
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 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