Skip to content
Tank Behavior and Mechanics

Understanding Anne's Tank: Pursuit, Target Selection, and Terrain Decisions

12 interactive 3D scenes explain why the Tank bunny hops, switches targets, and slows near ladders, along with the behavior differences among 1.x, 2.0, and 2.1.

First, connect the Tank's actions into one sequence

The same Tank may keep jumping in open ground, turn at a wall corner, and suddenly slow before a ladder. Players can easily reduce all these changes to “more speed” or “the AI acting up.” With Anne's ai_tank3, a more useful way to observe it is to ask four questions in order: whom did it select, where is the path about to go, is this hop safe, and will it punch or throw a rock after closing the distance?

This article is for players who want to understand this server's behavior, while preserving parameter and source-code references for server operators investigating problems. Its scope is AI Tanks controlled by ai_tank3; it does not assign one set of values to Tank health, campaign spawn progress, burn rules, or every change across game modes. The room's mode, plugin version, and actual configuration always explain more than “what I saw last time on another server.”

How to use this 3D comparison

The orange scene on the left is pre-refactor 1.0.0.13; the green scene on the right is post-refactor, switchable between 2.0 and 2.1. Blue figures represent Survivors. Select a scene, then click through the key moments. This makes it easier than watching both continuously to tell whether a difference comes from target selection, jump direction, or state recovery after an action ends.

Drag to rotate, scroll to zoom, and right-drag to pan; on a phone, use one finger to rotate and two to zoom. Top view is useful for pursuit routes, while side view shows ladders, low ceilings, and drops. The views are synchronized by default. You can scrub the timeline and select playback speeds from 0.25× to 2×. When focus is not on a button or input, Space toggles playback and the Left and Right Arrow keys move 0.1 seconds at a time. The first two scenes also let you switch among six difficulty tiers and toggle active left-right bunny hopping.

What each of the three versions addresses

Compared versionKey changesWhat to watch for
1.0.0.13Already includes bunny hopping, partial path following, head-rider handling, and rock lead.The old version is not wholly unable to route around obstacles or predict movement; the examples focus on branches it may handle poorly.
2.0.0Organizes path decisions, target selection, overhead-stall handling, and retreat commands into a consistent flow.This iteration focuses on slowing at ladder entrances, selecting targets by path cost, and restoring normal behavior after retreat.
2.1.0 development snapshotAdds airborne path continuation, hop-by-hop left-right alternation at long range, and momentum-preserving transitions over safe ordinary drops.In scenes that do not exercise new logic, 2.0 and 2.1 may behave identically.

When interpreting version differences, first separate rules from parameters. Whether a path supports direct pursuit, whether a ladder entrance needs yielding, and whether target selection considers reachability are behavior rules. The bunny-hop speed cap, force per hop, side-hop angle, and minimum steering angle are difficulty parameters. Raising the difficulty does not let the Tank pass through walls, ignore ladders, or disable all safety checks.

Why does it pass up someone nearby to chase someone farther away?

Looking close on screen does not mean someone is reachable on foot. A on a platform may be only a short straight-line distance from the Tank, but the actual route may go around the other side to find stairs. Ground-level B may be farther away yet easier to reach along the path. Since 2.0, the unified target selector compares bucketed path costs while retaining filters for pinned, incapacitated, and safe-room Survivors.

Here, “path distance” is a bucketed approximation, not a full-map shortest-path calculation every time. To keep small movements by two Survivors from making the Tank snap back and forth, switching targets requires a clear benefit and has about 2 seconds of target stickiness. The target is also frozen while climbing. If the Tank briefly keeps chasing the same person, it may be maintaining its current pursuit rather than failing to notice someone closer.

View scene: The nearest target may not be easy to reach

Even when it sees you, it must first confirm that the route works

Since 2.0, jump direction first consults the NextBot path snapshot. Direct pursuit toward the predicted position is allowed only when the target is visible at a similar height and the path itself supports moving toward it. Otherwise, the Tank tracks a reachable lookahead point on the path. Seeing someone through a transparent window, over a platform edge, or beyond a wall does not make visual distance alone a safe route.

2.1 extends this decision into the air: it refreshes the target or safe lookahead point about every 0.05 seconds and can continue onto the next segment after a corner. Path following begins smooth correction at a 1° difference; direct pursuit uses the minimum angle for the selected difficulty. Check frequency and steering response are different values: a 0.3-second smoothing parameter does not mean the route is checked only every 0.3 seconds. At sharp corners, through occlusion, or when the check budget is exhausted, it may still wait to land before turning.

View scene: Rounding bends and wall corners

Alternating bunny hopping and air steering are two separate features

Alternating bunny hopping changes the lateral offset of each hop. 2.1 requires a target more than 600 hu away, visible on the same level, a path that supports direct pursuit, and a hop that will not cross a special segment such as a ladder. The first side is random; after landing is confirmed, the next hop switches sides, with no random flip in midair. Near the target, around a path turn, or when the side route is blocked, the offset is canceled and the Tank returns to a safe normal pursuit direction. hu is the Hammer distance unit used by maps.

Air steering addresses a different situation: a Survivor moves sideways after the Tank has jumped, making the old direction unsuitable. 2.1 can correct continuously and smoothly within the allowed angle range instead of waiting only for the next hop to redirect. It also validates the remaining flight route before correcting; when the snapshot expires and direct-pursuit conditions are not met, it preserves momentum. This is not unconditional tracking, nor can it turn freely in midair.

Thus, left-right movement disappearing at close range does not mean the feature failed, and failure to follow your reversal immediately does not necessarily mean slow reactions. Check distance and route first, then difficulty. In the first two demo scenes, both sides use the same tier's speed parameters to isolate steering differences; they do not reproduce every old-version default.

Six difficulty tiers: the values that shape pursuit

The values below are the dynamically configured Tank settings in the 2026-09-16 worktree. The first five tiers can be selected automatically; Neri is a fixed tier that must be enabled manually. The listed caps are configuration limits, not spawn-time speeds or average speeds measured from the animation. Terrain, safety checks, and mode overrides may all lower actual speed. Alone can disable Tank bunny hopping through a dedicated override.

DifficultyStop-hopping distance (hu)Bunny-hop speed capContinuation force on each landingFirst-hop force ratio
Easy220500400%
Normal1906004820%
Hard1607005540%
Expert1358006060%
Extreme1208006580%
Neri120100065100%

A larger stop-hopping distance returns the final approach to normal pursuit sooner; it is not punch range. The first-hop ratio affects only the extra force gained when transitioning from running into the first hop. Easy's 0% does not mean the Tank cannot jump. Hops after landing still use full force, so the first hop alone cannot indicate speed over the whole pursuit.

DifficultyMinimum direct-pursuit correction angleAlternating bunny-hop offset anglePost-release rock protection (seconds)
Easy10°0
Normal10°0.05
Hard12°0.10
Expert15°0.15
Extreme18°0.20
Neri20°0.25

Active side hopping begins at 600 hu in all six tiers, and the maximum direct-pursuit correction angle is 89° for all of them. A smaller minimum angle triggers correction sooner for small lateral movement. Rock protection applies to the newly released rock entity for both AI and player Tanks; it is not invulnerability for the Tank itself. The 3D demo also does not simulate gunfire during this protection period.

Learn about this site's dynamic AI difficulty

Narrow paths, low ceilings, and ladders: stopping may be the correct way to move

A corridor that appears to have a gap may still be too small for the Tank's collision hull to bunny hop through. 2.0 already checks the full route before a ground jump. 2.1 additionally checks the remaining parabola after an airborne direction change, including the ascent, so a wall or ceiling along the way is not missed by checking only the landing point. When a side-hop candidate is unsafe, it first falls back to the normal direction and uses ground movement if necessary.

At ladder entrances, the plugin deliberately yields to native climbing. When the path shows an upcoming ladder, speed is limited in advance by distance; inside the yield range, bunny hopping stops and speed is clamped back to running speed. Once climbing begins, direction and target are locked. Conversely, when the Tank merely passes an irrelevant ladder, a fresh path snapshot prevents a false trigger. If the snapshot expires, detection falls back to ladder entities, so one cannot claim that passing ladders will never stop bunny hopping.

Platform edges: why it sometimes slows and sometimes jumps straight out

2.0 conservatively restricts path drops over 56 hu, often lowering jump speed first and then walking to the edge for a natural fall. 2.1 adds a momentum-preserving transition for ordinary drops no deeper than 256 hu with a clear path: it calculates longer airtime from the actual lower-ground height, checks the full flight route, and verifies ground support at the landing point and all four corners of the collision hull. It jumps out at speed only after those checks pass.

This ability does not mean the Tank jumps whenever it sees a cliff. It remains restricted without a path, with an unreliable landing point, with a wall or low ceiling in flight, before a ladder entrance or jump gap, and on deeper drops. It also does not actively weave or jump bricks at the edge. During the fall it preserves momentum along the verified direction; the “continuation hop” occurs after landing, not as another jump in midair. The demo uses a 200 hu platform and can switch to 2.0 to show the two approaches.

View scene: Bunny hopping after a platform drop

Overhead stalls: other targets available versus only one Survivor left

When a Survivor remains above and the Tank below cannot reach them, the plugin first distinguishes a truly unreachable stall from an ongoing search for a route upward. Targets reachable by ladder or climb get a longer observation period so stall handling does not interrupt a Tank just as it prepares to climb. Once the Tank is confirmed stalled and the target unreachable, if another eligible target exists, the original is temporarily blocked for 10 seconds and the unified selector chooses someone else.

With no alternate target, handling becomes retreat-and-rock: find a reachable retreat point, create the needed space, then restore rock throwing. A key 2.0 fix unifies cleanup of the retreat command: reaching the point, timing out, stalling, or ending the plan all trigger RESET and return control to normal behavior. Otherwise, even after selecting a retreat point, the Tank may remain standing in the old MOVE command. If it cannot retreat and distance permits, it can throw in place; when too close, it does not force a throw.

Riding on the Tank's head does not make you safe

Riding its head and standing on a nearby high platform are different situations. The old version already detects head riders and attempts upward punches. 2.0 retains normal punches plus an extra upward sweep punch; after failing to connect for about 3 seconds, it throws a rock at the rider in place without retreating first. A fallback aim calculation for near-zero horizontal distance prevents ordinary long-range math from losing its direction.

The demo deliberately shows the branch where punches keep missing, so the Tank switches to a rock after the timer. If an upward punch can connect, it may keep punching without waiting for that point. Treating a figure on its head as a guaranteed exploit ignores prerequisites such as map geometry, hit-test position, and plugin version.

View scene: Survivor riding on the Tank's head

The rock aims at a predicted position but can still miss

The position during the throw windup differs from where the rock actually leaves the hand. In the actual release hook, 2.0 solves a low trajectory from the rock's real origin, then adjusts target lead using gravity and flight time. If the throw belongs to a forced overhead-stall plan, the planned target takes priority and cannot be replaced at the last moment by the nearest visible target.

Lead depends on an estimate of target movement. A sudden reversal, an obstacle, or a target-state change can separate the predicted and actual positions, so “predictive” does not mean “guaranteed to hit.” The old version also has lead and jump-brick behavior; the change is consistency among release point, trajectory, and target selection. The animation illustrates only this relationship. It provides no hit rate, and its rock arc cannot calibrate live-server behavior.

View scene: Throwing a rock at a moving target

Turn the mechanics into four practical observations

  1. Confirm the room first:Check the current mode and AI tier before applying this article's values. Do not treat experience from Neri, Alone, or another server as a rule shared by every Anne room.
  2. Read the route, not just the body:Watch which side it plans to use around a wall, whether it is nearing a ladder entrance, and whether the ground below a drop has a usable route. Terrain that forces it to choose a new route deserves more attention than simply extending straight-line distance.
  3. Reassess the target at close range:Canceling side hops, stopping bunny hopping, or briefly retaining the current target may all be expected behavior. Teammates should keep mutually supporting lines of fire and avoid crowding the same escape route merely because the Tank briefly turns its back.
  4. Watch the release and landing point of a rock:Consider cover, movement direction, and teammate positions together. A predictive trajectory follows an expected position, but whether a sudden direction change works still depends on distance and terrain. Do not treat the dodge shown in the demo as a guarantee.

These observations help explain one engagement; they do not provide a universal position. Whether teammates can still rescue each other, whether common infected block the escape route, and whether someone is pinned are usually more urgent than studying one bunny-hop trajectory in isolation. For an introduction to combat roles and Boss progress, continue to the Tank and Witch article below.

Continue reading: Tank, Witch, and team roles

How to leave a useful record when behavior seems abnormal

First record the map, location, game mode, AI tier, plugin version, and approximate position of every Survivor. Preserve the full sequence before and after the abnormal action: whether the Tank saw its target before jumping, had just passed a ladder or edge, had already stalled before switching targets, and resumed pursuit after retreating. A final frame showing only “it is standing still” cannot readily distinguish safe yielding, no reachable route, and genuine leftover state.

A report can include the closest demo scene, but should explain how the live server differs from the illustration: perhaps the platform is not 200 hu, there is another low ceiling overhead, or the path does not lead to the landing point. Demo paths are manually specified reference lines, figures are enlarged for visibility, and labels are not occluded by terrain. The first two scenes use a simplified fixed airtime of 0.773 seconds; the rest use keyframes to explain state transitions. Real investigation still returns to map nav, collision, and server logs.

Version basis and future verification

This article and the site demo freeze a reviewable documentation version together: the 1.x comparison baseline is c6b201e14^, 2.0 is c6b201e14, and 2.1 is the 2026-09-16 development worktree. As the plugin continues to evolve, the scene notes, dynamic settings, and article parameters should be checked together. A development snapshot can explain a new design, but cannot prove that a particular current room runs this code.

Path and movement
ai_tank3/path.inc, movement.inc: path lookahead, special segments, ground bunny hopping, air steering, and drop-route checks.
Target selection and stall handling
ai_tank3/target.inc, overhead.inc, command.inc: unified target selection, head-rider and overhead-stall detection, retreat plans, and command reset.
Attacks and difficulty
ai_tank3/combat.inc and configs/AnneHappy/dynamic_ai_difficulty.cfg: release point, low-arc lead, attack constraints, and six tiers of behavior parameters.