# V2 NPC Schedule LOD

`NPCScheduleLOD.V2` keeps distant scheduled NPCs deterministic without paying
the full nearby simulation cost. It uses the same schedule execution and
pathfinding targets as the full system, then chooses whether to retain
navigation/activity behavior or simplify the update.

## Runtime Surface

- `FV2NPCScheduleLODConfig` defines full-simulation distance, simplified
  distance, teleport behavior, animation suppression, and command issue policy.
- `FV2NPCScheduleLODRequest` supplies schedule, current time, current location,
  player distance, and config.
- `FV2NPCScheduleLODCommand` records the resulting LOD action: retain
  navigation/activity behavior for nearby NPCs or snap a distant NPC to the
  schedule target.
- `FV2NPCScheduleLODResult` returns the selected mode, target location, active
  block, reused execution/pathfinding/activity results, and validation issues.

## Runtime Rules

1. NPCs below the simplified distance stay in `FullSimulation`.
2. Nearby NPCs retain schedule pathfinding, navigation command issue, and
   complex activity commands when already at the scheduled interaction.
3. Distant NPCs switch to `Simplified`, suppress navigation walking, teleport to
   the schedule target location, and skip complex activity animations.
4. The LOD target always comes from schedule pathfinding so simplified NPCs land
   at the same block/location the full system would target.
5. Invalid configs, negative distances, missing current locations, invalid
   pathfinding, invalid nearby activity behavior, and malformed LOD commands
   produce blocking issues.

## Validation Commands

Run these targeted checks when touching NPC schedule LOD:

```bash
python3 V2/ue/Tools/check-v2-npc-schedule-lod.py
python3 V2/ue/Tools/check-v2-npc-schedule-pathfinding.py
python3 V2/ue/Tools/check-v2-npc-schedule-activity-behavior.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 V2/tools/validate-v2-docs.py
python3 -m json.tool V2/ue/Content/V2/Gameplay/NPC/NPCScheduleLOD_V2_Contract.json
```
