# IImpactFrameManager
> Single-fire anime-style impact-frame VFX.
`gg.lode.lecternapi.api.manager.IImpactFrameManager`
---
## Signature
```java
public interface IImpactFrameManager
```
---
## Notes
When triggered, the receiver's client freezes the current frame for ~200 ms and
flattens the world to high-contrast black-and-white with procedural manga
"concentration lines" (speed lines) bursting outward. Roles:
- **Receiver** (the player whose client plays the effect.
- **Target**) the focal subject. Its exact silhouette is outlined and
filled as a luma matte so it pops against the flat backdrop; the streaks
clear a focal "eye" around it.
- **Source**, where the streaks burst from. If `null`, or equal to
the receiver, the burst originates from the receiver's own camera (the
receiver is the cause). Off-screen / behind-camera sources are clamped to
the screen edge so the burst always comes from the correct direction.
- **Strength**, how impactful the hit was; scales streak density, width
and reach (typically `0.0`(`1.0`, may exceed 1).
- **Invert**) `false` = light background (black ink), `true`
= black background (white ink).
Visual only, no entity damage, no world state.
---
## Methods
### triggerImpactFrame
```java
void triggerImpactFrame(Player player)
void triggerImpactFrame(Player receiver, Entity target)
void triggerImpactFrame(Player receiver, @Nullable Entity target, @Nullable Entity source, float strength, boolean invert)
```
Fires a one-shot impact frame on the player's client with no focal target
(camera-centred burst, default strength). Fire-and-forget.
Fires an impact frame on `receiver` focused on `target`, with the
burst originating from the receiver's camera and default strength.
Fires a fully-specified impact frame on `receiver`.
---
### triggerImpactFrameNearby
```java
void triggerImpactFrameNearby(Entity target, @Nullable Entity source, double radius, float strength, boolean invert)
```
Fires an impact frame for every player within `radius` blocks of
`target` (in the target's world). Each such player is a receiver and
experiences the burst from `source`'s direction relative to their own
view; if `source` is that receiver, they are treated as the cause.
| Parameter | Type | Description |
|---|---|---|
| `target` | `Entity` | the focal subject entity (required) |
| `source` | `Entity` | the entity the streaks burst from, or `null` |
| `radius` | `double` | block radius around the target to notify |
| `strength` | `float` | impact magnitude (typically 0.0, 1.0) |
| `invert` | `boolean` | `true` for the black-background variant |
---
## Example
One hit, one frame:
```java
IImpactFrameManager frames = LecternAPI.getApi().getImpactFrameManager();
frames.triggerImpactFrame(attacker, victim);
```
The long form gives you the source, the strength and an inverted flavour, and the nearby form fires
it for everyone in range so a crowd sees the same hit:
```java
frames.triggerImpactFrame(attacker, victim, attacker, 1.4f, false);
frames.triggerImpactFrameNearby(victim, attacker, 24, 1f, false);
```
---
## Related Pages
- [[IExplosionManager]]. The explosion VFX