Jump to content

How do I Reduce Smoke Opacity (smoke particles)

Luxz Blessed

You are about to reply to a thread that has been inactive for 4071 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts


i tried playing with the   Start alpha (transparency) End alpha (transparency) value  by  going up and down with numbers

but i never saw a change in the particles  after saving the script each time i changed it.


am i changing the wrong thing?



// Particle Script 0.3
// Created by Ama Omega
// 10-10-2003

// Mask Flags - set to TRUE to enable
integer glow = TRUE;            // Make the particles glow
integer bounce = FALSE;          // Make particles bounce on Z plan of object
integer interpColor = TRUE;     // Go from start to end color
integer interpSize = TRUE;      // Go from start to end size
integer wind = FALSE;           // Particles effected by wind
integer followSource = FALSE;    // Particles follow the source
integer followVel = TRUE;       // Particles turn to velocity direction

// Choose a pattern from the following:
integer pattern = PSYS_SRC_PATTERN_ANGLE;

// Select a target for particles to go towards
// "" for no target, "owner" will follow object owner 
//    and "self" will target this object
//    or put the key of an object for particles to go to
key target = "";

// Particle paramaters
float age = 20.0;                  // Life of each particle
float maxSpeed = 0.02;            // Max speed each particle is spit out at
float minSpeed = 0.02;            // Min speed each particle is spit out at
string texture;                 // Texture used for particles, default used if blank
float startAlpha = 1;           // Start alpha (transparency) value
float endAlpha = 0;           // End alpha (transparency) value
vector startColor = <0.6,0.6,0.6>;    // Start color of particles <R,G,B>
vector endColor = <0.6,0.6,0.6>;      // End color of particles <R,G,B> (if interpColor == TRUE)
vector startSize = <0.1,0.2,0.1>;     // Start size of particles 
vector endSize = <0.3,0.5,0.3>;       // End size of particles (if interpSize == TRUE)
vector push = <0,0,0>;          // Force pushed on particles

// System paramaters
float rate = 0.02;            // How fast (rate) to emit particles
float radius = 0.03;          // Radius to emit particles for BURST pattern
integer count = 1;        // How many particles to emit per BURST 
float outerAngle = 3;    // Outer angle for all ANGLE patterns
float innerAngle = 0.9;    // Inner angle for all ANGLE patterns
float beginAngle = 0;    // Angle Begin for all ANGLE patterns
float endAngle = PI;    //Angle End for all ANGLE patterns

vector omega = <0,0,0>;    // Rotation of ANGLE patterns around the source
float life = 0;             // Life in seconds for the system to make particles

// Script variables
integer flags;

    flags = 0;
    if (target == "owner") target = llGetOwner();
    if (target == "self") target = llGetKey();
    if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
    if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
    if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
    if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
    if (wind) flags = flags | PSYS_PART_WIND_MASK;
    if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
    if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
    if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;

    llParticleSystem([  PSYS_PART_MAX_AGE,age,
                        PSYS_PART_START_COLOR, startColor,
                        PSYS_PART_END_COLOR, endColor,
                        PSYS_SRC_PATTERN, pattern,
                        PSYS_SRC_ACCEL, push,
                        PSYS_SRC_OMEGA, omega,
                        PSYS_SRC_MAX_AGE, life,
                        PSYS_SRC_TEXTURE, texture,
                        PSYS_PART_START_ALPHA, startAlpha,
                        PSYS_PART_END_ALPHA, endAlpha

integer channel = 22;

        llListen(channel, "", llGetOwner(), "");

    listen(integer channel, string name, key id, string message)
        if (message == "smoke hide")
            llSetLinkAlpha( LINK_SET, 0, ALL_SIDES );
            llInstantMessage( llGetOwner(), "Smokey Feet hidden." );
                } else if (message == "smoke show") {
            llSetLinkAlpha( LINK_SET, 1, ALL_SIDES );
            llInstantMessage( llGetOwner(), "Smokey Feet shown." );


Link to comment
Share on other sites

float startAlpha = 0.1; . . . the numbers start from 0.01 and go up to 1, to make it lower use 0.01 or 0.3 or 0.75 or anything like that.

I forgot to add you may want to end alpha = 0, (with zero) in cases where you are making smoke. This way it fades away at the end and disappears nicely instead of just stopping suddenly.


Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 4071 days.

Please take a moment to consider if this thread is worth bumping.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...