VRChat Contact Receivers do not consistently fire their trigger parameters if a Contact Sender is already within the receiver's radius upon initialization (e.g., when an avatar first loads, or when an object is enabled). The contact is only recognized after the Sender exits and re-enters the radius.
Reproduction Steps:
Setup an avatar with a Contact Receiver (Type: Proximity or Constant) and a Contact Sender.
  • Ensure the Sender is positioned inside the Receiver's radius by default.
  • Load the avatar in-game or toggle the game object containing the Contact Sender 'ON'.
  • Observed Result: The Animator parameter associated with the Receiver does not update/trigger. The contact is ignored until movement occurs.
  • Expected Result: The Contact system should perform an immediate check on OnEnable to see if a valid Sender is already present and update the parameter accordingly.
Impact: This breaks "passive" avatar features, such as clothing that reacts to the wearer's own body or props that should be "attached" or "active" by default based on proximity. It requires users to move their limbs or toggle objects twice to get the system to "wake up."