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| (z component is ignored)}}{{{desc|}}}}}
{{#vardefine:p_{{{1|}}}_hover|A point in region-local space{{#ifeq:{{{region|}}}|noZ| (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| (z component is ignored)}}{{{desc|}}}}}
{{#vardefine:p_{{{1|}}}_hover|position in region coordinates{{#ifeq:{{{region|}}}|noZ| (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.