Wiki 9Minecraft Wiki 9Minecraft

Area Effect Clouds and Lingering Effects

Create stationary, temporary zones that apply effects, damage, or particles over time.

5Sections
2Code examples
3Known errors

An area effect cloud is an invisible, non-interactive entity that stays in one spot for a set duration, applying status effects or damage to anything inside its radius. In vanilla Minecraft, lingering potions and the Ender Dragon's breath attack rely on the built-in `minecraft:area_effect_cloud` entity. In your own add-ons, building a custom cloud entity from scratch gives you far more control over custom particles, filters, and repeating triggers than trying to override the vanilla cloud.

Vanilla vs. Custom Area Effect Clouds

Minecraft Bedrock includes the `minecraft:area_effect_cloud` entity out of the box, which handles lingering potions. However, its radius shrinking, potion color blending, and effect application are largely hardcoded in the game engine. You cannot easily spawn a vanilla area effect cloud via `/summon` and give it custom behavior through JSON without breaking normal lingering potions.

Because of this limitation, the standard practice for add-on creators is to build a bespoke dummy entity that mimics an area effect cloud. By combining a timer, a damage sensor, and a repeating behavior or animation, you can create poison gas traps, healing circles, radiation zones, or ground-targeted boss attacks without touching the vanilla potion system.

Making the Entity Non-Interactive

A proper effect cloud should not be pushable, attackable, or capable of blocking arrows and building placement. To achieve this, you strip away movement components, shrink or remove the collision box, and add a `minecraft:damage_sensor` that rejects all incoming damage.

You also need `minecraft:physics` configured so the cloud does not fall through the world if you want it to rest on the ground, or disable gravity entirely if you want it to float in mid-air where it was spawned. Adding the `minecraft:pushable` component with both flags set to false stops pistons and walking mobs from sliding the cloud out of position.

ComponentWhat it doesNotes
minecraft:collision_boxSets the physical footprint of the entity.Set width and height to 0.0 so players can place blocks and shoot arrows straight through the cloud.
minecraft:damage_sensorIntercepts incoming damage.Setting deals_damage to false makes the cloud completely invulnerable and stops hit markers.
minecraft:pushableControls piston and entity pushing.Set is_pushable and is_pushable_by_piston to false so the zone stays anchored.
minecraft:despawnHandles automatic cleanup.Avoid standard distance despawning if the cloud is part of a boss arena; use a timer to despawn it instead.

Applying Effects on a Loop

To apply status effects or damage to entities standing inside the cloud, the most reliable JSON-only approach is to combine `minecraft:area_attack` with a `minecraft:timer` that eventually cleans up the entity. `minecraft:area_attack` automatically damages anything within a specified range on a cooldown, and you can filter it so the boss or player who spawned the cloud is immune.

If you want to apply status effects like Poison, Wither, or Regeneration instead of raw damage, you pulse an event using `minecraft:timer` set to loop. Each time the timer fires, the triggered event runs `queue_command` to execute an `/effect` or `/damage` command targeting entities within a specific radius (`r=4`). When the cloud's lifetime is up, a second non-looping timer triggers `minecraft:instant_despawn` to remove the entity cleanly.

BP/entities/poison_cloud.json
{
  "format_version": "1.20.80",
  "minecraft:entity": {
    "description": {
      "identifier": "wiki:poison_cloud",
      "is_spawnable": false,
      "is_summonable": true,
      "is_experimental": false
    },
    "component_groups": {
      "wiki:despawn_cloud": {
        "minecraft:instant_despawn": {}
      }
    },
    "components": {
      "minecraft:type_family": {
        "family": [ "inanimate", "cloud" ]
      },
      "minecraft:collision_box": {
        "width": 0.0,
        "height": 0.0
      },
      "minecraft:physics": {
        "has_gravity": false,
        "has_collision": false
      },
      "minecraft:pushable": {
        "is_pushable": false,
        "is_pushable_by_piston": false
      },
      "minecraft:damage_sensor": {
        "triggers": [
          {
            "cause": "all",
            "deals_damage": false
          }
        ]
      },
      "minecraft:area_attack": {
        "damage_range": 3.5,
        "damage_per_tick": 2,
        "damage_cooldown": 1.0,
        "cause": "magic",
        "entity_filter": {
          "all_of": [
            {
              "test": "is_family",
              "subject": "other",
              " operator": "not",
              "value": "monster"
            },
            {
              "test": "is_family",
              "subject": "other",
              "operator": "not",
              "value": "inanimate"
            }
          ]
        }
      },
      "minecraft:timer": {
        "looping": false,
        "time": 10.0,
        "time_down_event": {
          "event": "wiki:expire"
        }
      }
    },
    "events": {
      "wiki:expire": {
        "add": {
          "component_groups": [ "wiki:despawn_cloud" ]
        }
      }
    }
  }
}

Visualizing the Cloud with Resource Packs

Because a custom cloud entity has no physical body, you usually give it an empty or single-bone geometry and a completely transparent texture (or omit the render controller entirely so no mesh is drawn). The visual presence of the cloud comes entirely from a custom particle emitter attached to the entity's client definition.

In your resource pack entity file, link a particle effect and trigger it continuously using a client animation. A disc-shaped particle emitter works best for ground hazards. By driving the particle emission from a client animation set to loop in `scripts/animate`, the particles will play automatically for as long as the cloud entity exists in the world, and stop the moment `minecraft:instant_despawn` removes it.

RP/entity/poison_cloud.entity.json
{
  "format_version": "1.10.0",
  "minecraft:client_entity": {
    "description": {
      "identifier": "wiki:poison_cloud",
      "particle_effects": {
        "cloud_fumes": "wiki:poison_fumes_particle"
      },
      "animations": {
        "emit_particles": "animation.wiki.poison_cloud.emit"
      },
      "scripts": {
        "animate": [
          "emit_particles"
        ]
      }
    }
  }
}

Spawning the Cloud from a Projectile or Mob

Area effect clouds are rarely placed by hand; they are almost always spawned when a thrown potion, magic projectile, or boss attack hits the ground. On a custom projectile entity, you can use the `minecraft:projectile` component's `on_hit` trigger with the `spawn_chance` parameter to summon your `wiki:poison_cloud` right at the impact coordinates.

Alternatively, if a boss mob is creating a hazard zone around itself, you can use `minecraft:spawn_entity` inside a component group that only activates during the boss's special attack state, or run `/summon wiki:poison_cloud ~~~` via an animation controller or event response.

Which versions this applies to

Applies to Bedrock Edition 1.16.0 and newer (example uses 1.20.80 format). No experimental toggles are required.

When it does not work

What you seeWhyThe fix
Players get stuck on an invisible wall or arrows bounce off thin air inside the cloud.The entity's `minecraft:collision_box` was left at default dimensions, or `has_collision` in `minecraft:physics` is still set to true.Set both `width` and `height` in `minecraft:collision_box` to `0.0` and set `has_collision` to `false` inside `minecraft:physics`.
The cloud damages itself or other clouds nearby, causing lag and hit sounds.The `minecraft:area_attack` filter does not exclude inanimate or cloud entities, so overlapping clouds attack each other every cooldown tick.Add `inanimate` or a custom `cloud` family to `minecraft:type_family`, and exclude that family in the `entity_filter` of `minecraft:area_attack`.
Content Log shows: [Entities][error]wiki:poison_cloud | minecraft:timer: cannot have two components of the same type.You tried to put both a 1-second repeating pulse timer and a 10-second despawn timer in the base `components` list.A single entity cannot hold two `minecraft:timer` components at the same time. Use `minecraft:area_attack` or a behaviour animation timeline for the repeating pulse, and save `minecraft:timer` for the final expiration.

Reference, straight from the game files

Read out of the game itself, so the ids match the version you are building for.