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.
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.
// 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);
}
}
Frei nutzbar, änderbar und in eigenen Kreationen verwendbar, auch in solchen, die du verkaufst.
How to set it up
- Put the script in the object you want to spin and save. It starts turning right away.
- Change SPIN_AXIS if it turns the wrong way round, and SPIN_SPEED to make it faster or slower.
- 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.