Making Your Poofs Work with HUDDLES

The HUDDLES Poofer Pal and the HUDDLES EZ Animator Deluxe both use the same system to target the poofs that I sell in my store. This page will tell you how to make poofs that are compatible with both of these HUDs. But first, let me explain what a poof and how they use targets.

A poofer is slang for a object that produces a particle effect in SL. Usually a poofer is worn on your avatar. Often they are designed to show their particle effect whenever an avatar teleports to a new location.

If you are interested in making poofs, first you should figure out how to use SL’s particle system. Once you have a created a poofer effect that you like, come back here to see how to make it compatible with my HUDs.
To make a poof that will work in the HUDDLES™ Poofer System:

  1. Make an object which is completely transparent, temporary and phantom.
  2. Give the object a name ending with “hps” like “My Poof hps”
  3. If you are going to give this poof to others or sell it, make sure the object is copyable.

Drop that into the HUDDLE Poofer Pal or EZ Animator Deluxe. When the HUD rezzes it, using llRezObject, it will rez the object right at the center of your avatar, because the name of the object ends with “hps.”

Now you want a script that when it rezzes, it uses llParticleSystem to make the poofer effect. I make my poofs die after 10 or 20 seconds using llDie(). Also, if you want your poof to recognize when it’s rezzed from a Poofer Pal or an EZ Animator , these HUDs rezzes objects with 999 as the start parameter.

Targeting is a little more tricky. If one of my targetable poofs rezzes with 999 as the parameter, it does the following in the on_rez event:

llListen( 999, “”, NULL_KEY, “” );
kTarget = llGetOwner();
llSetAlpha( 0.0, ALL_SIDES );
llSay( 999, “GET_TARGET” );
llSetTimerEvent( 10.0 );

It listens to channel 999. It sets the target to the owner, in case the HUDDLE doesn’t transmit the target, then it says “GET_TARGET”, to tell the HUDDLE to say the target ID. The timer event is to make the object “die” after 10 seconds.

Now here is how I get the target from the HUDDLE in the listen event:

listen( integer chan, string name, key id, string message )


   list words = llParseString2List( message, [ " " ], [ ] );

   string command = llList2String( words, 0 );

   if( llGetOwnerKey( id ) == llGetOwner() )


      string command = llGetSubString( message, 0, llSubStringIndex( message, "|" ) - 1 );

      if ( command == "SET_TARGET" )


         kTarget = (key)llGetSubString( message, llSubStringIndex( message, "|" ) + 1, -1 );

         llParticleSystem( pParameters + [ PSYS_SRC_TARGET_KEY, kTarget ] );




pParameters is the list of parameters for the poof. Let me know if this does not make sense. Feel free to ask me questions. Although, I do expect that you learn how to create particle effects on your own.

If you decide to sell poofs that are compatible with with my HUDs please respect my following requests:

  1. If you sell these as an add-on to the HUDDLES Poofer Pal or EZ Animator Deluxe, please use the ™ after HUDDLES to show that this is a trademark
  2. Please set up a landmark giver to my store, where you sell it. I could even set up an affiliate vendor at your shop, and you could earn 10% when they buy their EZAD.
If you are reading this page using the Google translator, please note that macro commands like [NAME] and [WHISPER] only work if use the English word in the brackets and not the translated word. Be sure to view the page in English to make sure you are using the correct command in your macros.

5 Responses to “Making Your Poofs Work with HUDDLES”

  1. Needles Balbozar Says:

    I haven’t tried this yet (I will in a few hours) , but since there aren’t any other comments to this page yet I just wanted to say that I’ve read through the whole thing and it all makes sense and looks about as clear-cut as you could make it without actually giving any scripting lessons. I really like the way you’ve implemented this. That said, some coding optimization suggestions for the listen event that you posted (realizing that it’s probably just a cut & paste of some more complicated one you use elsewhere, but I like to give general coding tips whenever I spot them): The first two lines of the event do nothing, you initialize words and use that to initialize command (a neat trick) but then go on to parse the command a different way without ever using it. Also even if those lines were needed, rather than nesting things as you have you’re probably better off making the first line of the event something like

    if(llGetOwnerKey(id)!=llGetOwner()) return;

    Based on the theory that it’s always best to bail out of a function as soon as possible in a situation like this where the condition is more likely to be the rule than the exception (unless you’re standing alone in a room with no other scripts talking on 999)


  2. Ravanne Sullivan Says:

    I’ve made up a number of poofs based on this and have tested them in both my EZAD and Poofer Pal and they work great. I am selling them in a vendor in my store right next to my Huddles Affiliate Vendor.

  3. Tanya Says:

    Hi Ravanne, i was there but could not find your find your poofs 🙁 Somebody else has any good places where to get poofs that work in the Pal?? I just bought that Pal yesterday also, because it’s the only way to AND stay dancing AND do poofing 🙂 But it works sublime 🙂

  4. Kiri Says:

    Couple of comments:

    HPS objects need to be set copy if they are to be rezzed by the HUDDLES.

    Why buy a poofer pal when HUDDLES is copy? Rename it Poofer and have at it?

  5. Keiki Lemieux Says:

    Kiri: You are right. If you have the EZ Animator Deluxe, you probably don’t need a Poofer Pal. However, if you buy the Poofer Pal Deluxe, you will get a copy of all the poofs I sell. It’s quite a bargain compared to buying them all separately.

Leave a Reply

You must be logged in to post a comment.