# @tsparticles/plugin-emitters

> tsParticles emitters plugin

Latest version **4.4.0** (published 2026-08-31) · MIT license · 0 weekly downloads

## Install

```sh
npm install @tsparticles/plugin-emitters
pnpm add @tsparticles/plugin-emitters
yarn add @tsparticles/plugin-emitters
bun add @tsparticles/plugin-emitters
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 4.4.0 |
| Published | 2026-08-31 |
| First published | 2023-01-20 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 358.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 8980 |
| Author | Matteo Bruni |
| Maintainers | matteobruni |
| Keywords | front-end, frontend, tsparticles, particles.js, particlesjs, particles, particle, canvas, jsparticles, xparticles, particles-js, particles-bg, particles-bg-vue, particles-ts, particles.ts, react-particles-js, react-particles.js, react-particles, react, reactjs, vue-particles, ngx-particles, angular-particles, particleground, vue, vuejs, preact, preactjs, jquery, angularjs, angular, typescript, javascript, animation, web, html5, web-design, webdesign, css, html, css3, animated, background, confetti, canvas, fireworks, fireworks-js, confetti-js, confettijs, fireworksjs, canvas-confetti, tsparticles-plugin |

## Links

- npm: https://www.npmjs.com/package/@tsparticles/plugin-emitters
- Repository: https://github.com/tsparticles/tsparticles
- Homepage: https://particles.js.org
- Issues: https://github.com/tsparticles/tsparticles/issues
- npm.io page: https://npm.io/package/@tsparticles/plugin-emitters

## Alternatives

- [@luma.gl/experimental](https://npm.io/package/@luma.gl/experimental.md) — 77.1K weekly downloads
- [persona-harness](https://npm.io/package/persona-harness.md) — 4.7K weekly downloads
- [@tsparticles/effect-bubble](https://npm.io/package/@tsparticles/effect-bubble.md) — 4.6K weekly downloads
- [f3d](https://npm.io/package/f3d.md) — 730 weekly downloads
- [spark-html-motion](https://npm.io/package/spark-html-motion.md) — 298 weekly downloads

## Recent versions

- 4.4.0 (latest) — 2026-08-31
- 4.0.0-beta.17 (beta) — 2026-05-15
- 4.0.0-alpha.28 (alpha) — 2026-03-15
- 3.0.2 (next) — 2023-12-06
- 4.3.2 — 2026-07-10
- 4.3.1 — 2026-07-01
- 4.3.0 — 2026-06-27
- 4.2.1 — 2026-06-19
- 4.2.0 — 2026-06-17
- 4.1.3 — 2026-06-03
- 4.1.2 — 2026-06-01
- 4.1.1 — 2026-05-31
- 4.1.0 — 2026-05-29
- 4.0.5 — 2026-05-19
- 4.0.4 — 2026-05-19
- … 65 more at https://npm.io/package/@tsparticles/plugin-emitters/versions

## README

[![banner](https://particles.js.org/images/banner2.png)](https://particles.js.org)

# tsParticles Emitters Plugin

[![jsDelivr](https://data.jsdelivr.com/v1/package/npm/@tsparticles/plugin-emitters/badge)](https://www.jsdelivr.com/package/npm/@tsparticles/plugin-emitters)
[![npmjs](https://badge.fury.io/js/@tsparticles/plugin-emitters.svg)](https://www.npmjs.com/package/@tsparticles/plugin-emitters)
[![npmjs](https://img.shields.io/npm/dt/@tsparticles/plugin-emitters)](https://www.npmjs.com/package/@tsparticles/plugin-emitters) [![GitHub Sponsors](https://img.shields.io/github/sponsors/matteobruni)](https://github.com/sponsors/matteobruni)

[tsParticles](https://github.com/tsparticles/tsparticles) plugin for particles emitters.

## Quick checklist

1. Install `@tsparticles/engine` (or use the CDN bundle below)
2. Call the package loader function(s) before `tsParticles.load(...)`
3. Apply the package options in your `tsParticles.load(...)` config

## How to use it

### CDN / Vanilla JS / jQuery

The CDN/Vanilla version JS has one required file in vanilla configuration:

Including the `tsparticles.plugin.emitters.min.js` file will export the function to load the plugin:

```javascript
loadEmittersPlugin;
```

### Usage

Once the scripts are loaded you can set up `tsParticles` and the plugin like this:

```javascript
(async () => {
  await loadInteractivityPlugin(tsParticles);
  await loadEmittersPlugin(tsParticles);

  await tsParticles.load({
    id: "tsparticles",
    options: {/* options */},
  });
})();
```

### ESM / CommonJS

This package is compatible also with ES or CommonJS modules, firstly this needs to be installed, like this:

```shell
$ npm install @tsparticles/plugin-emitters
```

or

```shell
$ yarn add @tsparticles/plugin-emitters
```

Then you need to import it in the app, like this:

```javascript
const { tsParticles } = require("@tsparticles/engine");
const { loadInteractivityPlugin } = require("@tsparticles/plugin-interactivity");
const { loadEmittersPlugin } = require("@tsparticles/plugin-emitters");

(async () => {
  await loadInteractivityPlugin(tsParticles);
  await loadEmittersPlugin(tsParticles);
})();
```

or

```javascript
import { tsParticles } from "@tsparticles/engine";
import { loadInteractivityPlugin } from "@tsparticles/plugin-interactivity";
import { loadEmittersPlugin } from "@tsparticles/plugin-emitters";

(async () => {
  await loadInteractivityPlugin(tsParticles);
  await loadEmittersPlugin(tsParticles);
})();
```

### Granular loading

Instead of the full `loadEmittersPlugin`, you can import only the parts you need to reduce bundle size:

- **Plugin only** (emitter lifecycle and drawing):
  ```ts
  import { loadEmittersPluginSimple } from "@tsparticles/plugin-emitters/plugin";
  ```
- **Interaction only** (click/hover on emitters):
  ```ts
  import { loadEmittersInteraction } from "@tsparticles/plugin-emitters/interaction";
  ```

Lazy-loaded variants are also available by appending `/lazy` to the import path:

```ts
import { loadEmittersPluginSimple } from "@tsparticles/plugin-emitters/plugin/lazy";
import { loadEmittersInteraction } from "@tsparticles/plugin-emitters/interaction/lazy";
```

## Option mapping

- Primary options key: `emitters`

```json
{
  "emitters": {}
}
```

## Common pitfalls

- Calling `tsParticles.load(...)` before `loadInteractivityPlugin(...)`
- Verify required peer packages before enabling advanced options
- Change one option group at a time to isolate regressions quickly

## Related docs

- All packages catalog: <https://github.com/tsparticles/tsparticles>
- Main docs: <https://particles.js.org/docs/>

---
_Source: https://npm.io/package/@tsparticles/plugin-emitters · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
