Custom dialogue system requires using object's texts as dialogue options and then on clicking them runing action blocks containing all the needed display texts action parts. (Called by other acion)
You could use drawFont function instead of object's text. There's more ways to achieve this. I would suggest sticking with object's text for now though.
I believe Sebastian shared his version of custom dialogue system here on forum. Might give you an idea how to create this.
The changing color part is about setting a font to the object's text. You would also have to use some conditions here to know if dialogue option was clicked before.
I was thinking if there was a way via LUA to change the font of a character's dialogue if a condition was T or F, so chosen options would appear as a different coloured font
That's unfortunately not possible.
Sebastian's thread my seems confusing but the core of the system is not complicated. You just call an action which contains display text action parts for your characters.
The tricky part is sorting out the interface for the doialogue options. Best way is to create a few slots (objects texts) inside of interface and then puting the needed text in the slots via values.
Of course you would have to sort out scrolling the options and some other stuff as well.