---
title: AFM_Visibility
product: Advanced Framework Pro
version: 1.0
engine: Unreal Engine 5.8
updated: 2026-10-05
canonical: https://docs.human-codeable.com/plugins/afm-visibility.html
---

Module

# AFM_Visibility

Shows and hides actors with sound and material transitions, including a switch component for fading between states.

#### What it gives you

- Show and hide with a visible transition
- Optional collision and tick handling
- Replicated deletion that plays the transition on every client

#### Requires

None

#### Required by

None

4 assets24 API members

## Description

Making an actor disappear with `SetActorHiddenInGame` is abrupt and leaves collision and ticking untouched. `BPC_Visibility` wraps the operation: it optionally disables collision and ticking, plays a sound, and offers a delete path that fades before destroying.

`BPC_Visibility_Switch` adds a material-based fade using a mesh copy, so the object dissolves rather than popping.

## Setup

1. Enable `AFM_Visibility`.
2. Add `BPC_Visibility` or `BPC_Visibility_Switch` to the actor.
3. Set **Include Collision** and **Include Actor Tick** to suit.

## Usage

### Hiding an object

Call `SetVisibility` or `ToggleVisiblity`.

### Deleting visibly

Call `Delete` rather than `DestroyActor`, so the transition plays first. `FL_Delete.DeleteActor` does this automatically for any actor, falling back to a plain destroy if the component is absent.

[![An object caught part-way through its fade](../images/AFM_Visibility_result-1600.webp?v=c469400c)](../images/AFM_Visibility_result-1600.webp?v=c469400c)

An object caught part-way through its fade

## Key properties

| Property | When to change |
|---|---|
| `Include Collision` | Turn off if the object must stay solid while invisible |
| `Include Actor Tick` | Turn off if the object must keep running logic while hidden |
| `Animation Duration` | Fade length on the switch variant |
| `Mesh Selection Tag` | Restrict the fade to tagged meshes |

## Extending

Derive from `BPC_Visibility` for custom transitions.

## Multiplayer notes

Multiplayer

`Multicast_Delete` plays the transition on every client before the actor is destroyed, so removals are seen rather than instantaneous.

## Example map

`Map_Examples_Visibility` demonstrates the transitions.

## Troubleshooting

**The object vanishes instantly.** `BPC_Visibility` was used where `BPC_Visibility_Switch` was intended — only the switch variant fades.

## API reference

Every blueprint asset in this plugin. Expand an asset to see its members.

### Components

**BPC_Visibility**13 members

extends `ActorComponent`

Show and hide component for an actor, replicated, which also follows the actor's collision and tick unless those are switched off. Delete fades the actor out and then destroys it, over the network where the actor replicates. Add it for a plain instant switch, or add the switch variant when the change should be animated.

| Kind | Name | Signature | Description |
|---|---|---|---|
| var | `Include Collision`Config | `bool` | Whether hiding the actor also disables its collision. Turn off if the object should stay solid while invisible. |
| var | `Include Actor Tick`Config | `bool` | Whether hiding the actor also stops it ticking. Turn off if the object must keep running logic while hidden. |
| var | `Sound Show`Sounds | `SoundBase` | Sound played when the actor becomes visible. |
| var | `Sound Hide`Sounds | `SoundBase` | Sound played when the actor is hidden. |
| fn | `getIsVisible`State | `(out Visible: bool)` | Returns whether the owner is currently visible. |
| event | `SetVisibility` | `(SetVisible: bool)` | Shows or hides the owning actor, applying the configured collision, tick and sound behaviour. |
| event | `ApplyDesiredState` | `()` | Re-applies the current visibility state to the actor, for use after spawning or after components change. |
| event | `Delete` | `()` | Hides the actor and then destroys it, so the removal is seen rather than instantaneous. |
| event | `OnTransitionFinished_Event` | `()` | Internal handler that completes the pending visibility change once its transition has played. |
| event | `Multicast_Delete` | `()` | Replicated deletion, so every client plays the hide transition before the actor disappears. |
| event | `Server_ServerDelete` | `()` | Asks the server to delete this actor for all players. |
| event | `StartDelete` | `()` | Begins the delete sequence, playing the hide transition before destruction. |
| event | `Toggle Visiblity` | `()` | Flips the actor between visible and hidden. |

**BPC_Visibility_Switch**9 members

extends `BPC_Visibility`

Animated form of the visibility component: rather than switching the actor off, it spawns a mesh copy of the owner and fades that in or out over Animation Duration, hiding the real meshes at the halfway point. Tag Selection and Mesh Selection Tag choose which meshes are copied. Add it in place of the plain visibility component wherever the change should be seen rather than just happen.

| Kind | Name | Signature | Description |
|---|---|---|---|
| var | `Animation Duration`Settings | `float` | Duration in seconds of the fade between visible and hidden. |
| var | `Material`Settings | `MaterialInterface` | Material used for the transition copy of the meshes while fading. |
| var | `Tag Selection`Selection | `E_Visiblity_MeshSelection` | Whether the transition applies to all meshes on the actor or only those carrying the selection tag. |
| var | `Mesh Selection Tag`Selection | `name` | Component tag identifying which meshes take part in the transition, when tag selection is enabled. |
| fn | `getIsVisible`State | `(out Visible: bool)` | Returns whether the owner is currently visible. |
| event | `OnTransitionFinished_Helper` | `()` | Internal handler fired when the mesh-copy fade completes. |
| event | `OnFadeUpdate_Event` | `(Progress: float)` | Internal handler that drives the fade material as the transition progresses. |
| event | `OnTriggerMeshVisibility_Event` | `()` | Internal handler that flips the real meshes at the midpoint of the fade. |
| event | `SetVisibility` | `(SetVisible: bool)` | Shows or hides the actor with a material fade rather than an instant switch. |

### Helper

**BP_Helper_MeshCopy_Visibility**1 members

extends `BP_Helper_MeshCopy`

Mesh copy used by the visibility switch, with a fade curve of its own that fires a trigger halfway through, which is the moment the real meshes are hidden or shown behind it. Spawned by the visibility switch; there is nothing here to configure.

| Kind | Name | Signature | Description |
|---|---|---|---|
| fn | `getVisibilityTimeline` | `(out ShowMaterial: TimelineComponent)` | Returns the timeline driving the show and hide transition. Override in a subclass to use a different transition curve. |

### Libraries

**FL_Delete**1 members

extends `BlueprintFunctionLibrary`

Function library with a single call, Delete Actor, which removes an actor politely: where it has a visibility component the removal goes through that, so the actor fades out and the deletion replicates, and where it has not the actor is destroyed outright. Call it in place of Destroy Actor.

| Kind | Name | Signature | Description |
|---|---|---|---|
| fn | `DeleteActor`Delete | `(Target: Actor, __WorldContext: Object)` | Deletes an actor through its visibility component if it has one, so the hide transition plays, and destroys it outright otherwise. |
