NewObject, USphereComponent & Overlap Events - Where does it go wrong?

That bit of code is used to make sure the components show up in the editor details panel so you can edit them. Although if you ate doing all the editing by code it is probably unnecesary .

Normally when an actor is created the construction scripts run automatically and registers all the components, child components etc but in the case of dynamically creating the components the actor already exists so you need to rerun the construction scripts so that it finds the newly created components .

I think if you take it from where it is and put the code straiight under this bit of code

“Grabber_USphereComponent->RegisterComponent(); // Register the Component so that it is active in game code”

It should then work as expected. I think the reason it’s causing problems is because you are basically setting up all the overlap events THEN calling the rerun of the construction scripts which basically reverts all the changes .

Also I noticed you are manually setting the component name on creating it
" FName(“GrabberComponent”));
Grabber"

Which is fine but if you were to ever create another component of the same type it will crash the editor because they cannot have the same name which is why in my code I added all the extra code to check if two components of the same type exist and if so it will append the name with _ and then an integer eg name_01, name_02 and so on

I might be wrong but try moving it and see . Anway seems you got what you needed so good luck