C++ class attachment to blueprints has broken relative movement (4.7)

So the initial problem I had was that after upgrading to 4.7, one of my blueprints (based on a C++ class) would move faster than the other blueprint (also based on a C++ class) it was attached to.

Now, I couldn’t let this go, so I kept minimizing the scope and commenting away code to see where the issue was until I managed to get it down to where I could reproduce it in a new project.

Steps to reproduce:

  • Create a new blank C++ project.

  • Create a new empty blueprint based on actor and place it in the level.

  • Add a new C++ class to the project with the “Add code to project” button. Base it on Actor and call it MyActor.

  • Replace the default constructor contents with

     Root = CreateDefaultSubobject<USceneComponent>(TEXT("dummy"));
     RootComponent = Root;
    
  • Put the following in the header file, below public: and above the default constructor:

     UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = Components)
     USceneComponent* Root;
    

The contents of the MyActor.cpp file should be: http://hastebin.com/ufozabayis.cpp

The contents of the MyActor.h file should be: http://hastebin.com/hicitisoho.cpp (maybe a different API if the project name is different)

It turns out this was fixed as part of the 4.7.1 hotfix

It seems to have been UE-10732 and I can confirm that the patch solves the problems I was having.