Hi StraGeoStudios,
I built that system for one of my clients, but he wanted to use Articy as interface for setting up all the dialogue choices. Then from there a file was exported and my code would read the file and create the dialogue in the exact way you need. Multiple choices, go back to a previous dialogue point, keep tracks of choices already selected so alternative choices can be shown and an outcome system that you will customise to your code to do whatever you need. The outcome will be an open end so you can use it for change variables, story, levels and whatever you need.
The system also allow to play SFX, Soundscapes and Music when a certain dialogue start, you have also a choice for change characters' expression and such. More actions can be added depending on what you need for your game, but overall, the output field already gives lot of flexibility, like for example we used it also for spawn enemies at a certain point.
If you don't want to use Articy, you can type directly in a txt or xls file the data needed.
Here one example of the file for a dialogue:
Dialogue N\Index\Action\Character\Position\Text\Choices\Requirement Type\Required Item\Choices Index\Outcome\Music\Soundscape\SFX\Expression|
1\0\Start\Anna\Right\Hi, this is your first dialogue!\\\\1\+~Array_Quest_Items~Map\SC TOWN\|\Empire_Game_Animal_Nature_Pig_Hog_Livestock_Grunt_Snort_Noise_Farm_Field_Ranch\Neutral|
1\1\Goto\Anna\Right\Now, you will have to make a choice to progress in the game.\\\\2\\\\\Neutral|
1\2\Choice\Anna\Right\Do you want to eat pizza or pasta for dinner?\Pizza~Pasta\~\~\3~5\\\\\Neutral|
1\3\Goto\Hero\Left\I would love to eat a pizza!\\\\4\\\\\Happy|
1\4\Goto\Anna\Right\Great, it's a while I'm not eating pizza! Let's go!\\\\7\\\\\Happy|
1\5\Goto\Hero\Left\I know a good place where they serve big plates of pasta that are tasty and cheap!\\\\6\\\\\Happy|
1\6\Goto\Anna\Right\Sounds great! Let's go!\\\\7\\\\\Happy|
1\7\Choice\Anna\Right\Where do you want to go after dinner? Cinema or Bowling?\Cinema~Bowling\~\~\8~11\\\\\Neutral|
1\8\Goto\Hero\Left\I don't know what there is at the cinema in these days, but we can go and have a look.\\\\9\\\\\Neutral|
1\9\Goto\Anna\Right\There is a new adventure movie I would like to see it's called "Adventure Movie".\\\\10\\\\\Embarrassed|
1\10\Goto\Hero\Left\What a weird name, but let's go to watch it if you think that's nice.\\\\13\\\\\Surprised|
1\11\Goto\Hero\Left\I never played bowling, but that's a good chance to learn it!\\\\12\\\\\Embarrassed|
1\12\Goto\Anna\Right\I am not an expert too, but I can teach you the rules.\\\\13\\\\\Happy|
1\13\Goto\Hero\Left\That was a great night Anna. Thank you very much!\\\\14\\\Light_Fire_3\\Happy|
1\14\End\Anna\Right\It was my pleasure, let's meet again soon!\\\\\\\Stop\\Happy|
2\0\Start\Anna\Right\You don't have a weapon, I have an Iron Sword and a Shooting Iron. I can give you one so we can fight together.\\\\1\\SC HOPEFUL\\\Neutral|
2\1\Choice\Anna\Right\Which one would you like to use? Iron Sword or Shooting Iron?\Iron Sword~Shooting Iron\~\~\2~4\\\\\Neutral|
2\2\Goto\Hero\Left\I don't know how to use a Shooting Iron, so the Iron Sword it's a better choice for me.\\\\3\\\\\Neutral|
2\3\Goto\\\{ Iron Sword added to team inventory }\\\\6\+~Array_Weapons~Iron Sword\\\Empire_Game_Foley_Impact_Metal_Junk_Hit_3\|
2\4\Goto\Hero\Left\I am great with Shooting Irons, I'll be more useful with that.\\\\5\\\\\Neutral|
2\5\Goto\\\{ Shooting Iron added to team inventory }\\\\6\+~Array_Weapons~Shooting Iron\\\Empire_Game_Foley_Impact_Metal_Junk_Hit_3\|
2\6\Goto\Anna\Right\Ok, let's go.\\\\7\\\\Empire_Game_Animal_Nature_Horse_Noise_2_Neigh_Whinny_Vocal_2\Happy|
2\7\Goto\\\{ While walking on a plain... }\\\\8\\\Thunderstorm_Loop_3\\|
2\8\Choice\Anna\Right\Hey that hell bird stole the map from my hands!\Oh no we'll be lost!~I'll take it down with the Shooting Iron!\~Array_Weapons\~Shooting Iron\9~10\\\\\Surprised|
2\9\End\Anna\Right\We are in trouble now, it will take much more time to find the temple ruins!\\\\\-~Array_Quest_Item~Map\\\\Sad|
2\10\Goto\\\{ You manage to kill the hell bird and recover the map! }\\\\11\\\\Empire_Game_Foley_Metal_Safe_Movement_10_Roll_Slide_Drag_Soft_Quick_Sharp\|
2\11\End\Anna\Right\What a great shot! We could have been in big trouble without the map!\\\\\\\\\Happy|
3\0\Start\Anna\Right\Mmm, I'm not really sure what's the best way to progress from here.\\\\1\\Stop\SC_Beach_RIppling_Loop_2_Short\Empire_Game_Animal_Nature_Horse_Noise_2_Neigh_Whinny_Vocal_2\Neutral|
3\1\Choice\Anna\Right\Where should we try to ford the river? North or South?\North~South~Let's check the map to see if there is a bridge somewhere nearby.\~~Array_Quest_Item\~~Map\2~3~4\\\\\Neutral|
3\2\Goto\\\{ It takes 30 minutes to find a way to cross the river }\\\\6\\\\\|
3\3\Goto\\\{ Luckily after only 10 minutes you find a way to cross the river }\\\\6\\\\\|
3\4\Goto\Hero\Left\Look, if we go a bit south, there will be a bridge and we can cross the river safely.\\\\5\\\\\Neutral|
3\5\Goto\\\{ Near the bridge, you find your old friend Brian that happily joins the party! }\\\\6\+~PC~Brian\\|\Empire_Game_Animal_Nature_Horse_Noise_2_Neigh_Whinny_Vocal_2\|
3\6\End\Anna\Right\Ah, finally we are arrived at the temple!\\\\\\Stop\Stop\Stop\Happy|
4\0\Start\Anna\Right\This is the gate of the temple. It seems the only available entrance, but it's locked.\\\\1\\SC TOWN\\\Neutral|
4\1\Choice\Anna\Right\How should we get in from here?\Try to knock down the door~Try to picklock the door~Use Brian's Levitate spell to access from the collapsed roof\~~PC\~~Brian\2~3~4\\\\\Neutral|
4\2\Goto\\\{ Taking the right timing, all of you kick the gate at the same time and manage to knock down the door. }\\\\5\\\\Empire_Game_Foley_Impact_Metal_Junk_Hit_3\|
4\3\Goto\Hero\Left\Let me picklock this gate, it seems an easy job…\\\\5\\\\Empire_Game_Foley_Metal_Pulley_Wheel_Bar_Spin_Twist_Whirl_Mechanisms_Gear_Turning_10\Neutral|
4\4\Goto\Brian\Left\Everybody come close to me and hold on me, we'll levitate on top of the wall and get down on the other side.\\\\5\\\\Empire_Game_Foley_Metal_Safe_Movement_10_Roll_Slide_Drag_Soft_Quick_Sharp\Neutral|
4\5\End\Anna\Right\Yeah! That was easier than I thought!\\\\\\Stop\Stop\Empire_Game_Foley_Metal_Pin_Drop_On_Concrete_Ring_4\Happy|
I don't have an interface to write the choices, just relying on .txt or Excel, because the client wanted to use Articy, but I am able to build an interface too if you don't want to use Articy.
If you are interested in using Articy to export the file for my system, then we need his assistance for the job he did in Articy to get the export right.
Let me know if it's something you might be interested in.
I'll ask my client if it's possible to share a video about the dialogue if you are interested to see it in action.
EDIT:
If you copy and paste the code bit it will look confuse due to how it is formatted here in the form. If you want to see how it works, once pasted in a text editor, press enter to create a new line after each |. The symbol is identified to set up a new line.