GIFT HAVEN Plugin 2021-2

Back to Table of Contents


Unlike VBS and VR-Engage, there is no software managed by the GIFT project that is used to communicate with the HAVEN training application. This page is meant to describe the GIFT Gateway module interop plugin class that is used to communicate between GIFT and HAVEN directly. With this integration effort we were able to directly work with the HAVEN developers to create the necessary network logic directly embedded into the HAVEN release.



  • In the "HAVEN" tag, find the value called "HavenHostIpAddress".
  • Replace "HavenHostIpAddress" with the IP address of the computer that is running the HAVEN host (NOTE: The HAVEN host can be run on the same computer as GIFT, but the computer's IP address must be used. A "localhost" IP address does not work).
  • The default values for the networkPort and grpcNetworkPort should be left as they are.

HAVEN Host/Client Configuration:

When running a HAVEN host, no configuration is necessary. Choose your scenario and click the "Start Host" button.

When running a HAVEN client, after choosing your scenario, you will see two text boxes under the word "Client"
  • In the IP address text box, enter the IP address of the computer running the HAVEN host. Similarly to the GIFT configuration, a HAVEN client can run on the same computer as a HAVEN host, but
  • In the port number text box, leave the default value.


The HAVEN course object can use the "Script" activity type in the Course Creator. It can currently be used only to disable or repair an entity's primary weapon.

This uses the following format:
simulationId disableWeaponControl isWeaponDisabled

Replace simulationId with the integer simulation ID of the entity to disable or repair.
Replace isWeaponDisabled with true if the weapon should be disabled, or false if the weapon should be repaired.

To see simulation IDs for entities in HAVEN, click the Backspace key when running a scenario. This will produce a JSON file in a HAVEN_Data subfolder of the folder where HAVEN is running. That JSON file lists entities with names and simulation IDs.