Undead Spirit

CreatureXPHBp. 3282024

Medium undead, neutral

Armor Class
undefined
Hit Points
30 (Ghostly and Putrid only) or 20 (Skeletal only) + 10 for each spell level above 3
Speed
fly 40 ft. (hover; Ghostly only), 30 ft., canHover true ft.
Proficiency Bonus
equals your Proficiency Bonus
STR
12
+1
DEX
16
+3
CON
15
+2
INT
4
-3
WIS
10
+0
CHA
9
-1
Damage Immunities
necrotic; poison
Condition Immunities
exhaustion; frightened; paralyzed; poisoned
Senses
Darkvision 60 ft., passive Perception 10
Languages
understands the languages you know

Traits

Festering Aura (Putrid Only).

con DC equals your spell save DC, any creature (other than you) that starts its turn within a 5-foot Emanation originating from the spirit. The creature has the Poisoned condition until the start of its next turn.

Incorporeal Passage (Ghostly Only).

The spirit can move through other creatures and objects as if they were Difficult Terrain. If it ends its turn inside an object, it is shunted to the nearest unoccupied space and takes 1d10 Force damage for every 5 feet traveled.

Actions

Multiattack.

The spirit makes a number of attacks equal to half this spell's level (round down).

Deathly Touch (Ghostly Only).

Melee Attack Roll: Bonus equals your spell attack modifier, reach 5 ft. Hit: 1d8 + 3 + summonSpellLevel Necrotic damage, and the target has the Frightened condition until the end of its next turn.

Grave Bolt (Skeletal Only).

Ranged Attack Roll: Bonus equals your spell attack modifier, range 150 ft. Hit: 2d4 + 3 + summonSpellLevel Necrotic damage.

Rotting Claw (Putrid Only).

Melee Attack Roll: Bonus equals your spell attack modifier, reach 5 ft. Hit: 1d6 + 3 + summonSpellLevel Slashing damage. If the target has the Poisoned condition, it has the Paralyzed condition until the end of its next turn.

Raw data
{
  "ac": [
    {
      "special": "11 + the spell's level"
    }
  ],
  "hp": {
    "special": "30 (Ghostly and Putrid only) or 20 (Skeletal only) + 10 for each spell level above 3"
  },
  "cha": 9,
  "con": 15,
  "dex": 16,
  "int": 4,
  "str": 12,
  "wis": 10,
  "name": "Undead Spirit",
  "page": 328,
  "size": [
    "M"
  ],
  "type": "undead",
  "speed": {
    "fly": {
      "number": 40,
      "condition": "(hover; Ghostly only)"
    },
    "walk": 30,
    "canHover": true
  },
  "trait": [
    {
      "name": "Festering Aura (Putrid Only)",
      "entries": [
        "{@actSave con} DC equals your spell save DC, any creature (other than you) that starts its turn within a 5-foot {@variantrule Emanation [Area of Effect]|XPHB|Emanation} originating from the spirit. {@actSaveFail} The creature has the {@condition Poisoned|XPHB} condition until the start of its next turn."
      ]
    },
    {
      "name": "Incorporeal Passage (Ghostly Only)",
      "entries": [
        "The spirit can move through other creatures and objects as if they were {@variantrule Difficult Terrain|XPHB}. If it ends its turn inside an object, it is shunted to the nearest unoccupied space and takes {@damage 1d10} Force damage for every 5 feet traveled."
      ]
    }
  ],
  "__prop": "monster",
  "action": [
    {
      "name": "Multiattack",
      "entries": [
        "The spirit makes a number of attacks equal to half this spell's level (round down)."
      ]
    },
    {
      "name": "Deathly Touch (Ghostly Only)",
      "entries": [
        "{@atkr m} {@hitYourSpellAttack Bonus equals your spell attack modifier}, reach 5 ft. {@h}{@damage 1d8 + 3 + summonSpellLevel} Necrotic damage, and the target has the {@condition Frightened|XPHB} condition until the end of its next turn."
      ]
    },
    {
      "name": "Grave Bolt (Skeletal Only)",
      "entries": [
        "{@atkr r} {@hitYourSpellAttack Bonus equals your spell attack modifier}, range 150 ft. {@h}{@damage 2d4 + 3 + summonSpellLevel} Necrotic damage."
      ]
    },
    {
      "name": "Rotting Claw (Putrid Only)",
      "entries": [
        "{@atkr m} {@hitYourSpellAttack Bonus equals your spell attack modifier}, reach 5 ft. {@h}{@damage 1d6 + 3 + summonSpellLevel} Slashing damage. If the target has the {@condition Poisoned|XPHB} condition, it has the {@condition Paralyzed|XPHB} condition until the end of its next turn."
      ]
    }
  ],
  "immune": [
    "necrotic",
    "poison"
  ],
  "pbNote": "equals your Proficiency Bonus",
  "senses": [
    "Darkvision 60 ft."
  ],
  "source": "XPHB",
  "passive": 10,
  "hasToken": true,
  "miscTags": [
    "MA",
    "RA"
  ],
  "_versions": [
    {
      "hp": {
        "special": "30 + 10 for each spell level above 3"
      },
      "_mod": {
        "trait": [
          {
            "mode": "renameArr",
            "renames": {
              "with": "Incorporeal Passage",
              "rename": "Incorporeal Passage (Ghostly Only)"
            }
          },
          {
            "mode": "removeArr",
            "names": "Festering Aura (Putrid Only)"
          }
        ],
        "action": [
          {
            "mode": "renameArr",
            "renames": {
              "with": "Deathly Touch",
              "rename": "Deathly Touch (Ghostly Only)"
            }
          },
          {
            "mode": "removeArr",
            "names": [
              "Grave Bolt (Skeletal Only)",
              "Rotting Claw (Putrid Only)"
            ]
          }
        ]
      },
      "name": "Undead Spirit (Ghostly)",
      "speed": {
        "fly": {
          "number": 40,
          "condition": "(hover)"
        },
        "walk": 30,
        "canHover": true
      },
      "source": "XPHB",
      "hasToken": true,
      "damageTags": [
        "N"
      ],
      "conditionInflict": [
        "frightened"
      ],
      "foundryTokenScale": 1.3
    },
    {
      "hp": {
        "special": "30 + 10 for each spell level above 3"
      },
      "_mod": {
        "trait": [
          {
            "mode": "renameArr",
            "renames": {
              "with": "Festering Aura",
              "rename": "Festering Aura (Putrid Only)"
            }
          },
          {
            "mode": "removeArr",
            "names": "Incorporeal Passage (Ghostly Only)"
          }
        ],
        "action": [
          {
            "mode": "renameArr",
            "renames": {
              "with": "Rotting Claw",
              "rename": "Rotting Claw (Putrid Only)"
            }
          },
          {
            "mode": "removeArr",
            "names": [
              "Deathly Touch (Ghostly Only)",
              "Grave Bolt (Skeletal Only)"
            ]
          }
        ]
      },
      "name": "Undead Spirit (Putrid)",
      "speed": {
        "walk": 30
      },
      "source": "XPHB",
      "hasToken": true,
      "traitTags": null,
      "damageTags": [
        "O",
        "S"
      ],
      "conditionInflict": [
        "paralyzed",
        "poisoned"
      ]
    },
    {
      "hp": {
        "special": "20 + 10 for each spell level above 3"
      },
      "_mod": {
        "action": [
          {
            "mode": "renameArr",
            "renames": {
              "with": "Grave Bolt",
              "rename": "Grave Bolt (Skeletal Only)"
            }
          },
          {
            "mode": "removeArr",
            "names": [
              "Deathly Touch (Ghostly Only)",
              "Rotting Claw (Putrid Only)"
            ]
          }
        ]
      },
      "name": "Undead Spirit (Skeletal)",
      "speed": {
        "walk": 30
      },
      "trait": null,
      "source": "XPHB",
      "hasToken": true,
      "traitTags": null,
      "damageTags": [
        "N"
      ],
      "conditionInflict": null
    }
  ],
  "alignment": [
    "N"
  ],
  "languages": [
    "understands the languages you know"
  ],
  "senseTags": [
    "D"
  ],
  "traitTags": [
    "Incorporeal Movement"
  ],
  "actionTags": [
    "Multiattack"
  ],
  "damageTags": [
    "N",
    "O",
    "S"
  ],
  "hasFluffImages": true,
  "conditionImmune": [
    "exhaustion",
    "frightened",
    "paralyzed",
    "poisoned"
  ],
  "summonedBySpell": "Summon Undead|XPHB",
  "conditionInflict": [
    "frightened",
    "paralyzed",
    "poisoned"
  ],
  "foundryTokenScale": 1.3,
  "savingThrowForced": [
    "constitution"
  ],
  "summonedBySpellLevel": 3
}