I need some advice from PW or multiplayer scripters.
I’m trying to set up decision points to permit party voting on plot-advancing decisions in multiplayer-compatible modules. Decision points register player votes for the available options, and complete the vote and execute the script linked to the highest-voted decision once all PC party members in the area have voted.
Accounting for the possibility of multiple PC parties in a module, I don’t want a potential second party to be able to partially vote on a decision point, casting some votes but moving on without completing the decision, leaving a rigged vote for the other party. So the decision points should be recording the votes on a per-party basis, with the decision and it’s consequences not being attributed to players who weren’t involved in making the decision.
To say, if a party decides to murder some hostages, then party members who weren’t involved in making the decision to murder the hostages (having been elsewhere entirely) should not be liable to be prosecuted for the murder of the hostages. And if Party A casts decisions to murder the hostages, but moves on without completing the vote, and Party B later drops by and casts decisions to save the hostages, then Party B’s decision to save the hostages should not be endangered by Party A’s partial decision to murder the hostages, making Party B inadvertently murder the hostages despite all members of Party B having voted to save the hostages.
So I need a way to distinguish between different PC parties. If that’s a thing. Is that a thing? Lack of multiplayer experience is not coming in handy here.
The question(s):
Is it reliable to use the ObjectToString-ed faction leader to store the decision counter strings on the decision point placeable, or do I need to give all the PC party members a custom stamp signifying which party they’re a member of?
Can the faction leader change ingame? Can PCs change party membership ingame? Is there even such a thing as “multiple PC parties” in NWN? If the multiplayer session gets suspended, and restarted later, can the party leader be a different person, or a different object (in the ObjectToString() sense)?