Protocol Documentation

Table of Contents

dcs/dcs.proto

Top

dcs/atmosphere/v0/atmosphere.proto

Top

GetTemperatureAndPressureRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
temperature float

The temperature in Kelvin

pressure float

The pressure in Pascals

GetWindRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
heading float

The heading the wind is coming from.

strength float

The strength of the wind in meters per second

GetWindWithTurbulenceRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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 NameRequest TypeResponse TypeDescription
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

dcs/coalition/v0/coalition.proto

Top

AddGroupRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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

FieldTypeLabelDescription
group dcs.common.v0.Group

AddLinkedStaticRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
name string

AddStaticObjectRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
name string

GetBullseyeRequest

FieldTypeLabelDescription
coalition dcs.common.v0.Coalition

A specific coalition must be used for this API call. Do not use `COALITION_ALL`

GetBullseyeResponse

FieldTypeLabelDescription
position dcs.common.v0.Position

GetGroupsRequest

FieldTypeLabelDescription
coalition dcs.common.v0.Coalition

category dcs.common.v0.GroupCategory

GetGroupsResponse

FieldTypeLabelDescription
groups dcs.common.v0.Group repeated

GetPlayerUnitsRequest

FieldTypeLabelDescription
coalition dcs.common.v0.Coalition

GetPlayerUnitsResponse

FieldTypeLabelDescription
units dcs.common.v0.Unit repeated

GetStaticObjectsRequest

FieldTypeLabelDescription
coalition dcs.common.v0.Coalition

the coalition which the statics belong to

GetStaticObjectsResponse

FieldTypeLabelDescription
statics dcs.common.v0.Static repeated

the list of statics

AddGroupRequest.Point.AltitudeType

NameNumberDescription
ALTITUDE_TYPE_UNSPECIFIED 0

ALTITUDE_TYPE_BAROMETRIC 1

ALTITUDE_TYPE_RADIO 2

AddGroupRequest.Point.PointType

NameNumberDescription
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

NameNumberDescription
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 NameRequest TypeResponse TypeDescription
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

dcs/common/v0/common.proto

Top

Airbase

An instance of a DCS Airfield

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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

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

FieldTypeLabelDescription
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

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

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

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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

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

FieldTypeLabelDescription
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

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

FieldTypeLabelDescription
x double

y double

z double

Velocity

The orientation of an object in 3D space.

FieldTypeLabelDescription
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

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

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

NameNumberDescription
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

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

NameNumberDescription
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

NameNumberDescription
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

dcs/controller/v0/controller.proto

Top

GetDetectedTargetsRequest

FieldTypeLabelDescription
unit_name string

include_object bool optional

detection_type GetDetectedTargetsRequest.DetectionType optional

GetDetectedTargetsResponse

FieldTypeLabelDescription
contacts dcs.common.v0.Contact repeated

SetAlarmStateRequest

FieldTypeLabelDescription
group_name string

unit_name string

alarm_state SetAlarmStateRequest.AlarmState

SetAlarmStateResponse

GetDetectedTargetsRequest.DetectionType

NameNumberDescription
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

NameNumberDescription
ALARM_STATE_UNSPECIFIED 0

ALARM_STATE_AUTO 1

ALARM_STATE_GREEN 2

ALARM_STATE_RED 3

ControllerService

Method NameRequest TypeResponse TypeDescription
SetAlarmState SetAlarmStateRequest SetAlarmStateResponse

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

GetDetectedTargets GetDetectedTargetsRequest GetDetectedTargetsResponse

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

dcs/custom/v0/custom.proto

Top

AbortMissionRequest

FieldTypeLabelDescription
unit_name string

AbortMissionResponse

EvalRequest

FieldTypeLabelDescription
lua string

EvalResponse

FieldTypeLabelDescription
json string

GetMagneticDeclinationRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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

FieldTypeLabelDescription
unit_name string

GetMissionStatusResponse

JoinMissionRequest

FieldTypeLabelDescription
unit_name string

mission_code int32

JoinMissionResponse

RequestMissionAssignmentRequest

FieldTypeLabelDescription
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 NameRequest TypeResponse TypeDescription
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).

dcs/group/v0/group.proto

Top

GetUnitsRequest

FieldTypeLabelDescription
group_name string

active bool optional

Whether the response should include only active units (`true`), only inactive units (`false`), or all units (`nil`).

GetUnitsResponse

FieldTypeLabelDescription
units dcs.common.v0.Unit repeated

GroupService

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

Method NameRequest TypeResponse TypeDescription
GetUnits GetUnitsRequest GetUnitsResponse

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

dcs/hook/v0/hook.proto

Top

BanDetails

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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

FieldTypeLabelDescription
banned bool

Was the player successfully banned

EvalRequest

FieldTypeLabelDescription
lua string

EvalResponse

FieldTypeLabelDescription
json string

ExitProcessRequest

ExitProcessResponse

GetBallisticsCountRequest

GetBallisticsCountResponse

FieldTypeLabelDescription
count uint32

GetBannedPlayersRequest

GetBannedPlayersResponse

FieldTypeLabelDescription
bans BanDetails repeated

GetMissionDescriptionRequest

GetMissionDescriptionResponse

FieldTypeLabelDescription
description string

GetMissionFilenameRequest

GetMissionFilenameResponse

FieldTypeLabelDescription
name string

GetMissionNameRequest

GetMissionNameResponse

FieldTypeLabelDescription
name string

GetPausedRequest

GetPausedResponse

FieldTypeLabelDescription
paused bool

GetRealTimeRequest

GetRealTimeResponse

FieldTypeLabelDescription
time double

The current time in a mission relative to the DCS start time

GetUnitTypeRequest

FieldTypeLabelDescription
id string

The slot or unit ID of the unit to retrieve the type of

GetUnitTypeResponse

FieldTypeLabelDescription
type string

Type of unit (e.g. "F-14B")

IsMultiplayerRequest

IsMultiplayerResponse

FieldTypeLabelDescription
multiplayer bool

IsServerRequest

IsServerResponse

FieldTypeLabelDescription
server bool

LoadMissionRequest

FieldTypeLabelDescription
file_name string

The full path to the .miz file to be loaded

LoadMissionResponse

LoadNextMissionRequest

LoadNextMissionResponse

FieldTypeLabelDescription
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

FieldTypeLabelDescription
paused bool

SetPausedResponse

StopMissionRequest

StopMissionResponse

UnbanPlayerRequest

FieldTypeLabelDescription
ucid string

The globally unique ID of the player

UnbanPlayerResponse

FieldTypeLabelDescription
unbanned bool

Was the player successfully unbanned

HookService

APis that are part of the hook environment

Method NameRequest TypeResponse TypeDescription
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

dcs/mission/v0/mission.proto

Top

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.

FieldTypeLabelDescription
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

FieldTypeLabelDescription
path string repeated

The full path to the command, including the command name. Use this path to delete the command.

AddCoalitionCommandSubMenuRequest

FieldTypeLabelDescription
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

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

FieldTypeLabelDescription
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

FieldTypeLabelDescription
path string repeated

The full path to the command, including the command name. Use this path to delete the command.

AddGroupCommandSubMenuRequest

FieldTypeLabelDescription
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

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

FieldTypeLabelDescription
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

FieldTypeLabelDescription
path string repeated

The full path to the command, including the command name. Use this path to delete the command.

AddMissionCommandSubMenuRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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

FieldTypeLabelDescription
datetime string

GetScenarioStartTimeRequest

GetScenarioStartTimeResponse

FieldTypeLabelDescription
datetime string

GetSessionIdRequest

GetSessionIdResponse

FieldTypeLabelDescription
session_id int64

RemoveCoalitionCommandItemRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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

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

FieldTypeLabelDescription
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

StreamEventsResponse.BaseCaptureEvent

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

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

FieldTypeLabelDescription
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

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

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

FieldTypeLabelDescription
initiator dcs.common.v0.Initiator

The object that crashed.

StreamEventsResponse.DeadEvent

Occurs when an object is completely destroyed.

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

FieldTypeLabelDescription
target dcs.common.v0.Target

The target the failure occurred for.

StreamEventsResponse.DiscardChairAfterEjectionEvent

A pilot detached from their ejection seat.

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

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

FieldTypeLabelDescription
initiator dcs.common.v0.Initiator

The unit a pilot ejected from.

target dcs.common.v0.Target

The ejection seat.

StreamEventsResponse.EngineShutdownEvent

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

FieldTypeLabelDescription
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

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

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

FieldTypeLabelDescription
initiator dcs.common.v0.Initiator

The unit the system failure occurred in.

StreamEventsResponse.KillEvent

Occurs when an object is killed by a weapon.

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

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

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

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

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

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

FieldTypeLabelDescription
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

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

FieldTypeLabelDescription
initiator dcs.common.v0.Initiator

The unit the pilot has died in.

StreamEventsResponse.PlayerChangeSlotEvent

fired when the player changes across to a slot

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

FieldTypeLabelDescription
initiator dcs.common.v0.Initiator

The unit the player took control of.

StreamEventsResponse.PlayerLeaveUnitEvent

Occurs when a player relieves direct control of a unit.

FieldTypeLabelDescription
initiator dcs.common.v0.Initiator

The unit the player relieves control of.

StreamEventsResponse.PlayerSendChatEvent

Occurs when a chat message is sent on the server

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

FieldTypeLabelDescription
initiator dcs.common.v0.Initiator

The object that is receiving fuel.

StreamEventsResponse.RefuelingStopEvent

Occurs when an aircraft is finished taking fuel.

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

FieldTypeLabelDescription
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].

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

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

FieldTypeLabelDescription
average double

The average FPS since the last event.

StreamEventsResponse.TakeoffEvent

Occurs when an aircraft takes off from an airbase, farp, or ship.

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

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

FieldTypeLabelDescription
initiator dcs.common.v0.Initiator

The object that got destroyed weapon.

StreamEventsResponse.WeaponAddEvent

Fired for each payload of an aircraft spawened midair.

FieldTypeLabelDescription
initiator dcs.common.v0.Initiator

The object that got spawned.

weapon_name string

The name of the payload.

StreamUnitsRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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

FieldTypeLabelDescription
id uint32

name string

StreamEventsResponse.DisconnectReason

The reason a player disconnected for.

NameNumberDescription
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 NameRequest TypeResponse TypeDescription
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.

dcs/timer/v0/timer.proto

Top

GetAbsoluteTimeRequest

GetAbsoluteTimeResponse

FieldTypeLabelDescription
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

FieldTypeLabelDescription
time double

GetTimeZeroRequest

GetTimeZeroResponse

FieldTypeLabelDescription
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 NameRequest TypeResponse TypeDescription
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

dcs/trigger/v0/trigger.proto

Top

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

FieldTypeLabelDescription
red double

green double

blue double

alpha double

ExplosionRequest

FieldTypeLabelDescription
position dcs.common.v0.InputPosition

power uint32

ExplosionResponse

GetUserFlagRequest

FieldTypeLabelDescription
flag string

GetUserFlagResponse

FieldTypeLabelDescription
value uint32

IlluminationBombRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
text string

position dcs.common.v0.InputPosition

read_only bool

message string

MarkToAllResponse

FieldTypeLabelDescription
id uint32

MarkToCoalitionRequest

FieldTypeLabelDescription
id uint32

text string

position dcs.common.v0.InputPosition

coalition dcs.common.v0.Coalition

read_only bool

message string

MarkToCoalitionResponse

FieldTypeLabelDescription
id uint32

MarkToGroupRequest

FieldTypeLabelDescription
id uint32

text string

position dcs.common.v0.InputPosition

group_id uint32

read_only bool

message string

MarkToGroupResponse

FieldTypeLabelDescription
id uint32

MarkupToAllRequest

FieldTypeLabelDescription
shape Shape

points dcs.common.v0.InputPosition repeated

border_color Color

fill_color Color

line_type LineType

read_only bool

message string

MarkupToAllResponse

FieldTypeLabelDescription
id uint32

MarkupToCoalitionRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
id uint32

OutTextForCoalitionRequest

FieldTypeLabelDescription
text string

display_time int32

clear_view bool

coalition dcs.common.v0.Coalition

OutTextForCoalitionResponse

OutTextForGroupRequest

FieldTypeLabelDescription
text string

display_time int32

clear_view bool

group_id uint32

OutTextForGroupResponse

OutTextForUnitRequest

FieldTypeLabelDescription
text string

display_time int32

clear_view bool

unit_id uint32

OutTextForUnitResponse

OutTextRequest

FieldTypeLabelDescription
text string

display_time int32

clear_view bool

OutTextResponse

RemoveMarkRequest

FieldTypeLabelDescription
id uint32

RemoveMarkResponse

SetUserFlagRequest

FieldTypeLabelDescription
flag string

value uint32

SetUserFlagResponse

SignalFlareRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
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

NameNumberDescription
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

NameNumberDescription
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

NameNumberDescription
FLARE_COLOR_UNSPECIFIED 0

FLARE_COLOR_GREEN 1

FLARE_COLOR_RED 2

FLARE_COLOR_WHITE 3

FLARE_COLOR_YELLOW 4

SmokeRequest.SmokeColor

NameNumberDescription
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 NameRequest TypeResponse TypeDescription
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

dcs/unit/v0/unit.proto

Top

GetDescriptorRequest

FieldTypeLabelDescription
name string

GetDescriptorResponse

TODO fill these in as and when we need em

FieldTypeLabelDescription
attributes string repeated

GetPlayerNameRequest

FieldTypeLabelDescription
name string

GetPlayerNameResponse

FieldTypeLabelDescription
player_name string optional

GetPositionRequest

FieldTypeLabelDescription
name string

GetPositionResponse

FieldTypeLabelDescription
position dcs.common.v0.Position

GetRadarRequest

FieldTypeLabelDescription
name string

GetRadarResponse

FieldTypeLabelDescription
active bool

target dcs.common.v0.Target

GetRequest

FieldTypeLabelDescription
name string

GetResponse

FieldTypeLabelDescription
unit dcs.common.v0.Unit

GetTransformRequest

FieldTypeLabelDescription
name string

GetTransformResponse

FieldTypeLabelDescription
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

FieldTypeLabelDescription
name string

emitting bool

SetEmissionResponse

UnitService

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

Method NameRequest TypeResponse TypeDescription
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.

dcs/world/v0/world.proto

Top

GetAirbasesRequest

FieldTypeLabelDescription
coalition dcs.common.v0.Coalition

GetAirbasesResponse

FieldTypeLabelDescription
airbases dcs.common.v0.Airbase repeated

GetMarkPanelsRequest

GetMarkPanelsResponse

FieldTypeLabelDescription
mark_panels dcs.common.v0.MarkPanel repeated

GetTheatreRequest

GetTheatreResponse

FieldTypeLabelDescription
theatre string

WorldService

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

Method NameRequest TypeResponse TypeDescription
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

dcs/tts/v0/tts.proto

Top

TransmitRequest

FieldTypeLabelDescription
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

FieldTypeLabelDescription
voice string optional

The voice the text is synthesized in, see: https://docs.aws.amazon.com/polly/latest/dg/voicelist.html

TransmitRequest.Azure

FieldTypeLabelDescription
voice string optional

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

TransmitRequest.GCloud

FieldTypeLabelDescription
voice string optional

The voice the text is synthesized in, see: https://cloud.google.com/text-to-speech/docs/voices

TransmitRequest.Windows

FieldTypeLabelDescription
voice string optional

The voice the text is synthesized in.

TransmitResponse

FieldTypeLabelDescription
duration_ms uint32

The duration in milliseconds it roughly takes to speak the transmission.

TtsService

Method NameRequest TypeResponse TypeDescription
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.

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
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)