Linker error for ULandscapeSplineSegment::GetLocalMeshComponents() while other functions from EXACT there work

I know this is frustrating, let me break it down for you. As you’ve spotted, UpdateSplinePoints can be callied because it is marked as virtual.

This is happening because marking the function as virtual adds it to the class vtable, making it accessible to other modules. To be more precise, non-pure (with implementation) virtual functions can be called without being exported however you will be using the base class implementation - in this example this is fine because no derived class changes implementation.

This is why other functions (like GetForeignMeshComponents) have the LANDSCAPE_API which properly exports the functions. (Note: this can also be done at the class level and will export all the publicly available functions).