Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0006818opensim[REGION] Physics Enginespublic2013-10-26 18:262015-09-30 12:45
Assigned To 
PlatformOSOS Version
Product Versionmaster (dev code) 
Target VersionFixed in Version 
Summary0006818: llSetHoverHeight() is not equivalent to SL for avatars
DescriptionllSetHoverHeight should work as it does in SL. Avatars and to a lesser extent non-physical prims should be affected by it and float at the desired height.

There are a number of HUD devices that are currently not possible in OS. The main device is a swimmer. A hug that locks your Z position at water height and then moves into AO like behavior to make you swim or tread water.

Other uses are one I really want to make: a worn (not sat on) jetpack

Skydiving, vacuum tubes, guided tours and other such scripts that to work need to easily set and lock a person's height.

If the region runs ODE or Bullet seems to make little difference to this issue, Bullet is of course far better for vehicles in general.
Steps To ReproduceTaking the simple script and putting it into a single, non-physical prim:

// Put in an attached prim and touch to start floating in air without flying.
// Touch again to drop to the ground.
integer gHovering = FALSE; // are we supposd to be hovering now?
default {
    state_entry() {
    touch_start(integer total_number) {
        if (gHovering) {
            llOwnerSay("Releasing you.");
        else {
            llOwnerSay("Making you float...");
            // Start hovering 5 meters over our current location.
            vector myPosition = llGetPos();
            llSetHoverHeight(myPosition.z - llGround(ZERO_VECTOR) + 5.0, FALSE, 1.0);
        gHovering = !gHovering; // flip the switch

1. Put this script inside a prim in SL. Touch and even with the prim not being physical it's height is set and locked. On second touch it is replaced at the ground.

2. Repeat in SL after attaching the prim as a HUD or Attach. You float (with the fall animation playing)

3. Try the prim in OS. Either ODE or Bullet. Prim won't "float" in the air. It stays where rezzed.

4. Attach the prim; ODE or Bullet touching the prim will not lift you to the llSetHoverHeight()
Additional InformationTried removing the conditional inside the OS-LSL function that checks if it's an avatar and skips the work. It didn't fix the issue.

Mind you there could have been further conditionals like that one that are coded to stop hovering working on a person.

Looking at, as an example,

it seems like these many functions are different on Avatars and specifically need physical objects that are sat upon rather than worn.
TagsNo tags attached.
Git Revision or version numbera4bcfbb
Run Mode Grid (1 Region per Sim)
Physics EngineODE, BulletSim
Script Engine
EnvironmentMono / Linux64
Mono Version2.10
ViewerSingularity 1.8.3
Attached Files

- Relationships

-  Notes
UbitUmarov (administrator)
2015-09-30 09:28

llSetHoverHeight()on attachments is not supported in opensim. This may change in future.
UbitUmarov (administrator)
2015-09-30 12:45

experimental support to llSetHoverHeight() called from attachment was added to the physics engine ubOde, in the avinationmerge branch

- Issue History
Date Modified Username Field Change
2013-10-26 18:26 SeanSB New Issue
2013-10-26 18:27 SeanSB Steps to Reproduce Updated View Revisions
2015-09-30 09:28 UbitUmarov Note Added: 0029496
2015-09-30 12:45 UbitUmarov Note Added: 0029497

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker