In Unreal, an Actor’s scripts can “run” from a few different places (Tick, Timers, latent actions, component ticks, BeginPlay logic, plugin threads, etc.). For an NDI Broadcast actor, you usually want to stop ticking + component ticking and/or call whatever Stop Broadcasting function the plugin provides.
Here are the practical options, from “quick and dirty” to “most correct”:
This stops the actor’s Event Tick and any tick-driven Blueprint logic.
Blueprint:
- On the actor reference: Set Actor Tick Enabled (false)
C++:
SetActorTickEnabled(false);
Also consider:
- In the actor’s details (or class defaults): uncheck Start with Tick Enabled.
Many actors do their work in components (SceneCapture, custom NDI component, etc.), which can keep ticking even if the actor tick is off.
Blueprint:
- Get Components by Class (or Get Components) → for each:
- Set Component Tick Enabled (false)
- If it’s a scene capture or similar, also disable whatever “capture every frame” style flags exist.
C++ (generic):
TArray<UActorComponent*> Comps;
for (UActorComponent* C : Comps)
C->SetComponentTickEnabled(false);
This doesn’t stop scripts by itself, but helps reduce side effects.
- Set Actor Hidden In Game (true)
- Set Actor Enable Collision (false)
NDI plugins commonly keep sending on their own schedule (or via their own internal thread / capture hooks). In that case, disabling tick may not stop the stream.
Look on the NDI Broadcast actor (or its NDI component) for functions like:
- Stop Broadcasting
- Deactivate
- Enabled / Active boolean
- Set Broadcasting Enabled(false)
If it has an NDI component:
- Deactivate the component (Blueprint node: Deactivate), and/or set Auto Activate to false.
If you truly want nothing to run:
- Destroy Actor (Blueprint: Destroy Actor)
- This is the most reliable “off switch,” but you’ll need to respawn it later if you want it again.
Or, more advanced:
- Unregister component(s) (C++) — heavy-handed, but it removes them from ticking/updates.
If you control the Blueprint:
- Add a bool like bNDIEnabled
- At the top of Tick/BeginPlay logic, branch and do nothing if disabled.
- Also clear timers (below).
If your actor uses Set Timer by Function Name/Event, those can keep firing even with Tick disabled.
Blueprint:
- Clear and Invalidate Timer by Handle (or Clear Timer)
- K2_ClearTimer equivalents
C++:
GetWorldTimerManager().ClearAllTimersForObject(this);
- Call the plugin’s Stop/Disable Broadcast on the NDI actor/component (if available).
- Set Actor Tick Enabled(false)
- Disable tick on the NDI component (and any capture component) via Set Component Tick Enabled(false) and Deactivate.
- Clear timers if it uses them.
If you tell me which NDI plugin you’re using (e.g., NewTek NDI IO, Off World Live, NDI for Unreal from a specific author) and whether your NDI is a component or a standalone actor, I can point you to the exact node/property name it exposes (they differ a lot).