Held item (default torch from held_item_template) disappears from the hand while sprinting

Summary

The default held item from held_item_template (the torch) disappears from the character’s hand while sprinting. Placing the template in the level unchanged and picking it up in a session is enough to see it; no Verse is needed. The torch comes back when the sprint ends. Our own held items and a custom weapon prefab disappear in the same way.

Please select what you are reporting on:

Unreal Editor for Fortnite

What Type of Bug are you experiencing?

Scene Graph

Steps to Reproduce

  1. In UEFN 42.30, place an entity made from held_item_template (/Armory/_Verse/VNI/ArmoryRuntime.held_item_template) in the level. Do not change anything; it keeps its default torch mesh.
  2. Launch a session.
  3. Walk to the torch and pick it up. The torch is in the character’s right hand (screenshot 1).
  4. Hold the sprint key and run.

Expected Result

The torch stays in the hand while sprinting, the same way normal weapons do.
If hiding it during sprint is intended, we would like a setting (for example on fort_held_item_component) that keeps held items visible while sprinting.

Observed Result

As soon as sprinting starts, the torch disappears from the hand (screenshot 2). When the sprint ends, it appears in the hand again.

Platform(s)

PC

Upload an image

Additional Notes

  • UEFN build: ++Fortnite+Release-42.30-CL-58813929. Tested in an edit session; the island is not published yet.
  • We first found this with our own held item: the same template with the torch mesh replaced by a wizard staff, given to the player from Verse with AddItem and Equip. It disappears in the same way. During the sprint, item_component.IsEquipped stays true, and we found nothing in Verse that keeps the item out (fort_weapon_component.IsHolstered is read-only).
  • A custom weapon prefab is also hidden while sprinting.
  • Our island is a wizard game. The staff in the hand is the main look of the player character, so it vanishing every time the player sprints is very noticeable, and we cannot ship the held-item version as it is.
  • Screenshot 1: walking, torch in the right hand. Screenshot 2: sprinting, the hand is empty.

Thank you, the team is taking a look.

Hey there, thanks for the report!

While we work on this, we have a suggestion that you could try out. However please note that if you choose to do this, if you are using hiding props or vehicles or swim or fly, the weapon mesh will be visible.

A possible workaround:
You need to create a new component or use an existing custom component that they add to the held_item_template. Then use the following code in that component:

OnBeginSimulation():void=
    (super:)OnBeginSimulation()
    
    if (WeaponComponent := Entity.GetComponent[fort_weapon_component]):
        WeaponComponent.HolsterChangedEvent.Subscribe(OnHolsterChanged)
        OnHolsterChanged()

OnHolsterChanged():void=
    if:
        WeaponComponent := Entity.GetComponent[fort_weapon_component]
        WeaponComponent.IsHolstered?
        MeshComponent := Entity.GetComponent[mesh_component] #Alternative, loop through all descendent meshes
    then:
        MeshComponent.Enable()

FORT-1169582 has been ‘Closed’. This is working as intended by design.