The old naming suggested UE level loading; what these calls actually do
is spawn actors described by a .pss scenario file into the already-loaded
UE level. Renamed for clarity:
SceneLoader::LoadScene -> LoadScenario
SceneLoader::LoadSceneFromData -> LoadScenarioFromData
SceneLoader::LoadSceneAdditive -> dropped (merged into LoadScenario)
SceneLoader::UnloadSceneAdditive -> UnloadScenario
SceneSerializer::LoadScene -> LoadScenario
AdditiveSpawnedActors -> TrackedSpawnedActors
LoadScenario now branches on the filter: when Filter == PreloadOnly the
timeline subsystem is skipped entirely (no SetData, no ActorId
registration, no auto-play) so a briefing scene can drop in player
placement markers without disturbing its own timeline. All other filter
values keep the full gameplay behaviour (timeline + AI-readiness poll).
Every load tracks its actors so a follow-up UnloadScenario() can destroy
them — supports the briefing flow where the player toggles between
scenarios at runtime.
Breaking change for external BP callers: any node binding the old
LoadScene / LoadSceneAdditive / UnloadSceneAdditive functions will show
up as missing on next BP compile; replace with LoadScenario /
UnloadScenario (identical or simpler signatures).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>