default { touch_start(integer n) { if (! llGetAttached()) // request attach llRequestPermissions(llDetectedKey(0), PERMISSION_ATTACH); else if (llDetectedKey(0) == llGetOwner()) // only the wearer can detach // request permissions again for detach (permissions are lost when the object attaches) llRequestPermissions(llGetOwner(), PERMISSION_ATTACH); } run_time_permissions(integer perms) { if (perms & PERMISSION_ATTACH) { // Detach if already attached; otherwise attach if (llGetAttached()) llDetachFromAvatar(); else llAttachToAvatarTemp(0); } else llOwnerSay("Attach permission request denied, not attaching"); } }