We attempted to create a C++ parent class with a SplineComponent, but our C+±only approach didn’t work, see 4.9.2: Unreal-approved C++ method to create new child objects? - C++ Gameplay Programming - Unreal Engine Forums)
Our compromise was to create a C++ parent class with functions that take a SplineComponent parameter, and store the SplineComponent itself in a child Blueprint. This allows us to have our SplineComponent modifiable in code and editable in Blueprint.
One of our discoveries was that you cannot edit a SplineComponent the moment it has been assigned to a C++ property (or is instantiated by the C++ object in the constructor). There is a forum post on modifying the engine (Spline not editable when set in Construction Script - Blueprint Visual Scripting - Unreal Engine Forums), but we’d rather not resort to maintaining an engine branch at this point.
Our other option would be to create our own custom spline component with an associated component visualizer, but that’s pretty heavyweight for just adding editability to a C+±owned SplineComponent.
Are there any plans to address this? If not, we will probably move towards the visualizer, but again that becomes something of a branch at that point and I’d rather stick with baseline Unreal functionality.