All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Events
OnRunwayTouch
andRunwayTakeoff
for "changed" TakeOff and Landing logic in DCS.
- Renamed
TtsService
toSrsService
- Added
ActivateGroup
API which allows to activate groups with late activation. - Added
DestroyGroup
API which removes the entire group from the game world. - Added
DestroyUnit
API - Added
GetClients
toSrsService
, which retrieves a list of units that are connected to SRS and the frequencies they are connected to. - Added
SrsConnectEvent
andSrsDisconnectEvent
events - Added
GetDrawArgumentValue
API for units, which returns the value for drawing. (useful for "hook down", "doors open" checks) - Added
MetadataService
withGetHealth
andGetVersion
for quick checks on health (even when DCS mission is unresponsive) and version. - Added Authentication Interceptor. This enables authentication on a per client basis.
- Fixed
MarkAddEvent
,MarkChangeEvent
andMarkRemoveEvent
position - Fixed crash of concurrent Windows TTS synthesis (#223)
- Fixed file handler left open: Closing config file again after reading it in LUA
- Fixed the config value for
tts.defaultProvider
for Google Cloud to be lowercasegcloud
(instead ofgCloud
) - Fixed error with getCategory due to API changes in DCS (#246)
- Fixed export of airbase objects by filtering out ships that are no longer part of a group due to damage
- Fixed `onPlayerTrySendChat``returning a value and therefore stopping other scripts from reacting to the event
- Fixed velocity and orientation not getting updated in units stream
- Fixed error when retrieving mark panels (
WorldService.GetMarkPanels
) when the mark panel was created by a game master / JTAC, or when the player who created the mark panel left.MarkPanel.initiator
is now optional. (#156) - Fixed scale of blocking time percentage in stats logs.
- Added
SimulationFps
event that is fired every second and contains simulation fps information since the last event (i.e. for the past ~1sec). - Added
GetSessionId
API which is refreshed every mission restart to allow clients to know if a new mission has started on client reconnect. - Added
GetDetectedTargets
API. Method follows the DCS implementation of controller's getDetectedTargets. Can optionally also return the unit or weapon objects tracked by the radar. - Added
orientation
andvelocity
toUnit
object - Added
u
/v
coordinates (offset from DCS map origin in meters) toPosition
s used in responses. To not require them in requests, all positions provided in requests got changed to a newInputPosition
type (you'll have to update your requests, simply replacePosition
withInputPosition
in them). GetRealTime
API- Added
orientation
andvelocity
toWeapon
object - Added DCS
time
of the update to units stream (StreamUnitsResponse
) - Added
GetBallisticsCount
API - Added
TtsService/Transmit
to synthesize text to speech and transmit it over SRS - Added
GRPC.tts(ssml, frequency[, options])
Lua API
- Unit objects now return the full group object in the
group
field to make event processing easier. This replaces thegroup_name
andgroup_category
fields and is a backwards incompatible change. - Updated all vectors to be in DCS' coordinate system (+x north, -x south, +z is east, -z west, +y up and -y down)
- Scenery objects now have an
id
instead of aname
, since dcs associates them with a number.
OutTextForUnit
APIGetStaticObjects
APIAddStaticObject
API (for standard static objects)AddLinkedStatic
API (for statics linked to units such as ships)MarkupToAll
APIMarkupToCoalition
APIGetTheatre
APIGetUnitType
APIReloadCurrentMission
APILoadNextMission
APILoadMission
API
- Fixed event handler error log missing actual error message (contained
nil
instead of the message).
GetMissionFilename
APIGetPaused
APISetPaused
APIStopMission
APIExitProcess
APIKickPlayer
APIIsMultiplayer
APIIsServer
APIGetMissionDescription
APIBanPlayer
APIGetBannedPlayers
APIUnbanPlayer
API
- Replaced
groupName
field in theGroupCommand
event with all the group details as exposed by the group exporter (currently id, name, coalition, category). This change was made based on experience writing a client that processes these events where only having the groupName was a limitation. This change breaks backwards compatibility with 0.4.0 where theGroupCommand
event was first added.
ForcePlayerSlot
APIPlayerChangeSlotEvent
emitted when player changes slotStreamUnits
can optionally specify thecategory
of the units which may be monitored.- APIs for creating the F10 radio menus and letting players run them. These will emit events to DCS-gRPC clients when run.
MarkToCoalition
was sending the mark to the incorrect coalition.NetService.GetPlayers
overwroteCoalitionService.GetPlayers
(see Breaking Changes for details)- Corrected
proto
files from camel-casing to snake-casing; not a runtime breaking change but some code generators may generate different casing by convention, creating a compiler only issue.net.proto
-GetPlayerInfo.remote_address
mission.proto
-PlayerSendChatEvent.player_id
- Corrected
proto
files with enumerations to be named correct; compiler-only breaking change, not runtime.coalition.proto
-AddGroupRequest.Point
- enumType
has been renamed toPointType
coalition.proto
-AddGroupRequest
- enum members ofSkill
has been prefixed withSKILL_
CoalitionService.GetPlayers
did not filter correctly on specified coalitionStreamUnits
would only monitor thePlane
groups; now monitors all groups with the default option ofGROUP_CATEGORY_UNSPECIFIED
- Added
GROUP_CATEGORY_UNSPECIFIED
todcs.v0.common.GroupCategory
; breaking change as all indexes have changed. CoalitionService.GetPlayers
was renamed toCoalitionService.GetPlayerUnits
; fixes conflict withNetService.GetPlayers
- Generated scaffolding for the
net.*
scope intoNetService
SendChat
APISendChatTo
APIGetPlayers
API- Optional config file at
Saved Games\DCS\Config\dcs-grpc.lua
Connect
andDisconnect
events- INFO log entry for the the host and port he server listens on
- DEBUG log entry for all current settings
place
toLandingQualityMark
event
- Stream
PlayerSendChatEvent
to theMissionService.StreamEvents
for clients to observe the chat as part of the event stream - Fixed an issue where units updates were not being stream after initial load
HookService.StreamChatMessages
has been removed in favor forPlayerSendChatEvent
- Option to specify settings inside of the
MissionScripting.lua
- Speed and heading in units stream
SetEmission
APIGetScenarioStartTime
APIGetScenarioCurrentTime
APIGetBullseye
APIGetTransform
APIAddGroup
API (Initial version suitable for spawning fixed SAM sites)Eval
API executable in the DCS hook environment along with command-line toolday
,month
andyear
fields toGetTimeZero
APIcoalition
andcategory
toGroup
scategory
toUnit
sGetUnit
APIGetMagneticDeclination
APIGetTransform
API (get all information for a unit in 3D space)- Ability to include DCS-gRPC on all server missions without needing to edit the mission
- Updated Rust version and many Rust dependencies
autostart
option
- Split and reorganised APIs into versioned namespaces
- Switched to a different way of initialising the server that does not require sanitisation
- Changed Enum numbering to allow more idiomatic gRPC usage
- Initial release with APIs documented in https://github.com/DCS-gRPC/rust-server/wiki/API-documentation-0.1.0