Simple Door Script, with three states

This simple door script uses three states — “default”, to set the initial rotation, and “open” and “closed” to switch to that status. Note that the prim for the door needs to have Path Cut Begin at 0.375 and end at 0.875 for this to work.

It’s part of a series of LSL scripts I’m using for give some training courses on LSL 🙂

rotation rotInitial;
default
{
    state_entry()
    {
        rotInitial = llGetRot();
        state closed;
    }
}
state closed
{
    touch_start(integer total_number)
    {
        llSetRot(rotInitial * llEuler2Rot(<0, 0, PI_BY_TWO>));
        state open;
    }
}
state open
{
    touch_start(integer total_number)
    {
        llSetRot(rotInitial);
        state closed;
    }
}

CC BY 4.0 Simple Door Script, with three states by Gwyneth Llewelyn is licensed under a Creative Commons Attribution 4.0 International License.

About Gwyneth Llewelyn

I'm just a virtual girl in a virtual world...

  • Thank you, been looking at door scripts for ages and this one works a treat, I still don’t like the path cut business but hey it works so thanks 🙂

  • Anonymous

    how can we make it turn as a real door and not its axis be in the center? 

  • A very good question, answered right at the top of the page: Note that the prim for the door needs to have Path Cut Begin at 0.375 and end at 0.875 for this to work.