Skip to content

Conversation

@sunzenshen
Copy link
Contributor

Description

When bots are in the OnStuck behavior, bots record where they got stuck and which adjacent NavArea node they were going to in the path reservation system, so that other bots can avoid those trouble areas. This is intended to help smooth out bot behaviors in maps where the navmesh generation has not been cleaned up.

Toolchain

  • Windows MSVC VS2022

@sunzenshen sunzenshen requested a review from a team January 10, 2026 07:27
@sunzenshen
Copy link
Contributor Author

One way to test this behavior is to cherry pick the bot following PR #1345, on a branch that doesn't have the NavArea jump eligibility fix #1558, and loading up ntre_oilstain_ctg along with applying the following console script:

sv_neo_bot_cmdr_enable 1;
sv_neo_bot_cmdr_debug_pause_uncommanded 1;
neo_ctg_round_timelimit 99;
bot_class 1;

The above script enables bot commanding, increases the time limit, and forces the bots to choose assault class.

Then at the part of the map where there was a problematic jump clearance issue with the truck trailer, commanding the bots to go to the other side of the trailer leads to them getting stuck:

bot-nav-avoid-onstuck-navareas-start-training-1.mp4

After a few iterations of commanding the bots to cross over to the other side of the trailer, eventually the bots choose paths that avoid common sticking points:

bot-nav-avoid-onstuck-navareas-after-training-2.mp4

The area avoidance penalties can be disabled at any point to revert to the original pathing behavior for comparison:

bot-nav-avoid-onstuck-navareas-after-training-disable-penalty-3.mp4

@sunzenshen sunzenshen added the Bots Related to bot players label Jan 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bots Related to bot players

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant