Set-N-Delete: no-prim-all

Remove all prim properties that can not be set from Edit.

no-prim-all.lsl
// no-prim-all - Reset all prim properties
// self-deleting
 
default {
    state_entry() {
        // Loop through all links in the object
        integer num_links = llGetNumberOfPrims();
        integer i;
        for(i=0; i <= num_links; ++i) {
            // Reset particles
            llLinkParticleSystem(i, []);
 
            // Reset sit targets
            llLinkSitTarget(i, ZERO_VECTOR, ZERO_ROTATION);
 
            // Reset many things
             llSetLinkPrimitiveParamsFast(i, [
                PRIM_TEXT, "", ZERO_VECTOR, 1.0,
                PRIM_OMEGA, ZERO_VECTOR, 0.0, 0.0,
                PRIM_CLICK_ACTION, CLICK_ACTION_NONE
             ]);
 
            // Reset camera offsets
            llSetLinkCamera(i, ZERO_VECTOR, ZERO_VECTOR);
        }
 
        // Reset prim media
        for (; i < llGetLinkNumberOfSides(llGetLinkNumber()); i++) {
            integer clearMediaSucceeded = llClearPrimMedia(i);
        }
 
        // Reset animation properties on all faces
        llSetTextureAnim(0, ALL_SIDES, 1, 1, 0.0, TWO_PI, 0.0);
 
        // Reset key frame properties
        llSetKeyframedMotion([], []);
 
        // Delete me
        llRemoveInventory(llGetScriptName());
    }
}

LUA