Ad placeholder

Counterspell

From bg3.wiki
Jump to navigation Jump to search
Counterspell.webp
Counterspell is a level 3 abjuration spell. It allows spellcasters to interrupt another caster's spellcasting, causing it to fail and have no effect.

Description

Try to stop a spell being cast.

If it is higher level than the spell slot you used to Counterspell, you must make a check using your spellcasting ability[See Notes] to prevent it. The check's difficulty is equal to 10 plus the level of the spell you are trying to counter. This spell can be cast while you are Silenced Silenced.

Properties

At higher levels

Counterspell can be upcast to counter spells of higher levels without requiring a check.

Technical details

UID
Target_Counterspell
Spell flags

How to learn

Classes:

Granted by items:

Other ways to learn:

  • There are no scrolls available for wizards to scribe to their spellbooks.

Notes

  • When attempting to Counterspell a spell of a higher level, the Counterspell caster's Intelligence Intelligence modifier is used instead of their spellcasting ability modifier.[1]
  • Even a failed Counterspell feeds an Abjuration School Wizard's Arcane Ward Arcane Ward.
  • When a scroll is successfully counterspelled the scroll is not consumed.
  • Cantrips can also be counterspelled.
  • The incantation for Counterspell is Impero Tibi, Latin for "I command you".

Bugs

  • Arcane Ward can only be fed up to 3 charges, regardless of spell Level used, due to how an additional hidden Counterspell is cast based on success/failure.

External links[edit | edit source]

References[edit | edit source]

  1. From the definition of TryCounterspellHigherLevel(level) in Mods/Shared/Scripts/thoth/helpers/CommonConditions.khn:
    Show code
    function TryCounterspellHigherLevel(level)
        local spellPowerLevel = SpellPowerLevelEqualOrLessThan(level)
        if not spellPowerLevel.Result then
            local counterspellDC = 10 + context.HitDescription.SpellPowerLevel
            local st = AbilityCheck(Ability.Intelligence, counterspellDC, false, false, 0, context.Observer, context.Observer)
            return ConditionResult(st.Result,{},{},st.Chance)
        end
        return ConditionResult(true,{},{},1.0)
    end