Summary
A basic_interactable_component subclass that calls Disable() inside its OnAddedToScene override (after the super call) correctly shows no prompt. When Enable() is called later, IsEnabled[] succeeds, but the prompt never appears again and no press reaches StartedEvent or SucceededEvent, for as long as the entity exists. The same Disable() and Enable() called from another component, even right after the entity is added to the scene, works as expected. Interactables that must start disabled and be enabled later cannot disable themselves while entering the scene.
Please select what you are reporting on:
Verse
What Type of Bug are you experiencing?
Scene Graph
Steps to Reproduce
- Create these two components, put both on one entity that also has a mesh component with collision (for example a cube), place it in front of the player start, build Verse and start a play session with one player.
using { /Verse.org/SceneGraph }
using { /Verse.org/Simulation }
# Disables itself as it enters the scene.
self_disabling_interactable_component := class<final>(basic_interactable_component) {
OnAddedToScene<override>(): void = {
(super:)OnAddedToScene()
Disable()
}
}
# Enables the interactable 8 s into the simulation and prints every press.
enable_later_component := class<final_super>(component) {
OnSimulate<override>()<suspends>: void = {
if (Interactable := Entity.GetComponent[self_disabling_interactable_component]) {
Interactable.StartedEvent.Subscribe(OnStarted)
Sleep(8.0)
Interactable.Enable()
if (Interactable.IsEnabled[]) {
Print("enabled again")
}
}
}
OnStarted(Agent: agent): void = {
Print("press started")
}
}
- After “enabled again” is printed, stand facing the mesh within 2 m and press Interact several times.
- For comparison, remove the
Disable()line fromOnAddedToSceneand callInteractable.Disable()at the start ofOnSimulateinstead: after “enabled again” the prompt shows and every press prints “press started”. - The same loss without any Verse disable: remove the
OnAddedToSceneoverride, untick the interactable’s Enabled checkbox in the editor’s details panel (or in an entity prefab that carries it), and keepenable_later_component: after “enabled again” no prompt shows and no press prints.
Expected Result
After Enable(), the interaction prompt shows and presses start the interaction.
Observed Result
No prompt ever shows and no press is reported, although IsEnabled[] succeeds.
Platform(s)
PC (Windows)
Additional Notes
Reproduced in UEFN 6.0.0-59343437 (Fortnite Release 42.40) with entities placed in the editor and with entities spawned at runtime, in several play sessions. Starting disabled through the editor’s Enabled checkbox (unticked on an entity prefab spawned at runtime) shows the same loss. Disabling from outside the component in the same transaction that adds the entity, from the component’s own OnBeginSimulation or OnSimulate, or switching the mesh’s Queryable off and on instead, does not show the problem.
Internal bug database reference, for matching any follow-up to our records: 9EKONU.