From Bohemia Interactive Community
Revision as of 11:19, 10 June 2021 by Lou Montana (talk | contribs) (Text replacement - "| Nothing |x1=" to "|r1= Nothing |x1=")
Jump to navigation Jump to search
Hover & click on the images for description


Description needed
Program Flow


Syntax needed
delay: Number - in seconds. Negative values will not be considered.
Return Value:


Example 1:
[] spawn { sleep 5; hint "after (at least) 5 seconds..."; };
Example 2:
sleep 5 + random 10; // incorrect - will only sleep for 5 seconds, as it will be interpreted as (sleep 5) (+(random 10)) sleep (5 + random 10); // correct
Example 3:
if (isMultiplayer) then { uiSleep 3; // more precise in (non-pausable) multiplayer } else { sleep 3; // sleep gets paused as the game is, usually wanted behaviour };

Additional Information

See also:
uiSleepwaitUntilcanSuspendexecVMspawnsleep vs uiSleepControl Structures


Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Posted on December 20, 2006 - 19:53
Sleep suspends both SQF functions and SQF scripts. In functions, the calling script is still in suspension due to waiting for a return from the call command. The game engine will continue, however. See Function for more detail.
Posted on February 12, 2007 - 20:16
Sleep durations between .0005 and .02 will cause the same delay (roughly .02 seconds).
Delays of .0005 and less have no effect (ie, the sleep call will return immediately).
The comment above is a little misleading. The game engine appears to work by processing frames and then checking to see whether scripts are available to execute. Sleep causes the script/function to be suspended until at least the specified time has elapsed. To wait for the next frame, or give other scripts a chance to run, use Sleep 0.001.
Posted on July 16, 2007 - 00:13
For scripts called by the Init Event Handler the first sleep command will suspend the script at the briefing screen at the start of a mission. The script will continue after the briefing screen, when actually "in game".
Posted on October 18, 2014 - 21:24 (UTC)
For server scripts, if you are creating "while true" timers, it is best to use uiSleep instead, as the sleep from that command is not slowed down by simulation / server lag, so the timers will execute at intervals that are much closer to real time, even under heavy lag.