Fighting Game · Guides & deep dives

V2 NPC Schedule Persistence

time.

3sections1 minread

On this page

NPCSchedulePersistence.V2 captures and restores NPC schedule state across save/load. It persists the save id, schedule id, NPC id, saved time, active block, location, interruption state, day seed, weather id, and restore tags.

Runtime Surface#

  • FV2NPCSchedulePersistenceSnapshot stores versioned schedule state at save time.
  • FV2NPCScheduleRestoreRequest carries the schedule, location registry, snapshot, restore command flag, and interruption restore flag.
  • FV2NPCScheduleRestoreCommand directs AI to resume the saved block at the schedule-correct location.
  • FV2NPCSchedulePersistenceResult reports the restored time, block, location, execution result, location binding result, snapshot, command, and issues.

Restore Rules#

  1. Snapshot capture evaluates the active schedule block at save time and stores the schedule-correct location for that saved time.
  2. Serialization and deserialization round-trip the stable snapshot fields, including paused interaction state. Deserialization accepts the initial 13-token payload shape and the 14-token shape that explicitly carries bPausedForInteraction.
  3. Restore evaluates schedule execution at the saved time and resumes the exact saved block.
  4. Restore targets the schedule-correct location for that saved time.
  5. Interrupted schedules restore active interruption metadata when requested.
  6. Invalid save ids, schedule ids, NPC ids, block ids, locations, saved times, execution, or restore commands produce blocking issues.

Validation Commands#

Run these targeted checks when touching schedule persistence:

bash
python3 V2/ue/Tools/check-v2-npc-schedule-persistence.py
python3 V2/ue/Tools/check-v2-npc-schedule-social-interaction.py
python3 V2/ue/Tools/check-v2-npc-schedule-weather-response.py
python3 V2/ue/Tools/check-v2-npc-schedule-day-of-week.py
python3 V2/ue/Tools/check-v2-npc-schedule-variation.py
python3 V2/ue/Tools/check-v2-npc-schedule-interruption.py
python3 V2/ue/Tools/check-v2-npc-schedule-location-binding.py
python3 V2/ue/Tools/check-v2-npc-schedule-activity-behavior.py
python3 V2/ue/Tools/check-v2-npc-schedule-pathfinding.py
python3 V2/ue/Tools/check-v2-npc-schedule-execution-engine.py
python3 V2/ue/Tools/check-v2-npc-schedule-data-format.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 -m json.tool V2/ue/Content/V2/Gameplay/NPC/NPCSchedulePersistence_V2_Contract.json
python3 -m py_compile V2/ue/Tools/check-v2-npc-schedule-persistence.py