User Tools

Site Tools


4rpl:commands:func_awake

This is an old revision of the document!


Index

:Awake

Description

:Awake is called whenever a unit with this script attached is created. This can happen at game load, or during a game when a unit is created with CreateUnit.

For Global Control scripts, :Awake runs during a game frame, either before units are processed (for the Pre- phase) or after units are processed (for the Post- phase). Here, both :Awake and :Once run alongside each other, and depending on whether the script is marked to run while paused or not, , either during a paused frame or an unpaused frame. Because of this, :Awake in Global Control scripts will always run after :Awake in units. Key difference between :Awake and :Once remains where :Awake will run again when the map is loaded, but :Once will not.

Awake and Once in Unit and Global Control scripts

Execution order of Global Control scripts which run while paused:

Execution order of Global Control scripts which do not run while paused:

Technical explanation

A critical distinction exists between scripts attached to units and scripts scheduled to run during Pre- or Post- phases of Global Control.

Functionally, the :Awake function in pre- or Post Global Control phases are equivalent to a :Once function. It is not executed until the appropriate moment in processing (before or after all units are processed for every game tick). This may cause execution of :Awake functions to appear in the incorrect order, where each unit will execute it's :Awake function as it is instantiated during map load (either initial load or load from a save, there is no difference), and the :Awake in a Global Control script will execute at the beginning or end, respectively, of a game tick.

Examples

:Awake
   SetUnitDebugText(self "I Live")
4rpl/commands/func_awake.1633541862.txt.gz · Last modified: 2021/10/06 13:37 by Grabz