Experience permissions denied

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Description

Event: experience_permissions_denied( key agent_id, integer reason ){ ; }

The agent has denied experience permission.

• key agent_id avatar UUID that denied permission.
• integer reason Reason for denial; one of the Experience Tools XP_ERROR_* errors flags.

This event may be generated in many cases:

  • In response to a call to llRequestExperiencePermissions if any of the following is true:
    • The agent does not respond to the experience permission dialog. This will happen after a long delay if the agent is running a viewer which doesn't understand the request or if the agent has blocked the object.
    • The agent selects "Block Experience" in the experience permission dialog.
    • The agent has previously blocked the experience through another experience permission dialog or through the experience profile.
    • An attachment is asking for permission from an agent other than its owner.
    • The experience cannot run on the region because it is blocked or exceeds the maturity rating of the region.
  • The experience can no longer run:
    • The script has moved to a region where the experience cannot run because it is blocked or it exceeds the maturity rating of the region.
    • The script has moved to a parcel where it is blocked or not allowed.
    • The agent has blocked the experience from the experience profile.
LSL Constant Message returned via llGetExperienceErrorMessage Description
XP_ERROR_NONE 0 no error No error was detected.
XP_ERROR_THROTTLED 1 exceeded throttle The call failed due to too many recent calls.
XP_ERROR_EXPERIENCES_DISABLED 2 experiences are disabled The region currently has experiences disabled.
XP_ERROR_INVALID_PARAMETERS 3 invalid parameters One of the string arguments was too big to fit in the key-value store.
XP_ERROR_NOT_PERMITTED 4 operation not permitted Experience permissions were denied by the user.
XP_ERROR_NO_EXPERIENCE 5 script not associated with an experience This script is not associated with an experience.
XP_ERROR_NOT_FOUND 6 not found The sim was unable to verify the validity of the experience. Retrying after a short wait is advised.
XP_ERROR_INVALID_EXPERIENCE 7 invalid experience The script is associated with an experience that no longer exists.
XP_ERROR_EXPERIENCE_DISABLED 8 experience is disabled The experience owner has temporarily disabled the experience.
XP_ERROR_EXPERIENCE_SUSPENDED 9 experience is suspended The experience has been suspended by Linden Lab customer support.
XP_ERROR_UNKNOWN_ERROR 10 unknown error An unknown error not covered by any of the other predetermined error states.
XP_ERROR_QUOTA_EXCEEDED 11 experience data quota exceeded An attempt to write data to the key-value store failed due to the data quota being met.
XP_ERROR_STORE_DISABLED 12 key-value store is disabled They key-value store is currently disabled on this region.
XP_ERROR_STORAGE_EXCEPTION 13 key-value store communication failed Unable to communicate with the key-value store.
XP_ERROR_KEY_NOT_FOUND 14 key doesn't exist They requested key does not exist.
XP_ERROR_RETRY_UPDATE 15 retry update A checked update failed due to an out of date request.
XP_ERROR_MATURITY_EXCEEDED 16 experience content rating too high The content rating of the experience exceeds that of the region.
XP_ERROR_NOT_PERMITTED_LAND 17 not allowed to run on this land The experience is blocked or not enabled for this land.
XP_ERROR_REQUEST_PERM_TIMEOUT 18 experience permissions request timed out The request for experience permissions was ignored.

Examples

// Simple experience watcher
string denied_region = "";
string experience_name = "";

default{
    state_entry(){
        llRequestExperiencePermissions(llGetOwner(), "");
        experience_name = llList2String(llGetExperienceDetails(NULL_KEY), 0);
    }

    experience_permissions(key agent){
        denied_region="";
        llOwnerSay("in "+ experience_name);
    }
    
    experience_permissions_denied(key agent, integer reason){
        denied_region = llGetRegionName( );
        llOwnerSay("out "+ experience_name);
        
    }
    
    changed(integer what){
        if(denied_region != "" && denied_region != llGetRegionName()){
           llRequestExperiencePermissions(llGetOwner(), "");
        }
    } 
}

Deep Notes

Signature

event void experience_permissions_denied( key agent_id, integer reason );