Weapon properties
Fields:
name:string— Namerounds_per_second:float64— Shooting speed (number of shots per second)spread:float64— Accuracy (spread angle) of a shot (in degrees)aim_time:float64— Aiming timeaim_field_of_view:float64— Field of view in full aim (in degrees)aim_rotation_speed:float64— Rotation speed in full aim (degrees per second)aim_movement_speed_modifier:float64— Movement speed modifier in full aimprojectile_speed:float64— Speed of projectilesprojectile_damage:float64— Damage of a projectileprojectile_life_time:float64— Projectiles' life timeshot_sound_type_index:Option<int32>— Index of the sound when shooting (starting with 0), or Noneprojectile_hit_sound_type_index:Option<int32>— Index of the sound when hitting something (starting with 0), or Nonemax_inventory_ammo:int32— Max amount of ammo unit can hold in their inventory
Sound properties
Fields:
name:string— Namedistance:float64— Distance from which the sound can be heardoffset:float64— Offset modifier
2 dimensional vector.
Fields:
x:float64—xcoordinate of the vectory:float64—ycoordinate of the vector
An obstacle on the map
Fields:
id:int32— Unique idposition:Vec2— Center positionradius:float64— Obstacle's radiuscan_see_through:boolean— Whether units can see through this obstacle, or it blocks the viewcan_shoot_through:boolean— Whether projectiles can go through this obstacle
Non changing game state
Fields:
ticks_per_second:float64— Number of ticks per game secondteam_size:int32— Starting number of units in each teaminitial_zone_radius:float64— Initial zone radiuszone_speed:float64— Speed of zone radiuszone_damage_per_second:float64— Damage dealt to units outside of the zone per secondspawn_time:float64— Unit spawning timespawn_collision_damage_per_second:float64— Damage dealt to units trying to spawn in incorrect position per secondlooting_time:float64— Time required to perform looting actions (in seconds)bot_players:int32— Number of bot players (teams)unit_radius:float64— Units' radiusunit_health:float64— Max units' healthhealth_regeneration_per_second:float64— Health automatically restored per secondhealth_regeneration_delay:float64— Time until automatic health regeneration since last health damage (in seconds)max_shield:float64— Max value of unit's shieldspawn_shield:float64— Initial value of unit's shieldextra_lives:int32— Initial number of extra lives for unitslast_respawn_zone_radius:float64— Zone radius after which respawning is disabledfield_of_view:float64— Units' field of view without aiming (in degrees)view_distance:float64— Units' view distanceview_blocking:boolean— Whether units' view is blocked by obstaclesrotation_speed:float64— Unit rotation speed without aiming (degrees per second)spawn_movement_speed:float64— Units' movement speed while spawningmax_unit_forward_speed:float64— Max unit speed when walking forwardmax_unit_backward_speed:float64— Max unit speed when walking backwardunit_acceleration:float64— Max unit accelerationfriendly_fire:boolean— Whether a unit can damage units of the same teamkill_score:float64— Score given for killing enemy unitdamage_score_multiplier:float64— Score multiplier for damaging enemy unitsscore_per_place:float64— Score given for every team killed before youweapons:[WeaponProperties]— List of properties of every weapon typestarting_weapon:Option<int32>— Starting weapon with which units spawn, or Nonestarting_weapon_ammo:int32— Ammo for starting weapon given when unit spawnsmax_shield_potions_in_inventory:int32— Max number of shield potions in unit's inventoryshield_per_potion:float64— Amount of shield restored using one potionshield_potion_use_time:float64— Time required to perform action of using shield potionsounds:[SoundProperties]— List of properties of every sound typesteps_sound_type_index:Option<int32>— Sound type index when moving (starting with 0), or Nonesteps_sound_travel_distance:float64— Distance when steps sound will be 100% probabilityobstacles:[Obstacle]— List of obstacles on the map
Game's participant (team of units)
Fields:
id:int32— Unique idkills:int32— Number of killsdamage:float64— Total damage dealt to enemiesplace:int32— Survival place (number of survivor teams currently/at the moment of death)score:float64— Team score
Type of action a unit is currently performing
Variants:
Looting— Picking up or dropping lootUseShieldPotion— Using a shield potion
Action unit is currently performing
Fields:
finish_tick:int32— Tick when the action will be finishedaction_type:ActionType— Type of the action
A unit
Fields:
id:int32— Unique idplayer_id:int32— Id of the player (team) controlling the unithealth:float64— Current healthshield:float64— Current shield valueextra_lives:int32— Left extra lives of this unitposition:Vec2— Current position of unit's centerremaining_spawn_time:Option<float64>— Remaining time until unit will be spawned, or Nonevelocity:Vec2— Current velocitydirection:Vec2— Current view direction (vector of length 1)aim:float64— Value describing process of aiming (0 - not aiming, 1 - ready to shoot)action:Option<Action>— Current action unit is performing, or Nonehealth_regeneration_start_tick:int32— Tick when health regeneration will start (can be less than current game tick)weapon:Option<int32>— Index of the weapon this unit is holding (starting with 0), or Nonenext_shot_tick:int32— Next tick when unit can shoot again (can be less than current game tick)ammo:[int32]— List of ammo in unit's inventory for every weapon typeshield_potions:int32— Number of shield potions in inventory
Lootable item
One of:
-
Weapon— WeaponFields:
type_index:int32— Weapon type index (starting with 0)
-
ShieldPotions— Shield potionsFields:
amount:int32— Amount of potions
-
Ammo— AmmoFields:
weapon_type_index:int32— Weapon type index (starting with 0)amount:int32— Amount of ammo
Loot lying on the ground
Fields:
id:int32— Unique idposition:Vec2— Positionitem:Item— Item
Weapon projectile
Fields:
id:int32— Unique idweapon_type_index:int32— Index of the weapon this projectile was shot from (starts with 0)shooter_id:int32— Id of unit who made the shotshooter_player_id:int32— Id of player (team), whose unit made the shotposition:Vec2— Current positionvelocity:Vec2— Projectile's velocitylife_time:float64— Left time of projectile's life
Current state of the game zone
Fields:
current_center:Vec2— Current centercurrent_radius:float64— Current radiusnext_center:Vec2— Next centernext_radius:float64— Next radius
Sound heard by one of your units
Fields:
type_index:int32— Sound type index (starting with 0)unit_id:int32— Id of unit that heard this soundposition:Vec2— Position where sound was heard (different from sound source position)
Current game's state
Fields:
my_id:int32— Your player's idplayers:[Player]— List of players (teams)current_tick:int32— Current tickunits:[Unit]— List of units visible by your teamloot:[Loot]— List of loot visible by your teamprojectiles:[Projectile]— List of projectiles visible by your teamzone:Zone— Current state of game zonesounds:[Sound]— List of sounds heard by your team during last tick
Order to perform an action for unit
One of:
-
Pickup— Pick up lootFields:
loot:int32— Loot id
-
UseShieldPotion— Use shield potionNo fields
-
DropShieldPotions— Drop shield potions on the groundFields:
amount:int32— Amount of potions
-
DropWeapon— Drop current weaponNo fields
-
DropAmmo— Drop ammoFields:
weapon_type_index:int32— Weapon type index (starting with 0)amount:int32— Amount of ammo
-
Aim— Start/continue aimingFields:
shoot:boolean— Shoot (only possible in full aim)
Order for specific unit
Fields:
target_velocity:Vec2— Target moving velocitytarget_direction:Vec2— Target view direction (vector length doesn't matter)action:Option<ActionOrder>— Order to perform an action, or None
Player's (team's) orders
Fields:
unit_orders:Map<int32 -> UnitOrder>— Orders for each of your units