# 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); ``` ---