Skip to content

API Documentation 0.8.0

Dutchie edited this page Oct 6, 2024 · 1 revision

Protocol Documentation

Table of Contents

Top

dcs/dcs.proto

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

GetWindRequest

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

GetWindResponse

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.

AtmosphereService

https://wiki.hoggitworld.com/view/DCS_singleton_atmosphere

Method Name Request Type Response Type Description
GetWind GetWindRequest GetWindResponse https://wiki.hoggitworld.com/view/DCS_func_getWind
GetWindWithTurbulence GetWindWithTurbulenceRequest GetWindWithTurbulenceResponse https://wiki.hoggitworld.com/view/DCS_func_getWindWithTurbulence
GetTemperatureAndPressure GetTemperatureAndPressureRequest GetTemperatureAndPressureResponse https://wiki.hoggitworld.com/view/DCS_func_getWindWithTurbulence

Top

dcs/coalition/v0/coalition.proto

AddGroupRequest

Field Type Label Description
country dcs.common.v0.Country The coalition is determined by the provided Country and the coalition setup of the mission
group_category dcs.common.v0.GroupCategory
ground_template AddGroupRequest.GroundGroupTemplate
ship_template AddGroupRequest.ShipGroupTemplate
helicopter_template AddGroupRequest.HelicopterGroupTemplate
plane_template AddGroupRequest.PlaneGroupTemplate

AddGroupRequest.GroundGroupTemplate

Field Type Label Description
group_id uint32 optional
hidden bool
late_activation bool
name string
position dcs.common.v0.InputPosition
waypoints AddGroupRequest.Point repeated
start_time uint32
task string
task_selected bool
tasks AddGroupRequest.Task repeated
uncontrollable bool
units AddGroupRequest.GroundUnitTemplate repeated
visible bool

AddGroupRequest.GroundUnitTemplate

Field Type Label Description
name string
type string
position dcs.common.v0.InputPosition
unit_id uint32 optional
heading uint32 optional
skill AddGroupRequest.Skill

AddGroupRequest.HelicopterGroupTemplate

AddGroupRequest.HelicopterUnitTemplate

AddGroupRequest.PlaneGroupTemplate

AddGroupRequest.PlaneUnitTemplate

AddGroupRequest.Point

Field Type Label Description
position dcs.common.v0.InputPosition
altitude_type AddGroupRequest.Point.AltitudeType
type AddGroupRequest.Point.PointType
action string
form string
speed double

AddGroupRequest.ShipGroupTemplate

AddGroupRequest.ShipUnitTemplate

AddGroupRequest.Task

AddGroupResponse

Field Type Label Description
group dcs.common.v0.Group

AddLinkedStaticRequest

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)

AddLinkedStaticResponse

Field Type Label Description
name string

AddStaticObjectRequest

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

AddStaticObjectResponse

Field Type Label Description
name string

GetBullseyeRequest

Field Type Label Description
coalition dcs.common.v0.Coalition A specific coalition must be used for this API call. Do not use COALITION_ALL

GetBullseyeResponse

Field Type Label Description
position dcs.common.v0.Position

GetGroupsRequest

Field Type Label Description
coalition dcs.common.v0.Coalition
category dcs.common.v0.GroupCategory

GetGroupsResponse

Field Type Label Description
groups dcs.common.v0.Group repeated

GetPlayerUnitsRequest

Field Type Label Description
coalition dcs.common.v0.Coalition

GetPlayerUnitsResponse

Field Type Label Description
units dcs.common.v0.Unit repeated

GetStaticObjectsRequest

Field Type Label Description
coalition dcs.common.v0.Coalition the coalition which the statics belong to

GetStaticObjectsResponse

Field Type Label Description
statics dcs.common.v0.Static repeated the list of statics

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

AddGroupRequest.Skill

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

CoalitionService

https://wiki.hoggitworld.com/view/DCS_singleton_coalition

Method Name Request Type Response Type Description
AddGroup AddGroupRequest AddGroupResponse https://wiki.hoggitworld.com/view/DCS_func_addGroup
GetStaticObjects GetStaticObjectsRequest GetStaticObjectsResponse https://wiki.hoggitworld.com/view/DCS_func_getStaticObjects
AddStaticObject AddStaticObjectRequest AddStaticObjectResponse Focussed on statics (linked statics - see AddLinkedStatic) https://wiki.hoggitworld.com/view/DCS_func_addStaticObject
AddLinkedStatic AddLinkedStaticRequest AddLinkedStaticResponse Focussed on properties relevant to linked static objects https://wiki.hoggitworld.com/view/DCS_func_addStaticObject
GetGroups GetGroupsRequest GetGroupsResponse https://wiki.hoggitworld.com/view/DCS_func_getGroups
GetBullseye GetBullseyeRequest GetBullseyeResponse Get the Bullseye for the 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

Airbase

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

Cargo

An instance of a DCS Cargo object

Contact

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

Group

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.

Initiator

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

Field Type Label Description
unknown Unknown
unit Unit
weapon Weapon
static Static
scenery Scenery
airbase Airbase
cargo Cargo

InputPosition

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)

MarkPanel

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.

Orientation

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

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.

Scenery

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

Static

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

Target

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

Field Type Label Description
unknown Unknown
unit Unit
weapon Weapon
static Static
scenery Scenery
airbase Airbase
cargo Cargo

Unit

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

Unknown

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

Vector

A vector in a right-handed coordinate system where +x is north, -x south, +z is east, -z west, +y up and -y down.

Field Type Label Description
x double
y double
z double

Velocity

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.

Weapon

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

AirbaseCategory

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

Coalition

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

Country

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

GroupCategory

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

ObjectCategory

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

Field Type Label Description
unit_name string
include_object bool optional
detection_type GetDetectedTargetsRequest.DetectionType optional

GetDetectedTargetsResponse

Field Type Label Description
contacts dcs.common.v0.Contact repeated

SetAlarmStateRequest

Field Type Label Description
group_name string
unit_name string
alarm_state SetAlarmStateRequest.AlarmState

SetAlarmStateResponse

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

ControllerService

Method Name Request Type Response Type Description
SetAlarmState SetAlarmStateRequest SetAlarmStateResponse https://wiki.hoggitworld.com/view/DCS_option_alarmState
GetDetectedTargets GetDetectedTargetsRequest GetDetectedTargetsResponse https://wiki.hoggitworld.com/view/DCS_func_getDetectedTargets

Top

dcs/custom/v0/custom.proto

AbortMissionRequest

Field Type Label Description
unit_name string

AbortMissionResponse

EvalRequest

Field Type Label Description
lua string

EvalResponse

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

GetMissionStatusRequest

Field Type Label Description
unit_name string

GetMissionStatusResponse

JoinMissionRequest

Field Type Label Description
unit_name string
mission_code int32

JoinMissionResponse

RequestMissionAssignmentRequest

Field Type Label Description
unit_name string
mission_type string

RequestMissionAssignmentResponse

CustomService

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.

Method Name Request Type Response Type Description
RequestMissionAssignment RequestMissionAssignmentRequest RequestMissionAssignmentResponse DCT Function
JoinMission JoinMissionRequest JoinMissionResponse DCT Function
AbortMission AbortMissionRequest AbortMissionResponse DCT Function
GetMissionStatus GetMissionStatusRequest GetMissionStatusResponse DCT Function
Eval EvalRequest EvalResponse Evaluate some Lua inside of the mission and return the result as a JSON string. Disabled by default.
GetMagneticDeclination GetMagneticDeclinationRequest GetMagneticDeclinationResponse Calculates the magnetic declination at the given position using the International Geomagnetic Reference Field (IGRF) model. The result is not always exactly the same as what DCS seem to use, but it is very close (DCS doesn't expose its declination).

Top

dcs/group/v0/group.proto

ActivateRequest

Field Type Label Description
group_name string

ActivateResponse

DestroyRequest

Field Type Label Description
group_name string

DestroyResponse

GetUnitsRequest

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).

GetUnitsResponse

Field Type Label Description
units dcs.common.v0.Unit repeated

GroupService

https://wiki.hoggitworld.com/view/DCS_Class_Group

Method Name Request Type Response Type Description
GetUnits GetUnitsRequest GetUnitsResponse https://wiki.hoggitworld.com/view/DCS_func_getUnits
Activate ActivateRequest ActivateResponse https://wiki.hoggitworld.com/view/DCS_func_activate
Destroy DestroyRequest DestroyResponse https://wiki.hoggitworld.com/view/DCS_func_destroy

Top

dcs/hook/v0/hook.proto

BanDetails

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

BanPlayerRequest

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

BanPlayerResponse

Field Type Label Description
banned bool Was the player successfully banned

EvalRequest

Field Type Label Description
lua string

EvalResponse

Field Type Label Description
json string

ExitProcessRequest

ExitProcessResponse

GetBallisticsCountRequest

GetBallisticsCountResponse

Field Type Label Description
count uint32

GetBannedPlayersRequest

GetBannedPlayersResponse

Field Type Label Description
bans BanDetails repeated

GetMissionDescriptionRequest

GetMissionDescriptionResponse

Field Type Label Description
description string

GetMissionFilenameRequest

GetMissionFilenameResponse

Field Type Label Description
name string

GetMissionNameRequest

GetMissionNameResponse

Field Type Label Description
name string

GetPausedRequest

GetPausedResponse

Field Type Label Description
paused bool

GetRealTimeRequest

GetRealTimeResponse

Field Type Label Description
time double The current time in a mission relative to the DCS start time

GetUnitTypeRequest

Field Type Label Description
id string The slot or unit ID of the unit to retrieve the type of

GetUnitTypeResponse

Field Type Label Description
type string Type of unit (e.g. "F-14B")

IsMultiplayerRequest

IsMultiplayerResponse

Field Type Label Description
multiplayer bool

IsServerRequest

IsServerResponse

Field Type Label Description
server bool

LoadMissionRequest

Field Type Label Description
file_name string The full path to the .miz file to be loaded

LoadMissionResponse

LoadNextMissionRequest

LoadNextMissionResponse

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

SetPausedRequest

Field Type Label Description
paused bool

SetPausedResponse

StopMissionRequest

StopMissionResponse

UnbanPlayerRequest

Field Type Label Description
ucid string The globally unique ID of the player

UnbanPlayerResponse

Field Type Label Description
unbanned bool Was the player successfully unbanned

HookService

APis that are part of the hook environment

Method Name Request Type Response Type Description
GetMissionName GetMissionNameRequest GetMissionNameResponse https://wiki.hoggitworld.com/view/DCS_func_getMissionName
GetMissionFilename GetMissionFilenameRequest GetMissionFilenameResponse https://wiki.hoggitworld.com/view/DCS_func_getMissionFilename
GetMissionDescription GetMissionDescriptionRequest GetMissionDescriptionResponse https://wiki.hoggitworld.com/view/DCS_func_getMissionDescription
GetPaused GetPausedRequest GetPausedResponse https://wiki.hoggitworld.com/view/DCS_func_getPause
SetPaused SetPausedRequest SetPausedResponse https://wiki.hoggitworld.com/view/DCS_func_setPause
StopMission StopMissionRequest StopMissionResponse https://wiki.hoggitworld.com/view/DCS_func_stopMission
ReloadCurrentMission ReloadCurrentMissionRequest ReloadCurrentMissionResponse Reload the currently running mission
LoadNextMission LoadNextMissionRequest LoadNextMissionResponse Load the next mission in the server mission list. Note that it does not loop back to the first mission once the end of the mission list has been reached
LoadMission LoadMissionRequest LoadMissionResponse Load a specific mission file. This does not need to be in the mission list.
Eval EvalRequest EvalResponse Evaluate some Lua inside of the hook environment and return the result as a JSON string. Disabled by default.
ExitProcess ExitProcessRequest ExitProcessResponse https://wiki.hoggitworld.com/view/DCS_func_exitProcess
IsMultiplayer IsMultiplayerRequest IsMultiplayerResponse https://wiki.hoggitworld.com/view/DCS_func_isMultiplayer
IsServer IsServerRequest IsServerResponse https://wiki.hoggitworld.com/view/DCS_func_isServer
BanPlayer BanPlayerRequest BanPlayerResponse Bans a player that is currently connected to the server
UnbanPlayer UnbanPlayerRequest UnbanPlayerResponse Unbans a player via their globally unique ID
GetBannedPlayers GetBannedPlayersRequest GetBannedPlayersResponse Get a list of all the banned players
GetUnitType GetUnitTypeRequest GetUnitTypeResponse https://wiki.hoggitworld.com/view/DCS_func_getUnitType
GetRealTime GetRealTimeRequest GetRealTimeResponse https://wiki.hoggitworld.com/view/DCS_func_getRealTime
GetBallisticsCount GetBallisticsCountRequest GetBallisticsCountResponse Get a count of ballistics objects

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.

AddGroupCommandRequest

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

AddGroupCommandResponse

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.

AddMissionCommandRequest

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

GetSessionIdRequest

GetSessionIdResponse

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

StreamEventsRequest

StreamEventsResponse

The DCS Event information. Contains event information and a timestamp.

Field Type Label Description
time double The event's mission time.
shot StreamEventsResponse.ShotEvent
hit StreamEventsResponse.HitEvent
takeoff StreamEventsResponse.TakeoffEvent
land StreamEventsResponse.LandEvent
crash StreamEventsResponse.CrashEvent
ejection StreamEventsResponse.EjectionEvent
refueling StreamEventsResponse.RefuelingEvent
dead StreamEventsResponse.DeadEvent
pilot_dead StreamEventsResponse.PilotDeadEvent
base_capture StreamEventsResponse.BaseCaptureEvent
mission_start StreamEventsResponse.MissionStartEvent
mission_end StreamEventsResponse.MissionEndEvent
refueling_stop StreamEventsResponse.RefuelingStopEvent
birth StreamEventsResponse.BirthEvent
human_failure StreamEventsResponse.HumanFailureEvent
detailed_failure StreamEventsResponse.DetailedFailureEvent
engine_startup StreamEventsResponse.EngineStartupEvent
engine_shutdown StreamEventsResponse.EngineShutdownEvent
player_enter_unit StreamEventsResponse.PlayerEnterUnitEvent
player_leave_unit StreamEventsResponse.PlayerLeaveUnitEvent
shooting_start StreamEventsResponse.ShootingStartEvent
shooting_end StreamEventsResponse.ShootingEndEvent
mark_add StreamEventsResponse.MarkAddEvent
mark_change StreamEventsResponse.MarkChangeEvent
mark_remove StreamEventsResponse.MarkRemoveEvent
kill StreamEventsResponse.KillEvent
score StreamEventsResponse.ScoreEvent
unit_lost StreamEventsResponse.UnitLostEvent
landing_after_ejection StreamEventsResponse.LandingAfterEjectionEvent
discard_chair_after_ejection StreamEventsResponse.DiscardChairAfterEjectionEvent
weapon_add StreamEventsResponse.WeaponAddEvent
landing_quality_mark StreamEventsResponse.LandingQualityMarkEvent
connect StreamEventsResponse.ConnectEvent The following events are additions on top of DCS's own event enum, which is why they start at 8192 to give DCS plenty of space for new built-in events.
disconnect StreamEventsResponse.DisconnectEvent
player_send_chat StreamEventsResponse.PlayerSendChatEvent
player_change_slot StreamEventsResponse.PlayerChangeSlotEvent
mission_command StreamEventsResponse.MissionCommandEvent
coalition_command StreamEventsResponse.CoalitionCommandEvent
group_command StreamEventsResponse.GroupCommandEvent
simulation_fps StreamEventsResponse.SimulationFpsEvent
tts StreamEventsResponse.TtsEvent
srs_connect StreamEventsResponse.SrsConnectEvent
srs_disconnect StreamEventsResponse.SrsDisconnectEvent

StreamEventsResponse.BaseCaptureEvent

Occurs when a ground unit captures either an airbase or a farp.

Field Type Label Description
initiator dcs.common.v0.Initiator The object that captured the base.
place dcs.common.v0.Airbase The airbase that was captured, can be a FARP or Airbase

StreamEventsResponse.BirthEvent

Occurs when any object is spawned into the mission.

Field Type Label Description
initiator dcs.common.v0.Initiator The object that was spawned.
place dcs.common.v0.Airbase optional The airbase, farp or ship the unit took off from.

StreamEventsResponse.CoalitionCommandEvent

Field Type Label Description
coalition dcs.common.v0.Coalition The coalition of the player who ran the command
details google.protobuf.Struct A struct containing details of the command that was run by a player

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.

Field Type Label Description
initiator dcs.common.v0.Initiator The object that crashed.

StreamEventsResponse.DeadEvent

Occurs when an object is completely destroyed.

Field Type Label Description
initiator dcs.common.v0.Initiator The object that has been 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.

Field Type Label Description
target dcs.common.v0.Target The target the failure occurred for.

StreamEventsResponse.DiscardChairAfterEjectionEvent

A pilot detached from their ejection seat.

Field Type Label Description
initiator dcs.common.v0.Initiator The ejection seat.
target dcs.common.v0.Target The pilot.

StreamEventsResponse.DisconnectEvent

Fired when a player disconnected from the server (not fired for the server's player).

Field Type Label Description
id uint32 The player's id in the current server session.
reason StreamEventsResponse.DisconnectReason The reason a player disconnected for.

StreamEventsResponse.EjectionEvent

Occurs when a pilot ejects from its aircraft.

Field Type Label Description
initiator dcs.common.v0.Initiator The unit a pilot ejected from.
target dcs.common.v0.Target The ejection seat.

StreamEventsResponse.EngineShutdownEvent

Field Type Label Description
initiator dcs.common.v0.Initiator Occurs when any aircraft shuts down its engines.
place dcs.common.v0.Airbase The airbase, farp or ship the unit shut down their engine at.

StreamEventsResponse.EngineStartupEvent

Occurs when any aircraft starts its engines.

Field Type Label Description
initiator dcs.common.v0.Initiator The object that starts its engines.
place dcs.common.v0.Airbase The airbase, farp or ship the unit started their engine at.

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.

Field Type Label Description
initiator dcs.common.v0.Initiator The unit the system failure occurred in.

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.

Field Type Label Description
initiator dcs.common.v0.Initiator The object that landed.
place dcs.common.v0.Airbase The airbase, farp or ship the unit landed at.

StreamEventsResponse.LandingAfterEjectionEvent

A pilot detached from their ejection seat.

Field Type Label Description
initiator dcs.common.v0.Initiator The ejected pilot.
place dcs.common.v0.Position The position the pilot landed at.

StreamEventsResponse.LandingQualityMarkEvent

Occurs when an aircraft receives an LSO rating after recovering on an aircraft carrier.

Field Type Label Description
initiator dcs.common.v0.Initiator The aircraft that received the rating.
comment string The rating.
place dcs.common.v0.Airbase The ship the unit landed at.

StreamEventsResponse.MarkAddEvent

Occurs when marks get added to the mission by players or scripting functions.

Field Type Label Description
initiator dcs.common.v0.Initiator The object that added the mark.
group_id uint64 The group the mark's visibility is restricted for.
coalition dcs.common.v0.Coalition The coalition the mark's visibility is restricted for.
id uint32 The mark's id.
position dcs.common.v0.Position The position the mark has been added at.
text string The mark's label.

StreamEventsResponse.MarkChangeEvent

Occurs when marks got changed.

Field Type Label Description
initiator dcs.common.v0.Initiator The object that changed the mark.
group_id uint64 The group the mark's visibility is restricted for.
coalition dcs.common.v0.Coalition The coalition the mark's visibility is restricted for.
id uint32 The mark's id.
position dcs.common.v0.Position The position of the changed mark.
text string The mark's label.

StreamEventsResponse.MarkRemoveEvent

Occurs when marks get removed.

Field Type Label Description
initiator dcs.common.v0.Initiator The object that removed the mark.
group_id uint64 The group the mark's visibility is restricted for.
coalition dcs.common.v0.Coalition The coalition the mark's visibility is restricted for.
id uint32 The mark's id.
position dcs.common.v0.Position The position the mark has been removed from.
text string The mark's label.

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.

Field Type Label Description
initiator dcs.common.v0.Initiator The unit the pilot has died in.

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.

Field Type Label Description
initiator dcs.common.v0.Initiator The unit the player took control of.

StreamEventsResponse.PlayerLeaveUnitEvent

Occurs when a player relieves direct control of a unit.

Field Type Label Description
initiator dcs.common.v0.Initiator The unit the player relieves control of.

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.

Field Type Label Description
initiator dcs.common.v0.Initiator The object that is receiving fuel.

StreamEventsResponse.RefuelingStopEvent

Occurs when an aircraft is finished taking fuel.

Field Type Label Description
initiator dcs.common.v0.Initiator he unit that was receiving 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].

Field Type Label Description
initiator dcs.common.v0.Initiator The object that started firing.
weapon_name string The name of the shoot weapon.

StreamEventsResponse.ShotEvent

Occurs when a unit fires a weapon (but no machine gun- or autocannon-based weapons - those are handled by [ShootingStartEvent]).

Field Type Label Description
initiator dcs.common.v0.Initiator The object that fired the weapon.
weapon dcs.common.v0.Weapon The weapon that has been fired.

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.

Field Type Label Description
initiator dcs.common.v0.Initiator The object that took off.
place dcs.common.v0.Airbase The airbase, farp or ship the unit took off from.

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.

Field Type Label Description
initiator dcs.common.v0.Initiator The object that got destroyed weapon.

StreamEventsResponse.WeaponAddEvent

Fired for each payload of an aircraft spawened midair.

Field Type Label Description
initiator dcs.common.v0.Initiator The object that got spawned.
weapon_name string The name of the payload.

StreamUnitsRequest

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

Field Type Label Description
time double
unit dcs.common.v0.Unit The unit is either new or its position or attitude changed.
gone StreamUnitsResponse.UnitGone The unit does not exist anymore.

StreamUnitsResponse.UnitGone

Field Type Label Description
id uint32
name string

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

MissionService

Contains the streaming APIs that streaming information out of the DCS server.

Method Name Request Type Response Type Description
StreamEvents StreamEventsRequest StreamEventsResponse stream Streams DCS game generated Events. See https://wiki.hoggitworld.com/view/Category:Events
StreamUnits StreamUnitsRequest StreamUnitsResponse stream Streams unit updates Provides similar functionality as Tacview but at a much lower update rate so puts less load on the server. Suitable for things like online maps but not as a Tacview replacement.
GetScenarioStartTime GetScenarioStartTimeRequest GetScenarioStartTimeResponse Returns the mission's in-game starttime as an ISO 8601 formatted datetime string.
GetScenarioCurrentTime GetScenarioCurrentTimeRequest GetScenarioCurrentTimeResponse Returns the mission's in-game current time as an ISO 8601 formatted datetime string.
AddMissionCommand AddMissionCommandRequest AddMissionCommandResponse Adds a new mission command See https://wiki.hoggitworld.com/view/DCS_func_addCommand
AddMissionCommandSubMenu AddMissionCommandSubMenuRequest AddMissionCommandSubMenuResponse Adds a new command sub menu See https://wiki.hoggitworld.com/view/DCS_func_addSubMenu
RemoveMissionCommandItem RemoveMissionCommandItemRequest RemoveMissionCommandItemResponse Removes a registered mission command. See https://wiki.hoggitworld.com/view/DCS_func_removeItem
AddCoalitionCommand AddCoalitionCommandRequest AddCoalitionCommandResponse Adds a new coalition command See https://wiki.hoggitworld.com/view/DCS_func_addCommandForCoalition
AddCoalitionCommandSubMenu AddCoalitionCommandSubMenuRequest AddCoalitionCommandSubMenuResponse Adds a new coalition command sub menu See https://wiki.hoggitworld.com/view/DCS_func_addSubMenuForCoalition
RemoveCoalitionCommandItem RemoveCoalitionCommandItemRequest RemoveCoalitionCommandItemResponse Removes a registered coalition command. See https://wiki.hoggitworld.com/view/DCS_func_removeItemForCoalition
AddGroupCommand AddGroupCommandRequest AddGroupCommandResponse Adds a new group command See https://wiki.hoggitworld.com/view/DCS_func_addCommandForGroup
AddGroupCommandSubMenu AddGroupCommandSubMenuRequest AddGroupCommandSubMenuResponse Adds a new group command sub menu See https://wiki.hoggitworld.com/view/DCS_func_addSubMenuForGroup
RemoveGroupCommandItem RemoveGroupCommandItemRequest RemoveGroupCommandItemResponse Removes a group coalition command. See https://wiki.hoggitworld.com/view/DCS_func_removeItemForGroup
GetSessionId GetSessionIdRequest GetSessionIdResponse Returns an ID for the current session. The ID will change upon mission change or server restart.

Top

dcs/timer/v0/timer.proto

GetAbsoluteTimeRequest

GetAbsoluteTimeResponse

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

GetTimeRequest

GetTimeResponse

Field Type Label Description
time double

GetTimeZeroRequest

GetTimeZeroResponse

Field Type Label Description
time double The time in seconds since 00:00.
day uint32
month uint32
year int32

TimerService

https://wiki.hoggitworld.com/view/DCS_singleton_timer

Method Name Request Type Response Type Description
GetTime GetTimeRequest GetTimeResponse https://wiki.hoggitworld.com/view/DCS_func_getTime
GetAbsoluteTime GetAbsoluteTimeRequest GetAbsoluteTimeResponse https://wiki.hoggitworld.com/view/DCS_func_getAbsTime
GetTimeZero GetTimeZeroRequest GetTimeZeroResponse https://wiki.hoggitworld.com/view/DCS_func_getTime0

Top

dcs/trigger/v0/trigger.proto

Color

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
red double
green double
blue double
alpha double

ExplosionRequest

Field Type Label Description
position dcs.common.v0.InputPosition
power uint32

ExplosionResponse

GetUserFlagRequest

Field Type Label Description
flag string

GetUserFlagResponse

Field Type Label Description
value uint32

IlluminationBombRequest

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

IlluminationBombResponse

MarkToAllRequest

Field Type Label Description
text string
position dcs.common.v0.InputPosition
read_only bool
message string

MarkToAllResponse

Field Type Label Description
id uint32

MarkToCoalitionRequest

Field Type Label Description
id uint32
text string
position dcs.common.v0.InputPosition
coalition dcs.common.v0.Coalition
read_only bool
message string

MarkToCoalitionResponse

Field Type Label Description
id uint32

MarkToGroupRequest

Field Type Label Description
id uint32
text string
position dcs.common.v0.InputPosition
group_id uint32
read_only bool
message string

MarkToGroupResponse

Field Type Label Description
id uint32

MarkupToAllRequest

Field Type Label Description
shape Shape
points dcs.common.v0.InputPosition repeated
border_color Color
fill_color Color
line_type LineType
read_only bool
message string

MarkupToAllResponse

Field Type Label Description
id uint32

MarkupToCoalitionRequest

Field Type Label Description
shape Shape
coalition dcs.common.v0.Coalition
points dcs.common.v0.InputPosition repeated
border_color Color
fill_color Color
line_type LineType
read_only bool
message string

MarkupToCoalitionResponse

Field Type Label Description
id uint32

OutTextForCoalitionRequest

Field Type Label Description
text string
display_time int32
clear_view bool
coalition dcs.common.v0.Coalition

OutTextForCoalitionResponse

OutTextForGroupRequest

Field Type Label Description
text string
display_time int32
clear_view bool
group_id uint32

OutTextForGroupResponse

OutTextForUnitRequest

Field Type Label Description
text string
display_time int32
clear_view bool
unit_id uint32

OutTextForUnitResponse

OutTextRequest

Field Type Label Description
text string
display_time int32
clear_view bool

OutTextResponse

RemoveMarkRequest

Field Type Label Description
id uint32

RemoveMarkResponse

SetUserFlagRequest

Field Type Label Description
flag string
value uint32

SetUserFlagResponse

SignalFlareRequest

Field Type Label Description
position dcs.common.v0.InputPosition Altitude parameter will be ignored. Signal flares always fire from ground level which will be calculated server-side
color SignalFlareRequest.FlareColor
azimuth uint32

SignalFlareResponse

SmokeRequest

Field Type Label Description
position dcs.common.v0.InputPosition Altitude parameter will be ignored. Smoke always eminates from ground level which will be calculated server-side
color SmokeRequest.SmokeColor

SmokeResponse

LineType

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

Shape

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

SmokeRequest.SmokeColor

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

TriggerService

https://wiki.hoggitworld.com/view/DCS_singleton_trigger

Method Name Request Type Response Type Description
OutText OutTextRequest OutTextResponse https://wiki.hoggitworld.com/view/DCS_func_outText
OutTextForCoalition OutTextForCoalitionRequest OutTextForCoalitionResponse https://wiki.hoggitworld.com/view/DCS_func_outTextForCoalition
OutTextForGroup OutTextForGroupRequest OutTextForGroupResponse https://wiki.hoggitworld.com/view/DCS_func_outTextForGroup
OutTextForUnit OutTextForUnitRequest OutTextForUnitResponse https://wiki.hoggitworld.com/view/DCS_func_outTextForUnit
GetUserFlag GetUserFlagRequest GetUserFlagResponse https://wiki.hoggitworld.com/view/DCS_func_getUserFlag
SetUserFlag SetUserFlagRequest SetUserFlagResponse https://wiki.hoggitworld.com/view/DCS_func_setUserFlag
MarkToAll MarkToAllRequest MarkToAllResponse https://wiki.hoggitworld.com/view/DCS_func_markToAll
MarkToCoalition MarkToCoalitionRequest MarkToCoalitionResponse https://wiki.hoggitworld.com/view/DCS_func_markToCoalition
MarkToGroup MarkToGroupRequest MarkToGroupResponse https://wiki.hoggitworld.com/view/DCS_func_markToGroup
MarkupToAll MarkupToAllRequest MarkupToAllResponse https://wiki.hoggitworld.com/view/DCS_func_markupToAll
MarkupToCoalition MarkupToCoalitionRequest MarkupToCoalitionResponse Uses markupToAll under the hood but enforces a coalition to be specified https://wiki.hoggitworld.com/view/DCS_func_markupToAll
RemoveMark RemoveMarkRequest RemoveMarkResponse https://wiki.hoggitworld.com/view/DCS_func_removeMark
Explosion ExplosionRequest ExplosionResponse https://wiki.hoggitworld.com/view/DCS_func_explosion
Smoke SmokeRequest SmokeResponse https://wiki.hoggitworld.com/view/DCS_func_smoke
IlluminationBomb IlluminationBombRequest IlluminationBombResponse https://wiki.hoggitworld.com/view/DCS_func_illuminationBomb
SignalFlare SignalFlareRequest SignalFlareResponse https://wiki.hoggitworld.com/view/DCS_func_signalFlare

Top

dcs/unit/v0/unit.proto

DestroyRequest

Field Type Label Description
name string

DestroyResponse

GetDescriptorRequest

Field Type Label Description
name string

GetDescriptorResponse

TODO fill these in as and when we need em

Field Type Label Description
attributes string repeated

GetDrawArgumentValueRequest

Field Type Label Description
name string
argument uint32

GetDrawArgumentValueResponse

Field Type Label Description
value double

GetPlayerNameRequest

Field Type Label Description
name string

GetPlayerNameResponse

Field Type Label Description
player_name string optional

GetPositionRequest

Field Type Label Description
name string

GetPositionResponse

Field Type Label Description
position dcs.common.v0.Position

GetRadarRequest

Field Type Label Description
name string

GetRadarResponse

Field Type Label Description
active bool
target dcs.common.v0.Target

GetRequest

Field Type Label Description
name string

GetResponse

Field Type Label Description
unit dcs.common.v0.Unit

GetTransformRequest

Field Type Label Description
name string

GetTransformResponse

Field Type Label Description
time double Time in seconds since the scenario started.
position dcs.common.v0.Position The position of the unit
orientation dcs.common.v0.Orientation The orientation of the unit in both 2D and 3D space
velocity dcs.common.v0.Velocity The velocity of the unit in both 2D and 3D space

SetEmissionRequest

Field Type Label Description
name string
emitting bool

SetEmissionResponse

UnitService

https://wiki.hoggitworld.com/view/DCS_Class_Unit

Method Name Request Type Response Type Description
GetRadar GetRadarRequest GetRadarResponse https://wiki.hoggitworld.com/view/DCS_func_getRadar
GetPosition GetPositionRequest GetPositionResponse https://wiki.hoggitworld.com/view/DCS_func_getPoint
GetPlayerName GetPlayerNameRequest GetPlayerNameResponse https://wiki.hoggitworld.com/view/DCS_func_getPlayerName
GetDescriptor GetDescriptorRequest GetDescriptorResponse
SetEmission SetEmissionRequest SetEmissionResponse https://wiki.hoggitworld.com/view/DCS_func_enableEmission
Get GetRequest GetResponse https://wiki.hoggitworld.com/view/DCS_func_getByName
GetTransform GetTransformRequest GetTransformResponse Get information about the unit in 3D space, including its position, orientation and velocity.
Destroy DestroyRequest DestroyResponse https://wiki.hoggitworld.com/view/DCS_func_destroy
GetDrawArgumentValue GetDrawArgumentValueRequest GetDrawArgumentValueResponse https://wiki.hoggitworld.com/view/DCS_func_getDrawArgumentValue

Top

dcs/world/v0/world.proto

GetAirbasesRequest

Field Type Label Description
coalition dcs.common.v0.Coalition

GetAirbasesResponse

Field Type Label Description
airbases dcs.common.v0.Airbase repeated

GetMarkPanelsRequest

GetMarkPanelsResponse

Field Type Label Description
mark_panels dcs.common.v0.MarkPanel repeated

GetTheatreRequest

GetTheatreResponse

Field Type Label Description
theatre string

WorldService

https://wiki.hoggitworld.com/view/DCS_singleton_world

Method Name Request Type Response Type Description
GetAirbases GetAirbasesRequest GetAirbasesResponse https://wiki.hoggitworld.com/view/DCS_func_getAirbases
GetMarkPanels GetMarkPanelsRequest GetMarkPanelsResponse https://wiki.hoggitworld.com/view/DCS_func_getMarkPanels
GetTheatre GetTheatreRequest GetTheatreResponse Returns the theatre (Map name) of the mission

Top

dcs/srs/v0/srs.proto

GetClientsRequest

GetClientsResponse

Field Type Label Description
clients GetClientsResponse.Client repeated

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.

TransmitRequest

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

TransmitRequest.Aws

Field Type Label Description
voice string optional The voice the text is synthesized in, see: https://docs.aws.amazon.com/polly/latest/dg/voicelist.html

TransmitRequest.Azure

Field Type Label Description
voice string optional The voice the text is synthesized in, see: https://learn.microsoft.com/azure/cognitive-services/speech-service/language-support

TransmitRequest.GCloud

Field Type Label Description
voice string optional The voice the text is synthesized in, see: https://cloud.google.com/text-to-speech/docs/voices

TransmitRequest.Windows

Field Type Label Description
voice string optional The voice the text is synthesized in.

TransmitResponse

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

GetHealthRequest

GetHealthResponse

Field Type Label Description
alive bool

GetVersionRequest

GetVersionResponse

Field Type Label Description
version string

MetadataService

A service to get administrative/meta data like server health checks and version

Method Name Request Type Response Type Description
GetHealth GetHealthRequest GetHealthResponse
GetVersion GetVersionRequest GetVersionResponse

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double double double float float64 double float Float
float float float float float32 float float Float
int32 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)
int64 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
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 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)
sint64 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
fixed32 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)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)