Top 
Top 
dcs/atmosphere/v0/atmosphere.proto 
GetTemperatureAndPressureRequest 
Field 
Type 
Label 
Description 
 
 
position 
dcs.common.v0.InputPosition The position on the map we want the wind information for. Requires lat/lon/alt fields to be populated, there are no default values 
 
 
GetTemperatureAndPressureResponse 
Field 
Type 
Label 
Description 
 
 
temperature 
float The temperature in Kelvin 
 
pressure 
float The pressure in Pascals 
 
 
Field 
Type 
Label 
Description 
 
 
position 
dcs.common.v0.InputPosition The position on the map we want the wind information for. Requires lat/lon/alt fields to be populated, there are no default values 
 
 
Field 
Type 
Label 
Description 
 
 
heading 
float The heading the wind is coming from. 
 
strength 
float The strength of the wind in meters per second 
 
 
GetWindWithTurbulenceRequest 
Field 
Type 
Label 
Description 
 
 
position 
dcs.common.v0.InputPosition The position on the map we want the wind information for. Requires lat/lon/alt fields to be populated, there are no default values 
 
 
GetWindWithTurbulenceResponse 
Field 
Type 
Label 
Description 
 
 
heading 
float The heading the wind is coming from. 
 
strength 
float The strength of the wind in meters per second. 
 
 
https://wiki.hoggitworld.com/view/DCS_singleton_atmosphere 
Top 
dcs/coalition/v0/coalition.proto 
AddGroupRequest.GroundGroupTemplate 
AddGroupRequest.GroundUnitTemplate 
AddGroupRequest.HelicopterGroupTemplate 
AddGroupRequest.HelicopterUnitTemplate 
AddGroupRequest.PlaneGroupTemplate 
AddGroupRequest.PlaneUnitTemplate 
AddGroupRequest.ShipGroupTemplate 
AddGroupRequest.ShipUnitTemplate 
Field 
Type 
Label 
Description 
 
 
name 
string the name of the static; must be unique or would destroy previous object 
 
country 
dcs.common.v0.Country country the unit belongs to 
 
type 
string type of the static object (e.g. "Farm A", "AS32-31A") 
 
livery 
string string name of the livery for the aircraft 
 
dead 
bool boolean for whether or not the object will appear as a wreck 
 
rate 
uint32 optional 
number value for the "score" of the object when it is killed 
 
unit 
string the name of the unit to offset from 
 
angle 
double the angle to relative to the linked unit, in a clockwise direction. negative values are anti-clockwise 
 
x 
double x offset from linked unit center (positive is forward; negative is aft) 
 
y 
double y offset from linked unit center (positive is starboard-side; negative is port-side) 
 
 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Field 
Type 
Label 
Description 
 
 
name 
string the name of the static; must be unique or would destroy previous object 
 
country 
dcs.common.v0.Country country the unit belongs to 
 
type 
string type of the static object (e.g. "Farm A", "AS32-31A") 
 
livery 
string string name of the livery for the aircraft 
 
dead 
bool boolean for whether or not the object will appear as a wreck 
 
rate 
uint32 optional 
number value for the "score" of the object when it is killed 
 
heading 
double  
position 
dcs.common.v0.InputPosition  
cargo_mass 
uint32 cargo mass in kilograms 
 
 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Field 
Type 
Label 
Description 
 
 
coalition 
dcs.common.v0.Coalition A specific coalition must be used for this API call. Do not use COALITION_ALL
 
 
 
AddGroupRequest.Point.AltitudeType 
Name 
Number 
Description 
 
 
ALTITUDE_TYPE_UNSPECIFIED 
0 
 
ALTITUDE_TYPE_BAROMETRIC 
1 
 
ALTITUDE_TYPE_RADIO 
2 
 
 
AddGroupRequest.Point.PointType 
Name 
Number 
Description 
 
 
POINT_TYPE_RANDOM 
0 
protolint:disable:next ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH 
 
POINT_TYPE_TAKEOFF 
1 
 
POINT_TYPE_TAKEOFF_PARKING 
2 
 
POINT_TYPE_TURNING_POINT 
3 
 
POINT_TYPE_TAKEOFF_PARKING_HOT 
4 
 
POINT_TYPE_LAND 
5 
 
 
Name 
Number 
Description 
 
 
SKILL_RANDOM 
0 
protolint:disable:next ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH 
 
SKILL_AVERAGE 
1 
 
SKILL_GOOD 
2 
 
SKILL_HIGH 
3 
 
SKILL_EXCELLENT 
4 
 
SKILL_PLAYER 
5 
 
 
https://wiki.hoggitworld.com/view/DCS_singleton_coalition 
This position is set at mission start and does not change for the duration of the mission.
See https://wiki.hoggitworld.com/view/DCS_func_getMainRefPoint  for more details |
| GetPlayerUnits | GetPlayerUnitsRequest  | GetPlayerUnitsResponse  | https://wiki.hoggitworld.com/view/DCS_func_getPlayers  |
Top 
dcs/common/v0/common.proto 
An instance of a DCS Airfield
Field 
Type 
Label 
Description 
 
 
unit 
Unit optional 
Information about the unit, if the airbase is one (e.g. in case of a carrier). 
 
name 
string TODO: Fill this in 
 
callsign 
string TODO: Fill this in 
 
coalition 
Coalition The coalition the unit belongs to. This can change mid-mission if an airfield is captured 
 
position 
Position The position of the center point of the airfield. 
 
category 
AirbaseCategory What category the airfield belongs to. 
 
display_name 
string TODO: Fill this in 
 
 
An instance of a DCS Cargo object
An instance of a contact in a DCS AI controller's detection table
This is a target that the AI controller has detected and is actively tracking
Field 
Type 
Label 
Description 
 
 
id 
uint32 The DCS generated ID 
 
visible 
bool Can the sensor see the contact 
 
distance 
bool Does the controller know the distance to the contact? 
 
object 
Unknown  
unit 
Unit  
weapon 
Weapon  
 
An instance of a DCS group
Field 
Type 
Label 
Description 
 
 
id 
uint32 The DCS generated ID 
 
name 
string The name of the group as assigned in the mission editor 
 
coalition 
Coalition The coalition of the group 
 
category 
GroupCategory The group category. 
 
 
The initiator of an event
The initiator of an event. For things like shooting events it is usually a
vehicle but it can be almost anything depending on the event
Position used in requests to DCS-gRPC.
Latitude and Longitude are in Decimal Degrees format (e.g. 41.33 / 37.21).
Negative values are used for West of the meridian and south of the equator.
Altitude is given in meters above Mean Sea Level (MSL) and can be a decimal
value.
Field 
Type 
Label 
Description 
 
 
lat 
double Latitude in Decimal Degrees format 
 
lon 
double Longitude in Decimal Degrees format 
 
alt 
double Altitude in Meters above Mean Sea Level (MSL) 
 
 
A MarkPanel
A MarkPanel visible on the F10 map. These can be used for reference by
players but can also be used by things like Jester for setting waypoints
Field 
Type 
Label 
Description 
 
 
id 
uint32 The id of the mark panel. 
 
time 
double The time in seconds relative to the mission start the mark got created. 
 
initiator 
Unit optional 
The unit of the player that created the mark. Not set if the player isn't controlling any unit anymore (disconnected, spectator, game master, ...). 
 
coalition 
Coalition optional 
If set, the mark is only visible for the specified coalition. 
 
group_id 
uint32 optional 
The ID of the group the player was in when creating the mark panel. This will still be set even if the player isn't controlling the unit in that group anymore. 
 
text 
string optional 
The text content of the mark. 
 
position 
Position The position of the mark. 
 
 
The orientation of an object in 3D space.
Field 
Type 
Label 
Description 
 
 
heading 
double The heading the nose of the object points to on a flat world. 
 
yaw 
double Yaw in degrees - clockwise relative to the true north (this is similar to the heading, just corrected by the projection error when going from a flat to a spherical world). 
 
pitch 
double Pitch in degrees - positive when taking-off. 
 
roll 
double Roll in degrees - positive when rolling the aircraft to the right. 
 
forward 
Vector The normalized direction the object is pointing to. 
 
right 
Vector The normalized direction the three line (right wing) is pointing to. 
 
up 
Vector The normalized up vector (orthogonal to forward and right). 
 
 
Position of an object in DCS
Latitude and Longitude are in Decimal Degrees format (e.g. 41.33 / 37.21).
Negative values are used for West of the meridian and south of the equator
Altitude is given in meters above Mean Sea Level (MSL) and can be a decimal
value.
Field 
Type 
Label 
Description 
 
 
lat 
double Latitude in Decimal Degrees format 
 
lon 
double Longitude in Decimal Degrees format 
 
alt 
double Altitude in Meters above Mean Sea Level (MSL) 
 
u 
double Distance between DCS' map origin to object in meters on west-east axis. 
 
v 
double Distance between DCS' map origin to object in meters on north-south axis. 
 
 
An instance of a DCS scenery object
Field 
Type 
Label 
Description 
 
 
id 
uint32 The id of the scenery 
 
type 
string The DCS type-name of the scenery 
 
position 
Position The position of the scenery 
 
 
An instance of a DCS static object
These objects are often buildings but can also be vehicles that have no AI or
other game behaviour aside from being destroyable
Field 
Type 
Label 
Description 
 
 
id 
uint32 The DCS generated ID 
 
type 
string The DCS type-name of the static 
 
name 
string The name of the static 
 
coalition 
Coalition The coalition the static belongs to 
 
position 
Position The position of the static 
 
 
The target of an event
The target of an event. For things like shooting events it is usually a
vehicle but it can be almost anything depending on the event
An instance of a DCS Unit
A unit is an "active" unit in a DCS mission. This means it has an attached AI
that moves and shoots. Units include aircraft, ground units, ships, weapons
etc.
Field 
Type 
Label 
Description 
 
 
id 
uint32 The DCS generated ID 
 
name 
string The name of the unit as assigned in the mission editor 
 
callsign 
string The DCS assigned callsign if one exists. e.g. "Enfield 11" 
 
coalition 
Coalition The coalition the unit belongs to 
 
type 
string The DCS type-name of the unit. e.g "MiG-29A", "ZSU_57_2" or "Hawk ln" 
 
position 
Position The position of the unit 
 
orientation 
Orientation The orientation of the unit in both 2D and 3D space 
 
velocity 
Velocity The velocity of the unit in both 2D and 3D space 
 
player_name 
string optional 
The name of the player if one is in control of the unit 
 
group 
Group The group that the unit belongs to 
 
number_in_group 
uint32 The number of this unit in the group. Does not change as units are destroyed 
 
 
This type is returned if an object category cannot be determined
The base object includes the getName() function so even for an unknown type
we should  be able to get the name
Field 
Type 
Label 
Description 
 
 
name 
string  
 
A vector in a right-handed coordinate system where +x is north, -x south, +z
is east, -z west, +y up and -y down.
The orientation of an object in 3D space.
Field 
Type 
Label 
Description 
 
 
heading 
double The heading the object is moving to (use orientation.heading to get the heading the nose is pointing to). 
 
speed 
double The horizontal speed of the unit. If it is doing mach one straight up then the speed will be 0 
 
velocity 
Vector The direction the object is traveling to, and speed (magnitude of the vector) the object is traveling with. 
 
 
An instance of a DCS weapon
These weapons include everything from autocannon HE shells up to massive
ship-killer missiles
Field 
Type 
Label 
Description 
 
 
id 
uint32 The DCS generated ID 
 
type 
string The DCS type-name of the weapon. e.g "Matra_S530D", "HAWK_RAKETA" or "weapons.shells.53-UOR-281U" 
 
position 
Position The position of the Weapon 
 
orientation 
Orientation The orientation of the unit in both 2D and 3D space 
 
velocity 
Velocity The velocity of the unit in both 2D and 3D space 
 
 
The category the object belongs to
Some of these are less than obvious. For example an oilrig counts as a
HELIPAD airfield.
Name 
Number 
Description 
 
 
AIRBASE_CATEGORY_UNSPECIFIED 
0 
 
AIRBASE_CATEGORY_AIRDROME 
1 
 
AIRBASE_CATEGORY_HELIPAD 
2 
 
AIRBASE_CATEGORY_SHIP 
3 
 
 
Coalitions in DCS
The coalitions supported by DCS. The NEUTRAL coalition is a relatively new
one and may not be as supported as the belligerant ones.
Name 
Number 
Description 
 
 
COALITION_ALL 
0 
protolint:disable:next ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH 
 
COALITION_NEUTRAL 
1 
 
COALITION_RED 
2 
 
COALITION_BLUE 
3 
 
 
Countries in DCS
Every country belongs to a coalition and this association is set per mission.
The values of these enums are correct such that they will work with DCS
however the text names have been Made to follow gRPC conventions to to aid
in language bindings and acronyms have been replaced with their full english
names to aid in recognition. In some cases this can be a big change
(e.g. USSR -> Soviet Union).
We have also added a dummy value for the missing enum value 14 to prevent
possible issues in the various language bindings
See https://wiki.hoggitworld.com/view/DCS_enum_country  for more information
Name 
Number 
Description 
 
 
COUNTRY_UNSPECIFIED 
0 
 
COUNTRY_RUSSIA 
1 
 
COUNTRY_UKRAINE 
2 
 
COUNTRY_UNITED_STATES_OF_AMERICA 
3 
 
COUNTRY_TURKEY 
4 
 
COUNTRY_UNITED_KINGDOM 
5 
 
COUNTRY_FRANCE 
6 
 
COUNTRY_GERMANY 
7 
 
COUNTRY_AGGRESSORS 
8 
 
COUNTRY_CANADA 
9 
 
COUNTRY_SPAIN 
10 
 
COUNTRY_THE_NETHERLANDS 
11 
 
COUNTRY_BELGIUM 
12 
 
COUNTRY_NORWAY 
13 
 
COUNTRY_DENMARK 
14 
 
COUNTRY_UNUSED 
15 
 
COUNTRY_ISRAEL 
16 
 
COUNTRY_GEORGIA 
17 
 
COUNTRY_INSURGENTS 
18 
 
COUNTRY_ABKHAZIA 
19 
 
COUNTRY_SOUTH_OSETIA 
20 
 
COUNTRY_ITALY 
21 
 
COUNTRY_AUSTRALIA 
22 
 
COUNTRY_SWITZERLAND 
23 
 
COUNTRY_AUSTRIA 
24 
 
COUNTRY_BELARUS 
25 
 
COUNTRY_BULGARIA 
26 
 
COUNTRY_CZECH_REPUBLIC 
27 
 
COUNTRY_CHINA 
28 
 
COUNTRY_CROATIA 
29 
 
COUNTRY_EGYPT 
30 
 
COUNTRY_FINLAND 
31 
 
COUNTRY_GREECE 
32 
 
COUNTRY_HUNGARY 
33 
 
COUNTRY_INDIA 
34 
 
COUNTRY_IRAN 
35 
 
COUNTRY_IRAQ 
36 
 
COUNTRY_JAPAN 
37 
 
COUNTRY_KAZAKHSTAN 
38 
 
COUNTRY_NORTH_KOREA 
39 
 
COUNTRY_PAKISTAN 
40 
 
COUNTRY_POLAND 
41 
 
COUNTRY_ROMANIA 
42 
 
COUNTRY_SAUDI_ARABIA 
43 
 
COUNTRY_SERBIA 
44 
 
COUNTRY_SLOVAKIA 
45 
 
COUNTRY_SOUTH_KOREA 
46 
 
COUNTRY_SWEDEN 
47 
 
COUNTRY_SYRIA 
48 
 
COUNTRY_YEMEN 
49 
 
COUNTRY_VIETNAM 
50 
 
COUNTRY_VENEZUELA 
51 
 
COUNTRY_TUNISIA 
52 
 
COUNTRY_THAILAND 
53 
 
COUNTRY_SUDAN 
54 
 
COUNTRY_PHILIPPINES 
55 
 
COUNTRY_MOROCCO 
56 
 
COUNTRY_MEXICO 
57 
 
COUNTRY_MALAYSIA 
58 
 
COUNTRY_LIBYA 
59 
 
COUNTRY_JORDAN 
60 
 
COUNTRY_INDONESIA 
61 
 
COUNTRY_HONDURAS 
62 
 
COUNTRY_ETHIOPIA 
63 
 
COUNTRY_CHILE 
64 
 
COUNTRY_BRAZIL 
65 
 
COUNTRY_BAHRAIN 
66 
 
COUNTRY_THIRDREICH 
67 
 
COUNTRY_YUGOSLAVIA 
68 
 
COUNTRY_SOVIET_UNION 
69 
 
COUNTRY_ITALIAN_SOCIAL_REPUBLIC 
70 
 
COUNTRY_ALGERIA 
71 
 
COUNTRY_KUWAIT 
72 
 
COUNTRY_QATAR 
73 
 
COUNTRY_OMAN 
74 
 
COUNTRY_UNITED_ARAB_EMIRATES 
75 
 
COUNTRY_SOUTH_AFRICA 
76 
 
COUNTRY_CUBA 
77 
 
COUNTRY_PORTUGAL 
78 
 
COUNTRY_GERMAN_DEMOCRATIC_REPUBLIC 
79 
 
COUNTRY_LEBANON 
80 
 
COUNTRY_COMBINED_JOINT_TASK_FORCE_BLUE 
81 
 
COUNTRY_COMBINED_JOINT_TASK_FORCE_RED 
82 
 
COUNTRY_UNITED_NATIONS_PEACEKEEPERS 
83 
 
COUNTRY_ARGENTINA 
84 
 
COUNTRY_CYPRUS 
85 
 
COUNTRY_SLOVENIA 
86 
 
 
Group category enumerator.
Name 
Number 
Description 
 
 
GROUP_CATEGORY_UNSPECIFIED 
0 
 
GROUP_CATEGORY_AIRPLANE 
1 
 
GROUP_CATEGORY_HELICOPTER 
2 
 
GROUP_CATEGORY_GROUND 
3 
 
GROUP_CATEGORY_SHIP 
4 
 
GROUP_CATEGORY_TRAIN 
5 
 
 
The category the object belongs to
All DCS objects are one of the following categories. Unlike many other
enums created by DCS, this one is not 0 indexed. Therefore we do not
need to do any modification of the value by incrementing it by one to
make it work with gRPC and DCS.
See https://wiki.hoggitworld.com/view/DCS_Class_Object  for more information
Name 
Number 
Description 
 
 
OBJECT_CATEGORY_UNSPECIFIED 
0 
 
OBJECT_CATEGORY_UNIT 
1 
 
OBJECT_CATEGORY_WEAPON 
2 
 
OBJECT_CATEGORY_STATIC 
3 
 
OBJECT_CATEGORY_SCENERY 
4 
 
OBJECT_CATEGORY_BASE 
5 
 
OBJECT_CATEGORY_CARGO 
6 
 
 
Top 
dcs/controller/v0/controller.proto 
GetDetectedTargetsRequest 
GetDetectedTargetsResponse 
GetDetectedTargetsRequest.DetectionType 
Name 
Number 
Description 
 
 
DETECTION_TYPE_UNSPECIFIED 
0 
 
DETECTION_TYPE_VISUAL 
1 
 
DETECTION_TYPE_OPTIC 
2 
 
DETECTION_TYPE_RADAR 
4 
 
DETECTION_TYPE_IRST 
8 
 
DETECTION_TYPE_RWR 
16 
 
DETECTION_TYPE_DLINK 
32 
 
 
SetAlarmStateRequest.AlarmState 
Name 
Number 
Description 
 
 
ALARM_STATE_UNSPECIFIED 
0 
 
ALARM_STATE_AUTO 
1 
 
ALARM_STATE_GREEN 
2 
 
ALARM_STATE_RED 
3 
 
 
Top 
dcs/custom/v0/custom.proto 
Field 
Type 
Label 
Description 
 
 
unit_name 
string  
 
Field 
Type 
Label 
Description 
 
 
lua 
string  
 
Field 
Type 
Label 
Description 
 
 
json 
string  
 
GetMagneticDeclinationRequest 
Field 
Type 
Label 
Description 
 
 
lat 
double Latitude in Decimal Degrees format 
 
lon 
double Longitude in Decimal Degrees format 
 
alt 
double Altitude in Meters above Mean Sea Level (MSL) 
 
 
GetMagneticDeclinationResponse 
Field 
Type 
Label 
Description 
 
 
declination 
double Magnetic declination in degrees. A negative value is an westerly / declination, while a positive value is a easterly declination. True / North + declination = Magnetic North
 
 
 
Field 
Type 
Label 
Description 
 
 
unit_name 
string  
 
Field 
Type 
Label 
Description 
 
 
unit_name 
string  
mission_code 
int32  
 
RequestMissionAssignmentRequest 
Field 
Type 
Label 
Description 
 
 
unit_name 
string  
mission_type 
string  
 
RequestMissionAssignmentResponse 
The Custom service is for APIs that do not map to the "standard library" of
DCS APIs provided by Eagle Dynamics.
Expect to find APIs here that may be useful for mission frameworks etc.
Top 
Field 
Type 
Label 
Description 
 
 
group_name 
string  
 
Field 
Type 
Label 
Description 
 
 
group_name 
string  
 
Field 
Type 
Label 
Description 
 
 
group_name 
string  
active 
bool optional 
Whether the response should include only active units (true), only inactive units (false), or all units (nil). 
 
 
https://wiki.hoggitworld.com/view/DCS_Class_Group 
Top 
Field 
Type 
Label 
Description 
 
 
ucid 
string The globally unique ID of the player 
 
ip_address 
string The IP address the user had when they were banned 
 
player_name 
string The Name of the player at the time of the ban 
 
reason 
string The reason given for the ban 
 
banned_from 
uint64 When the ban was issued in unixtime 
 
banned_until 
uint64 When the ban will expire in unixtime 
 
 
Field 
Type 
Label 
Description 
 
 
id 
uint32 The session ID of the player 
 
period 
uint32 The period of the ban in seconds 
 
reason 
string The reason for the ban 
 
 
Field 
Type 
Label 
Description 
 
 
banned 
bool Was the player successfully banned 
 
 
Field 
Type 
Label 
Description 
 
 
lua 
string  
 
Field 
Type 
Label 
Description 
 
 
json 
string  
 
GetBallisticsCountRequest 
GetBallisticsCountResponse 
Field 
Type 
Label 
Description 
 
 
count 
uint32  
 
Field 
Type 
Label 
Description 
 
 
bans 
BanDetails repeated 
 
 
GetMissionDescriptionRequest 
GetMissionDescriptionResponse 
Field 
Type 
Label 
Description 
 
 
description 
string  
 
GetMissionFilenameRequest 
GetMissionFilenameResponse 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Field 
Type 
Label 
Description 
 
 
paused 
bool  
 
Field 
Type 
Label 
Description 
 
 
time 
double The current time in a mission relative to the DCS start time 
 
 
Field 
Type 
Label 
Description 
 
 
id 
string The slot or unit ID of the unit to retrieve the type of 
 
 
Field 
Type 
Label 
Description 
 
 
type 
string Type of unit (e.g. "F-14B") 
 
 
Field 
Type 
Label 
Description 
 
 
multiplayer 
bool  
 
Field 
Type 
Label 
Description 
 
 
server 
bool  
 
Field 
Type 
Label 
Description 
 
 
file_name 
string The full path to the .miz file to be loaded 
 
 
Field 
Type 
Label 
Description 
 
 
loaded 
bool Was the next mission successfully loaded. SHOULD return false when the end of the mission list has been reached but DCS appears to always return true 
 
 
ReloadCurrentMissionRequest 
ReloadCurrentMissionResponse 
Field 
Type 
Label 
Description 
 
 
paused 
bool  
 
Field 
Type 
Label 
Description 
 
 
ucid 
string The globally unique ID of the player 
 
 
Field 
Type 
Label 
Description 
 
 
unbanned 
bool Was the player successfully unbanned 
 
 
APis that are part of the hook environment
Top 
dcs/mission/v0/mission.proto 
AddCoalitionCommandRequest Adds an F10 radio command visible to all players in the specified coalition.
When the player activates the command then a coalitionCommand event will
be emitted to all connected DCS-gRPC clients for processing as they see fit.
The emitted event will include the coalition.
Field 
Type 
Label 
Description 
 
 
coalition 
dcs.common.v0.Coalition The coalition whose players will be able to see and run the command 
 
name 
string The name of the command that is displayed to the player. It will form the last entry in the returned path. 
 
path 
string repeated 
The menu path the command will appear under. This can be empty if you want the command to be on the first level under the F10 menu. This path must already have been created. 
 
details 
google.protobuf.Struct A struct containing data that will be included in the emitted event to the DCS-gRPC clients 
 
 
AddCoalitionCommandResponse 
Field 
Type 
Label 
Description 
 
 
path 
string repeated 
The full path to the command, including the command name. Use this path to delete the command. 
 
 
AddCoalitionCommandSubMenuRequest 
Field 
Type 
Label 
Description 
 
 
coalition 
dcs.common.v0.Coalition The coalition whose players will be able to see the submenu 
 
name 
string The name of the submenu that is displayed to the player. It will form the last entry in the returned path. 
 
path 
string repeated 
The menu path the submenu will appear under. This can be empty if you want the submenu to be on the first level under the F10 menu. This path must already have been created using this command. you cannot create a nested submenu tree in one command. 
 
 
AddCoalitionCommandSubMenuResponse 
Field 
Type 
Label 
Description 
 
 
path 
string repeated 
The full path to the submenu, including the submenu name. Use this path to add another submenu or command underneath it or delete the submenu. 
 
 
Adds an F10 radio command visible to all players in the specified group.
When the player activates the command then a groupCommand event will
be emitted to all connected DCS-gRPC clients for processing as they see fit.
The emitted event will include the group name.
Field 
Type 
Label 
Description 
 
 
group_name 
string The name of the group whose players will be able to see and execute the command. TODO (Figure out if this persists across spawns) 
 
name 
string The name of the command that is displayed to the player. It will form the last entry in the returned path. 
 
path 
string repeated 
The menu path the command will appear under. This can be empty if you want the command to be on the first level under the F10 menu. This path must already have been created. 
 
details 
google.protobuf.Struct A struct containing data that will be included in the emitted event to the DCS-gRPC clients 
 
 
Field 
Type 
Label 
Description 
 
 
path 
string repeated 
The full path to the command, including the command name. Use this path to delete the command. 
 
 
AddGroupCommandSubMenuRequest 
Field 
Type 
Label 
Description 
 
 
group_name 
string The name of the group whose players will be able to see the submenu 
 
name 
string The name of the submenu that is displayed to the player. It will form the last entry in the returned path. 
 
path 
string repeated 
The menu path the submenu will appear under. This can be empty if you want the submenu to be on the first level under the F10 menu. This path must already have been created using this command. you cannot create a nested submenu tree in one command. 
 
 
AddGroupCommandSubMenuResponse 
Field 
Type 
Label 
Description 
 
 
path 
string repeated 
The full path to the submenu, including the submenu name. Use this path to add another submenu or command underneath it or delete the submenu. 
 
 
Adds an F10 radio command visible to all players in all coalitions.
When the player activates the command then a missionCommand event will be
emitted to all connected DCS-gRPC clients for processing as they see fit.
Field 
Type 
Label 
Description 
 
 
name 
string The name of the command that is displayed to the player. It will form the last entry in the returned path. 
 
path 
string repeated 
The menu path the command will appear under. This can be empty if you want the command to be on the first level under the F10 menu. This path must already have been created. 
 
details 
google.protobuf.Struct A struct containing data that will be included in the emitted event to the DCS-gRPC clients 
 
 
AddMissionCommandResponse 
Field 
Type 
Label 
Description 
 
 
path 
string repeated 
The full path to the command, including the command name. Use this path to delete the command. 
 
 
AddMissionCommandSubMenuRequest 
Field 
Type 
Label 
Description 
 
 
name 
string The name of the submenu that is displayed to the player. It will form the last entry in the returned path. 
 
path 
string repeated 
The menu path the submenu will appear under. This can be empty if you want the submenu to be on the first level under the F10 menu. This path must already have been created using this command. you cannot create a nested submenu tree in one command. 
 
 
AddMissionCommandSubMenuResponse 
Field 
Type 
Label 
Description 
 
 
path 
string repeated 
The full path to the submenu, including the submenu name. Use this path to add another submenu or command underneath it or delete the submenu. 
 
 
GetScenarioCurrentTimeRequest 
GetScenarioCurrentTimeResponse 
Field 
Type 
Label 
Description 
 
 
datetime 
string  
 
GetScenarioStartTimeRequest 
GetScenarioStartTimeResponse 
Field 
Type 
Label 
Description 
 
 
datetime 
string  
 
Field 
Type 
Label 
Description 
 
 
session_id 
int64  
 
RemoveCoalitionCommandItemRequest 
Field 
Type 
Label 
Description 
 
 
coalition 
dcs.common.v0.Coalition The coalition whose players will have the menu item removed 
 
path 
string repeated 
The full path to the menu item, which can be a submenu or a command, to be removed. Deleting a menu item will delete all children it may have. 
 
 
RemoveCoalitionCommandItemResponse 
RemoveGroupCommandItemRequest 
Field 
Type 
Label 
Description 
 
 
group_name 
string The group whose players will have the menu item removed 
 
path 
string repeated 
The full path to the menu item, which can be a submenu or a command, to be removed. Deleting a menu item will delete all children it may have. 
 
 
RemoveGroupCommandItemResponse 
RemoveMissionCommandItemRequest 
Field 
Type 
Label 
Description 
 
 
path 
string repeated 
The full path to the menu item, which can be a submenu or a command, to be removed. Deleting a menu item will delete all children it may have. 
 
 
RemoveMissionCommandItemResponse 
The DCS Event information. Contains event information and a timestamp.
StreamEventsResponse.BaseCaptureEvent Occurs when a ground unit captures either an airbase or a farp.
StreamEventsResponse.BirthEvent Occurs when any object is spawned into the mission.
StreamEventsResponse.CoalitionCommandEvent 
StreamEventsResponse.ConnectEvent Fired when a player connected to the server.
Field 
Type 
Label 
Description 
 
 
addr 
string The player's IP and port. 
 
name 
string The name of the player. 
 
ucid 
string The player's unique client identifier (used to ban a player). 
 
id 
uint32 The player's id in the current server session (used to for name/slot/... changes). 
 
 
StreamEventsResponse.CrashEvent Occurs when an aircraft crashes into the ground and is completely
destroyed.
StreamEventsResponse.DeadEvent Occurs when an object is completely destroyed.
StreamEventsResponse.DetailedFailureEvent Occurs when a system on an aircraft fails. This can be due to damage or due
to random failures set up in the mission editor.
StreamEventsResponse.DiscardChairAfterEjectionEvent A pilot detached from their ejection seat.
StreamEventsResponse.DisconnectEvent Fired when a player disconnected from the server
(not fired for the server's player).
StreamEventsResponse.EjectionEvent Occurs when a pilot ejects from its aircraft.
StreamEventsResponse.EngineShutdownEvent 
StreamEventsResponse.EngineStartupEvent Occurs when any aircraft starts its engines.
StreamEventsResponse.GroupCommandEvent 
Field 
Type 
Label 
Description 
 
 
group 
dcs.common.v0.Group Details of the group to which the player who ran the command is a unit of 
 
details 
google.protobuf.Struct A struct containing details of the command that was run by a player 
 
 
StreamEventsResponse.HitEvent Occurs when an object is hit by a weapon.
Field 
Type 
Label 
Description 
 
 
initiator 
dcs.common.v0.Initiator optional 
The object that fired the weapon. Not set when for example fyling an aircraft into a building (building will be the target and weapon_name the name of the aircraft). 
 
weapon 
dcs.common.v0.Weapon The weapon that the target has been hit with. 
 
target 
dcs.common.v0.Target The object that has been hit. 
 
weapon_name 
string optional 
The weapon the target got hit by. 
 
 
StreamEventsResponse.HumanFailureEvent Occurs e.g. when a player controlled aircraft blacks out.
StreamEventsResponse.KillEvent Occurs when an object is killed by a weapon.
Field 
Type 
Label 
Description 
 
 
initiator 
dcs.common.v0.Initiator The object that fired the weapon. 
 
weapon 
dcs.common.v0.Weapon The weapon that the target has been killed with. 
 
target 
dcs.common.v0.Target The object that has been killed. 
 
weapon_name 
string optional 
The name of the weapon that killed the target (exists instead of weapon for weapons that trigger the shooting start and end events). 
 
 
StreamEventsResponse.LandEvent Occurs when an aircraft lands at an airbase, farp or ship.
StreamEventsResponse.LandingAfterEjectionEvent A pilot detached from their ejection seat.
StreamEventsResponse.LandingQualityMarkEvent Occurs when an aircraft receives an LSO rating after recovering on an
aircraft carrier.
StreamEventsResponse.MarkAddEvent Occurs when marks get added to the mission by players or scripting
functions.
StreamEventsResponse.MarkChangeEvent Occurs when marks got changed.
StreamEventsResponse.MarkRemoveEvent Occurs when marks get removed.
StreamEventsResponse.MissionCommandEvent 
Field 
Type 
Label 
Description 
 
 
details 
google.protobuf.Struct A struct containing details of the command that was run by a player 
 
 
StreamEventsResponse.MissionEndEvent Occurs when the mission stops.
StreamEventsResponse.MissionStartEvent Occurs when the mission starts.
StreamEventsResponse.PilotDeadEvent Occurs when a pilot of an aircraft is killed. Can occur either if the
player is alive and crashes (in this case both this and the [CrashEvent]
event will be fired) or if a weapon kills the pilot without completely
destroying the plane.
StreamEventsResponse.PlayerChangeSlotEvent fired when the player changes across to a slot
Field 
Type 
Label 
Description 
 
 
player_id 
uint32 The player's id in the current server session. 
 
coalition 
dcs.common.v0.Coalition The slot's coalition 
 
slot_id 
string The slot's identifier 
 
 
StreamEventsResponse.PlayerEnterUnitEvent Occurs when a player takes direct control of a unit.
StreamEventsResponse.PlayerLeaveUnitEvent Occurs when a player relieves direct control of a unit.
StreamEventsResponse.PlayerSendChatEvent Occurs when a chat message is sent on the server
Field 
Type 
Label 
Description 
 
 
player_id 
uint32 The player's id in the current server session. 
 
message 
string what was typed 
 
 
StreamEventsResponse.RefuelingEvent Occurs when an aircraft connects with a tanker and begins taking on fuel.
StreamEventsResponse.RefuelingStopEvent Occurs when an aircraft is finished taking fuel.
StreamEventsResponse.ScoreEvent A score change (doesn't contain any useful information)
StreamEventsResponse.ShootingEndEvent Occurs when a unit stops firing a machine gun- or autocannon-based weapon.
Event will always correspond with a [ShootingStartEvent] event.
Field 
Type 
Label 
Description 
 
 
initiator 
dcs.common.v0.Initiator The object that was shooting and has no stopped firing. 
 
weapon_name 
string The name of the shoot weapon. 
 
 
StreamEventsResponse.ShootingStartEvent Occurs when a unit begins firing a machine gun- or autocannon-based weapon
(weapons with a high rate of fire). Other weapons are handled by
[ShotEvent].
StreamEventsResponse.ShotEvent Occurs when a unit fires a weapon (but no machine gun- or autocannon-based
weapons - those are handled by [ShootingStartEvent]).
StreamEventsResponse.SimulationFpsEvent Fired every second containing simulation FPS information since the previous
event.
Field 
Type 
Label 
Description 
 
 
average 
double The average FPS since the last event. 
 
 
StreamEventsResponse.SrsConnectEvent Fired every time a player occuping a unit connects to a frequency on SRS.
Field 
Type 
Label 
Description 
 
 
unit 
dcs.common.v0.Unit The unit that connected to a frequency in SRS. 
 
frequency 
uint64 The radio frequency in Hz the unit connected to. 
 
 
StreamEventsResponse.SrsDisconnectEvent Fired every time a player occuping a unit disconnects from a frequency on
SRS. It is not fired when the player leaves the unit or the unit dies.
Field 
Type 
Label 
Description 
 
 
unit 
dcs.common.v0.Unit The unit that disconnected from a frequency in SRS. 
 
frequency 
uint64 The radio frequency in Hz the unit disconnected from. 
 
 
StreamEventsResponse.TakeoffEvent Occurs when an aircraft takes off from an airbase, farp, or ship.
StreamEventsResponse.TtsEvent Fired for every TTS request that contains the text_plain field, for other
clients to use e.g. for accessibility use-cases.
Field 
Type 
Label 
Description 
 
 
text 
string The plain text that got transmitted. 
 
frequency 
uint64 The radio frequency in Hz the transmission got send to. 
 
coalition 
dcs.common.v0.Coalition The coalition of the transmission. 
 
srs_client_name 
string optional 
Custom name of the SRS client used for the transmission. 
 
 
StreamEventsResponse.UnitLostEvent A unit got destroyed.
StreamEventsResponse.WeaponAddEvent Fired for each payload of an aircraft spawened midair.
Field 
Type 
Label 
Description 
 
 
poll_rate 
uint32 optional 
The poll rate in seconds at which the gRPC server communicates with the DCS mission to retrieve the latest unit positions. The lower the poll_rate the higher the amount of requests send to to the DCS mission. Default: 5 
 
max_backoff 
uint32 optional 
The maximum backoff in seconds which the gRPC postpones polling units that haven't moved recently. This is an optimization to dynamically reduce the poll rate for stationary units. Set it to the same value as poll_rate to disable the backoff. Default: 30 
 
category 
dcs.common.v0.GroupCategory The type of the unit to stream movements. Different categories of units would move at different speeds, which allows the stream to be configured with the appropriate polling rates. GROUP_CATEGORY_UNSPECIFIED would return all the units. 
 
 
StreamUnitsResponse.UnitGone 
StreamEventsResponse.DisconnectReason The reason a player disconnected for.
Name 
Number 
Description 
 
 
DISCONNECT_REASON_UNSPECIFIED 
0 
 
DISCONNECT_REASON_THATS_OKAY 
1 
 
DISCONNECT_REASON_INVALID_ADDRESS 
2 
 
DISCONNECT_REASON_CONNECT_FAILED 
3 
 
DISCONNECT_REASON_WRONG_VERSION 
4 
 
DISCONNECT_REASON_PROTOCOL_ERROR 
5 
 
DISCONNECT_REASON_TIMEOUT 
6 
 
DISCONNECT_REASON_INVALID_PASSWORD 
101 
 
DISCONNECT_REASON_BANNED 
102 
 
DISCONNECT_REASON_BAD_CALLSIGN 
103 
 
DISCONNECT_REASON_TAINTED_CLIENT 
104 
 
DISCONNECT_REASON_KICKED 
105 
 
DISCONNECT_REASON_REFUSED 
106 
 
DISCONNECT_REASON_DENIED_TRIAL_ONLY 
107 
 
 
Contains the streaming APIs that streaming information out of the DCS server.
Top 
Field 
Type 
Label 
Description 
 
 
time 
double The current time in seconds since 00:00 of the start date of the mission. 
 
day 
uint32  
month 
uint32  
year 
int32  
 
Field 
Type 
Label 
Description 
 
 
time 
double  
 
https://wiki.hoggitworld.com/view/DCS_singleton_timer 
Top 
dcs/trigger/v0/trigger.proto 
Represents an RGBA color but instead of using 0-255 as the color
values it uses 0 to 1. A red color with 50% transparency would be
RGBA of 1, 0, 0, 0.5
Field 
Type 
Label 
Description 
 
 
flag 
string  
 
Field 
Type 
Label 
Description 
 
 
value 
uint32  
 
Field 
Type 
Label 
Description 
 
 
position 
dcs.common.v0.InputPosition The altitude of Illumination Bombs is meters above ground. Ground level will be calculated server-side 
 
power 
uint32  
 
Field 
Type 
Label 
Description 
 
 
id 
uint32  
 
Field 
Type 
Label 
Description 
 
 
id 
uint32  
 
Field 
Type 
Label 
Description 
 
 
id 
uint32  
 
Field 
Type 
Label 
Description 
 
 
id 
uint32  
 
MarkupToCoalitionResponse 
Field 
Type 
Label 
Description 
 
 
id 
uint32  
 
OutTextForCoalitionRequest 
OutTextForCoalitionResponse 
Field 
Type 
Label 
Description 
 
 
text 
string  
display_time 
int32  
clear_view 
bool  
 
Field 
Type 
Label 
Description 
 
 
id 
uint32  
 
Name 
Number 
Description 
 
 
LINE_TYPE_NO_LINE 
0 
protolint:disable:next ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH 
 
LINE_TYPE_SOLID 
1 
 
LINE_TYPE_DASHED 
2 
 
LINE_TYPE_DOTTED 
3 
 
LINE_TYPE_DOT_DASH 
4 
 
LINE_TYPE_LONG_DASH 
5 
 
LINE_TYPE_TWO_DASH 
6 
 
 
Name 
Number 
Description 
 
 
SHAPE_UNSPECIFIED 
0 
 
SHAPE_LINE 
1 
 
SHAPE_CIRCLE 
2 
 
SHAPE_RECT 
3 
 
SHAPE_ARROW 
4 
 
SHAPE_TEXT 
5 
 
SHAPE_QUAD 
6 
 
SHAPE_FREEFORM 
7 
 
 
SignalFlareRequest.FlareColor 
Name 
Number 
Description 
 
 
FLARE_COLOR_UNSPECIFIED 
0 
 
FLARE_COLOR_GREEN 
1 
 
FLARE_COLOR_RED 
2 
 
FLARE_COLOR_WHITE 
3 
 
FLARE_COLOR_YELLOW 
4 
 
 
Name 
Number 
Description 
 
 
SMOKE_COLOR_UNSPECIFIED 
0 
 
SMOKE_COLOR_GREEN 
1 
 
SMOKE_COLOR_RED 
2 
 
SMOKE_COLOR_WHITE 
3 
 
SMOKE_COLOR_ORANGE 
4 
 
SMOKE_COLOR_BLUE 
5 
 
 
https://wiki.hoggitworld.com/view/DCS_singleton_trigger 
Top 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
TODO fill these in as and when we need em
Field 
Type 
Label 
Description 
 
 
attributes 
string repeated 
 
 
GetDrawArgumentValueRequest 
GetDrawArgumentValueResponse 
Field 
Type 
Label 
Description 
 
 
value 
double  
 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Field 
Type 
Label 
Description 
 
 
player_name 
string optional 
 
 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Field 
Type 
Label 
Description 
 
 
name 
string  
emitting 
bool  
 
https://wiki.hoggitworld.com/view/DCS_Class_Unit 
Top 
Field 
Type 
Label 
Description 
 
 
theatre 
string  
 
https://wiki.hoggitworld.com/view/DCS_singleton_world 
Top 
GetClientsResponse.Client 
Field 
Type 
Label 
Description 
 
 
unit 
dcs.common.v0.Unit The unit that is connected to SRS. 
 
frequencies 
uint64 repeated 
The radio frequencies in Hz the unit is connected to. 
 
 
Field 
Type 
Label 
Description 
 
 
ssml 
string The text that is synthesized to speech and transmitted to SRS. Supports SSML tags (you should not wrap the text in the root <speak> tag though). 
 
plaintext 
string optional 
The plain text without any transformations made to it for the purpose of getting it spoken out as desired (no SSML tags, no FOUR NINER instead of 49, ...). Even though this field is optional, please consider providing it as it can be used to display the spoken text to players with hearing impairments. 
 
frequency 
uint64 The radio frequency in Hz the transmission is send to. Example: 251000000 for 251.00MHz. 
 
srs_client_name 
string optional 
Name of the SRS client. Defaults to "DCS-gRPC". 
 
position 
dcs.common.v0.InputPosition The origin of the transmission. Relevant if the SRS server has "Line of Sight" and/or "Distance Limit" enabled. 
 
coalition 
dcs.common.v0.Coalition The coalition of the transmission. Relevant if the SRS server has "Secure Coalition Radios" enabled. Only Blue and Red are supported, all other values will fallback to Spectator. 
 
async 
bool Whether to keep the request open until the whole transmission was sent. If enabled, you can send the next transmission after you've received the response for the previous one and be sure that they don't overlap (talk over each other). If disabled, you'll receive a response right away (kind of fire and forget). You can use the returned duration as a spacing between TTS requests to prevent the overlap of multiple playbacks yourself. 
 
aws 
TransmitRequest.Aws  
azure 
TransmitRequest.Azure  
gcloud 
TransmitRequest.GCloud  
win 
TransmitRequest.Windows  
 
Field 
Type 
Label 
Description 
 
 
voice 
string optional 
The voice the text is synthesized in. 
 
 
Field 
Type 
Label 
Description 
 
 
duration_ms 
uint32 The duration in milliseconds it roughly takes to speak the transmission. 
 
 
SrsService 
Method Name 
Request Type 
Response Type 
Description 
 
 
Transmit 
TransmitRequest TransmitResponse Synthesize text to speech and transmit it over SRS. By default, this blocks until a transmission completed (unless async is set to true). This can be used to prevent transmission to overlap each other, by not sending another transmission on the same frequency until you've received the response from the previous transmission on that frequency. However, it does not block or prevent any other client from transmitting over the same frequency at the same time. 
 
GetClients 
GetClientsRequest GetClientsResponse Retrieve a list of units (players) and their active frequencies that are connected to SRS. 
 
 
Top 
dcs/metadata/v0/metadata.proto 
Field 
Type 
Label 
Description 
 
 
alive 
bool  
 
Field 
Type 
Label 
Description 
 
 
version 
string  
 
A service to get administrative/meta data like server health checks and version
.proto Type 
Notes 
C++ 
Java 
Python 
Go 
C# 
PHP 
Ruby 
 
 
 
double 
double 
float 
float64 
double 
float 
Float 
 
 
float 
float 
float 
float32 
float 
float 
Float 
 
 
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. 
int32 
int 
int 
int32 
int 
integer 
Bignum or Fixnum (as required) 
 
 
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. 
int64 
long 
int/long 
int64 
long 
integer/string 
Bignum 
 
 
Uses variable-length encoding. 
uint32 
int 
int/long 
uint32 
uint 
integer 
Bignum or Fixnum (as required) 
 
 
Uses variable-length encoding. 
uint64 
long 
int/long 
uint64 
ulong 
integer/string 
Bignum or Fixnum (as required) 
 
 
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. 
int32 
int 
int 
int32 
int 
integer 
Bignum or Fixnum (as required) 
 
 
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. 
int64 
long 
int/long 
int64 
long 
integer/string 
Bignum 
 
 
Always four bytes. More efficient than uint32 if values are often greater than 2^28. 
uint32 
int 
int 
uint32 
uint 
integer 
Bignum or Fixnum (as required) 
 
 
Always eight bytes. More efficient than uint64 if values are often greater than 2^56. 
uint64 
long 
int/long 
uint64 
ulong 
integer/string 
Bignum 
 
 
Always four bytes. 
int32 
int 
int 
int32 
int 
integer 
Bignum or Fixnum (as required) 
 
 
Always eight bytes. 
int64 
long 
int/long 
int64 
long 
integer/string 
Bignum 
 
 
bool 
boolean 
boolean 
bool 
bool 
boolean 
TrueClass/FalseClass 
 
 
A string must always contain UTF-8 encoded or 7-bit ASCII text. 
string 
String 
str/unicode 
string 
string 
string 
String (UTF-8) 
 
 
May contain any arbitrary sequence of bytes. 
string 
ByteString 
str 
[]byte 
ByteString 
string 
String (ASCII-8BIT)