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

Module

# AFM_Teleport

Pawn-side teleport execution with fade, motion and tracking-level options, in separate Pawn and Character variants.

#### What it gives you

- Teleport execution independent of targeting
- Fade or dash comfort options
- Correct arrival height per pawn type
- Carried objects travel with the player

#### Requires

None

#### Required by

None

3 assets16 API members

## Description

This plugin performs the teleport; `AFS_UX_Teleporter` decides where. Keeping them separate means you can replace either.

The execution is staged so the comfort options compose: fade out, relocate, fade in, with optional motion instead of a cut. **Tracking Level** corrects arrival height so the player lands standing on the surface rather than with their head at floor level — and this is where the Pawn and Character variants differ, since only the Character variant has a capsule to offset against.

`RelocateActorAndFollowingActors` moves everything the player is carrying with them, so held objects arrive too.

## Setup

1. Enable `AFM_Teleport`. Its `Engine.ini` enables Mobile HDR.
2. Add `BPC_PawnAbility_Teleport_Character` to a Character pawn, or `_Pawn` to a plain Pawn.
3. Add `BPC_PlayerController_CameraFade` to the player controller for the fade option.

## Usage

### Teleporting

Call the **Teleport** event with a location, rotation or destination component. Set **Use Fade** and **Use Motion** for comfort, and **Eye Level** for arrival height.

### Turning in place

Call **Teleport Turn** with a degree amount — this reuses the same comfort pipeline as teleporting.

![The camera fade at its midpoint during a teleport](../images/AFM_Teleport_result.png)

The camera fade at its midpoint during a teleport

## Key properties

| Property | When to change |
|---|---|
| `Use Fade` | Comfort; fade is the safest default |
| `Use Motion` | Dash instead of cut — less comfortable for some users |
| `Eye Level` | Ground level or eye level arrival |
| `Duration` | Length of the transition |

## Extending

Derive from `BPC_PawnAbility_Teleport` and override `LocationCorrection` and the phase events for a custom movement pawn.

## Example map

`Map_Examples_Teleport` compares the execution options directly.

## Troubleshooting

**The player arrives at floor height.** The Pawn variant is being used where the Character variant is needed, or **Eye Level** is set incorrectly.

## API reference

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

### Components

**BPC_PawnAbility_Teleport**13 members

extends `BPC_PawnAbility`

Pawn ability that performs the teleport itself: the fade, the optional motion towards the destination, the move and the sound, run as timed phases so the pawn arrives at the darkest point of the fade. Actors registered against the pawn are carried along with it. Add one of its two subclasses rather than the base, and call Teleport from an interaction instead of moving the pawn by hand.

| Kind | Name | Signature | Description |
|---|---|---|---|
| fn | `RelocateActorAndFollowingActors` | `(DestLocation: Vector, DestRotation: Rotator, ControlRotation: Rotator)` | Moves the pawn and everything it is carrying to the destination in one step, so held objects arrive with the player. |
| fn | `getDesiredLocationAndRotation` | `(out Location: Vector, out Rotation: Rotator)` | Returns the destination currently resolved for the pending teleport. |
| fn | `LocationCorrection` | `(Original Location: Vector, RelativeTrackingLevel: E_Teleport_TrackingLevel, out NewLocation: Vector)` | Adjusts the destination for the requested tracking level, so the player arrives standing on the ground rather than with their head at floor height. Overridden per pawn type. |
| fn | `ChooseDestination`Default | `(DestinationComponent: SceneComponent, DestinationVector: Vector, DestinationRotator: Rotator, out ChosenVector: Vector, out ChosenRotator: Rotator)` | Resolves the final destination from the supplied component, location and rotation, preferring the component when one is given. |
| event | `Teleport` | `(DestLocation: Vector, DestRotation: Rotator, DestSceneComp: SceneComponent, AttachToSceneComponent: bool, Duration: float, UseFade: E_Teleport_Fade, UseMotion: E_Teleport_Motion, EyeLevel: E_Teleport_TrackingLevel, Sound: SoundBase, Force: bool)` | Teleports the pawn to a location, rotation or scene component, with configurable fade, motion, tracking level, duration and sound. Set Force to teleport even while another teleport is running. |
| event | `Teleport_Phase_0` | `(DestLocation: Vector, DestRotation: Rotator, Dest Scene Comp: SceneComponent, AttachToSceneComponent: bool, Duration: float, UseFade: E_Teleport_Fade, UseMotion: E_Teleport_Motion, EyeLevel: E_Teleport_TrackingLevel, Sound: SoundBase)` | Internal stage of the teleport sequence: validates the request and begins the fade or motion. |
| event | `StopTeleport` | `()` | Cancels a teleport in progress and restores normal control. |
| event | `TeleportTurn` | `(Degree: float, Duration: float, UseFade: E_Teleport_Fade, Sound: SoundBase)` | Rotates the player in place by the given number of degrees, using the same fade and comfort options as a teleport. |
| event | `Teleport_Phase_3` | `()` | Internal stage of the teleport sequence: plays the incoming transition. |
| event | `Teleport_Phase_4` | `()` | Internal stage of the teleport sequence: restores control and clears the pending teleport. |
| event | `Teleport_Phase_2` | `()` | Internal stage of the teleport sequence: performs the actual relocation. Overridden per pawn type. |
| event | `Teleport_Phase_02_Finished` | `()` | Internal stage of the teleport sequence: signals that relocation has completed. |
| event | `Teleport_Phase_1` | `()` | Internal stage of the teleport sequence: waits for the outgoing transition to finish. |

**BPC_PawnAbility_Teleport_Character**2 members

extends `BPC_PawnAbility_Teleport`

Teleport ability for a pawn built on Character. Corrects the landing point by the capsule half height or by the camera height, depending on the tracking level asked for, and switches character movement and capsule collision off while the pawn is attached to a destination component so a moving platform can carry it. All three shipped pawns use this variant.

| Kind | Name | Signature | Description |
|---|---|---|---|
| fn | `LocationCorrection` | `(Original Location: Vector, RelativeTrackingLevel: E_Teleport_TrackingLevel, out NewLocation: Vector)` | Adjusts the destination for the requested tracking level, so the player arrives standing on the ground rather than with their head at floor height. Overridden per pawn type. |
| event | `Teleport_Phase_2` | `()` | Relocates a Character pawn using the character movement component, so ground constraints are respected. |

**BPC_PawnAbility_Teleport_Pawn**1 members

extends `BPC_PawnAbility_Teleport`

Teleport ability for a plain Pawn, with no capsule to measure against: it offsets the landing point by a fixed eye height, or by the camera's own height where the destination is given at ground level. Add it to a pawn of your own that does not inherit from Character. Nothing in the shipped content uses it, since all three shipped pawns are Characters.

| Kind | Name | Signature | Description |
|---|---|---|---|
| fn | `LocationCorrection` | `(Original Location: Vector, RelativeTrackingLevel: E_Teleport_TrackingLevel, out NewLocation: Vector)` | Adjusts the destination for the requested tracking level, so the player arrives standing on the ground rather than with their head at floor height. Overridden per pawn type. |
