Dispel Cap (Resolving the Issue)

Hints and Guidelines, How To's on Registration, Activation, NWN, etc.

Moderators: Forum Moderators, Active DMs

Post Reply
Bhaalist
Posts: 49
Joined: Fri Jan 20, 2017 5:11 pm

Dispel Cap (Resolving the Issue)

Post by Bhaalist » Sun Jan 29, 2017 4:44 pm

Thread moved to the proper posting location:

viewtopic.php?f=18&t=10097
Last edited by Bhaalist on Sun Jan 29, 2017 6:54 pm, edited 2 times in total.

yellowcateyes
Project Lead
Project Lead
Posts: 1445
Joined: Fri Sep 12, 2014 2:02 am

Re: Dispel Cap (Resolving the Issue)

Post by yellowcateyes » Sun Jan 29, 2017 5:06 pm

Bhaalist wrote:On Arelith on the other hand (per result of not updating dispel changes to reflect those of version 1.66 or 1.67) dispel is capped at 20, yet potions and scrolls are not.
The dispel cap isn't due to not keeping up with version numbers. Arelith, for a time, uncapped Greater Dispel. It eventually reverted Greater Dispel to a 20 cap, albeit one that ignored SR.
Dinosaur Space Program is my working partner on Arelith-related projects. If my inbox is full or I take a while to get back to you, feel free to PM them questions or concerns.

Bhaalist
Posts: 49
Joined: Fri Jan 20, 2017 5:11 pm

Re: Dispel Cap (Resolving the Issue)

Post by Bhaalist » Sun Jan 29, 2017 5:22 pm

yellowcateyes wrote: The dispel cap isn't due to not keeping up with version numbers. Arelith, for a time, uncapped Greater Dispel. It eventually reverted Greater Dispel to a 20 cap, albeit one that ignored SR.
My mistake in not clarifying, Mordenkainen's Disjunction is what I'm intending to reference in that statement. Which was a 20 cap in Patch 1.65, later changed to a 40 cap for level 40s in 1.66, meaning 30 cap for level 30s.

Great dispelling though, by default capped at 15, has always been incredibly ineffective and was the butt of jokes in vanilla NWN on most servers, and PvP in general. Yet even with a 20 cap it is sub-par and ineffective given that an ESF abjurer would only have a 25% chance (16 or higher roll) of dispelling a non-caster level 30 build. It deserves to be uncapped as well, in my honest opinion.

But the issue with allowing greater dispelling to be uncapped is Warlocks. Currently, they can only acquire GSF abjuration, which puts them at 24 DC for 15% chance of success (18 roll or higher vs a non-caster 30 build). Uncapped, they would be left at 34 DC, a 65% chance of success (8 roll or higher).

Warlocks alone mean that even slight changes to the dispel cap of greater dispelling has huge, detrimental side effects to the overall balance of the server. Being able to infinitely cast dispel, while simultaneously having 19/- DR (with EDR III) and a ton of HP means even the existing 15% chance isn't as bad as it seems statistically. That said, it's still really low. And for anyone who isn't a warlock (who can acquire ESF abj for a 25% chance) .. a 1/4 chance of success is still nothing short of pathetic.

Basically, this leaves a couple conclusions:
  • Mordenkainen's Disjunction either needs to be uncapped, alongside the addition of discipline to the default skill list for arcane classes, or clarity + death ward need to be added to the breach list.
  • Greater Dispelling is in a relatively good place for Warlocks, but for anyone else, 20-26 DC dispel is a joke. Which means changing it even a little bit can have massive backlash for numerous builds.
That said, I think greater dispelling still needs to be uncapped as well. Or at least given the means to reach a base 30 DC (before abjuration focuses) for non-warlocks. That in itself is quite the challenge to tackle, I'd imagine. So maybe the best resolution for greater dispel specifically is to leave it 20 capped, and to add a DC bonus (scaled with caster level) to clerics and other non-warlock casters.

User avatar
Karris the Anarchist
Arelith Silver Supporter
Arelith Silver Supporter
Posts: 152
Joined: Thu Nov 24, 2016 11:21 pm

Re: Dispel Cap (Resolving the Issue)

Post by Karris the Anarchist » Sun Jan 29, 2017 5:46 pm

I've been away from nwn for too long - when people use potions, do they count the character level as their CL (Caster Level), and not the tiny number in the bracket?

What. The. Hell.

That explains why I am getting dispelled. Epic Mage with Arcane Defense: Abjuration (I know, shoot me for wasting feats), and the only spells that stick on my summons are stupid potions.

Can this bug be fixed, or is it hardcoded?
That which doesn't kill you, simply makes you... stranger.

Bhaalist
Posts: 49
Joined: Fri Jan 20, 2017 5:11 pm

Re: Dispel Cap (Resolving the Issue)

Post by Bhaalist » Sun Jan 29, 2017 5:51 pm

Karris the Anarchist wrote:I've been away from nwn for too long - when people use potions, do they count the character level as their CL (Caster Level), and not the tiny number in the bracket?

What. The. Hell.

That explains why I am getting dispelled. Epic Mage with Arcane Defense: Abjuration (I know, shoot me for wasting feats), and the only spells that stick on my summons are stupid potions.

Can this bug be fixed, or is it hardcoded?
Edit: Per correction from Morderon, Arcane Defense does increase your defensive dispel DC by +2.

Regarding potions: Yes, unfortunately potion caster level scales with character level. So a pure class, level 30 fighter gets 30 CL buffs from potions that are nearly impossible for any caster to dispel. Since their defensive DC is 12 + CL for a total of 42 DC that someone has to hit to successfully dispel them. Essentially, as a caster, if you have anything less than 30 caster levels, it's easier to dispel you than it is to dispel a non-caster.

--

Basically:

Non-abjurers are rolling 20 + d20 vs DC 42 (requires 22 out of maximum 20 for success): 0% chance.
Abjurers (ESF) are rolling 26 + d20 vs DC 42 (requires 16 or higher for success): 25% chance.
Last edited by Bhaalist on Sun Jan 29, 2017 6:11 pm, edited 3 times in total.

Morderon
Technical Lead
Technical Lead
Posts: 1271
Joined: Mon Sep 08, 2014 2:24 am

Re: Dispel Cap (Resolving the Issue)

Post by Morderon » Sun Jan 29, 2017 5:53 pm

Items, including potions, use either 1) Your caster level of the last class you used to cast a spell. or if 1 doesn't apply 2) Your character level.

Arcane defense abjuration giving dispel resistance is an arelith specific change.

User avatar
Scurvy Cur
Posts: 1310
Joined: Tue Jan 27, 2015 3:48 am

Re: Dispel Cap (Resolving the Issue)

Post by Scurvy Cur » Mon Jan 30, 2017 9:06 am

We've done some tinkering in the past with letting dispels scale to CL 30; it was a pretty bad time for balance in general, reducing the competitive meta to warlocks (as the only caster that could go pure and which could infinitely dispel 2x per round while doing 80 damage per dispel), and pure mundanes, which were the only builds that could keep any buffs. I can't see ever voluntarily going back to having dispels that scale to 30 as a result.

The real issue regarding dispelling, and the point which most urgently needs addressing, is the vast difference in susceptibility to dispelling between mundane characters and most everyone else. Any system that doesn't directly deal with that disparity will either wind up with dispels that can occasionally bust buffs off a weaponmaster, but dissolve buffs off of every other class, or with dispels that are suitable for dealing with CL 20-26ish targets, but which haven't a prayer of scratching the paint on a mundane.


User avatar
Mithreas
Emeritus Admin
Emeritus Admin
Posts: 2555
Joined: Sat Sep 06, 2014 3:09 am

Re: Dispel Cap (Resolving the Issue)

Post by Mithreas » Mon Jan 30, 2017 9:26 am

Unfortunately, that appears to be a bug in the built in EffectDispelMagicAll and EffectDispelMagicBest functions. Scholar may well be able to fix it, but it's out of the range of mere mortals :-)
xkcd.com is best viewed with Netscape Navigator 4.0 or below on a Pentium 3±1 emulated in Javascript on an Apple IIGS at a screen resolution of 1024x1.For security reasons, please leave caps lock on while browsing.

User avatar
Peppermint
Posts: 1860
Joined: Mon Sep 08, 2014 4:44 pm

Re: Dispel Cap (Resolving the Issue)

Post by Peppermint » Mon Jan 30, 2017 9:27 am

It's a rather well known bug, and there's actually a fix for it on nwnvault. The fix generally involves using a tracking array to handle dispels (and replacing the default system).

User avatar
Mithreas
Emeritus Admin
Emeritus Admin
Posts: 2555
Joined: Sat Sep 06, 2014 3:09 am

Re: Dispel Cap (Resolving the Issue)

Post by Mithreas » Mon Jan 30, 2017 9:36 am

Ugh. Well, yes, I guess that works... tracking the caster level of every effect does seem very painful though :( You'd have to override the ApplyEffect methods to add the tracking system in every spellscript in the module, and work out how to clean up your tracking when the effect wears off?
xkcd.com is best viewed with Netscape Navigator 4.0 or below on a Pentium 3±1 emulated in Javascript on an Apple IIGS at a screen resolution of 1024x1.For security reasons, please leave caps lock on while browsing.

Morderon
Technical Lead
Technical Lead
Posts: 1271
Joined: Mon Sep 08, 2014 2:24 am

Re: Dispel Cap (Resolving the Issue)

Post by Morderon » Mon Jan 30, 2017 12:22 pm

Or you use the spellhook system

A set of variables named like dispelcheck(spellid+casterid) set to the value of the caster level.

Then loop through effects during dispel and compare them to the local variables, ignoring the properties that are normally ignored by dispel. Have some default value in case something fails along the way (caster logging out may be problematic or any nwnism that causes the spell id not to be stored). And just not worry about removing them if the spell expires as they won't be called if the effect isn't in use.


Though for items I would urge the dispel check is based off of character level, not the item's caster level. Just at a much lower cap then what's currently available. (IE: item based casting can't go above 25 dispel check, item based casting for hybrid caster uses your character level as well). As it would be annoying for a mundane to have no chance of keeping wards in PvE. And that means pure-ish would be more difficult to dispel.

yellowcateyes
Project Lead
Project Lead
Posts: 1445
Joined: Fri Sep 12, 2014 2:02 am

Re: Dispel Cap (Resolving the Issue)

Post by yellowcateyes » Mon Jan 30, 2017 1:37 pm

Morderon wrote:As it would be annoying for a mundane to have no chance of keeping wards in PvE. And that means pure-ish would be more difficult to dispel.
Yes. Mundane CL for purposes of resisting dispel should be lowered so that a dedicated caster has a good chance of de-warding them. But it shouldn't be lowered to the point that everyone rolls kensai.
Dinosaur Space Program is my working partner on Arelith-related projects. If my inbox is full or I take a while to get back to you, feel free to PM them questions or concerns.

Bhaalist
Posts: 49
Joined: Fri Jan 20, 2017 5:11 pm

Re: Dispel Cap (Resolving the Issue)

Post by Bhaalist » Mon Jan 30, 2017 4:10 pm

My apologies to everyone here for the lack of proper notification, I moved the original post to a hopefully more suitable location:

viewtopic.php?f=18&t=10097

It's relieving to see such a large response from both developers and admins here, though. I have faith in you guys. And sincerely hope a solution can be agreed upon and implemented.

User avatar
Mithreas
Emeritus Admin
Emeritus Admin
Posts: 2555
Joined: Sat Sep 06, 2014 3:09 am

Re: Dispel Cap (Resolving the Issue)

Post by Mithreas » Mon Jan 30, 2017 8:49 pm

Morderon wrote:Or you use the spellhook system

A set of variables named like dispelcheck(spellid+casterid) set to the value of the caster level.
Logically you could be hit by multiple copies of the same spell from the same caster but using different classes/caster levels (or spell + item). Generating a caster ID for NPCs would also be a little clunky - though I have just written code to give NPCs random tags on spawn, so I guess we could just roll that out to every encounter NPC.

The compromise is probably just to ignore the caster and store the last caster level used to cast each spell on you. Then to look up caster level by spell ID in a local var. But someone logged in for hours could build up quite an impressive array of variables here - though probably not enough to create a problem.

As for caster level, if you want to give mundanes some protection still, using character level but counting mundane classes as half might work best for items (so a cleric/sorc uses their full level, a fighter/cleric counts half their fighter levels plus cleric levels). Rogues and assassins might get to count their full level as they use items best.
xkcd.com is best viewed with Netscape Navigator 4.0 or below on a Pentium 3±1 emulated in Javascript on an Apple IIGS at a screen resolution of 1024x1.For security reasons, please leave caps lock on while browsing.

User avatar
RedGiant
Posts: 1461
Joined: Fri Sep 12, 2014 1:39 am
Location: North of Babylon

Re: Dispel Cap (Resolving the Issue)

Post by RedGiant » Tue Jan 31, 2017 2:00 am

A non-expert question...from the field as it were.

If this is the case with items granted effects, why do my characters...even higher level ones.. routinely loose their item granted buffs from dispels and even seemingly the weak lessor dispels of say...lizard mages? Is there a difference in the way this functions between wands potions scrolls bound spells in items and say iounstones?

And maybe another dumb question...does multi-classing play a role?
Last edited by RedGiant on Wed Feb 01, 2017 4:50 am, edited 5 times in total.
The GrumpyCat wrote:I CLICK THE HOSTIBLE BUTTON NOW U ARE DED!
Irongron wrote:The slaughter, i am afraid, will not abate.

Morderon
Technical Lead
Technical Lead
Posts: 1271
Joined: Mon Sep 08, 2014 2:24 am

Re: Dispel Cap (Resolving the Issue)

Post by Morderon » Tue Jan 31, 2017 3:24 am

Yeah originally had class type used or item type in the variable name as well.. before i remembered they couldn't be grabbed and I given up on a true setefffectlevel function
Logically you could be hit by multiple copies of the same spell from the same caster but using different classes/caster levels (or spell + item)
I don't find that to problematic as 1) We can limit such by looping through spell effects and checking to see if they spell is already applied if not apply new caster level, if it is keep higher. 2) There's not really any good builds that use multiple casting classes and your limiting your variety if your preparing/learning the same spell with both classes.

Though some use of items might be problematic.. but if they're the higher they will still be susceptible to dispels in level appropriate areas. And if they're lower we can special case it so it uses the item caster level. Make them choose between their higher natural caster level, or spamming bull's strength from the item to get that +5/+7 at a lower caster level (if it's not already applied see 1) above).

Unless if we have many npcs in the same area with the same spells, but wildly different caster levels we could probably cut down some variables by setting them on the area. Though spellID only here no caster ID. If the pc is able to successful escape the NPC to another area I wouldn't mind it if they find the negative magic potentially easier to dispel. If variable must be stored on PC just using spellID should work as NPCs don't often recast the same spell on the same pc once one takes effect.

I do think caster ID is needed though for PC interactions. Wouldn't want someone casting a lower caster level spell to make a higher level spell easier to dispel. Though such might be a bad tactic given the time it takes to complete anyways.

Post Reply