The Dialogue System already contains integration packages for many other products. See Third Party Support for more information on them.
If you need to integrate another system, such as your own custom module, into the Dialogue System, you can use the steps on this page.
Most integration packages use a "bridge" script that listens for the script messages "OnConversationStart", "OnConversationEnd", "OnRecordPersistentData", and "OnApplyPersistentData" (See Script Messages and Save System)
In OnConversationStart and OnRecordPersistentData, the bridge script records information into the Dialogue System's Lua environment using the DialogueLua utility class.
In OnConversationEnd and OnApplyPersistentData, it copies data back from the Lua environment.
In general, users want to be able to check and modify the state of your system from within conversations. Every dialogue entry can have an optional Conditions and/or Script field written in Lua. You can also register your own functions with Lua to interface with your system.
You can register your own C# code with Lua so you can use it in dialogue entries' Conditions and Script fields as well as Lua Triggers. To register your code with Lua, see Registering Functions.
You can write your own sequencer commands to use in dialogue entries' Sequence fields as well as Sequence Triggers. To write your own sequencer commands, see How to Write Custom Sequencer Commands.
Your own scripts can respond to the Selector and Proximity Selector. For instructions, see OnUse Message.