There’s a video tutorial for the Unity GUI WYSIWYG system on the website. It’s not as full-featured as a dedicated GUI product like Daikon Forge or NGUI, but I think it gets the job done. Drag one of the provided UI prefabs into a scene, expand it, and enable the GUIRoot object to see what they’re made of. They all follow the same basic format.
Yes, variables defined in the database get saved, with a few exceptions that will be documented in the 1.1.0 version of the Save/Load System manual page. The exceptions are mostly static data items, such as the link definitions between dialogue entries, which would be a waste to save and load.
I’ll add that to the ideas list. Thanks! In the meantime, you can do this with any third party product that lets you save to external data sources such as MySQL DBs. When you save in the Dialogue System, you get a savegame file in the form of a big string. You can do whatever you want with it: save it in PlayerPrefs, write it to a file on the local hard drive, or use something like UniSqlite to save it to a database.
In the Dialogue System’s Lua environment, it would be a variable in the global “Variable” table. For example, in the 1.1.0 release of the Realistic FPS Prefab integration example, there’s a variable named Zombie_Kills that tracks how many zombies the player has killed. Every time a zombie is killed, this Lua code gets run:
Variable["Zombie_Kills"] = Variable["Zombie_Kills"] + 1
It gets run during gameplay, independent from conversations.
Similarly, the 1.0.9 example has a quest where you need to get a shotgun for someone. When you pick up the shotgun, it runs this Lua code:
Variable["Has_Shotgun"] = true
That got replaced with a more full-featured inventory integration in 1.1.0, but it shows that you can save pretty much anything into the Lua environment for use by the Dialogue System or any other part of your gameplay. And all of these variables get saved when you use the Dialogue System save/load features.