This system allows you to pass a single parameter in any conversation node to a PC by using the Journal Quest index.
The example shows multiple player response and uses the same file for each of the Actions Taken. Typically you would have to use separate files leading to script bloat or use a single player response and another response to advance a local iterator which looks terrible.
This works by setting up a Quest in the Journal Editor and creating as many entries as you need. Set the Quest and it's desired Index in Other Action on the conversation node. The Index will become the parameter; the text of the Quest is never used. When a player selects their response in the conversation their Journal updates before the Actions Taken event fires. The Actions Taken script reads the current state of the Quest off the player and uses that state to choose the Action.
This is entirely self contained and simple to use. There is no need for third party tools or complicated dialog systems.
I've refactored an ActionTaken function to keep it simple for using in different conversations. Simply erase the details of my function and replace them with your own.
One caveat is there is no way to suppress the Journal updates noise and message to the user (except if the Journal UI is open). I use a cleanup script to remove the update and the panel flash. A player might get confused for why they showed they had an update but nothing is there. (you could remove the cleanup script and add entries that the quest is used internally).
Update: Per Shadooow on Discord, he pointed out that updating Quest Entries affects the whole party which I confirmed. I added a loop in my cleanup code to cleanup the Journals of fellow PC party members.
Remember too that quest entries aren't persistent.
I can't take credit for this idea: it was brought to my attention on a forum or on Discord by someone but at the current time I can't find the conversation. I will update this when I do.
Attachment | Size |
---|---|
![]() | 10.89 KB |