FANDOM


Is dispelmagic
Dispel Magic
Spell Information
Spell level : Innate level: 3, Bard: 3, Cleric: 3, Druid: 4, Paladin: 3, Sorcerer/Wizard: 3
School : Abjuration
Components : Verbal and Somatic
Range : Medium
Target/Area : Single or Large
Duration : Instantaneous
Save : None




Description Edit

Dispel Magic attempts to strip all the magical effects on the target. If used on an area then it attempts to remove the most powerful spell of each creature. The dispel check is 1d20 + 1 per caster level (to a maximum of +10) versus 11 + spell effect's caster level.

Dispel Magic workings Edit

This applies to any spell which has a dispel magic check. Dispels are indiscriminate and affect anything in the target area, or on the target creature.

For any kind of dispel Edit

In NWN2, a caster can dispel a summoned monster by targeting the caster. Targeting the summoned monster will have no result.

Feat abilities, as well as extraordinary and supernatural effects, cannot be removed by dispel magic.

It is unknown if a caster's own spells, like the 3.5E description say, are automatically/chosen to be dispelled when affecting an area, but likely are not.

Targeted dispel Edit

Once an object or creature is the target of the dispel magic spell the caster makes a dispel check (1d20 + caster level, maximum +10) against each spell currently in effect. The DC for this dispel check is 11 + the spell’s caster level. If the check succeeds, that spell is dispelled; if it fails, that spell remains in effect.

Area dispel Edit

For each creature within the area that is the effect of one or more spells, the caster makes a dispel check against the spell with the highest caster level. If that check fails, the caster makes dispel checks against progressively weaker spells until one is dispelled (which discharges the dispel magic spell so far as that target is concerned) or until all the checks are failed.

For each ongoing area of effect spell (Gust of Wind, Mind Fog etc.) whose point of origin is within the area of the dispel magic spell, the caster can make a dispel check to dispel the spell:

If the creator of the AoE and the caster of Dispel Magic are the same character, AoE dispel chance=100%

If the caster of Dispel Magic is controlled by a player and tries to dispel an AoE created by somebody else, dispel chance roughly follows the standard formula (see below)

If the caster of Dispel Magic is AI-controlled and tries to dispel an AoE created by somebody else, chance is increased by 30%. The AI cheats here.


Raw numbers Edit

The formula used is very simple:

Caster roll: 1d20 + Caster level (capped appropriate to each spell)
Dispel DC: 11 + Caster level of effect

The roll needs to be equal or greater then the DC to dispel that spell.

There are no additional ways, via feats or spells, to influence these numbers (The game actually has the function hardcoded regardless). The checks are balanced roughly for a 50/50 chance of dispelling the effects of a similar level caster, a level 10 caster requires a roll of 11 or more on the d20 to affect a similar level 10 casters spells (a 50% chance), with the check being harder and harder as levels increase - noting below the level limits, where there is either 100% or 0% chance of success.

There is also no way to score a critical and a 1 doesn't always incur failure - a level 20 caster (minimum roll: 21) can dispel anything cast by a level 10 caster (caster level 10 + 11 = DC21). Similarly, a level 10 caster (using the spell Dispel Magic, so can have the maximum +10 caster level bonus on the roll, so maximum roll is 30) cannot dispel anything cast by a level 20 caster (caster level 20 + 11 = DC31).

This means that certain dispel spells cannot ever affect certain caster levels. These are the limits of certain spells:


Caster level limits for dispelling spells (Assuming a level 20 caster using them)
Spell Maximum caster level
addition to roll
Maximum enemy caster
level to affect
Maximum enemy caster level
for automatic success
Lesser Dispel Magic 5 14 None (But a 70% chance of dispelling level 1 casters)
Dispel Magic 10 19 None (But a 95% chance of dispelling level 1 casters)
Greater Dispel Magic 15 24 5
Mordenkainen's Disjunction Unlimited Unlimited Dispel caster level - 10.
Thus with a level 20 caster, 10.

Bug Notes Edit

The formula used is different from the one advertised, what is taken into account is the character level and not the caster level of the effect:

Caster roll: 1d20 + Caster level (capped appropriate to each spell)
Dispel DC: 11 + Character level

In NWN2, the caster can only dispel a summoned monster by targeting the caster. Trying to dispel the actual summoned monster has no effect, although really the summoner should have no effect applied to them, and the monster itself should be subject to the dispel magic check (Essentially, the EffectSummonMonster spell applies an invisible EFFECT_SUMMON_MONSTER effect on the summoner, perhaps linking it to the summoner's summoned monster for things like tracking masters).

There is also no way to alter the caster level of applied effects, meaning this system is hardcoded into the game. It is unknown exactly how it works regarding two spells with exactly the same caster level, or how spells which apply multiple effects, or two separate effects at once are affected.

Under patch 1.06 in NWN2, targetted Dispel can only be performed upon friendly targets. Enemies cannot be targetted for Dispel Magic. Only area Dispelling is available.

Potential FixesEdit

While this isn't a perfect fix, it would be possible to use GetCasterLevel to obtain the highest caster level on the opposing creature then manually iterate through each effect on the creature and roll the dices.

object oDefender = GetSpellTargetObject();

int nCasterCL = GetCasterLevel(OBJECT_SELF); // you could cap the caster level if you wanted

int nDefenderCL = GetCasterLevel(oDefender);

 

effect eToRemove = GetFirstEffect(oDefender);

while(GetIsEffectValid(oDefender))

{

  if(11 + nDefenderCL < nCasterCL + d20())

  {

   RemoveEffect(oDefender, eToRemove);

  }

  eToRemove = GetNextEffect(oDefender);

}

Yet another fix would be to actually save the information when applied then retrieve the caster level when you want to make the checks. This would probably be a bad idea to use on a persistent world. It would look something like this:

effect mkDispelable(effect eToApply)
{
  eToApply = SetEffectSpellId(eToApply, GetSpellId());
  SetLocalInt(
      GetSpellTargetedObject(), 
      "spell_cl_" + GetSpellId(), 
      GetCasterLevel());
  return eToApply;
}
int GetEffectCasterLevel(effect eCheck)
{
  return GetLocalInt(
      GetEffectCreator(eCheck),
      "spell_cl_" + GetEffectSpellId(eCheck)
      );
}
void dispel(object oTarget) 
{
  int nCL = GetCasterLevel();
  effect eStrip = GetFirstEffect(oTarget);
  while(GetIsEffectValid(eStrip)) 
  {
    if(11 + nCL > GetEffectCasterLevel(eStrip) + d20)
    {
      RemoveEffect(oTarget, eStrip);
    }
    eStrip = GetNextEffect(oTarget);
  }
}

External resources Edit

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.