# SetActorScale3D behaving out of place when applying 1:1000 and vice versa scale?

**URL:** <https://forums.unrealengine.com/t/setactorscale3d-behaving-out-of-place-when-applying-1-1000-and-vice-versa-scale/2701170>\
**Category:** C++\
**Tags:** math, engine, float, unreal-engine, transform, Engine-Source-Code, vector, scale, bug-report, CPP, question\
**Created:** [February 20, 2026, 11:41am UTC](https://forums.unrealengine.com/t/setactorscale3d-behaving-out-of-place-when-applying-1-1000-and-vice-versa-scale/2701170 "2026-02-20T11:41:11Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![xx\_pooya\_xx](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@xx\_pooya\_xx](https://forums.unrealengine.com/u/xx_pooya_xx)\
**Post date:** [February 20, 2026, 11:41am UTC](https://forums.unrealengine.com/t/setactorscale3d-behaving-out-of-place-when-applying-1-1000-and-vice-versa-scale/2701170/1 "2026-02-20T11:41:12Z")

</div>

So we are making a game for our final project in our school in VR. The concept is: 1:1000 scale change of player and time.

I am scaling up to environment to make the player ‘tiny’.

For 1 → 1000, I do `SetActorScale3D(GetActorScale3D()* 1000.0f);` and this will do the job

HOWEVER, when wanting to scale back to the original size (mostly 1000 → 1 for most objects)

If I use this

`SetActorScale3D(GetActorScale3D() / 1000.0f);`

Things completely get screwed. Infinite / Zero masses, incorrect bounds, 300 ms gameplay time due to collision, and 0,0,0 scale!!! Even though I scaled 3000 to 3 using a division by 1000, it shows 0 on all axis on ALL OF THE scaled items!!!

However, interesting enough… I decided to store the objects’ initial scale in BeginPlay by storing the startingScale in the header file.

```auto
StartingScale = GetActorScale3D();

```

And then for scaling (since it is not continouous, I can just do this), I just do StartingScale \* 1000 for becoming big, and StartingScale for becoming normal size again.

THIS WORKS COMPLETELY FINE!!! How is this even possible?!

I assume it has to do with NaN checks or Getting the SafeScale or something. I don’t know. Would appreciate the help! My issue is fixed but in general, it took me a while to realize it is an engine issue and not my thing.
