👁 Read Only by Frazer 👁 160 views
📷 Download as PNG

Indoor Puddle

Medium Monstrosity (sentient), Neutral Evil


Armor Class 12 (natural armor)

Hit Points 65 (10d8+20)

Speed 20 ft. swim 20 ft.

STR 16 (+3)
DEX 14 (+2)
CON 14 (+2)
INT 10 (+0)
WIS 12 (+1)
CHA 8 (-1)

Skills Stealth +6, Perception +4

Damage Vulnerabilities fire

Condition Immunities blinded, poisoned

Senses darkvision 60 ft., passive Perception 12

Languages Common, Aquan

Challenge 3 (700 XP) Proficiency Bonus +2


Amorphous. The puddle is amorphous and can flow through spaces as narrow as 1 inch. It can squeeze through cracks, under doors, and around floorboards with eerie ease.
Sentience. The puddle is sapient, capable of simple speech via watery murmurs. It understands Common and Aquan and seeks to accompany adventurers indoors, whispering strategies and warnings.
Infiltrator. Drawn to warmth and movement, the puddle can quietly track a target by flowing along walls, floors, or ceilings within 20 feet of the target.

Actions

Multiattack. The puddle makes two Tendril attacks.
Tendril. Melee weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 10 (2d6+3) bludgeoning damage. A writhing tendril of water lashes at a foe.
Engulf. The puddle can attempt to engulf a Medium or smaller creature within 5 feet. The target must succeed on a DC 12 Dexterity saving throw or be engulfed and restrained. While engulfed, the target takes 3d6 acid damage at the start of each of its turns. The target can escape by using a Strength check (DC 12) as an action on its turn.

📷 Export as Image

Share your monster as a beautiful PNG image styled like classic D&D sourcebooks.

📥 Download PNG
Indoor Puddle Stat Block

Includes: Full stat block, monster image (if selected), CR badge, and QuickMonster branding.

Resolution: High-quality PNG at 2x scale for crisp display on any device.

Lore & Description

Appearance

A sentient puddle, this creature resembles a shallow pool of water tinted with a pale blue-green glow. The edges ripple like a map across its surface, and faint motes drift within as if tiny bubbles were whispering. It flows with a guiding purpose, seeking to accompany adventurers indoors and seep into every corner of a building. The air around it is cool and damp, and the sound of dripping water follows wherever it goes. Despite its harmless appearance, the puddle can lash out with sharp-edged currents and can engulf a foe in a corrosive, waterlogged embrace.

Behavior & Origins

This creature began as a spill of enchanted water, left behind by a mage experimenting with protection wards. The spill absorbed memories from the rooms it touched and learned to understand the language of people and their footsteps. It dislikes the open air and springtime sunlight, preferring to linger indoors where warmth and movement keep it alive. It follows travelers who cross thresholds, hoping to pool itself into new indoor spaces, growing more confident with every doorway it crosses. If kept off indoor property for too long, it dwindles, evaporating into a mere damp patch; but as soon as it senses indoor movement again, it coalesces anew, drawn to warmth and the sound of footsteps.

Monster Image

Indoor Puddle

Generation Info

Original prompt:
"A sentient puddle that tries to follow adventurers indoors."

Created: Feb 2, 2026
Modified: May 22, 2026

Token
📥 Download
๐Ÿ—‘๏ธ

Delete Token?

This action cannot be undone.

🔌

Chrome Extension Required

To export Indoor Puddle to D&D Beyond, you need the QuickMonster browser extension. It auto-fills the homebrew creator with stats, traits, actions, and images.

1
Install the Extension

Get QuickMonster to D&D Beyond Export from the Chrome Web Store.

2
Refresh This Page

After installing, refresh and click the export button again.

🔌 Get Chrome Extension
🔌

Extension Update Required

To export Indoor Puddle to Roll20, you need the QuickMonster browser extension version 1.0.3 or later.

1
Install or Update the Extension

Get the latest version from the Chrome Web Store.

2
Refresh This Page

After installing/updating, refresh and try again.