Skip to content

Dodge Profile

How this page is sourced

Sourced from vendor documentation, plus field names and tooltips read from the scenario editor in September 2026. Checked against its sources. Not yet reviewed by a person.

The dodge profile is the most important editor in the game for aim training. It decides how a target moves, which decides which skill your scenario trains.

  • Strafe timing is the core. Toggle times and swap pauses set the rhythm.
  • React makes a target unlearnable. It answers you instead of repeating.1
  • Waypoint Logic decides whether a route runs. It has four settings.2
  • Playback replaces motion with a recording. The path is the same on every run.

Tabs

Main

The tab starts with target distance as a min and max, then Toggle Left/Right, with an initial strafe direction and a trigger for it.

Next come toggle L/R time as a min and max, a strafe time multiplier per side, and a strafe swap pause. Then come toggle forward and back, and a profile change time.

Waypoint logic, waypoint turn rate and cooldown time close the tab.1

Toggle L/R Time is the strafe rhythm. A narrow min and max makes a metronome you can learn. A wide one makes a target you have to read.

That single pair moves a scenario between a tracking drill you can groove and a reaction drill you cannot. Set it deliberately.

Two strafing targets covering the same distance. Under a narrow toggle range the direction changes are evenly spaced along a timeline. Under a wide range they are irregular, so the next change cannot be anticipated.Bassel Bakrhttps://github.com/Bassel-Bakr/aimNarrow rangea metronome you can learndirection changesWide rangea target you have to readdirection changes
Same distance, same speed. Evenly spaced direction changes can be learned. Irregular ones cannot.

Strafe Swap Pause is the hardest setting in the profile. A pause at the direction change is the moment your crosshair either stays on target or overshoots.

Strafe Time Multiplier biases one side. It multiplies how long the bot keeps going once it starts strafing that way.

Set the two sides differently and the target spends more time on one side of its track. That turns an even drill into one about a direction you are worse at.

Two strafing targets with a bar under each side showing how long that leg lasts. With both multipliers equal the legs match and the target sits centerd over time. With the right multiplier doubled the right leg is twice as long, so the target spends most of its time on that side.Bassel Bakrhttps://github.com/Bassel-Bakr/aim1 and 1even ground either wayleft legright leg1 and 2it lives on the rightleft legright leg
Same base timing, one side doubled. The target lives on the right.

Cooldown Time is how long before this dodge profile can be used again, with zero meaning no cooldown at all.

Target Distance keeps the bot within a range of you. That is how a scenario holds a consistent angular size instead of letting the target drift near and far.

Waypoint Logic decides how much attention the bot pays to its route. Its options are Ignore, Seek Combat, Seek Target and Seek Waypoint.2

Seek Waypoint is the setting for a repeatable tracking drill. The target walks its path and never reacts to you.

Dodge Main tab, every field. One strip per field, each naming the setting, describing it, and demonstrating a low and a high state side by side.Bassel Bakrhttps://github.com/Bassel-Bakr/aimDodge Main tab, every fieldThe strafe: how far, how long, and how evenly.Profile NameWhat this dodge profile iscalled. Bot profiles attach itby this name.unnamedblanknamedcarries a nameTarget Distance Range (min)How close the bot is willing toget to its target before itstops closing.up closeit closes right inheld backit keeps its distanceTarget Distance Range (max)How far the bot drifts before itcloses again. The pair holds thetarget at a steady angular size.kept nearit closes right inallowed farit keeps its distanceToggle Left/RightWhether the bot strafes sidewaysat all. Unchecked, nothing onthis tab's left and right timingdoes anything.stands stillit does not movestrafesit strafesInitial StrafeWhich way the bot goes on itsfirst strafe. Set it when youwant a drill that always opensthe same way.left firstfirst move goes leftright firstfirst move goes rightInitial Strafe OnWhen that first direction isapplied: only on the firstspawn, or again on everyrespawn.first spawn onlyspawn 1spawn 2spawn 3applied on the first onlyevery spawnspawn 1spawn 2spawn 3applied every spawnToggle L/R Time MinShortest time the bot keepsgoing one way before turning.The floor of the strafe rhythm.turns quicklyruns longerToggle L/R Time MaxLongest time before turning.Close to the minimum this is ametronome; far from it the nextturn cannot be read.predictableevenly spacedunreadableragged spacingLeft Strafe Time MultiplierMultiplies how long the botcontinues once it starts goingleft.short leftseven either waylong leftsit lives on the leftRight Strafe Time MultiplierThe same for the right. Set thetwo differently and the targetlives on one side of its track.short rightseven either waylong rightsit lives on the rightStrafe Swap Pause MinShortest hold at a directionchange. This is the instant yourcrosshair either stays on targetor sails past.no pauseit turns without stoppinga real pauseit waits at the turnStrafe Swap Pause MaxLongest hold at a directionchange. A range here means youcannot time the resume.same every turnevery one the samevariesno two the sameToggle Forward/BackWhether the bot also movestoward and away from you, whichchanges target size while youtrack.holds distanceit holds its distancein and outit comes in and backs offToggle F/B Time MinShortest run toward or awaybefore reversing.quick reversalquick reversalslong approachone long approachToggle F/B Time MaxLongest run toward or away.Widen the gap and depth changesstop being learnable.same every timeevery one the samevariesno two the sameProfile Change Time MinShortest time on this dodgeprofile before the bot may swapto another one attached to it.swaps earlyprofile Ait swaps out earlystays putprofile Ait stays a long whileProfile Change Time MaxLongest time before a swap. Ascenario with one dodge profileignores both of these.swaps oftenprofile Ait swaps out earlyrarely swapsprofile Ait stays a long whileWaypoint LogicHow much attention the bot paysto a route on the map. Ignore,Seek Combat, Seek Target andSeek Waypoint.walks the routebreaks off at youWaypoint Turn RateHow sharply the bot corners whenit follows a route. Low reads asa vehicle; high reads as a rightangle.wide cornersit swings widesharp cornersit corners sharplyCooldown TimeHow long before this dodgeprofile can be used again. Zeromeans no cooldown at all.no cooldownlocked outusable again at oncelocked outa long lockout
Every option on this tab, with a low and a high state side by side.

React

The tab starts with Target Strafe Reaction, which has a strafe reaction delay as a min and max.1

Then comes a damage reaction block. It sets whether taking damage toggles left/right or forward/back, and a chance to ignore damage. It also has a delay, a cooldown, a threshold and a reset time. Last, it sets whether the reaction triggers a profile change.

A blocked movement checks block follows, including trigger on blocking collision.

This tab is what makes a target unlearnable. Target Strafe Reaction set to mimic means the bot answers your movement rather than running its own pattern.

Chance to Ignore Damage is the subtle one. At anything below certain, the same hit sometimes provokes a dodge and sometimes does not, so you cannot learn the response.

That is useful for a reaction drill and ruinous for a scenario you want to compare across sessions.

Triggers Profile Change ejects the bot entirely. Under Mimic or Oppose, a damage reaction pushes it out of this dodge profile.

It then looks for a dodge profile set to Ignore. If none exists, it picks one at random. A scenario with one dodge profile therefore behaves differently from one with several.

Three steps lighting in turn: a bot running a Mimic dodge profile, taking damage, and being moved to a profile that uses Ignore. A dashed branch notes that where no such profile exists the replacement is picked at random.Bassel Bakrhttps://github.com/Bassel-Bakr/aimA damage reaction ejects the botonly under Mimic or OpposeMimic profileit is answering youtakes damagereaction firesan Ignore profilepreferrednone available? it picks at random
Under Mimic or Oppose, damage throws the bot out of this profile and into another.

Blocked movement is its own reaction. Trigger On Blocking Collision fires a counter strafe when the bot hits something that would stop it.

The reaction time beside it sets how long the bot presses into the obstacle before turning around. At zero it turns instantly, which reads as unnaturally sharp.

Two targets strafing into a wall. With no reaction time the target turns around the moment it collides. With a reaction time set it presses into the wall for a moment first, marked as stuck, before turning.Bassel Bakrhttps://github.com/Bassel-Bakr/aimReaction time 0turns the moment it is blockedcounter strafe on collisionReaction time setpresses into the wall firststuck on the wallcounter strafe, after a delay
Reaction time is how long the bot presses into the wall before it gives up on that direction.
React tab, every field. One strip per field, each naming the setting, describing it, and demonstrating a low and a high state side by side.Bassel Bakrhttps://github.com/Bassel-Bakr/aimReact tab, every fieldWhat the bot answers, and how reliably.Target Strafe ReactionWhether the bot mimics yourmovement, opposes it, or ignoresit. Mimic and Oppose both makethe target answer you.opposes youit opposes youmimics youit mimics youStrafe Reaction Delay MinShortest gap between yourmovement and the bot answeringit.instantyou moveit answers at oncea beat lateyou moveit answers lateStrafe Reaction Delay MaxLongest gap. A wide range iswhat stops a reactive targetfrom being timed.same lagevery one the samevariesno two the sameTaking Damage Toggles L/RWhether a hit makes the bot swapstrafe direction. This is thefield that punishes a landedshot with a harder next shot.keeps goingthe hit changes nothingswaps on hitthe hit swaps itTaking Damage Toggles F/BWhether a hit makes the botreverse its approach instead.holds depthholds its depthreverses on hitreverses its approachChance To Ignore DamageHow often a hit provokes noreaction at all. Anythingbetween the extremes means thesame hit sometimes does nothing.always reactshits above, reactions belowusually ignoreshits above, reactions belowDamage Reaction Delay MinShortest gap between the hit andthe reaction to it.immediatea hit landsit answers at oncedelayeda hit landsit answers lateDamage Reaction Delay MaxLongest gap. Keep the pair tightif you want to compare runs.same every hitevery one the samevariesno two the sameDamage Reaction CooldownHow long after one damagereaction before another canfire. It stops a burst weaponfrom pinballing the bot.reacts to every hitlocked outusable again at oncereacts rarelylocked outa long lockoutDamage ThresholdHow much damage has to landbefore a reaction triggers atall.one hit is enoughone hit clears ittakes severalneeds several hitsDamage Reset TimeHow long accumulated damage isremembered. Past it thethreshold starts over fromnothing.forgets at onceit drains between hitsremembersit keeps the totalTriggers Profile ChangeWhether a damage reaction throwsthe bot out of this dodgeprofile. It prefers one set toIgnore, else picks at random.stays in this profileAit stays on this oneejected elsewhereBAit leaves for another profileTrigger On Blocking CollisionWhether hitting an obstaclefires a counter strafe, ratherthan the bot grinding along thewall.grinds along itit grinds along itcounter strafesit turns aroundBlocked Speed PercentHow slow the bot has to be goingbefore the game counts it asblocked.counts as blockedit turns aroundhas to stop deadit grinds along itBlocked Reaction TimeHow long the bot presses intothe obstacle before giving up onthat direction. Zero reads asunnaturally sharp.turns instantlyit gives up at oncepushes a whileit leans in a whileSelf DestructWhether the bot kills itselfwhen it sees a target. It is howa scenario makes a target vanishon sight instead of fighting.stays and fightsit stays and fightsdies on sightit kills itself on sight
Every option on this tab, with a low and a high state side by side.

Move

The tab holds alternate jump and crouch input, jump frequency, jump time, crouching frequency and crouch time.1

Two approaches, chosen by one switch. With Alternate Jump/Crouch Input unchecked you set how often the bot presses and holds jump or crouch.

Checked, the bot alternates between holding jump and holding crouch instead. That mode is meant for character profiles where holding jump flies up and holding crouch flies down.

Crouching Frequency is a percentage of time rather than a rate: zero never crouches, one holds crouch permanently.

Vertical motion is a different demand. A jumping target adds a vertical correction that most aim benchmarks deliberately leave out.

Add it when your game has jump fights worth training. Leave it off when the drill is about horizontal tracking.

Dodge Move tab, every field. One strip per field, each naming the setting, describing it, and demonstrating a low and a high state side by side.Bassel Bakrhttps://github.com/Bassel-Bakr/aimDodge Move tab, every fieldJump and crouch, under one switch.Alternate Jump/Crouch InputSwitches the tab between twoapproaches. Unchecked, jump andcrouch are separate habits;checked, the bot alternateseach on its ownjumpcrouchstrictly alternatingjumpcrouchJumping FrequencyHow often the bot presses andholds jump. Vertical motion is acorrection most aim benchmarksleave out on purpose.stays downjumps oftenJump Time MinShortest hold on jump. On aflying character profile this ishow far up it gets.a hopa climbJump Time MaxLongest hold on jump. A widerange makes the height of eachjump unreadable.same heightevery height matchesvariesevery height differsCrouching FrequencyWhat share of the time the botholds crouch. Zero nevercrouches and one holds itpermanently, so it is astandscrouchesCrouch Time MinShortest hold on crouch. On aflying profile, holding crouchflies down.a dipa long duckCrouch Time MaxLongest hold on crouch. Widenthe pair and the target's heightstops being predictable.same depthevery depth matchesvariesevery depth differs
Every option on this tab, with a low and a high state side by side.

Playback

The tab holds profile name, override movement, override rotation, override weapon input, override ability input, loop upon completion, and a playback mode.

Playback replaces the dodge with a recording. The target repeats a captured path exactly, every run, which is the most repeatable motion the editor can produce.

Playback Mode decides what a knockback does to that recording. It has three options, and the difference only shows once something hits the bot.

Input Only replays the keyboard inputs from wherever the bot happens to be, so knockback takes effect and pushes it off course.

Absolute Position matches the recorded location at all times. The bot teleports to the start of the path, and knockback or obstructions cannot pull it off.

Moveable Absolute Position uses Absolute Position until something knocks it, then falls back to Input Only for the rest of the playback.

Three panels, each with the same recorded path and the same knockback arriving partway through. Under Input Only the target is pushed off the path and stays off it. Under Absolute Position it stays on the path. Under Moveable Absolute Position it holds the path until the hit, then drifts like Input Only.Bassel Bakrhttps://github.com/Bassel-Bakr/aimInput Onlyknockback shoves it offknockbackAbsolute Positionignores the shoveknockbackMoveable Absoluteabsolute until it is hitknockback
Same recording, same shove. Only the mode decides whether the path survives it.

For a drill you want identical every run, Absolute Position is the setting. The other two let a scenario drift once contact happens.

Use it when you want a fixed path with no variance at all. It is the opposite end of the scale from the React tab.

Dodge Playback tab, every field. One strip per field, each naming the setting, describing it, and demonstrating a low and a high state side by side.Bassel Bakrhttps://github.com/Bassel-Bakr/aimDodge Playback tab, every fieldA recording instead of a strafe.Playback Profile NameWhich recording this profilereplays. Captured in the editorand played back instead of thebot's own dodging.no recordingits own inputsa recordingreplayedOverride MovementThe recording drives where thebot goes, rather than the strafesettings on the Main tab.own strafeits own inputsrecorded pathreplayedOverride RotationThe recording drives where thebot looks.own aimits own inputsrecorded aimreplayedOverride Weapon InputThe recording drives thetrigger.own triggerits own inputsrecorded triggerreplayedOverride Ability InputThe recording drives abilitypresses.own abilitiesits own inputsrecorded abilitiesreplayedLoop Upon CompletionWhether the recording restartswhen it reaches the end, or thebot falls back to its own logic.plays onceits own inputsloopsreplayedPlayback ModeInput Only replays keystrokes,so knockback pushes the bot offcourse. Absolute Positionmatches the recorded locationpushed off courseits own inputspath survivesreplayed
Every option on this tab, with a low and a high state side by side.

Common mistakes

  • Building a route on the map and leaving Waypoint Logic on Ignore.2
  • Setting a wide Toggle L/R range for a drill you meant to be repeatable.
  • Leaving Chance to Ignore Damage below certain in a scenario you score across sessions.
  • Editing the bot or character profile to change motion. It lives here.31

In practice

Decide readable or unreadable first, then set two fields. Toggle L/R time for the rhythm, and Target Strafe Reaction for whether the target answers you.

Do this next. Open the dodge profile of a tracking scenario you play and look at its Toggle L/R time range. That range is why the scenario feels the way it does.

Resources

References


  1. KovaaK's, Dodge Profiles, KovaaK's Wiki · REF-83 ↩↩↩↩↩

  2. KovaaK's, KMC: frequently asked questions, KovaaK's Wiki · REF-91 ↩↩↩

  3. KovaaK's, Bot Profiles, KovaaK's Wiki · REF-82 ↩