Overview
The vehicle_spawner_getaway_device is a specialized vehicle_spawner_device that spawns the GetAway Car — the heist vehicle used in cops-and-robbers / escape-style modes. It's the device you reach for when your round revolves around one important vehicle: a getaway car the robbers must reach and drive to an extraction point.
Because it inherits from vehicle_spawner_device, it gives you full Verse control over that car's lifecycle:
- Spawn / respawn the car (
RespawnVehicle) so a new round always starts with a fresh, intact getaway car. - Destroy it (
DestroyVehicle) when the round ends or the heist fails. - Force a driver into the seat (
AssignDriver) — handy for cinematic getaways or auto-boarding a chosen player. - React to players entering/exiting (
AgentEntersVehicleEvent,AgentExitsVehicleEvent), to the car spawning (SpawnedEvent, which hands you the actualfort_vehicle), and to it being wrecked (DestroyedEvent). - Enable / Disable the whole spawner so robbers can't grab the car until the heist phase begins.
Reach for this device whenever the vehicle itself is the objective, not just decoration.
API Reference
vehicle_spawner_getaway_device
Specialized
vehicle_spawner_devicethat allows a GetAway Car to be configured and spawned.
Full public surface, resolved verbatim from the live Epic digest (Fortnite.digest.verse). Inherited members are merged from vehicle_spawner_device.
vehicle_spawner_getaway_device<public> := class<concrete><final>(vehicle_spawner_device):
Events (subscribe a handler to react):
| Event | Signature | Description |
|---|---|---|
AgentEntersVehicleEvent |
AgentEntersVehicleEvent<public>:listenable(agent) |
Signaled when an agent enters the vehicle. Sends the agent that entered the vehicle. |
AgentExitsVehicleEvent |
AgentExitsVehicleEvent<public>:listenable(agent) |
Signaled when an agent exits the vehicle. Sends the agent that exited the vehicle. |
SpawnedEvent |
SpawnedEvent<public>:listenable(fort_vehicle) |
Signaled when a vehicle is spawned or respawned by this device. Sends the fort_vehicle who was spawned. |
VehicleSpawnedEvent |
VehicleSpawnedEvent<public>:listenable(tuple()) |
Signaled when a vehicle is spawned or respawned by this device. Deprecated, use SpawnedEvent instead. |
VehicleDestroyedEvent |
VehicleDestroyedEvent<public>:listenable(tuple()) |
Signaled when a vehicle is destroyed. Deprecated, use DestroyedEvent instead. |
DestroyedEvent |
DestroyedEvent<public>:listenable(tuple()) |
Signaled when a vehicle is destroyed. |
Methods (call these to make the device act):
| Method | Signature | Description |
|---|---|---|
Enable |
Enable<public>():void |
Enables this device. |
Disable |
Disable<public>():void |
Disables this device. |
AssignDriver |
AssignDriver<public>(Agent:agent):void |
Sets agent as the vehicle's driver. |
DestroyVehicle |
DestroyVehicle<public>():void |
Destroys the vehicle if it exists. |
RespawnVehicle |
RespawnVehicle<public>():void |
Spawns a new vehicle. The previous vehicle will be destroyed before a new vehicle spawns. |
vehicle_spawner_device
Base class for various specialized vehicle spawners which allow specific vehicle types to be spawned and configured with specialized options.
Full public surface, resolved verbatim from the live Epic digest (Fortnite.digest.verse).
vehicle_spawner_device<public> := class<abstract><epic_internal>(creative_device_base):
Events (subscribe a handler to react):
| Event | Signature | Description |
|---|---|---|
AgentEntersVehicleEvent |
AgentEntersVehicleEvent<public>:listenable(agent) |
Signaled when an agent enters the vehicle. Sends the agent that entered the vehicle. |
AgentExitsVehicleEvent |
AgentExitsVehicleEvent<public>:listenable(agent) |
Signaled when an agent exits the vehicle. Sends the agent that exited the vehicle. |
SpawnedEvent |
SpawnedEvent<public>:listenable(fort_vehicle) |
Signaled when a vehicle is spawned or respawned by this device. Sends the fort_vehicle who was spawned. |
VehicleSpawnedEvent |
VehicleSpawnedEvent<public>:listenable(tuple()) |
Signaled when a vehicle is spawned or respawned by this device. Deprecated, use SpawnedEvent instead. |
VehicleDestroyedEvent |
VehicleDestroyedEvent<public>:listenable(tuple()) |
Signaled when a vehicle is destroyed. Deprecated, use DestroyedEvent instead. |
DestroyedEvent |
DestroyedEvent<public>:listenable(tuple()) |
Signaled when a vehicle is destroyed. |
Methods (call these to make the device act):
| Method | Signature | Description |
|---|---|---|
Enable |
Enable<public>():void |
Enables this device. |
Disable |
Disable<public>():void |
Disables this device. |
AssignDriver |
AssignDriver<public>(Agent:agent):void |
Sets agent as the vehicle's driver. |
DestroyVehicle |
DestroyVehicle<public>():void |
Destroys the vehicle if it exists. |
RespawnVehicle |
RespawnVehicle<public>():void |
Spawns a new vehicle. The previous vehicle will be destroyed before a new vehicle spawns. |
Walkthrough
Let's build a complete getaway mini-game loop:
- The spawner starts disabled so no one can drive off early.
- A button starts the heist — we enable the spawner and respawn a fresh car.
- When a player enters the car, we announce the getaway is in progress.
- If the car gets destroyed, we automatically respawn it so the heist can continue.
- When the car spawns, we grab the
fort_vehicleit hands us so we know it's ready.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Vehicles }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# A full getaway-heist controller built around the GetAway Car spawner.
getaway_heist_device := class(creative_device):
# The GetAway Car spawner placed in the level.
@editable
GetawaySpawner : vehicle_spawner_getaway_device = vehicle_spawner_getaway_device{}
# A button the host/robbers press to begin the heist.
@editable
StartHeistButton : button_device = button_device{}
# Localized message helper (message params need a localized value, not a raw string).
Announce<localizes>(S : string) : message = "{S}"
OnBegin<override>()<suspends> : void =
# Lock the car away until the heist starts.
GetawaySpawner.Disable()
# Wire up the button to kick things off.
StartHeistButton.InteractedWithEvent.Subscribe(OnStartHeist)
# React to the car's lifecycle.
GetawaySpawner.SpawnedEvent.Subscribe(OnCarSpawned)
GetawaySpawner.AgentEntersVehicleEvent.Subscribe(OnDriverEntered)
GetawaySpawner.AgentExitsVehicleEvent.Subscribe(OnDriverExited)
GetawaySpawner.DestroyedEvent.Subscribe(OnCarDestroyed)
# Button handler: enable the spawner and drop a fresh getaway car.
OnStartHeist(Agent : agent) : void =
GetawaySpawner.Enable()
# RespawnVehicle destroys any old car first, then spawns a clean one.
GetawaySpawner.RespawnVehicle()
# SpawnedEvent hands us the actual fort_vehicle that was spawned.
OnCarSpawned(Vehicle : fort_vehicle) : void =
Print("GetAway Car is ready for the heist!")
# A robber climbed in — the getaway is on.
OnDriverEntered(Agent : agent) : void =
Print("A robber has taken the wheel — go go go!")
# Driver bailed out.
OnDriverExited(Agent : agent) : void =
Print("The getaway driver bailed!")
# Car got wrecked — respawn it so the round can continue.
OnCarDestroyed(MaybeAgent : ?agent) : void =
Print("GetAway Car destroyed — sending a replacement.")
GetawaySpawner.RespawnVehicle()
Line by line:
@editable GetawaySpawner : vehicle_spawner_getaway_device— you must declare the placed device as an editable field; calling its methods on a bare local would fail with Unknown identifier. In UEFN you then bind this field to the spawner you dragged into the level.GetawaySpawner.Disable()inOnBeginkeeps the car unavailable until the heist phase.StartHeistButton.InteractedWithEvent.Subscribe(OnStartHeist)— event handlers are methods on the class; we subscribe them inOnBegin.- In
OnStartHeist,Enable()turns the spawner on andRespawnVehicle()guarantees a clean car (it destroys any leftover first). SpawnedEvent.Subscribe(OnCarSpawned)— note the handler param isVehicle : fort_vehicle, the real spawned car object, becauseSpawnedEventislistenable(fort_vehicle).AgentEntersVehicleEvent/AgentExitsVehicleEventarelistenable(agent), so their handlers take(Agent : agent).DestroyedEventislistenable(?agent), so its handler takes a?agent— you'd unwrap it withif (A := MaybeAgent?)if you needed the destroyer.
Common patterns
Auto-board a chosen driver with AssignDriver
For a cinematic getaway, force a specific player into the seat the moment the car spawns instead of waiting for them to walk over.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Vehicles }
using { /Fortnite.com/Characters }
using { /Verse.org/Simulation }
auto_driver_device := class(creative_device):
@editable
GetawaySpawner : vehicle_spawner_getaway_device = vehicle_spawner_getaway_device{}
# When a player steps on this plate, they become the assigned driver.
@editable
DriverPlate : trigger_device = trigger_device{}
OnBegin<override>()<suspends> : void =
DriverPlate.TriggeredEvent.Subscribe(OnPlateStepped)
OnPlateStepped(MaybeAgent : ?agent) : void =
if (Driver := MaybeAgent?):
# Make sure there is a fresh car, then seat the player.
GetawaySpawner.RespawnVehicle()
GetawaySpawner.AssignDriver(Driver)
Disable the spawner once the escape succeeds
When the heist is complete, shut the spawner down so no more getaway cars appear.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
heist_complete_device := class(creative_device):
@editable
GetawaySpawner : vehicle_spawner_getaway_device = vehicle_spawner_getaway_device{}
# A trigger at the extraction point.
@editable
ExtractionZone : trigger_device = trigger_device{}
OnBegin<override>()<suspends> : void =
ExtractionZone.TriggeredEvent.Subscribe(OnExtracted)
OnExtracted(MaybeAgent : ?agent) : void =
# Round over: get rid of the car and lock the spawner.
GetawaySpawner.DestroyVehicle()
GetawaySpawner.Disable()
Track exits to detect an abandoned car
Use AgentExitsVehicleEvent to punish robbers who leave the getaway car behind.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
abandon_watch_device := class(creative_device):
@editable
GetawaySpawner : vehicle_spawner_getaway_device = vehicle_spawner_getaway_device{}
OnBegin<override>()<suspends> : void =
GetawaySpawner.AgentExitsVehicleEvent.Subscribe(OnExit)
OnExit(Agent : agent) : void =
# A robber left the car — flag it as abandoned.
Print("GetAway Car abandoned! Replacing it.")
GetawaySpawner.RespawnVehicle()
Gotchas
SpawnedEventvsVehicleSpawnedEvent.VehicleSpawnedEvent/VehicleDestroyedEventare deprecated and carrytuple()(no payload). PreferSpawnedEvent(gives you thefort_vehicle) andDestroyedEvent. Don't mix old and new for the same logic.DestroyedEventislistenable(?agent), notlistenable(agent). Your handler must take(MaybeAgent : ?agent)and unwrap withif (A := MaybeAgent?):before using the agent. A non-agent destroyer (e.g. world damage) gives you afalseoption — handle that case.- You must declare the device as an
@editablefield. Callingvehicle_spawner_getaway_device{}methods on a bare local won't reference your placed device. Bind the field in the UEFN Details panel. RespawnVehicledestroys the previous car first. If a robber is already driving, callingRespawnVehiclewill yank the old car out from under them — only respawn when you actually want a fresh vehicle.AssignDriverneeds a liveagentand an existing car. If no vehicle is currently spawned, assign a driver after spawning. CallRespawnVehicle()thenAssignDriver(Driver).- Localized messages. Any device API taking a
messageneeds a localized value — declare aAnnounce<localizes>(S:string):message = "{S}"helper and passAnnounce("..."). There is noStringToMessage. - Disabled spawners ignore method calls that depend on a car.
Disable()stops new spawns; if youDisable()thenRespawnVehicle(), behavior may not be what you expect. Enable before spawning.