Skip to content

[mod] Increased Rate of Banter

TressetTresset Member, Moderator Posts: 8,262
edited April 2015 in BGII:EE Mods
So, I have been noticing quite a lot of people complain that banters don't happen anywhere near often enough. I am inclined to agree. While you can always make banters happen at your own pace by forcing them to happen with ctrl-i, I decided I would make a very simple mod for this anyway. I know there are components of other, larger mods that can make the banters happen more, but this is a stand alone mod for those who don't want anything more than an increased rate of banter.

What the default behavior is:
In BG2:EE every 10 minutes there is a 10% chance of a random party member attempting to initiate a banter. If the random party member that was selected can find no valid banter partner the banter fails and you will have to wait another 10 minutes to get another chance. Sooo every 10 minutes there is a 10% chance of maybe a banter happening... Those are pretty slim odds...

What I have done:
I have decreased the time between banter attempts to 7 minutes. I have also increased the chance of a banter attempt happening to 100%. This does not mean that there will be a banter every 7 minutes; it just means there will be an attempt every 7 minutes.

Things to keep in mind:
Most banters are scripted to never happen in dungeon type areas, which there are quite a lot of in the game. My mod will not change this so you are not likely to get any banters in dungeons. This mod will also make characters that don't like each other come into conflict with each other much faster. This is because almost all conflicts between party members are run by banters. If you were planning on keeping, say, Minsc and Edwin in the party together and just hoping they never come to blows, you may as well forget it while using this mod. This will not make romances happen faster since those are run on a different system. This mod was designed for BG2:EE and I do not recommend using it on BG1:EE. If, for whatever reason, you want banters to happen more commonly in BG1:EE just ask me and I will make it happen. This mod will most likely not work at all on vBG2.

To install this mod all you have to do is extract the contents of the zip into your BG2:EE override folder. Note that you may need to create an override folder if one does not already exist.

I am open to feedback on this mod and am willing to change things if you think I should. Enjoy chatty NPCs!

Edit: Having tested this mod a bit I have made a tweak to it. I found the file I originally uploaded made banters happen too quickly for my purposes so I made one that is a bit slower. The original upload is still available as "Super increased rate of banter", but I would recommend the new and refined "Moderately Increased rate of banter" more. If you are curious, in the moderately increased rate of banter file I made the frequency 420 and the probability 50.

Moderately increased rate of banter (recommended).

Super increased rate of banter.
Post edited by Tresset on
HeindrichlolienJuliusBorisovBejogoMivsanCrevsDaakSethDavis

Comments

  • HeindrichHeindrich Member, Moderator Posts: 2,959
    Good work mate. I am just wondering if the hike from 10% to 100% is a bit too much? Might you end up with all your banters happening in the early game, and end up with total silence in late-SoA, which is generally very quiet anyway due to the lack of NPC quest and romance interjections.

    Also, what does ctrl+i do, like mechanically? It triggers banters, but how? Directly so, or does it advance time? Does it trigger NPC quest and romance dialogues too?
  • BejogoBejogo Member Posts: 38
    edited March 2015
    I've already said as much on my thread, @Tresset, but this is terrific stuff. Thanks very much.

    I'm inclined to agree with @Heindrich that 100% might rinse the banters slightly too quickly, but I'll play the game with the mod as it is and see what happens. I will of course be sure to let you know.
    Heindrich said:

    Also, what does ctrl+i do, like mechanically? It triggers banters, but how? Directly so, or does it advance time? Does it trigger NPC quest and romance dialogues too?

    I'm pretty sure CTRL+I just cycles through the banter scripts. The script reference appears in the dialogue window. Some scripts are invalid, which is why a lot of the time, nothing seems to happen.

    What interests me is whether these scripts fail to initiate because of lag, or because the developers implemented a number of banters that were never actually written. If it's the former, then as the game seems to cycle through them, all banters should still occur naturally, but it could add a further explanation as to why they are very rare.

    EDIT:

    I am totally wrong about CTRL+I cycling through scripts; it cycles through animations, which you can then use CTRL+L to play. I don't know why this shortcut also causes the game to cycle through potential banters.

    I have, however, used EEKeeper to look at some saves in which I know a couple of banters have fired off.

    I am fairly sure that the scripts run on a loop. At regular intervals, there is a chance that the game will look for a valid banter, which it assesses by how close the NPCs are to one another and (if relevant) the location they are in. (I think, for instance, a lot of Jaheira's dialogue occurs in the wild.) If a banter happens, the initiating character then has a local variable assigned, for instance JAHEIRAMAZZY=1. This prevents the same banter from reoccurring once the scripts cycle back around.

    It is probably done in this way to prevent lost banter opportunities from becoming irretrievable; for instance, if the game attempts to initiate them while in a dungeon, when party chat is suppressed.

    This does mean that all banters will eventually fire off, but it could take ages. More often than not it seems that the game makes the attempt to initiate a banter, but for some reason or another only the animation and not the actual dialogue take place.

    This could be down to lag. I suggest as much because of many instances where various non-playable NPCs take a while to initiate behaviours after the relevant trigger has taken place (I'm thinking of one vampire encounter in particular, where a shadow thief is being chased. The vampire who is chasing him can sometimes take minutes to turn up). The difference is, the game keeps trying to force this behaviour, whereas banter scripts are fire-and-forget; if they don't happen, they don't happen, and you need to wait until they roll back around.

    This is pure speculation, and I am sure players more au fait with the engine than I could confirm or deny some or all of the above.
    Post edited by Bejogo on
    MivsanHeindrichT2avlolien
  • MivsanMivsan Member Posts: 139
    edited March 2015
    Wow. This is so cool. I have pretty much given up on learning more about the failed banters anytime soon, but this is exactly what I was looking for in a thread I made some time ago. Though still I'm not sure about every situation I described there, would have to look into it again and refresh my memory.

    In any case, I have gained valuable insight. Thanks!
    lolien
  • TressetTresset Member, Moderator Posts: 8,262
    @Mivsan I edited your comment to fix that link. I will look at it and see if I can answer your questions, but the way banters work is quite complicated to explain to someone who doesn't understand InfinityEngine scripting.
  • BejogoBejogo Member Posts: 38
    Well, it's high time I start using some kind of infinity editor and figure this stuff out myself anyway. So, I downloaded me Near Infinity and exported a copy of BANTTIMG.2DA to the override folder with frequency set to 240 and probability set to 25 (a factor of 2.5 either way). This means there'll be a 25% chance of a banter every four minutes, working out at roughly one banter attempt every 16 minutes. I'll see how I get on with that in Shadows of Amn.

    Thanks again @Tresset for your invaluable insight.
    Heindrichlolien
  • MivsanMivsan Member Posts: 139
    Tresset said:

    @Mivsan I edited your comment to fix that link. I will look at it and see if I can answer your questions, but the way banters work is quite complicated to explain to someone who doesn't understand InfinityEngine scripting.

    Hmm, the link worked fine for me. In any case, thanks for looking into it. It's not a big deal either way, in the end I learned quite a bit of what I wanted to know, just a little bit later :+). But of course, any additional info is always welcome.

    One thing I would like to ask, though - was it the same exact system in original BG2 or did EE change it somehow? The whole situation of banters not working intrigued me, because I don't remember anything like that happening in original BG2, but then again, it might simply be a problem with my memory. Also, the banter mods always had the option of increasing the frequency of banters and never mentioned anything about a chance of them happening (or increasing that chance). Interesting stuff!
  • TressetTresset Member, Moderator Posts: 8,262
    @Mivsan I am unsure about the vBG2 behavior... The control over the banter frequency is something that was externalized by the EE devs. I cannot check how the banters worked in vBG2 as there is no resource to compare it to. I can only assume that nothing was changed but you would have to ask someone other than me to know for certain.
    lolien
  • NatenNaten Member Posts: 138
    edited March 2015
    Thank you for this @Tresset it has been taking awhile to trigger all the banters for the NPC's I don't use as much.
    Post edited by Naten on
  • JuliusBorisovJuliusBorisov Member, Administrator, Moderator, Developer Posts: 22,714
    It may be interesting to tune your mod, @Tresset , in a way the player can set a rate of conversations - the same is possible in the BG1NPC mod. @AstroBryGuy can give some advice here, I think
    lolien
  • TressetTresset Member, Moderator Posts: 8,262
    @bengoshi Yeah, after testing this a bit I find it makes things happen too fast. I may have to tweak it a bit.
    JuliusBorisovlolien
  • AstroBryGuyAstroBryGuy Member Posts: 3,437
    Tresset said:

    Banttimg.2da is the relevant file. The first two numbers are the only ones you have to change. Frequency is the time period between random banter attempts in seconds. Probability is the chance of a banter happening when the timer cycles past 0 again in percent. The other two fields appear to be mainly for BG1:EE and seem irrelevant for BG2:EE.

    I played around with BANTTIMG.2DA a bit for BG1NPC, so my testing has been on BGEE. BG1/BGEE has two types of banters, those in the B*.DLG files and those controlled by INTERACT.2DA (BG2 doesn't have the latter, AFAIK).

    http://gibberlings3.net/forums/index.php?showtopic=26511&hl=banttimg

    This is what I found:

    FREQUENCY: Time between banter checks in "ticks" of 1/15th of a second. So, FREQUENCY of 600 means 40 seconds between banter checks.

    PROBABILITY: % chance that a banter check fires a banter.

    REPLAYDELAY: I think this only affects B*.DLG banters, but I could be wrong. I certainly had INTERACT.2DA banters replay quicker than they should have with REPLAYDELAY set to be large.

    In BG1/BGEE, the vanilla banters can repeat. AFAIK in BG2/BG2EE, the banters are blocked from repeating by using variables (only allowing the banter to trigger if a certain variable = 0, then setting that variable to 1 in the banter). So, this probably doesn't do anything in BG2EE.

    SPECIALPROBABILITY: Appears to control the chance of a B*.DLG banter vs. an INTERACT.2DA banter. 100% is all B*.DLG banters (or selections sounds if no banter is available). When the percentage is set to 0, the game appears to default to INTERACT.2DA banters unless the NPCs have an INTERACT.2DA banter of "0", then it uses a B*.DLG banter if it exists.

    For BG2EE, there are no INTERACT.2DA banters, but I don't know if SPECIALPROBABILITY is ignored, or if it still factors into the banter check (i.e., setting PROBABILITY to 10 and SPECIALPROBABILITY to 25 makes the chance of a banter 10% * 25% = 2.5%).
    JuliusBorisovTressetlolien
  • TressetTresset Member, Moderator Posts: 8,262
    @AstroBryGuy Are you sure FREQUENCY is in ticks? From my testing it seems more like seconds to me...

    Anyway, I played around with this a bit and I made the increased banter rate a little slower since it was quite ridiculously fast the way I had it initially. I will be uploading another option or two soon.
    JuliusBorisovT2av
  • ithildurnewithildurnew Member Posts: 273
    Doesn't the relevant component from mods like Banterpack, IEPP, etc. do this for you?
  • TressetTresset Member, Moderator Posts: 8,262
    @ithildurnew Um... Does it matter? I don't know what your point is, but, even if what you say is true, that doesn't mean that my mod has no business existing. If anything, it just proves that this sort of thing is something that people want. There is nothing wrong with modding the game yourself; even if it has already been done by others. This mod is quite simple: It does one thing and it does it well. It is perfect for people who don't want to install a huge and involved mod just to change one little thing. It is very rude to imply that someone else's hard work is completely pointless. I made this mod available to help other people and quite a few of them appear to appreciate my work. If you don't like my mod for whatever reason that is fine. You don't have to use it. I would just suggest that in the future you don't say rude things about people's hard work regardless of your feelings about it.

    "An ancient adage this is, yet fitting: If you've nothing pleasant to say, Anomen, say nothing at all." ~Charname
    AstroBryGuyJuliusBorisovithildurnew
  • ithildurnewithildurnew Member Posts: 273
    edited December 2015
    Wow, just... wow... theres no need to be so defensive! It was a simple question to clarify things that's all, holy jeez... nothing I said in any way construed your contribution as useless or defective, etc. In fact I'm sure it's quite handy.

    Having said all that my question still stands, or perhaps I can clarify... I'm wondering how the accleration component from the mods I mentioned interact with the banter 2da file in 2ee.

    Less coffee, please... holy cow...
  • AstroBryGuyAstroBryGuy Member Posts: 3,437
    The banter acceleration components for pre-EE games use script blocks added to BALDUR.BCS to force extra banter dialogs every X seconds of game time (for example, Compton's Banter Accelerator included with BG1NPC forces extra banters every 2500 seconds). Unless those components have been updated for BG2EE, they have no idea BANTER.2DA exists and don't use it at all.

    BANTER.2DA allows much more control over banter frequency (for example, even slowing banters down).

  • ithildurnewithildurnew Member Posts: 273
    Thanks, that's helpful, helps clarify that a decision to skip the traditional banter acceleration options from banterpack etc (and tweak the 2da file instead) was probably a good one.
  • TressetTresset Member, Moderator Posts: 8,262
    @ithildurnew Sorry. I misconstrued the heck out of that. I have had people pestering me about my mods in the past... I will leave it at that. No hard feelings, I hope?
  • ithildurnewithildurnew Member Posts: 273
    No worries, we all have those moments. Internet miscommunication is a fact of life
    Tresset
Sign In or Register to comment.