Timestamps

Stored Timestamps

The Grapple Component and the Grapple Object  store the exact moment at which some events occur in so called timestamp variables. The following Timestamps are stored:


On Grapple Component

These timestamps are mainly meant for internal use on the Grapple Component

Timestamp - Grapple Settings Applied/RevertedThe time function Apply/ Revert - All Pending Grapple Data was used. 
Timestamp - Last Grapple Attempt TickThe last time a Grapple Attempt was performed in every tick mode. 


On Grapple Object

These timestamps can be accessed using function Get Timestamp on the Grapple Object.

Timestamp - Last User Command ReceivedRefers to the time the last User Command was received by this Grapple Object.
Timestamp - Grapple Sequence InitiatedRefers to the time the Grapple Sequence based on this Object was initiated.
Timestamp - CustomA custom timestamp that can be set using function Set Custom Timestamp based on Current Time or by directly accessing variable Timestamp - Custom.
Timestamp - Last Participant UpdateRefers to the time function Update Participants was last used on this Grapple Object.


Relevant Functions

The following functions can be used to access and modify timestamps.


On Grapple component

Calculate Delay SinceCalculates the delay since the input time. Returns 0 if an invalid timestamp (i.e. one with a value smaller than 0) negative value is provided.        
Make Timestamp from Current TimeGet the current server world time from the Game State
Generate Timestamp if InvalidGenerates a timestamp if the input timestamp is not valid (value smaller than 0).


On Grapple Object

Get TimestampGets the stored time based on a timestamp slot.
Get Delay Since TimestampReturns the time that has passed since the specified timestamp.
Set Custom Timestamp based on Current TimeSet the value of  variable Timestamp - Custom based on the current time.


Usage

Replication on Input Functions

Many Input Functions provide the option to specify a timestamp. This can be useful in case the Input Function is replicated.  If an invalid timestamp (i.e. a negative value) is provided, the Grapple Component will generate a timestamp on the server and replicate it to all Clients. This is the optimal way to manage timestamps, so it is recommended to leave the timestamp parameter on input functions at its default value (-1).


Corrections when applying Grapple Data

When applying Grapple Data, the Grapple Component can make the following corrections in order to compensate latency between different connections:

  • Increase the animation start time. To enable or disable this behaviour, modify variable Apply Timestamp to Animation Start Time in the Global Grapple Dataof your Grapple Object. 
  • Shorten the duration of the Reposition. To enable or disable this behaviour, modify variable modify variable Apply Timestamp to Reposition Duration in the Global Grapple Data of your Grapple Object.


Corrections to Queued Event delays

Users can make use of timestamps when adding Queued Events. When using function Add Queued Event, set input parameter Timeframe to the timestamp you wish to use.

To use a custom (user-defined) timestamp, call function Set Custom Timestamp based on Current Time or modify variable Timestamp - Custom before adding the Queued Event.

If you want to add a Queued Event without any compensation based on timestamps, set the Timeframe to 'current time'.