# BP_Door
**Actor** · `/Game/ScribeTest/Blueprints/BP_Door`
A door that opens when the player interacts with it.
Locked doors need their BP_Key.
| | |
|---|---|
| Parent | [BP_InteractiveBase](Game.ScribeTest.Blueprints.BP_InteractiveBase.md) → Actor |
| Interfaces | [BPI_Interactable](Game.ScribeTest.Interfaces.BPI_Interactable.md) |
| Compile | Warnings |
| Size | 54 nodes in 6 graphs |
| Complexity | **30** Moderate (54 nodes, 1 branch, 1 cast, 6 graphs, largest EventGraph (42)) |
| C++ candidate | **34** Consider C++ |
| Hard references | 5 packages, 81 KB |
| Documented | 75% (9 of 12) |
## C++ migration
**Consider C++** (score 34 of 100)
- Event Tick runs 24 nodes every frame; a C++ Tick, a timer or an event costs far less.
Before an engine upgrade:
- 1 deprecated node: replace it before the next engine upgrade.
- Compiles with warnings: today's warnings are often the next version's errors.
## Audit
- **Warning** · Event Tick: Event Tick runs 24 nodes every frame. Timers, events or a lower tick interval are often cheaper.
- **Info** · Cast to Blueprint: Casts to BP_Key. The cast target is loaded together with this Blueprint; an interface avoids that.
- **Info** · Unused variable: Variable 'Settings' is not used in any graph of this Blueprint (other Blueprints may still use it).
- **Info** · Unused variable: Variable 'State' is not used in any graph of this Blueprint (other Blueprints may still use it).
- **Warning** · Unused variable: Private variable 'UnusedCounter' is not used in any graph.
- **Warning** · Dead nodes: 1 node in 'EventGraph' never runs because nothing is connected to the exec input: Print String.
- **Info** · Unused results: 1 pure node in 'EventGraph' has no connected output: Get Actor Location.
- **Info** · Disabled nodes: 1 disabled node in 'EventGraph': Print String.
- **Warning** · Deprecated node: 'Get Unique Device Id' in 'EventGraph' is deprecated: Usage of 'Get Unique Device Id' has been deprecated. Use GetDeviceId instead
- **Info** · Missing description: 2 functions and events have no description: HelperNoDocs, Slam.
- **Info** · Missing description: 1 public variable has no tooltip: OpenSpeed.
- **Warning** · Circular reference: Hard reference cycle with BP_Key. Each of them loads all the others; an interface or a soft reference breaks the cycle.
## Components
- `DefaultSceneRoot` SceneComponent *(from BP_InteractiveBase)*
- `DoorMesh` StaticMeshComponent
- `Trigger` BoxComponent
## Variables
| Name | Type | Default | Description |
|---|---|---|---|
| `bIsLocked`
*Instance Editable* | Boolean | `False` | Locked doors only open with their key. |
| `OpenSpeed`
*Instance Editable, Expose on Spawn* | Float (double-precision) | `2.0` | |
| `Settings`
*Instance Editable, Unused* | [F_DoorSettings Structure](Game.ScribeTest.Types.F_DoorSettings.md) | `(OpenAngle=90.000000)` | Shared tuning values. |
| `State`
*Replicated, Unused* | [E_DoorState Enum](Game.ScribeTest.Types.E_DoorState.md) | `Closed` | Current state, replicated. |
| `Key`
*Instance Editable* | Actor Object Reference | `None` | The key that unlocks this door. |
| `UnusedCounter`
*Private, Unused* | Integer | `0` | |
## Functions
### Open
`Open(Speed: Float (double-precision)) → Success: Boolean`
Opens the door at the given speed. Returns false when it is locked.
| | Name | Type | Default |
|---|---|---|---|
| in | `Speed` | Float (double-precision) | |
| out | `Success` | Boolean | `true` |

### HelperNoDocs
`HelperNoDocs()`
*Private*

### IsOpen
`IsOpen() → Result: Boolean`
*Pure · Const*
True while the door is open.
| | Name | Type | Default |
|---|---|---|---|
| out | `Result` | Boolean | `false` |

### GetPrompt
`GetPrompt()`
*Interface (BPI_Interactable)*
### Interact
`Interact()`
*Interface (BPI_Interactable)*
## Events
### Event BeginPlay
`Event BeginPlay()`
*Override*
Event when play begins for this actor.
### Event Tick
`Event Tick(DeltaSeconds: Float (single-precision))`
*Override*
Event called every frame, if ticking is enabled
| | Name | Type | Default |
|---|---|---|---|
| in | `DeltaSeconds` | Float (single-precision) | `0.0` |
### OnUnlocked
`OnUnlocked(Who: Actor Object Reference)`
*Custom Event · Multicast, Reliable*
Plays the unlock effects on every client.
| | Name | Type | Default |
|---|---|---|---|
| in | `Who` | Actor Object Reference | |
### Slam
`Slam()`
*Custom Event*
## Event Dispatchers
### OnDoorOpened
`OnDoorOpened(Door: Actor Object Reference)`
Broadcast after the door finished opening.
| | Name | Type | Default |
|---|---|---|---|
| in | `Door` | Actor Object Reference | |
## Graphs
| Graph | Kind | Nodes |
|---|---|---|
| EventGraph | Event Graph | 42 |
| Open | Function | 3 |
| HelperNoDocs | Function | 2 |
| IsOpen | Function | 3 |
| GetPrompt | Interface | 2 |
| Interact | Interface | 2 |
### EventGraph

## Notes
- *EventGraph, Print String:* Debug only: shows the device id when the door is unlocked.
- *EventGraph:* Startup: open the door if the key fits
## References
**Uses:** [F_DoorSettings](Game.ScribeTest.Types.F_DoorSettings.md), [E_DoorState](Game.ScribeTest.Types.E_DoorState.md), [BPI_Interactable](Game.ScribeTest.Interfaces.BPI_Interactable.md), [BP_Key](Game.ScribeTest.Blueprints.BP_Key.md), [BP_InteractiveBase](Game.ScribeTest.Blueprints.BP_InteractiveBase.md)
**Used by:** [BP_Key](Game.ScribeTest.Blueprints.BP_Key.md)
---
*Generated 2026-10-20 18:48 with [ta Blueprint Scribe](https://tridiart.com) by tridiART*