Skip to content

Conversations for multiplayer games

My friends and I are considering making multiplayer modules. We've been tooling around and we have found that conversations are weird. What is the best way for us to handle a conversation for with an NPC for multiple PCs?

My main concern is that the PC who has dialogue skills (like Persuade and Intimidate) wouldn't be able to help if the wrong PC starts the conversation. I was thinking about if whenever a conversation page appears there could be a script that checks which PCs are nearby. A conversation option should give the PC currently in control either the ability to pass the conversation off to them or the ability to make the skill check using that PC's modifiers. The game will keep track of and assume that it was the conversationalist PC who made the check even though a different PC is in control. It's safe to assume that the players will be using Discord (or something like it) to voice chat so I'm not worried about the other PCs being able to see all of the dialogue options. The one in control could just read them outloud.

What are everyone else's thoughts on this? Are there examples of modules addressing this sort of issue?

Comments

  • ForSeriousForSerious Member Posts: 446
    My skill at making conversations is not great, but I am confident that you can script them to check the entire party and use the highest skill level. You could even make it so that the option would say what player enabled it.
  • TerrorbleTerrorble Member Posts: 169
    There are definitely a few parts to this:

    A loop to see if there are other PCs are within say 10m and in the same party is easy. It would have to be called each time a skill check is required from the script executing the skill check.

    It would need another loop to determine who has the best skill rank and use that number.

    I think you have to make several versions of the skill check scripts to use for different DCs and the different skills. (pretty sure there's a number of these in the default game: e.g. easy-medium CHA check script; hard CON check, etc)

    There needs to be tracking for who has spoken to an NPC and how far they are thru a quest/conversation so that the conversation doesn't restart at the beginning each time. Or, the NPCs don't act as if you've never spoken when you just completed their 2000 word convo. This should also update the journal.

    The easiest way for me was using a database object in each player's inventory.

    Another loop at the end can mark each player's database object with who they've spoken to and whatever their quest progress is.

    Once the initial busy work is set, you can crank out convos from there.

    PM me or post back here if you need more. I can dig up some script samples from my mod in a couple days (work permitting)
  • Dragonfolk2000Dragonfolk2000 Member Posts: 377
    @ForSerious @Terrorble I messed around with it a bit more after making the post and thought this is the route I would need to take. I'll see if I can figure out the scripting side of things before asking for help.

    Is a database object required? Couldn't I store the variables globally?
  • ForSeriousForSerious Member Posts: 446
    It would need another loop to determine who has the best skill rank and use that number.
    It can be done in the same loop.
    I think you have to make several versions of the skill check scripts to use for different DCs and the different skills.
    You can set script variables in the conversation file. You'd just need to make a generic script, and set the DC and skill type in the conversation option.
    Is a database object required? Couldn't I store the variables globally?
    If you're making a persistent world type module, storing it on the player database object is a good way to do it.
    If it's module like the original campaign, you can just store a local variable on the module object. Add a prefix or suffix to the players character name and store it under that.
Sign In or Register to comment.