Second Life today in one place Gifts & freebies updated every hour 7 languages Free to list your store
12:49 SLT List your event+ List
Grid issue
  • Planned: Scheduled Billing Maintenance, Mon, Nov 16 09:30–10:30 SLT
  • Grid status: Unscheduled Group Chat Maintenance (investigating)
  • On now: Unitarian Universalist Saturday Service in UUtopia
  • On now: The Dharma of Community: Buddhist Society and the Householder
  • On now: SLCS Harvest Fest: Games, Music and Fun at Cheertopia
  • 14:00 SLT: NAD GOUGH Live at Moondance in Cascadia, 2:00 PM SLT
  • News: REZZ MALL: Second Life brands in one web mall
  • Viewer: Second Life Viewer 26.5 Adds Chat Modernization
  • Planned: Scheduled Billing Maintenance, Mon, Nov 16 09:30–10:30 SLT
  • Grid status: Unscheduled Group Chat Maintenance (investigating)
  • On now: Unitarian Universalist Saturday Service in UUtopia
  • On now: The Dharma of Community: Buddhist Society and the Householder
  • On now: SLCS Harvest Fest: Games, Music and Fun at Cheertopia
  • 14:00 SLT: NAD GOUGH Live at Moondance in Cascadia, 2:00 PM SLT
  • News: REZZ MALL: Second Life brands in one web mall
  • Viewer: Second Life Viewer 26.5 Adds Chat Modernization
LSL script

LSL rotate script: smooth spinning object

Free LSL rotation script for Second Life: make signs, fans, wheels and display stands spin smoothly, choose axis and speed, touch to start and stop.

31 lines ·

A spinning sign or turning product stand catches the eye. This rotate script uses smooth client-side rotation: each viewer draws the spin itself, so it looks fluid and puts almost no load on the region.

lsl-rotate-script.lsl · 31 lines Check this script
// Smooth Rotation (spin) - free LSL script from WhatSL (https://whatsl.com/scripts/lsl-rotate-script)
// Free to use, change and put in your own creations, also ones you sell.
//
// Makes the object spin smoothly, for example a sign, a fan or a display stand.
// The spin is drawn by each viewer, so it costs the region almost nothing.

vector  SPIN_AXIS    = <0.0, 0.0, 1.0>;  // <0,0,1> = turn around the up axis like a turntable
float   SPIN_SPEED   = 0.5;              // radians per second; a negative number turns the other way
integer TOUCH_TOGGLE = TRUE;             // TRUE = touch to start and stop

integer gOn = TRUE;

spin(integer on)
{
    if (on) llTargetOmega(SPIN_AXIS, SPIN_SPEED, 1.0);
    else llTargetOmega(SPIN_AXIS, 0.0, 0.0);
    gOn = on;
}

default
{
    state_entry()
    {
        spin(TRUE);
    }

    touch_start(integer total)
    {
        if (TOUCH_TOGGLE) spin(!gOn);
    }
}

Free to use, change and put in your own creations, also ones you sell.

How to set it up

  1. Put the script in the object you want to spin and save. It starts turning right away.
  2. Change SPIN_AXIS if it turns the wrong way round, and SPIN_SPEED to make it faster or slower.
  3. With TOUCH_TOGGLE on, touch the object to stop or start it.

Settings

  • SPIN_AXIS: the axis to turn around. <0,0,1> turns like a turntable, <1,0,0> rolls like a wheel, <0,1,0> flips forwards.
  • SPIN_SPEED: radians per second. 0.5 is a calm turn, 3.0 is fast. Negative numbers turn the other way.
  • TOUCH_TOGGLE: TRUE lets visitors stop and start the spin by touching it.

Tips

  • In a linked object, put the script in a child prim to spin only that part, such as fan blades or a wheel.
  • Because each viewer draws the spin, different people can see the object at a slightly different angle. That is normal.

Frequently asked questions

Why does the object jump back when I edit it?

Smooth rotation is only drawn by viewers; the object's real rotation does not change. When you edit it, you see its real rotation.

How do I stop the spin for good?

Set SPIN_SPEED to 0.0 and save, or touch it with TOUCH_TOGGLE on, then delete the script.

Does it work on physical objects?

This script is meant for normal, non-physical objects such as signs and decorations.

Check your own script: LSL syntax checker →

More scriptsAll scripts
LSL script · 55 lines

LSL door script: touch to open, closes by itself

Free LSL door script for Second Life. Touch to open and close, the door swings on its hinge and closes by itself after a few seconds. Sounds optional.

LSL script · 69 lines

LSL sit and pose script for chairs and pose balls

Free LSL sit script for Second Life chairs, benches and pose balls: sit and play your own animation, set the sit position, hide the ball while in use.

LSL script · 96 lines

LSL tip jar script with thank-you message and total

Free LSL tip jar script for Second Life clubs, DJs, hosts and stores: quick pay buttons, a thank-you message, the total and last tipper in floating text.