From Second Life Wiki
Revision as of 14:54, 8 May 2019 by Lou Netizen (Talk | contribs)

Jump to: navigation, search


Function: float llGetTime( );

Returns a float that is script time in seconds with subsecond precision since the script started, was last reset, or call to either llResetTime or llGetAndResetTime.


Script time matches normal time, it is unaffected by time dilation. For example, if you call llResetTime on two objects in separate simulators at the same time, and later call llGetTime on both at the same time, their values will be equal regardless of differences in dilation.


  • Script time resets when...
  • Script time measures real world time, it is unaffected by time dilation.
  • Due to the way floating point numbers are conceptualised (a 32-bit float), time intervals measured by llGetTime() lose roughly one second of resolution for every six months they represent; thus, after two years llGetTime() can't measure an interval less than four seconds. For very short durations the loss can become significant after only a few days. Use llResetTime or llGetAndResetTime whenever practical to maintain reasonable resolution.
All Issues ~ Search JIRA for related Bugs


default {
    touch_start(integer num_touch)
        float time = llGetTime(); //Instead getting, and then resetting the time, we could use llGetAndReset() to accomplish the same thing.
        llSay(0,(string)time + " seconds have elapsed since the last touch." );
// Distinguish between a single click and a double click
float gHoldTime;
    touch_start(integer total_number)
        float now = llGetTime();
        if (now - gHoldTime < 0.3)
            llSay(PUBLIC_CHANNEL,"Double clicked");
            // Trigger one sequence of actions
        gHoldTime = now;
        if (llGetTime()-gHoldTime > 0.3)
            llSay(PUBLIC_CHANNEL,"Single clicked.");
            // Trigger a different sequence of actions
//  To do time-dependant loops of whatever:
//  for example move 2 meters within 5.0 seconds
float time = 5.0;
float i;
    i = llGetTime()/time;
    // move2meters*i
while (llGetTime() < time);


Script time is the amount of real-world time that the script has been in a running state. It is unaffected by time dilation, but it does not count time while the script is suspended, the user is offline (when in an attachment), the object is in inventory rather than rezzed, etc.

See Also

Deep Notes

All Issues

~ Search JIRA for related Issues
   llGetTime doesn't reset on admin requested sim restart


function float llGetTime();