BulletPoint
The payload passed to hit listeners and recorded for bullet time.
Source: src/System/BulletPoint.cs.
| Field | Type | Meaning |
|---|---|---|
m_properties | BulletProperties | Asset used for the shot, populated on hits and bullet-time path points. |
m_shotId | long | Positive ID shared by every impact and path record from one accepted firing call. |
m_shooter | GameObject | Owner supplied to the per-shot API; null for legacy calls or a destroyed owner. |
m_shotOrigin | Vector3 | Original firing position, distinct from the current ray origin. |
m_shotDirection | Vector3 | Original normalized aiming direction, before zeroing and simulation. |
m_hitCollider | Collider | Actual collider hit, including child hitboxes; null for non-hit points. |
m_hitRigidbody | Rigidbody | Rigidbody attached to the collider, or null for static/non-hit points. |
m_hitType | PointHitType | None, Normal, PenetrationIn, PenetrationOut or Ricochet. |
m_origin | Vector3 | Origin of this ray segment. |
m_endPoint | Vector3 | End of the segment; impact point for a hit. |
m_hitNormal | Vector3 | Surface normal for a hit. |
m_direction | Vector3 | Direction of the ray segment. |
m_velocity | Vector3 | Simulation velocity. |
m_hitTransform | Transform | Unity RaycastHit.transform; may be a rigidbody parent. Use m_hitCollider for the exact hitbox. |
m_kineticEnergy | float | Kinetic energy in joules. |
m_travelTime | float | Simulated time since firing, in seconds. |
m_isPointAfterTargetHit | bool | Internal bullet-time path marker. |
Only use hit-transform and normal data for hit points; a recorded path also contains points with hit type None. For a world-space path direction, use m_endPoint - m_origin: m_velocity is stored in the simulation's velocity representation, not a guaranteed world-space rigidbody velocity.
Optional damage configuration is available through m_properties.DamageProfile; check it for null before reading BaseDamage. The payload does not contain a final damage result. Your game applies modifiers and health changes; see Ammunition damage.
Shot IDs remain the same through penetration, ricochet, bullet-time replay and fallback to normal simulation. They are local runtime identifiers, not persistent or network IDs. Events are global; filter by shooter, target or shot ID. The ID can help implement your own damage deduplication, but RSB does not perform it automatically.
Treat the payload and referenced assets as read-only configuration in listeners. Changing a shared record can affect other listeners or cinematic replay.