From Second Life Wiki
Revision as of 21:02, 3 August 2012 by Strife Onizuka (Talk | contribs)

Jump to: navigation, search


Event: attach( key id ){ ; }

Triggered in an object when the object attaches or detaches from agent.

• key id the avatar if attached, if not attached NULL_KEY.



  1. When the object is attached to an avatar
    • From the ground
    • From inventory
    • When the avatar wearing the object logs in
  2. When object is detached (id == NULL_KEY)
    • Dropped to the ground
    • Derezzed to inventory
    • When the avatar wearing the object logs out (does not occur with current versions, but scripters should anticipate the possibility)

Not Triggered

  1. When the avatar wearing the object teleports
  2. When the avatar wearing the object moves from one region to another
  3. When the attachment is detached after being attached with llAttachToAvatarTemp.
    • There is no way to detect this at this moment.


  • When detached to inventory, an object is only given limited time to execute its attach events. If these events are active when the script derezzes but have not completed, execution will finish when the object is next rezzed. [1] If the script is busy handling a different event at detach time, an attach event with id=NULL_KEY can happen on the next rez, followed by one with the wearer's key. To verify a real detach, check that id == NULL_KEY AND llGetAttached() == 0.
  • If the script is busy with a complex event handler before it is taken to inventory, the event queue can overflow, leaving no room to capture new events. The queue is preserved, so attach and on_rez may not be triggered the next time the object is rezzed. To guard against this possibility, llGetAttached can be checked in other events.
All Issues ~ Search JIRA for related Bugs


The following is a simplified example of the attach event. The variable id will be the key of the avatar the scripted object is attached to otherwise it will take on the value of NULL_KEY. The conditional if statement is used to determine the value of the variable id. <lsl>default {

   attach(key id)
       if(id)//tests if it is a valid key and not NULL_KEY
           llSay(PUBLIC_CHANNEL,"I have been attached!");
           llSay(PUBLIC_CHANNEL,"I have been detached!");



on_rez & attach

on_rez will be triggered prior to attach when attaching from inventory or during login.

See Also


• on_rez


• llAttachToAvatar
• llDetachFromAvatar
• llGetAttached


• Attachment

Deep Notes


event void attach( key id );