# Complete damage factor on original-model contacts RE-711. Reproduce with `python3 scripts/analyze_qvm_damage_complete.py`; check with `python3 scripts/test_qvm_damage_complete.py`. The [machine report](qvm-damage-complete.json) retains source identity and bounded fixtures. The complete289594 body now executes289595–290490 with recovered32155/32117 inventory calls and explicitly captured278003 protection notifications. Original context rows1/2/4/5 are copied verbatim, preserving their category and parameter word; supplied weapon, equipment, clock, flags and client state are labeled fixture inputs. An independent complete-call oracle checks return, location output, accumulator, every tracked external client field and attacker attribution. Mode/protection and nonpositive-factor returns precede the final override. The weapon4 cubic complement in local36 changes with distance but is never loaded by later instructions in this function: tests demonstrate identical returns with differing cubic locals. Distance still affects its wound-meter threshold. This is factor/wound computation, not211239 health/armor damage, event publication, live caller legality or original-executable parity. No original executable/full QVM/native collision/physics/rendering executes. Native responses and legal input domains are supplied or unverified where stated; full runtime/macOS/Linux Rust/Bevy/Solari gameplay remains open.