The extension I’ve used is Quip-Based Conversation by Michael Martin, which itself relies on Reactable Quips by the same author. There’s full documentation for each of those (just read below the code in both extensions and you’ll see that, including examples), but to give you a flavor, here’s what the code for a short conversation would look like:
Include quip-based conversation by Michael Martin.
Kitchen is a room. The cook is a person in the kitchen. The greeting of the cook is cook-greeting. The litany of the cook is the table of cook conversation. The plate of food is nowhere.
Table of Quip Texts (continued)
quip quiptext
cook-greeting "'What are you doing in the kitchen?' the cook demands."
cook-getout "'Now get out of my kitchen.'"
cook-poofed "'A likely story,' he says with narrowed eyes."
cook-philosophical "'Heaven save me, a philosopher,' he mutters, reaching for his cleaver."
cook-hungry "'Oh. That's all right then,' the cook says, and hands you a plate of food."
cook-thanks "'You are welcome. Now get out of my kitchen.'"
Table of Cook Conversation
prompt response enabled
"'Beats me, I just poofed into existence here.'" cook-poofed 1
"'What are any of us doing anywhere?'" cook-philosophical 1
"'I'm looking for food, of course.'" cook-hungry 1
"'Cheers!'" cook-thanks 0
After quipping when the current quip is cook-hungry:
Now the player has the plate of food;
Enable the cook-thanks quip;
disable the cook-poofed quip;
disable the cook-philosophical quip;
Now the greeting of the cook is cook-getout.
I’ve also heard of people using Hybrid Choices by AW Freyr, and Eric Eve’s Conversation Framework, though don’t have personal experience with those.