Project no longer opens without crashing after adding UPhysicsHandleComponent logic

I reckon it’s because of that (ItemGrabber.h):

 AActor GrabbableActor; // Probably missing *

You are trying to create new AActor during construction of static object for UItemGrabber, AActor cannot be created on “stack”.

As for UPROPERTY with

UPhysicsHandleComponent* PhysicsHandle = nullptr;

from what I see the Physics handle is created somewhere else, but in here you are simply storing a pointer to it, it would be better to use TSoftObjectPtr than raw C++ pointer. Long story short, TSoftObjectPtr is a weak pointer that will get “invalidated” once the object it points to is destroyed.

In your example, if the actual object gets deleted, you are left with a dangling pointer to a memory that is no longer occupied by the object and dereferencing it will cause undefined behavior.

You could also you UPROPERTY with the c++ raw pointer, which is going to do the same thing (more or less) but in that case, the object is reference counted additional time, that means it won’t get automatically deleted if it goes “out of scope”.