# Scene Graph Collision Scaling

**URL:** <https://forums.unrealengine.com/t/scene-graph-collision-scaling/2342388>\
**Category:** Issues and Bug Reporting\
**Tags:** closed, fortnite-creative, unreal-editor-for-fortnite, fortnite\
**Created:** [February 18, 2025, 4:57pm UTC](https://forums.unrealengine.com/t/scene-graph-collision-scaling/2342388 "2025-02-18T16:57:22Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![UCONNGabe](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@UCONNGabe](https://forums.unrealengine.com/u/UCONNGabe)\
**Post date:** [February 18, 2025, 4:57pm UTC](https://forums.unrealengine.com/t/scene-graph-collision-scaling/2342388/1 "2025-02-18T16:57:22Z")

</div>

### Summary

The scene graph `EntityEnteredEvent` and `EntityExitedEvent` do not adjust for scale applied via SetGlobalTransform, KeyFrames, or any other method.

### Please select what you are reporting on:

Creative

### What Type of Bug are you experiencing?

Assets

### Steps to Reproduce

1. Setup a Verse entity component which listens to `EntityEnteredEvent` and `EntityExitedEvent`
2. At the start of the simulation, scale up the entity via any method including: `SetGlobalTransform`, `SetLocalTransform`, or `keyframed_movement_component`.
3. Move two entities that use this component to overlap each other.

### Expected Result

- The `EntityEnteredEvent` is fired when the entities overlap.
- The `EntityExitedEvent` is fired when the entities stop overlapping.

### Observed Result

`EntityEnteredEvent` and `EntityExitedEvent` are fired as if the entity still had it’s original scale. For example, if you have scaled down the entity, the events will trigger a a distance greater than the actual bounds of the entity.

### Platform(s)

UEFN, Verse, Scene Graph, PC, Console

### Additional Notes

- If you call `mesh_component.Disable()` and then `mesh_component.Enable()`, the entity scales for colission will be adjusted. However, each `.Enable()` call retriggers an additional `EntityEnteredEvent` is an overlap is currently occuring. And sometimes a `EntityEnteredEvent` or `EntityExitedEvent` may be missed.

---

<div class="post-metadata">

**Author:** ![UCONNGabe](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@UCONNGabe](https://forums.unrealengine.com/u/UCONNGabe)\
**Post date:** [February 19, 2025, 1:11am UTC](https://forums.unrealengine.com/t/scene-graph-collision-scaling/2342388/3 "2025-02-19T01:11:46Z")

</div>

I made a video on youtube demonstrating how to recreate it [https://youtu.be/8VeLe6H4ILs](https://youtu.be/8VeLe6H4ILs). And here is the script I used:

```auto
using { /Fortnite.com }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Devices }
using { /Fortnite.com/Devices/CreativeAnimation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SceneGraph }
using { /UnrealEngine.com/Temporary/SceneGraph/KeyframedMovement }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Verse.org }
using { /Verse.org/Assets }
using { /Verse.org/Concurrency }
using { /Verse.org/Native }
using { /Verse.org/Random }
using { /Verse.org/Simulation }

testing_collision_component := class<final_super>(component):

    @editable
    TestingTrigger : trigger_device = trigger_device{}

    var CancelAnimationEvent<protected> : event() = event(){}

    EntityEntered<protected>(MyEntity : entity) : void = 
        Print("Entity Entered Event")

    EntityExited<protected>(MyEntity : entity) : void = 
        Print("Entity Exited Event")

    StartFollowPlayer(MaybeAgent : ?agent) : void = 
        if(Player := player[MaybeAgent?], Player.IsActive[]):
            spawn. FollowPlayer(Player)
    
    FollowPlayer(Player : player)<suspends> : void =
        race:
            CancelAnimationEvent.Await()
            loop:
                if(Player.IsActive[], FC := Player.GetFortCharacter[], FC.IsActive[]):
                    NewTranslation := FC.GetTransform().Translation + vector3{ X := 500.0, Y := 0.0, Z := 0.0 }
                    CurrentTransform := Entity.GetGlobalTransform()
                    Entity.SetGlobalTransform(
                        transform:
                            Translation := NewTranslation
                            Rotation := CurrentTransform.Rotation
                            Scale := CurrentTransform.Scale
                    )
                    

                Sleep(0.15)

    OnBeginSimulation<override>():void =
        (super:)OnBeginSimulation()
        Print("OnBeginSimulation")

        if(MeshComponent := Entity.GetComponent[mesh_component]):
            MeshComponent.EntityEnteredEvent.Subscribe(EntityEntered)
            MeshComponent.EntityExitedEvent.Subscribe(EntityExited)

        ## TESTING ##
        TestingTrigger.TriggeredEvent.Subscribe(StartFollowPlayer)

    OnSimulate<override>()<suspends> : void =
        Print("OnSimulate")
        Sleep(30.0)
        Print("Changing object scale")
        CurrentTransform := Entity.GetGlobalTransform()
        Entity.SetGlobalTransform(
            transform:
                Translation := CurrentTransform.Translation
                Rotation := CurrentTransform.Rotation
                Scale := CurrentTransform.Scale / 5.0
        )
        

    OnEndSimulation<override>():void = 
        Print("On End simulation")

        CancelAnimationEvent.Signal()

```

---

<div class="post-metadata">

**Author:** ![Astrotronic](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/astrotronic/32/1194566_2.png) [@Astrotronic](https://forums.unrealengine.com/u/Astrotronic)\
**Post date:** [February 19, 2025, 4:27pm UTC](https://forums.unrealengine.com/t/scene-graph-collision-scaling/2342388/4 "2025-02-19T16:27:09Z")

</div>

Hi Gabe,

Thanks for the extra info + video.

Be sure to follow[this related bug report](https://forums.unrealengine.com/t/scene-graph-collision-of-a-mesh-component-does-not-scale-with-verse/2342450) too!

---

<div class="post-metadata">

**Author:** ![UCONNGabe](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@UCONNGabe](https://forums.unrealengine.com/u/UCONNGabe)\
**Post date:** [February 21, 2025, 6:49pm UTC](https://forums.unrealengine.com/t/scene-graph-collision-scaling/2342388/6 "2025-02-21T18:49:32Z")

</div>

The bug appears to have been fixed in the most recent update 34.00. Requires confirmation. Thanks for the response @Astrotronic🙂

---

<div class="post-metadata">

**Author:** ![Bug-Reporter](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/bug-reporter/32/997076_2.png) [@Bug-Reporter](https://forums.unrealengine.com/u/Bug-Reporter)\
**Post date:** [May 22, 2025, 5:13pm UTC](https://forums.unrealengine.com/t/scene-graph-collision-scaling/2342388/8 "2025-05-22T17:13:38Z")

</div>

FORT-862062 has been ‘Closed’. We’re unable to reproduce this issue.

---

<div class="post-metadata">

**Author:** ![system](https://d3kjluh73b9h9o.cloudfront.net/original/4X/7/1/3/713c9d3f58553f0de89543d76a8a3a2779dc9fa4.png) [@system](https://forums.unrealengine.com/u/system)\
**Post date:** [August 17, 2025, 4:57pm UTC](https://forums.unrealengine.com/t/scene-graph-collision-scaling/2342388/9 "2025-08-17T16:57:50Z")

</div>

This topic was automatically closed after 180 days. New replies are no longer allowed.
