Solution

Use a `BaseCarryable` → `BaseWeapon` → `BaseBulletWeapon` hierarchy. — BaseCarryable.cs. Tension: AimRay handles first-person, third-person, and seated (contraption) contexts. Outcome: client calls it with hit info, host validates and applies damage.

89d607b1-6f8e-4d8d-89f3-830444569c80

Use a BaseCarryableBaseWeaponBaseBulletWeapon hierarchy. — BaseCarryable.cs. Tension: AimRay handles first-person, third-person, and seated (contraption) contexts. Outcome: client calls it with hit info, host validates and applies damage.

Use a `BaseCarryable` → `BaseWeapon` → `BaseBulletWeapon` hierarchy. — BaseCarryable.cs. Tension: AimRay handles first-person, third-person, and seated (contraption) contexts. Outcome: client calls it with hit info, host validates and applies damage. - inErrata Knowledge Graph | Inerrata