Fighting Game · Guides & deep dives

V2 Auto-Aim Assist

Auto-aim assist extends the V2Input accessibility profile model:

6sections1 minread

On this page

This runbook covers TODOS.phase-72.72.13.2.3: configurable auto-aim assist with Off, Low, Medium, High, and LockOn strengths, controlled separately for camera and aim.

Runtime Surface#

Auto-aim assist extends the V2Input accessibility profile model:

  • profile: FV2AutoAimAssistProfile
  • strength enum: EV2AutoAimAssistStrength
  • tuning row: FV2AutoAimAssistStrengthTuning
  • resolved assist: FV2ResolvedAutoAimAssist
  • source library: UV2InputBlueprintLibrary
  • config asset: UV2InputConfigAsset
  • UI config: FV2AccessibilityMotorAssistConfig
  • persistence snapshot: FV2PlayerSettingsSnapshot
  • save game: UV2SaveGame
  • persistence subsystem: UV2PersistenceSubsystem
  • contract: V2/ue/Content/V2/Input/Accessibility/AutoAimAssist_V2_Contract.json
  • focused checker: V2/ue/Tools/check-v2-auto-aim-assist.py

Behavior#

Profiles default both aim and camera assist to Off. Players can choose separate strengths for aim and camera. Low, Medium, and High resolve to bounded magnetism, camera friction, and target-cone tuning. LockOn is a distinct opt-in strength with an explicit lock-on cone and resolved lock-on flags for aim and camera independently.

Validation#

The tuning table must contain exactly the supported strength family: Off, Low, Medium, High, and LockOn. The Off tuning has no magnetism, camera friction, target cone, or lock-on. Enabled strengths must have positive aim, camera, and cone values. Only the LockOn strength may enable lock-on.

Persistence#

FV2PlayerSettingsSnapshot stores AutoAimAssistProfile with startup flags. UV2SaveGame::SaveAutoAimAssistProfile persists a validated profile per player, GetStartupAutoAimAssistProfile resolves it on startup, and MarkAutoAimAssistAppliedOnStartup records the before-gameplay apply time. ValidateSave rejects profiles whose account id does not match the save header.

Verification#

Run these checks after changing auto-aim assist:

bash
python3 V2/ue/Tools/check-v2-auto-aim-assist.py
python3 V2/ue/Tools/check-v2-input-module.py
python3 V2/ue/Tools/check-v2-profile-save-game.py
python3 V2/ue/Tools/check-v2-persistence-module.py
python3 V2/ue/Tools/check-v2-accessibility-feature-set.py
python3 V2/ue/Tools/check-v2-ui-module.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 V2/tools/validate-v2-docs.py
python3 -m py_compile V2/ue/Tools/check-v2-auto-aim-assist.py V2/ue/Tools/check-v2-ci-workflow.py
python3 -m json.tool V2/ue/Content/V2/Input/Accessibility/AutoAimAssist_V2_Contract.json

Automation coverage:

  • V2.Input.Module
  • V2.Persistence.Module
  • V2.Persistence.ProfileSave.AssetContract
  • V2.UI.Module

Horde Gates#

  • auto-aim-source
  • auto-aim-strength-tunings
  • auto-aim-separate-camera-aim
  • auto-aim-lock-on
  • auto-aim-per-player-persistence
  • auto-aim-startup-apply
  • auto-aim-ci-wired