Ad placeholder

Darkvision mechanics

From bg3.wiki
Jump to navigation Jump to search
See also: Sight mechanics

DarkvisionDarkvision is a passive feature that changes how natural darkness affects a creature. The related passive feature Superior DarkvisionSuperior Darkvision is equivalent, just with a longer effective range. There are also some other passive features with a similar or equivalent effect. This page explains some details pertaining to such features and the related gameplay mechanics.

Apparent sight vs. combat mechanics[edit section | visual editor]

The game uses two different variables to handle how a character 'sees':

  • ActiveCharacterLight: This determines the range of the visual cone of light emitted from the player character in dark areas when that character is selected, to indicate what they can see and provide player immersion. It can only be gained from one source at a time; if a character has multiple sources of it, then only the first applies.
  • DarkvisionRangeMin: This is the value that is actually used in combat mechanics. It can be granted from multiple sources, in which case the highest value takes effect.

Range[edit section | visual editor]

Darkvision can have a custom range per creature, or rather, per source of Darkvision. However, the standard range, if the game's code does not override it, is 12 m (40 ft) for DarkvisionDarkvision and 24 m (80 ft) for Superior DarkvisionSuperior Darkvision. This is typically applied as both ActiveCharacterLight and DarkvisionRangeMin, though some atypical sources of Darkvision may only set one of the two variables for the affected creature.

A creature lacking a source of Darkvision still has a "minimum detection range" of 2 m (7 ft), within which neither possessing nor lacking Darkvision has any impact on combat. This range can be increased to 5 m (17 ft) through the passives Deathbringer's SightDeathbringer's Sight and Murderous SightMurderous Sight, which then acts as a source of Darkvision in combat against creatures as long as the attack range is greater than 2 m (7 ft).

Impact on combat[edit section | visual editor]

When a creature has Darkvision, the game effectively alters the obscurity level of other creatures for that creature, provided that the other creature is within DarkvisionRangeMin. This affects stealth, and can also add a source of AdvantageAdvantage or DisadvantageDisadvantage on attacks:

  • Attacking from Shadows: If the attacker has Darkvision and the target does not, and the attacker is Heavily ObscuredHeavily Obscured, this counts as a source of advantage for the attacker. This also works if the attacker has a longer Darkvision range than the target, and is far enough to be outside the target's Darkvision range, but close enough that the target is within the attacker's Darkvision range.[verify]
  • Too Dark: If a character lacks Darkvision, or the target is beyond their Darkvision range, and the target is Heavily Obscured, this counts as a source of disadvantage.

Racial Darkvision[edit section | visual editor]

The following table shows the Darkvision range granted by a creature's race.

Races Range Notes
Dragonborn, Githyanki, Halfling, Human Effectively 2 m (7 ft) Though these races don't have Darkvision, melee range always counts as visible.
Dwarf, Elf, Gnome, Half-Elf, Half-Orc, Tiefling DarkvisionDarkvision – 12 m (40 ft)
Deep Gnome, Drow (full-elf only), Duergar Superior DarkvisionSuperior Darkvision – 24 m (80 ft)

Other sources of Darkvision[edit section | visual editor]

Bugs[edit section | visual editor]

  • The Duergar sub-race gains DarkvisionDarkvision from their Dwarf base race while also having Superior DarkvisionSuperior Darkvision as a sub-race bonus. This causes their ActiveCharacterLight (see above) to be only 12 m (40 ft) even though their effective Darkvision range for the purpose of combat mechanics is 24 m (80 ft) as per DarkvisionRangeMin.
  • The in-game description of Sarevok's Horned Helmet claims that it can boost the range of an existing source of Darkvision from 12 m (40 ft) to 15 m (50 ft), but this does not work.