Is it correct to assume that, if I have a bunch of banters & I don't really care when they fire, I might want to weight a few of the ones initiated by the Bio NPC's to keep them from firing dead last, but it doesn't matter which?
Are we talking about banters between a Bio NPC and your new mod NPC?
Is it only banters started by Bio NPC's that need the Weighting to push them up or will banters started by the mod NPC with the Bio NPC also go to the end of the line?
Unless you explicitly give a WEIGHT, any new state trigger ("top-level") always goes to the end of the line--or specifically, "whatever the end of the line was at the time the dialogue was compiled."
The upshot is, unless you weight a new Bio-initiated banter somewhat higher in the stack (but
always below any lovetalks!), then the Bio NPCs will always exhaust all of their banters with each other before considering yours.
As a flawed example, let's say you're giving Bruce some banter with Jaheira.
Jaheira has, in her B file, talks in the following sequence:
lovetalks
Minsc banter
Anomen banter
If you do not specify a higher weight, the list will be this:
lovetalks
Minsc
Anomen
Bruce
Meaning that if Minsc, Anomen, and Bruce are all in the party with her, Jaheira will always choose to start her banter with Minsc, then with Anomen, and then
only
after those have been done will she get to Bruce.
So one strategy is to pick the weight between Minsc and Anomen. She'll still always talk to Minsc first (if he's in the party) but Bruce won't have to wait until she finishes with Anomen before he gets some attention.
Also, I recently had a lot of trouble getting a banter to fire at rest, until I weighted it. Other NPC banters were firing first, even if they were not originally intended to be at rest. So--should I make sure to weight all such banters?
I would say "yes, absolutely."
General system for a rest talk:
Dreamscript says "Is it time to do this talk? (We're in the right area, we're in the right chapter, we have the festhall amulet, blah blah) If so, let's set someflag to 1 and call a dialogue command."
Your .d file is
APPEND WHATEVER
IF WEIGHT #-1 ~Global("someflag","GLOBAL",1) BEGIN ourtalk
SAY ~something~
DO ~SetGlobal("someflag","GLOBAL",2)
etc.
That way, your rest-talk is at the top of the stack and no pesky banters or whatever will get in its way, but it's also in no danger of running "accidentally" because it's waiting for your dreamscript to set the flag to 1.