I've encountered an issue where llGroundRepel() applied to an avatar loses its effect upon crossing regions, unlike llSetHoverHeight(), which maintains its hover effect consistently. This behavior isn't documented in the LSL wiki.
Expected Behavior:
llGroundRepel() should consistently maintain the avatar's hover height above ground and water, even after crossing regions, similar to llSetHoverHeight().
Actual Behavior:
When using llGroundRepel(), the avatar's hover effect diminishes after a region crossing, whereas llSetHoverHeight() maintains the hover effect without issue.
Following is a sample test HUD script to recreate this behavior.
integer on;
touch_start(integer n)
on = !on;
llGroundRepel(2, TRUE, 1);
// llSetHoverHeight(2, TRUE, 1);
llGroundRepel(0, TRUE, 1);
// llStopHover()
Here is a short video to show the difference.