Garry's Mod Wiki

IsFirstTimePredicted

  boolean IsFirstTimePredicted()

Description

Returns if this is the first time this hook was predicted.

This is useful for one-time logic in your SWEPs PrimaryAttack, SecondaryAttack and Reload and other (to prevent those hooks from being called rapidly in succession). It's also useful in a Move hook for when the client predicts movement.

Visit Prediction for more information about this behavior.

This is already used internally for Entity:EmitSound, Weapon:SendWeaponAnim and Entity:FireBullets, but NOT in util.Effect.

Returns

1 boolean
Whether or not this is the first time being predicted.

Example

An override for GM:KeyPress, to work around the hook being called multiple times.

-- Note that for some reason KeyPress and KeyRelease are called multiple times -- for the same key event in multiplayer. function GM:KeyPress(ply, key) if not IsFirstTimePredicted() then return end if not IsValid(ply) or ply != LocalPlayer() then return end if key == IN_SPEED then timer.Simple(0.05, function() RunConsoleCommand("+voicerecord") end) end end