Skip to content
lsl.devlsl.devLSL Dev

LlSitOnLink

Looking for the current API? Open the llSitOnLink reference →

Wiki description

The avatar specified by agent_id is forced to sit on the sit target of the prim indicated by the link parameter. If the specified link is already occupied, the simulator searches down the chain of prims in the link set looking for an available sit target.

Function notes

If successful, this method returns SIT_OK.
If the function fails, it returns a negative number constant.
Link constants that indicate a single prim may be used for the link parameter. These are LINK_ROOT and LINK_THIS. Other constants such as LINK_SET, LINK_CHILDREN, LINK_ALL_OTHERS will return an INVALID_LINK error.
This method must be called from an experience enabled script running on land that has enabled the experience key. If these conditions are not met this method returns a NOT_EXPERIENCE error.
The targeted avatar must also have accepted the experience. If the user is not participating in the experience this method returns NO_EXPERIENCE_PERMISSION. If the avatar id can not be found or is not over land that has enabled the experience this method returns INVALID_AGENT.
If there are no valid sit targets remaining in the linkset this method returns NO_SIT_TARGET and no action is taken with the avatar.
If the avatar does not have access to the parcel containing the prim running this script, this call fails.

Specification

Constant Value Description
SIT_OK 1 The agent was seated successfully.
SIT_NOT_EXPERIENCE -1 The script is not running as part of an experience with a valid experience key or the experience is not allowed at your location.
SIT_NO_EXPERIENCE_PERMISSION -2 The agent has not granted permission.
SIT_NO_SIT_TARGET -3 Unable to find an open sit target.
SIT_INVALID_AGENT -4 Unable to find specified agent.
SIT_INVALID_LINK -5 Unable to find specified link or the link constant would return multiple prims.
SIT_NO_ACCESS -6 The avatar does not have access to the parcel that the prim running this script is located in.
SIT_INVALID_OBJECT -7 This value is returned if the llSitOnLink is trying to force the user to sit on something that cannot be sat upon (such as an attachment).

Caveats

  • The SIT_OK constant is only present on Lua-enabled sims. On older sims, use it's value of 1 instead

Examples

integer gLinkId = LINK_THIS;

default
{
    touch_start(integer total_number)
    {
        llRequestExperiencePermissions(llDetectedKey(0), "");
    }

    experience_permissions(key agent_id)
    {
        integer sitTest = llSitOnLink(agent_id, gLinkId);
        if (sitTest != 1)
        {
            llInstantMessage(agent_id, "Cannot force agent " + (string)agent_id + " to sit due to reason id: " + (string)sitTest);
        }
    }

    experience_permissions_denied(key agent_id, integer reason)
    {
        llInstantMessage(agent_id, "Denied experience permissions for " + (string)agent_id + " due to reason id: " + (string)reason);
    }
}

Notes

This function was introduced in conjunction with new primitive parameter constants: PRIM_ALLOW_UNSIT, PRIM_SCRIPTED_SITS_ONLY, and PRIM_SIT_TARGET.

See also: functions

Constants

Shared wiki helpers

The original page also injects shared parameter notes, caveats or issue information through these helpers. Their conditional MediaWiki logic is not reproduced here; inspect the preserved helper source for additional material.

Template:Issues/BUG-40739

Original shared helper source (conditional wiki logic is not evaluated)
{{Issues|BUG-40739|Redesign [[llSitOnLink]]() to use the permissions system|type=nf}}
Original wiki source

Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.