# IEffekManager
> Plays Effekseer particle effects on a player's client.
`gg.lode.lecternapi.api.manager.IEffekManager`
---
## Signature
```java
public interface IEffekManager
```
---
## Notes
Effekseer effects are authored VFX files (`.efkefc`) shipped inside the Lectern
client mod or a resource pack, loaded by the client under an id such as
`lodestone:explosion`. They are a different animal from `IParticleManager`'s
vanilla-style particles: a single play can be an entire choreographed effect (beams,
shockwaves, ribbons) with a lifetime of its own.
A play can optionally carry an **emitter name**, which turns it into an addressable
slot: the same name can later be moved, retuned via dynamic inputs, triggered, or stopped.
Playing again under the same name replaces the previous emitter. An empty name is
fire-and-forget.
Effects the client does not have are silently ignored, a missing visual stays cosmetic.
All rotations are radians; scale of 1 is the authored size.
---
## Methods
### playEffek
```java
void playEffek(Player player, String effekId, String emitterName, double x, double y, double z, float rotX, float rotY, float rotZ, float scaleX, float scaleY, float scaleZ)
void playEffek(Player player, String effekId, Location location)
void playEffek(Player player, String effekId, Location location, float scale)
void playEffek(Player player, String effekId, String emitterName, Location location, float scale)
```
Plays an effect at a position.
Fire-and-forget play at a location, unrotated, at authored size.
Fire-and-forget play at a location with a uniform scale.
Named play at a location, the emitter stays addressable under `emitterName`.
---
### moveEffek
```java
void moveEffek(Player player, String effekId, String emitterName, double x, double y, double z)
void moveEffek(Player player, String effekId, String emitterName, Location location)
```
Moves a named emitter to a new position. Unknown names are ignored.
Convenience overload of `String, String, double, double, double)`.
---
### setEffekParam
```java
void setEffekParam(Player player, String effekId, String emitterName, int slot, float value)
```
Sets a dynamic input on a named emitter, the four float knobs (slots 0-3) an
Effekseer effect exposes to its host, with effect-defined meaning.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | |
| `effekId` | `String` | |
| `emitterName` | `String` | |
| `slot` | `int` | dynamic input slot, 0-3 |
| `value` | `float` | the new value |
---
### triggerEffek
```java
void triggerEffek(Player player, String effekId, String emitterName, int slot)
```
Fires a trigger (slots 0-3) on a named emitter, effect-defined one-shot signals,
e.g. "detonate now".
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | |
| `effekId` | `String` | |
| `emitterName` | `String` | |
| `slot` | `int` | trigger slot, 0-3 |
---
### stopEffek
```java
void stopEffek(Player player, String effekId, String emitterName)
```
Stops a named emitter of an effect. With an empty name, stops every emitter of that
effect on the player's client.
| Parameter | Type |
|---|---|
| `player` | `Player` |
| `effekId` | `String` |
| `emitterName` | `String` |
---
### clearEffeks
```java
void clearEffeks(Player player)
```
Stops every emitter of every effect on the player's client.
| Parameter | Type |
|---|---|
| `player` | `Player` |
---
## Example
Play an Effekseer effect at a position on one player's client:
```java
IEffekManager effeks = LecternAPI.getApi().getEffekManager();
effeks.playEffek(player, "lectern:light_bomb", target.getLocation(), 1.5f);
```
A named emitter is how you address the same effect later, to move it, drive a parameter or stop it:
```java
effeks.playEffek(player, "lectern:light_bomb", "beacon", target.getLocation(), 1f);
effeks.moveEffek(player, "lectern:light_bomb", "beacon", target.getLocation().add(0, 2, 0));
effeks.setEffekParam(player, "lectern:light_bomb", "beacon", 0, 0.75f);
effeks.stopEffek(player, "lectern:light_bomb", "beacon");
```
---
## Related Pages
- [[IParticleManager]]. Lectern's own particles, for smaller things