[Physics] Check a stall jump's landing on the heading air control will fly, not the launch velocity
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 22/100
Research direction
The bug sits in the QuakeC bot code: the stall detector around src/argus.qc line 11505 sets ar_jump and turns angles_y, and the jump fires near line 2735, where the landing check in Argus_JumpLandHazard runs on the pre-turn heading. Reproduce with a fixture or targeted probe at the dm4 north-west pocket near 96 389 -296, using the runs/shane_dm4_2026-11-14_ed8926.log tape. Done means the check either refuses the bent flight or holds the approved line, with no jumpveto from a bot already in lava or slime, and stall parity holds on dm4 and dm2.
Written by the indexing model from the issue text.
Description
Problem
Argus_JumpLandHazard (#773) refuses a reachability, stall or escort jump that would land in lava, slime or a void. It predicts the landing from the bot's horizontal velocity at the moment of launch. For the stall jump, that is not the flight the bot then flies.
The stall detector (src/argus.qc, around line 11505) sets ar_jump and, on the same tick, turns angles_y by 120 to 240 degrees; the stall also re-plans the route. The jump fires on the next physics frame (src/argus.qc, around line 2735), and the check approves it on the old heading. Once the bot is airborne, Argus_AirAccelerate follows the new wish heading. Only the predictive gap jump sets the flight latch (ar_sprintstate = 3) that keeps air control on the checked line.
Observed
dm4 human session on the installed build (runs/shane_dm4_2026-11-14_ed8926.log, skill 1), Joe Rogan at about t 100:
| t | Position | Speed | Event |
|---|---|---|---|
| 100.2 | 96.6 389.3 -296 |
85 u/s, heading 246 | stall, then jump; no jumpveto, so the check approved it |
| 100.7 | 25.7 370.6 -252.8 |
201 u/s, heading 115 | airborne, no damage taken, route re-planned on the jump tick |
| 101.2 | 109.8 331.4 -360 |
239 u/s | in the lava pocket, hp 80 |
| about 102.8 | -16 389.7 -360 |
jumpveto, then death to world |
The bot gained 116 u/s in the air and turned about 130 degrees, with no damage, so this was air control.
The trailing jumpveto is a second, smaller defect. The stall jump keeps being attempted, and refused, while the bot is already in lava. A jump from a pocket whose lip is 64 units up cannot clear it (apex about 46 units), so neither the attempt nor the refusal helps.
How common
Across 30 recent dm4 tapes with 88 world deaths, four followed a stall and then a jump within about 3 s. All four landed in the same north-west pocket at z -360. Three are navmesh-ladder tapes (runs/nm_cand2_dm4_*) built before #773, when the stall jump had no landing check at all. On current code this tape is the only case found so far. It is a narrow path, not a dominant lava cause.
Proposal
Make the check describe the flight the bot will actually fly. Either:
- Check the landing along the heading air control will follow after the stall turn (the post-turn
ar_moveyaw), with a speed bound that covers whatArgus_AirAcceleratecan add over the flight time; or - Set the flight latch on the stall jump so air control holds the launch line the check approved.
Option 2 is simpler, but it may defeat the stall jump's purpose of hopping out in a new direction. Option 1 keeps that purpose. Separately, do not attempt or log a stall jump while the bot's feet are in lava or slime (ar_feettype).
Acceptance
- A fixture or targeted probe reproduces a stall jump at the dm4 north-west pocket edge near
96 389 -296, and the fix refuses the bent flight or holds the safe one. - No
jumpvetolines from a bot already in lava or slime. - Stall parity on dm4 and dm2, at least three tapes a side and five on dm2, because the stall jump is the main unstick move.
- Dominant language
- Rust
- Stars
- 4
- Forks
- 0
- Avg merge
- 30m
- Merged PRs (30d)
- 130
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from saworbit/argus
-
bug lab rust-mcp
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
enhancement lab research
Difficulty 4/5 3-5 days Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
enhancement lab rust-mcp
Difficulty 4/5 3-5 days Newbie friendliness 30/100
Maintainers usually reply within 1 day
-
bug lab rust-mcp
Difficulty 4/5 3-5 days Newbie friendliness 42/100
Maintainers usually reply within 1 day
-
tooling
Difficulty 3/5 1-2 days Newbie friendliness 55/100
Maintainers usually reply within 1 day
Similar issues
-
ライブラリを追加Openpriority middle
Difficulty 1/5 Under an hour Newbie friendliness 62/100
KATO-Hiro/AtCoderClans#13015 ·
Maintainers usually reply within 1 day
-
needs-review
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
UCS-Care-Group/mailcraft#1429 ·
Maintainers usually reply within 1 day
-
priority: medium ready
Difficulty 1/5 Under an hour Newbie friendliness 88/100
TusanHomichi/PSIV#646 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
area:tui bug P1
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
agent-of-empires/agent-of-empires#5705 · 1 comment ·
Maintainers usually reply within 1 day