Skip to content
lsl.devlsl.devLSL Dev

LlGetParcelFlags

Looking for the current API? Open the llGetParcelFlags reference →

Function notes

Both x and y components of pos are clamped to the range [0.0, 256.0], the z component is ignored.

Return value notes

Returns an integer of parcel flags (PARCEL_FLAG_*) for the parcel that includes the point pos.

Specification

Flag Value Description
PARCEL_FLAG_ALLOW_FLY 0x00000001 find if a parcel allows flying
PARCEL_FLAG_ALLOW_SCRIPTS 0x00000002 find if a parcel allows outside scripts
PARCEL_FLAG_ALLOW_LANDMARK 0x00000008 find if a parcel allows landmarks to be created
PARCEL_FLAG_ALLOW_TERRAFORM 0x00000010 find if a parcel allows anyone to terraform the land
PARCEL_FLAG_ALLOW_DAMAGE 0x00000020 find if a parcel allows damage
PARCEL_FLAG_ALLOW_CREATE_OBJECTS 0x00000040 find if a parcel allows anyone to create objects
PARCEL_FLAG_USE_ACCESS_GROUP 0x00000100 find if a parcel limits access to a group
PARCEL_FLAG_USE_ACCESS_LIST 0x00000200 find if a parcel limits access to a list of residents
PARCEL_FLAG_USE_BAN_LIST 0x00000400 find if a parcel uses a ban list, including restricting access based on payment info
PARCEL_FLAG_USE_LAND_PASS_LIST 0x00000800 find if a parcel allows passes to be purchased
PARCEL_FLAG_LOCAL_SOUND_ONLY 0x00008000 find if a parcel restricts spatialized sound to the parcel
PARCEL_FLAG_RESTRICT_PUSHOBJECT 0x00200000 find if a parcel restricts llPushObject
PARCEL_FLAG_ALLOW_GROUP_SCRIPTS 0x02000000 find if a parcel allows scripts owned by group
PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS 0x04000000 find if a parcel allows object creation by group members or objects
PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY 0x08000000 find if a parcel allows all objects to enter a parcel
PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY 0x10000000 find if a parcel only allows group (and owner) objects to enter the parcel

Examples

if (!(llGetParcelFlags(llGetPos()) & PARCEL_FLAG_ALLOW_FLY))
    llSay(0,"You are not allowed to fly here!, Sorry!.");

// Answers TRUE if rezzing is permitted, FALSE if not.
// Rezzing can fail even if this returns TRUE due to parcel full or server errors.
// Rezzing will always fail if this returns FALSE
integer canRezAt(vector pos) {
    integer parcelFlags = llGetParcelFlags(pos);
    list parcelDetails = llGetParcelDetails(pos, [PARCEL_DETAILS_OWNER, PARCEL_DETAILS_GROUP]);
    key parcelOwner = llList2Key(parcelDetails, 0);
    key parcelGroup = llList2Key(parcelDetails, 1);
 
    if (parcelFlags & PARCEL_FLAG_ALLOW_CREATE_OBJECTS) return TRUE;
    if (parcelOwner == llGetOwner()) return TRUE;
    if (!llSameGroup(parcelGroup)) return FALSE;
    if (parcelFlags & PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS) return TRUE;
    return FALSE;
}
 
// Answers TRUE if running scripts is permitted, FALSE if not
integer canRunScriptsAt(vector pos) {
    integer parcelFlags = llGetParcelFlags(pos);
    list parcelDetails = llGetParcelDetails(pos, [PARCEL_DETAILS_OWNER, PARCEL_DETAILS_GROUP]);
    key parcelOwner = llList2Key(parcelDetails, 0);
    key parcelGroup = llList2Key(parcelDetails, 1);
 
    if (parcelFlags & PARCEL_FLAG_ALLOW_SCRIPTS) return TRUE;
    if (parcelOwner == llGetOwner()) return TRUE;
    if (!llSameGroup(parcelGroup)) return FALSE;
    if (parcelFlags & PARCEL_FLAG_ALLOW_GROUP_SCRIPTS) return TRUE;
    return FALSE;
}

See also: functions

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:LSL Function/position

Original shared helper source (conditional wiki logic is not evaluated)
{{LSL Injection Test}}<noinclude>
This template is to be used to specify setup the description for position like parameters (offsets, positions, points, etc.).

Right now it's pretty basic and easy to edit. I'm wondering if these functions should be in a position parameter specific category.

====TODO====
* add clamping flag and verbiage for out of region/range coordinates.
</noinclude>{{#if:

{{#if:{{{region|}}}|
  {{#if:{{{local|}}}|

    {{#vardefine:p_{{{1|}}}_desc|position in {{HoverLink|Viewer coordinate frames#Region|Origin is the origin of the region which {{String|owns}} the object.|region}} or [[Viewer coordinate frames#Local|local coordinates]] depending upon the situation{{{desc|}}}}}

    {{#vardefine:p_{{{1|}}}_hover|position in region or local coordinates depending upon the situation{{#if:{{{hover|}}}|{{{hover|}}}|{{{desc|}}}}}}}

  |
    {{#ifeq:{{{1|}}}|point|

      {{#vardefine:p_{{{1|}}}_desc|A point in {{HoverLink|Viewer coordinate frames#Region|Origin is the origin of the region which {{String|owns}} the object.|region-local}} space{{#ifeq:{{{region|}}}|noZ|&#32;(z component is ignored)}}{{{desc|}}}}}

      {{#vardefine:p_{{{1|}}}_hover|A point in region-local space{{#ifeq:{{{region|}}}|noZ|&#32;(z component is ignored)}}{{#if:{{{hover|}}}|{{{hover|}}}|{{{desc|}}}}}}}

    |

      {{#vardefine:p_{{{1|}}}_desc|position in {{HoverLink|Viewer coordinate frames#Region|Origin is the origin of the region which {{String|owns}} the object.|region coordinates}}{{#ifeq:{{{region|}}}|noZ|&#32;(z component is ignored)}}{{{desc|}}}}}

      {{#vardefine:p_{{{1|}}}_hover|position in region coordinates{{#ifeq:{{{region|}}}|noZ|&#32;(z component is ignored)}}{{#if:{{{hover|}}}|{{{hover|}}}|{{{desc|}}}}}}}

    }}
  }}
|
  {{#if:{{{local|}}}|

    {{#ifeq:{{{1|}}}|offset|

      {{LSL Function/offset|{{{1|}}}|local={{{local}}}}}

    |

      {{#vardefine:p_{{{1|}}}_desc|position in [[Viewer coordinate frames#Local|local coordinates]]{{{desc|}}}}}

      {{#vardefine:p_{{{1|}}}_hover|position in local coordinates{{#if:{{{hover|}}}|{{{hover|}}}|{{{desc|}}}}}}}

    }}
  }}
}}

}}
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.