# QVM consumer batch: RE-560–569 Ten separately committed research tasks continue the movement work into weapon request, animation, resource and event consumers. These are bounded interpretations of the verified shipped qagame instruction image, with independent formula/state tests and reproducible reports. They add no Rust gameplay or native reference execution. | Task | Recovered scope | Evidence | | --- | --- | --- | | RE-560 | Complete42486 freeflight with friction, three-axis wish, acceleration and direct position | [Freeflight](QVM_FREEFLIGHT.md) | | RE-561 | Complete48716 transition events and actual two-slot queue | [Water events](QVM_WATER_EVENTS.md) | | RE-562 | Complete49117 torso priority and weapon-class jump dispatch | [Torso selector](QVM_TORSO_SELECTOR.md) | | RE-563 | Complete49652 reload request, packed gates, timer/animation/event | [Reload request](QVM_RELOAD_REQUEST.md) | | RE-564 | Complete49918 interaction with trace contract and actual32155/32117 item lookup | [Interaction](QVM_INTERACTION_REQUEST.md) | | RE-565 | Complete50250 edge latch,50309 availability and50397 resource countdown | [Packed controls](QVM_PACKED_CONTROLS.md) | | RE-566 | Complete49327 mode switch and bounded50746 prefix through50871 | [Weapon prefix](QVM_WEAPON_PREFIX.md) | | RE-567 |47884 prefix and complete airborne branch through48713 | [Airborne locomotion](QVM_LOCOMOTION_PREFIX.md) | | RE-568 | Complete47884 grounded/airborne stance, gait, bob and footsteps | [Locomotion](QVM_LOCOMOTION.md) | | RE-569 | Actual main request/interaction segment leading into suspended weapon prefix; separately supplied animation/event segment | [Main consumers](QVM_MAIN_CONSUMERS.md) | ## Evidence and limits Every task has a source-identified JSON report, a generator and four independent tests. The completed batch adds40 tests to the759-test baseline. Reports stay below the2MiB normal-Git cap; generation is deterministic. Original payloads remain outside normal Git. The bounded call driver now accepts numeric LEAVE traces without a stop field; the shared instruction evaluator itself is unchanged. Initialized weapon words and class jump tables are file-backed evidence, not verified live configuration. Animation durations are supplied321 records, except marked boundary fixtures. Sqrt responses use finite float32 ordinary math. Interaction trace records are supplied; their geometry is not evaluated by a native collision engine. Synthetic invalid/overflow inputs isolate VM arithmetic and do not establish legal gameplay domains. RE-569 does **not** complete a main tick. It evaluates54444..54451 (reload and interaction), then inspects50746 only through50871, keeping the caller suspended before any missing weapon continuation returns. The separate54455..54463 segment starts from explicitly supplied post-weapon state. It does not transfer state across the missing50872..53045 body. Final native vector snapping54471 is also omitted. ## Concrete findings - Freeflight multiplies command scale by1.5 before three-axis wish construction, uses coefficient8 acceleration and integrates only when a velocity component has absolute value strictly above1. - Water0→3 and3→0 each produce two events. Entry101 requires vertical velocity strictly below−500; equality selects100. - Reload tests magazine equality with capacity, replaces a timer even if it was already positive, and does not itself transfer ammo. In the main segment its timer blocks the immediately following interaction, then the weapon prefix subtracts the current dt. - Interaction's item19 check searches only16 low-byte inventory slots and requires positive health; it selects750 versus1500. Its direct action branch uses1000 and reverses animation/event call order. - Resource drain uses the full dt on the tick a countdown expires. The weapon prefix can retain a negative weapon timer before later, unrecovered processing. - Locomotion speed is FRAME216, distinct from PS216. Bob crossings drive surface/water events; surface8192 suppresses the dry footstep. Later locomotion torso requests can supersede the earlier torso selector when helper guards allow. ## Next work 1. Recover weapon selection48798 and completion49028, including inventory slots, packed mode, timer and animation/event children. 2. Recover helper50525 with its native request ABI and all callers. 3. Partition50746 from50872 onward into reload, firing, delay, mode and special-weapon branches; record every unresolved child before interpreting each branch. 4. Reconstruct actual ammunition transfer, projectile/hitscan requests, spread/recoil and firing-event consumers without treating opaque native calls as successful. 5. Connect50309 availability to real callers and configuration writers; identify PS188/196 resource semantics and legal rate domains. 6. Complete the main final native vector snap and remaining prefix/scheduler effects, then compose full ticks only after the weapon body returns with recovered effects. 7. Validate finite fixtures against original execution and collision-consistent traces, including legal command/state transitions and event-ring pressure. 8. Map numeric animation and event IDs to actual skeletal/audio assets, preserving variants and provenance. 9. Continue native/DLL/network/protocol/rendering/material and whole-content coverage from the broader todo-list. 10. Establish the first Rust/Bevy/Solari runtime slice and macOS/Linux validation; these bounded research tasks do not count as a playable game or platform completion. The subsequent [RE-571–580 weapon batch](QVM_WEAPON_BATCH.md) recovers selection/completion and pre-firing continuation through51801, including actual early-return main handoffs. The missing-body boundary above describes this earlier batch; the new report records the narrower remaining51802+ scope.