How to spawn a decal in C++?

I noticed when i tried to do this that the spawned location was being changed after the spawn. I’m unsure why this happens and its not just on decals but on other components. But to correct it all i do is set the transform on the spawned instance to fix it.

ADecalActor* SpawnedActor = GetWorld()->SpawnActor<ADecalActor>(ADecalActor::StaticClass(), FTransform(Rotation, Location, Scale), SpawnParams))

SpawnedActor->SetActorTransform(FTransform(Rotation, Location, Scale));

If anyone knows why this happens please let me know.

Something worth mentioning, the decal material can be assigned a UMaterialInstanceDynamic* and works perfectly well.