# IFlareManager
> Manages flare effects for players running the Lectern client mod. Controls world-space flare projectiles with configurable color, physics, and lifetime.
`gg.lode.lecternapi.api.manager.IFlareManager`
---
## Signature
```java
public interface IFlareManager
```
---
## Notes
Flares come in two modes:
- **Illuminating** (`trackable=false`): Falls with gravity and drag,
sticks to blocks on contact. Good for lighting up caves or marking ground positions.
- **Signal** (`trackable=true`): Drifts with near-zero gravity and minimal drag,
visible from extreme distances. Good for sky markers and long-range signals.
---
## Methods
### addFlare
```java
void addFlare(Player player, String id, float x, float y, float z, float velocityX, float velocityY, float velocityZ, int red, int green, int blue, float size, float fadeIn, float duration, float fadeOut, boolean trackable)
void addFlare(Player player, String id, float x, float y, float z, int red, int green, int blue, float size, float fadeIn, float duration, float fadeOut, boolean trackable)
```
Spawns a flare at the given position with initial velocity.
Spawns a stationary flare at the given position with no initial velocity.
---
### removeFlare
```java
void removeFlare(Player player, String id)
```
Removes a flare by its identifier, triggering a smooth fade-out.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | the target player |
| `id` | `String` | the flare identifier to remove |
---
### clearFlares
```java
void clearFlares(Player player)
```
Clears all active flares on the target player's client.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | the target player |
---
## Example
Throw a flare that arcs and fades, for one player:
```java
IFlareManager flares = LecternAPI.getApi().getFlareManager();
Location from = player.getEyeLocation();
Vector push = from.getDirection().multiply(1.2);
flares.addFlare(player, "signal",
(float) from.getX(), (float) from.getY(), (float) from.getZ(),
(float) push.getX(), (float) push.getY(), (float) push.getZ(),
255, 80, 40, // colour
1.5f, // size
0.2f, 6f, 1f, // fade in, hold, fade out, in seconds
true); // trackable, so the client can point at it
```
The shorter overload drops the velocity and leaves the flare where you put it. Clear by id, or all
at once:
```java
flares.removeFlare(player, "signal");
flares.clearFlares(player);
```
---