# 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` | ![Open](../images/Game.ScribeTest.Blueprints.BP_Door/Open.png) ### HelperNoDocs `HelperNoDocs()` *Private* ![HelperNoDocs](../images/Game.ScribeTest.Blueprints.BP_Door/HelperNoDocs.png) ### IsOpen `IsOpen() → Result: Boolean` *Pure · Const* True while the door is open. | | Name | Type | Default | |---|---|---|---| | out | `Result` | Boolean | `false` | ![IsOpen](../images/Game.ScribeTest.Blueprints.BP_Door/IsOpen.png) ### 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 ![EventGraph](../images/Game.ScribeTest.Blueprints.BP_Door/EventGraph.png) ## 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*