How can I return vector that moves parallel to the surface Hit?

I’m converting the ComputeGroundMovementDelta over to work in a point gravity world. So the Z is up logic is no longer and I have to rework this.

FVector RampMovement(Delta.X, Delta.Y, -FloorDotDelta / FloorNormal.Z);

Ordinarily I would use a world to component function to deal with this “z” specification but I can’t rotate the delta’s because they are already indicative of the correct direction. My world is actually an inverted sphere, so the world center is 0,0,0. I’ve been using this for many situations that are “z” specific because my Z axis value is actually just the distance to the center. So I thought I could create a vector that points to the center by getting the character up vector and then dividing it by the -FloorDotDelta , and adding that result to the Delta. This produces an incorrect result because the character gets studdering issues as he walks around different slopes. Maybe I’m not picturing this problem correctly. It seemed like the point behind this was to create an up or down displacement in the Delta based on the normal. So I thought I could just create an up Vector (relative to my character) and use that to displace the delta.