Get desktop application:
View/edit binary Protocol Buffers messages
information about the advantage choice that is offered to a team
Used in:
the type of foul that occurred
the bot crash event that was the source for this advantage choice
the bot push event that was the source for this advantage choice
the bot push event that was the source for this advantage choice
Used in:
default value when not set
an opponent bot has crashed with one of your bots
an opponent bot has pushed one of your bots
an opponent has touched one of your bots while your bot has been at least partially inside the defense area
a message from autoRef, describing the current state or situation
Used in:
a custom message an empty string indicates that there is no message
one or more bots are at invalid locations and need to move
the bots that is waited for
Used in:
the bots that are waited for
Used in:
the id of the violator
the distance to the next valid position
AutoRefRegistration is the first message that a client must send to the controller to identify itself
identifier is a unique name of the client
signature can optionally be specified to enable secure communication
AutoRefToController is the wrapper message for all subsequent messages from the autoRef to the controller
signature can optionally be specified to enable secure communication
game_event is an optional event that the autoRef detected during the game
auto_ref_message is an optional message that describes the current state or situation of the game/autoRef it is not and never was processed by the GC and is this marked deprecated
Used in:
Used in:
BallSpeedMeasurement is a single measurement sample of the ball speed
The UNIX timestamp [μs] when the measurement was taken.
the ball speed measurement [m/s]
the estimated initial ball speed (kick speed) [m/s]
BotId is the combination of a team and a robot id
Used in:
the robot id - a negative value indicates that the id is not set
the team that the robot belongs to
a reply that is sent by the controller for each request from teams or autoRefs
Used in: ,
status_code is an optional code that indicates the result of the last request
reason is an optional explanation of the status code
next_token must be send with the next request, if secure communication is used the token is used to avoid replay attacks the token is always present in the very first message before the registration starts the token is not present, if secure communication is not used
verification indicates if the last request could be verified (secure communication)
Used in:
Used in:
ControllerToAutoRef is the wrapper message for all messages from controller to autoRef
a reply from the controller
wrapper for all messages from controller to a team's computer
a reply from the controller
the team is offered an advantage choice
Used in:
GameEvent contains exactly one game event Each game event has optional and required fields. The required fields are mandatory to process the event. Some optional fields are only used for visualization, others are required to determine the ball placement position. If fields are missing that are required for the ball placement position, no ball placement command will be issued. Fields are marked optional to make testing and extending of the protocol easier. An autoRef should ideally set all fields, except if there are good reasons to not do so.
Used in: , ,
the origin of this game event empty, if it originates from game controller autoRef name(s), if it originates from one or more autoRefs
the event that occurred
the ball left the field via goal line and a team committed an aimless kick
Used in:
the team that last touched the ball
the bot that last touched the ball
the location where the ball left the field
the location where the ball was last touched
an attacker touched the ball multiple times when it was not allowed to
Used in:
the team that found guilty
the bot that touched the ball twice
the location of the ball when it was first touched
an attacker was located too near to the opponent defense area when ball entered play
Used in:
the team that found guilty
the bot that is too close to the defense area
the location of the bot
the distance [m] of the bot to the penalty area
an attacker touched the ball inside the opponent defense area
Used in:
the team that found guilty
the bot that is inside the penalty area
the location of the bot
the distance [m] that the bot is inside the penalty area
an attacker touched the opponent keeper
Used in: ,
the team that found guilty
the bot that touched the opponent keeper
the bot of the opposite team that was touched
the location of the contact point between bot and keeper
the ball left the field normally
Used in:
the team that last touched the ball
the bot that last touched the ball
the location where the ball left the field
two robots crashed into each other with similar speeds
Used in:
the bot of the yellow team
the bot of the blue team
the location of the crash (center between both bots)
the calculated crash speed [m/s] of the two bots
the difference [m/s] of the velocity of the two bots
the angle [rad] in the range [0, π] of the bot velocity vectors an angle of 0 rad ( 0°) means, the bots barely touched each other an angle of π rad (180°) means, the bots crashed frontal into each other
two robots crashed into each other and one team was found guilty to due significant speed difference
Used in: ,
the team that caused the crash
the bot that caused the crash
the bot of the opposite team that was involved in the crash
the location of the crash (center between both bots)
the calculated crash speed vector [m/s] of the two bots
the difference [m/s] of the velocity of the two bots
the angle [rad] in the range [0, π] of the bot velocity vectors an angle of 0 rad ( 0°) means, the bots barely touched each other an angle of π rad (180°) means, the bots crashed frontal into each other
a bot dribbled to ball too far
Used in:
the team that found guilty
the bot that dribbled too far
the location where the dribbling started
the location where the maximum dribbling distance was reached
a bot held the ball for too long
Used in:
the team that found guilty
the bot that holds the ball
the location of the ball
the duration [s] that the bot hold the ball
a bot interfered the ball placement of the other team
Used in:
the team that found guilty
the bot that interfered the placement
the location of the bot
a bot kicked the ball too fast
Used in:
the team that found guilty
the bot that kicked too fast
the location of the ball at the time of the highest speed
the absolute initial ball speed (kick speed) [m/s]
was the ball chipped?
a bot pushed another bot over a significant distance
Used in: ,
the team that pushed the other team
the bot that pushed the other bot
the bot of the opposite team that was pushed
the location of the push (center between both bots)
the pushed distance [m]
bots are being substituted by at least one team
Used in:
the team that substitutes robots
a bot tipped over
Used in:
the team that found guilty
the bot that tipped over
the location of the bot
a bot moved too fast while the game was stopped
Used in:
the team that found guilty
the bot that was too fast
the location of the bot
the bot speed [m/s]
the ball entered the goal, but was initially chipped
Used in:
the team that tried to shoot the goal
the bot that kicked the ball
the location where the ball entered the goal
the location where the ball was kicked
the maximum height [m] of the ball, before it entered the goal and since the last kick
a defender other than the keeper was fully located inside its own defense and touched the ball
Used in:
the team that found guilty
the bot that is inside the penalty area
the location of the bot
the distance [m] from bot case to the nearest point outside the defense area
a defender other than the keeper was partially located inside its own defense area and touched the ball
Used in:
the team that found guilty
the bot that is partially inside the penalty area
the location of the bot
the distance [m] that the bot is inside the penalty area
a bot of the defending team got too close to the kick point during a free kick
Used in:
the team that found guilty
the bot that violates the distance to the kick point
the location of the bot
the distance [m] from bot to the kick point (including the minimum radius)
a team shot a goal
Used in:
the team that scored the goal
the team that shot the goal (different from by_team for own goals)
the bot that shot the goal
the location where the ball entered the goal
the location where the ball was kicked
the ball entered the goal directly during an indirect free kick
Used in:
the team that tried to shoot the goal
the bot that kicked the ball - at least the team must be set
the location where the ball entered the goal
the location where the ball was kicked
a keeper held the ball in its defense area for too long
Used in:
the team that found guilty
the location of the ball
the duration [s] that the keeper hold the ball
timeout waiting for the attacking team to perform the free kick
Used in:
the team that that should have kicked
the location of the ball
the time [s] that was waited
a team collected multiple cards (yellow and red), which results in a penalty kick
Used in:
the team that received multiple yellow cards
a team collected multiple fouls, which results in a yellow card
Used in:
the team that collected multiple fouls
a team failed to place the ball multiple times in a row
Used in:
the team that failed multiple times
game was stuck
Used in:
the location of the ball
the time [s] that was waited
ball placement failed
Used in:
the team that failed
the remaining distance [m] from ball to placement position
a team successfully placed the ball
Used in:
the team that did the placement
the time [s] taken for placing the ball
the distance [m] between placement location and actual ball position
the distance [m] between the initial ball location and the placement position
both teams are prepared - all conditions are met to continue (with kickoff or penalty kick)
Used in:
the time [s] taken for preparing
a team has too many robots on the field
Used in:
the team that has too many robots
a team was found guilty for major unsporting behavior
Used in:
the team that found guilty
an explanation of the situation and decision
a team was found guilty for minor unsporting behavior
Used in:
the team that found guilty
an explanation of the situation and decision
Used in:
a game event that caused a referee command
Used in:
the game event type that happened
the team and optionally a designated robot that is the originator of the game event
a message describing further details of this game event
Used in:
not set
an event that is not listed in this enum yet. Give further details in the message below
Law 3: Number of players
Law 9: Ball out of play
Law 10: Team scored a goal
Law 9.3: lack of progress while bringing the ball into play
Law ?: There is no progress in game for (10|15)? seconds
Law 12: Pushing / Substantial Contact
Law 12.2: Defender is completely inside penalty area
Law 12: Defender is partially inside penalty area
Law 12.3: Attacker in defense area
Law 12: Icing (kicking over midline and opponent goal line)
Law 12: Ball speed
Law 12: Robot speed during STOP
Law 12: Maximum dribbling distance
Law 12: Touching the opponent goalkeeper
Law 12: Double touch
Law 13-17: Attacker not too close to the opponent's penalty area when ball enters play
Law 13-17: Keeping the correct distance to the ball during opponents freekicks
Law 12: A robot holds the ball deliberately
Law 12: The ball entered the goal directly after an indirect kick was performed
Law 9.2: Ball placement
Law 10: A goal is only scored if the ball has not exceeded a robot height (150mm) between the last kick of an attacker and the time the ball crossed the goal line.
information about an originator
Used in:
a team
Used in:
Used in:
Used in:
Location is a 2d-coordinate on the field in ssl-vision coordinate system. Units are in meters.
Used in: , , , , , , , , , , , , , , , , , , , , , , ,
the x-coordinate in [m] in the ssl-vision coordinate system
the y-coordinate in [m] in the ssl-vision coordinate system
Used in:
Used in:
Used in:
The UNIX timestamp when the game event proposal will time out, in microseconds.
The identifier of the proposer.
The proposed game event.
Each UDP packet contains one of these messages.
Used in:
The UNIX timestamp when the packet was sent, in microseconds. Divide by 1,000,000 to get a time_t.
The number of microseconds left in the stage. The following stages have this value; the rest do not: NORMAL_FIRST_HALF NORMAL_HALF_TIME NORMAL_SECOND_HALF EXTRA_TIME_BREAK EXTRA_FIRST_HALF EXTRA_HALF_TIME EXTRA_SECOND_HALF PENALTY_SHOOTOUT_BREAK If the stage runs over its specified time, this value becomes negative.
The number of commands issued since startup (mod 2^32).
The UNIX timestamp when the command was issued, in microseconds. This value changes only when a new command is issued, not on each packet.
Information about the two teams.
Information about the direction of play. True, if the blue team will have it's goal on the positive x-axis of the ssl-vision coordinate system. Obviously, the yellow team will play on the opposite half.
The game event that caused the referee command. deprecated in favor of game_events.
The command that will be issued after the current stoppage and ball placement to continue the game.
All game events that were detected since the last RUNNING state. Will be cleared as soon as the game is continued.
All non-finished proposed game events that may be processed next.
The time in microseconds that is remaining until the current action times out The time will not be reset. It can get negative. An autoRef would raise an appropriate event, if the time gets negative. Possible actions where this time is relevant: * free kicks * kickoff, penalty kick, force start * ball placement
These are the "fine" states of play on the field.
Used in:
All robots should completely stop moving.
Robots must keep 50 cm from the ball.
A prepared kickoff or penalty may now be taken.
The ball is dropped and free for either team.
The yellow team may move into kickoff position.
The blue team may move into kickoff position.
The yellow team may move into penalty position.
The blue team may move into penalty position.
The yellow team may take a direct free kick.
The blue team may take a direct free kick.
The yellow team may take an indirect free kick.
The blue team may take an indirect free kick.
The yellow team is currently in a timeout.
The blue team is currently in a timeout.
The yellow team just scored a goal. For information only. For rules compliance, teams must treat as STOP. Deprecated: Use the score field from the team infos instead. That way, you can also detect revoked goals.
The blue team just scored a goal. See also GOAL_YELLOW.
Equivalent to STOP, but the yellow team must pick up the ball and drop it in the Designated Position.
Equivalent to STOP, but the blue team must pick up the ball and drop it in the Designated Position.
The coordinates of the Designated Position. These are measured in millimetres and correspond to SSL-Vision coordinates. These fields are always either both present (in the case of a ball placement command) or both absent (in the case of any other command).
Used in:
These are the "coarse" stages of the game.
Used in:
The first half is about to start. A kickoff is called within this stage. This stage ends with the NORMAL_START.
The first half of the normal game, before half time.
Half time between first and second halves.
The second half is about to start. A kickoff is called within this stage. This stage ends with the NORMAL_START.
The second half of the normal game, after half time.
The break before extra time.
The first half of extra time is about to start. A kickoff is called within this stage. This stage ends with the NORMAL_START.
The first half of extra time.
Half time between first and second extra halves.
The second half of extra time is about to start. A kickoff is called within this stage. This stage ends with the NORMAL_START.
The second half of extra time.
The break before penalty shootout.
The penalty shootout.
The game is over.
Information about a single team.
Used in:
The team's name (empty string if operator has not typed anything).
The number of goals scored by the team during normal play and overtime.
The number of red cards issued to the team since the beginning of the game.
The amount of time (in microseconds) left on each yellow card issued to the team. If no yellow cards are issued, this array has no elements. Otherwise, times are ordered from smallest to largest.
The total number of yellow cards ever issued to the team.
The number of timeouts this team can still call. If in a timeout right now, that timeout is excluded.
The number of microseconds of timeout this team can use.
The pattern number of this team's goalkeeper.
The total number of countable fouls that act towards yellow cards
The number of consecutive ball placement failures of this team
Indicate if the team is able and allowed to place the ball
The maximum number of bots allowed on the field based on division and cards
Used in:
Used in: , ,
Used in:
Represents a field marking as a circular arc segment represented by center point, a start angle, an end angle, and an arc thickness.
Used in:
Name of this field marking.
Center point of the circular arc.
Radius of the arc.
Start angle in counter-clockwise order.
End angle in counter-clockwise order.
Thickness of the arc.
Represents a field marking as a line segment represented by a start point p1, and end point p2, and a line thickness. The start and end points are along the center of the line, so the thickness of the line extends by thickness / 2 on either side of the line.
Used in:
Name of this field marking.
Start point of the line segment.
End point of the line segment.
Thickness of the line segment.
Used in: ,
Used in:
Used in:
Used in:
Signature can be added to a request to let it be verfied by the controller
Used in: , , ,
the token that was received with the last controller reply
the PKCS1v15 signature of this message
Team is either blue or yellow
Used in: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
team not set
yellow team
blue team
Used in: , ,
a registration that must be send by teams and autoRefs to the controller as the very first message
the exact team name as published by the game-controller
signature can optionally be specified to enable secure communication
wrapper for all messages from a team's computer to the controller
signature can optionally be specified to enable secure communication
request a new desired keeper id this is only allowed during STOP and will be rejected otherwise
response to an advantage choice request
request to substitute a robot at the next possibility
send a ping to the GC to test if the connection is still open. the value is ignored and a reply is sent back
Used in:
no choice -> will default to STOP
stop the game and handle the foul immediately
continue the game until the next stop of the game, then handle the foul
A 2D float vector.
Used in: ,
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
Used in: