# IAuraManager > Manages aura effects for players running the Lectern client mod. Provides three aura types: `gg.lode.lecternapi.api.manager.IAuraManager` --- ## Signature ```java public interface IAuraManager ``` --- ## Notes **Chronite Aura:** A totem-style particle burst with orbiting rings and converging spark particles. Configurable color. Plays on a target entity for ~2 seconds. **Shockwave Aura:** An expanding shockwave ring at a world position with configurable color and radius. The ring expands quickly then decelerates while fading out. **Locational Aura:** A fixed-radius circle rendered flat on the ground at a world position. Configurable color, radius, and lifespan. Fades in and out smoothly. --- ## Methods ### playChroniteAura ```java void playChroniteAura(Player viewer, UUID target, int red, int green, int blue) ``` Plays the chronite aura effect on a target entity as seen by the viewer. The effect renders orbiting rings around the target with converging spark particles, lasting approximately 2 seconds. | Parameter | Type | Description | |---|---|---| | `viewer` | `Player` | the player whose client will render the effect | | `target` | `UUID` | the UUID of the entity to play the aura on | | `red` | `int` | red color component (0-255) | | `green` | `int` | green color component (0-255) | | `blue` | `int` | blue color component (0-255) | --- ### stopChroniteAura ```java void stopChroniteAura(Player viewer, UUID target) ``` Stops the chronite aura on a target entity. | Parameter | Type | Description | |---|---|---| | `viewer` | `Player` | the player whose client will stop rendering the effect | | `target` | `UUID` | the UUID of the entity | --- ### clearChroniteAuras ```java void clearChroniteAuras(Player viewer) ``` Clears all chronite aura effects on the viewer's client. | Parameter | Type | Description | |---|---|---| | `viewer` | `Player` | the player whose effects should be cleared | --- ### playChroniteSwirl ```java void playChroniteSwirl(Player player, String id, float x1, float y1, float z1, float x2, float y2, float z2, int red, int green, int blue, float durationSeconds, float radius, float thickness, float coilLength) ``` Plays a chronite swirl: two line strands spiral (double helix) along the axis from an initial world position to a target world position, extending toward the target over the given duration, then fading out. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | the player whose client will render the effect | | `id` | `String` | a unique identifier for this swirl (used to stop it) | | `x1` | `float` | initial x coordinate | | `y1` | `float` | initial y coordinate | | `z1` | `float` | initial z coordinate | | `x2` | `float` | target x coordinate | | `y2` | `float` | target y coordinate | | `z2` | `float` | target z coordinate | | `red` | `int` | red color component (0-255) | | `green` | `int` | green color component (0-255) | | `blue` | `int` | blue color component (0-255) | | `durationSeconds` | `float` | time for the swirl to travel from the initial to the target position | | `radius` | `float` | radius of the helix around the travel axis, in blocks | | `thickness` | `float` | width of each strand ribbon, in blocks | | `coilLength` | `float` | length of the coil in blocks; 0 (or larger than the path) fills the whole travelled path, a smaller value trails a fixed-length coil behind the tip | --- ### stopChroniteSwirl ```java void stopChroniteSwirl(Player player, String id) ``` Stops a chronite swirl by its identifier. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | the target player | | `id` | `String` | the swirl identifier | --- ### clearChroniteSwirls ```java void clearChroniteSwirls(Player player) ``` Clears all chronite swirl effects on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | the target player | --- ### playShockwaveAura ```java void playShockwaveAura(Player player, String id, float x, float y, float z, int red, int green, int blue, float radius, float speed, boolean reversed) ``` Plays an expanding shockwave ring effect at the specified world position. The ring expands outward with deceleration and fades out. Supports arbitrarily large radii, only the visible arc near the player is rendered. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | the target player | | `id` | `String` | a unique identifier for this shockwave | | `x` | `float` | the world x coordinate (center of the shockwave) | | `y` | `float` | the world y coordinate (ground level) | | `z` | `float` | the world z coordinate (center of the shockwave) | | `red` | `int` | red color component (0-255) | | `green` | `int` | green color component (0-255) | | `blue` | `int` | blue color component (0-255) | | `radius` | `float` | the maximum expansion radius in blocks | | `speed` | `float` | speed multiplier (1.0 = default, 2.0 = twice as fast, 0.5 = half speed) | | `reversed` | `boolean` | if true, the ring starts at full radius and contracts inward to the origin | --- ### stopShockwaveAura ```java void stopShockwaveAura(Player player, String id) ``` Stops a shockwave aura by its identifier. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | the target player | | `id` | `String` | the shockwave identifier | --- ### clearShockwaveAuras ```java void clearShockwaveAuras(Player player) ``` Clears all shockwave aura effects on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | the target player | --- ### addLocationalAura ```java void addLocationalAura(Player player, String id, float x, float y, float z, int red, int green, int blue, float radius, float thickness) ``` Adds a fixed-radius ring aura at the specified world position. The ring is rendered flat on the ground with a smooth fade-in. It persists until explicitly removed via `removeLocationalAura`. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | the target player | | `id` | `String` | a unique identifier for this aura (used to remove it later) | | `x` | `float` | the world x coordinate (center) | | `y` | `float` | the world y coordinate (ground level) | | `z` | `float` | the world z coordinate (center) | | `red` | `int` | red color component (0-255) | | `green` | `int` | green color component (0-255) | | `blue` | `int` | blue color component (0-255) | | `radius` | `float` | the ring radius in blocks | | `thickness` | `float` | the ring line thickness (0.01 = thin hairline, 0.5 = very thick, default ~0.05) | --- ### removeLocationalAura ```java void removeLocationalAura(Player player, String id) ``` Removes a locational aura by its identifier. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | the target player | | `id` | `String` | the aura identifier | --- ### clearLocationalAuras ```java void clearLocationalAuras(Player player) ``` Clears all locational aura effects on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | the target player | --- ### playScanPulse ```java void playScanPulse(Player player, String id, float x, float y, float z, float reach, float duration, int red, int green, int blue, float bandWidth, float trailingFade, float residual, float trailWidth, float echoStrength) ``` Plays a scan pulse: a fullscreen post-effect scanning wave that expands from a world position and tints pixels within the expanding wavefront. Renders a screen-space effect with depth reconstruction, enabling arbitrarily large reach with constant GPU cost. The wavefront expands linearly: radius = reach × (elapsed / duration). The wave band has a configurable thickness and trailing fade effect for visual continuity. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | the target player | | `id` | `String` | a unique identifier for this pulse (used to stop it) | | `x` | `float` | the world x coordinate (anchor point) | | `y` | `float` | the world y coordinate (anchor point) | | `z` | `float` | the world z coordinate (anchor point) | | `reach` | `float` | how far the wavefront travels in blocks before stopping (0.1 minimum) | | `duration` | `float` | how long the entire pulse lasts in seconds (0.1 minimum) | | `red` | `int` | red tint color component (0-255) | | `green` | `int` | green tint color component (0-255) | | `blue` | `int` | blue tint color component (0-255) | | `bandWidth` | `float` | thickness of the wavefront band in blocks (default: 2.0, 0.1 minimum) | | `trailingFade` | `float` | how aggressively the trailing edge fades (0.0=uniform, 1.0=sharp falloff, default: 0.5) | | `residual` | `float` | share of the tint kept on everything the front has already crossed (0.0=nothing left behind, 1.0=scanned volume as bright as the front) | | `trailWidth` | `float` | how far back from the front the residual tint reaches, in blocks, so the tinted region is a ring chasing the front rather than a filled disc (0.0 = unbounded, the whole swept volume stays tinted) | | `echoStrength` | `float` | brightness of the quieter second ring riding the trail's inner edge (0.0=none, 1.0=as bright as the front; ignored when trailWidth is 0) | --- ### stopScanPulse ```java void stopScanPulse(Player player, String id) ``` Stops a scan pulse by its identifier. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | the target player | | `id` | `String` | the pulse identifier | --- ### clearScanPulses ```java void clearScanPulses(Player player) ``` Clears all scan pulse effects on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | the target player | --- ## Example A totem-style burst on a target, seen only by one viewer: ```java IAuraManager auras = LecternAPI.getApi().getAuraManager(); auras.playChroniteAura(viewer, target.getUniqueId(), 255, 170, 0); ``` A shockwave is a ring at a world position, and a locational aura is a circle that stays until you remove it. Both take an id so you can address them later: ```java auras.playShockwaveAura(player, "impact", 100f, 64f, 200f, 255, 60, 60, 6f, 1.5f, false); auras.addLocationalAura(player, "safe_zone", 100f, 64f, 200f, 80, 255, 120, 8f, 0.4f); auras.removeLocationalAura(player, "safe_zone"); ``` --- ## Related Pages - [[IExplosionManager]]. A layered explosion, if that is what you are after