I've recently come into an issue where the Dialogue System Trigger component is firing off before the game has fully loaded.
I have a Gameobject with a Dialogue System Trigger attached
The Dialogue System Trigger toggles between 3 different states depending on what value exists on another script
On Start the Dialogue System Trigger is checking the value on the other script before the saved value is applied to it
This issue does not seem to happen when saving/loading while transitioning between two scenes, only when loading into the game from the start menu - I assume this is because the Gameobject storing the data is persistent though scenes.
I believe the proper solution would include having a "loading scene" before where all of the data is settled before any On Start events are fired off - but I was hoping there was a temporary work around.
Try setting your Dialogue System Trigger to OnSaveDataApplied instead of OnStart.
Alternatively, if there's another reason the game isn't fully loaded yet, such as non-Dialogue System components still initializing, set the Dialogue System Trigger to OnUse. Add a Timed Event component to the same GameObject. Set the time duration in frames or seconds, and configure the OnTimeReached() event to call DialogueSystemTrigger.OnUse.
It's a fairly new addition. You'll need to update to a newer version of the Dialogue System to see it. (If you do, please back up your project first just to be safe, as when importing any package or asset.)
Package Manager says I'm running version Version 2.2.21 of the Dialogue System, is that the latest?
Would I need to re-import the package after updating? I'm still not seeing that trigger in the dropdown options.
It's possible that you're still using an older version. To verify, select menu item Tools > Pixel Crushers > Dialogue System > Welcome Window or open the file Plugins / Pixel Crushers / Dialogue System / _README.txt and check the version number.