When you click on “create new endpoint” FMovieSceneDirectorBlueprintEndpointCustomization::CreateEndpoint is called.
The callback is bound from a lambda in FMovieSceneConditionCustomization::FillDirectorBlueprintConditionSubMenu.
This goes through FMovieSceneDirectorBlueprintUtils::CreateEndpoint which calls FMovieSceneDirectorBlueprintUtils::CreateEventEndpoint or FMovieSceneDirectorBlueprintUtils::CreateFunctionEndpoint.
Note that FMovieSceneDirectorBlueprintEndpointCustomization is a base class for
FMovieSceneDirectorBlueprintConditionCustomizationFMovieSceneDynamicBindingCustomizationFMovieSceneEventCustomization
For instance in this example where I am adding an Sequence blueprint Direction endpoint on a Replaceable actor FMovieSceneDynamicBindingCustomization::OnCreateEndpoint will eventually call FMovieSceneDynamicBindingUtils::SetEndpoint.
This set a weak endpoint EDITOR ONLY UK2Node var on a FMovieSceneDynamicBinding.
After FMovieSceneDirectorBlueprintEndpointCustomization::CreateEndpoint ran NotifyFinishedChangingProperties is called which triggers a callback at ULevelSequenceEditorSubsystem::OnFinishedChangingLocators. This eventually calls FSequencer::RecompileDirtyDirectors.
Via the FKismetCompilerContext this will call UMovieSceneDynamicBindingBlueprintExtension::HandleGenerateFunctionGraphs which uses FMovieSceneDynamicBindingUtils::IterateDynamicBindings to iterate all bindings.
Inside a lambda declared in HandleGenerateFunctionGraphs, FMovieSceneDirectorBlueprintUtils::GenerateEntryPoint is called which will set the EDITOR ONLY FName CompiledFunctionName var on the FMovieSceneDynamicBinding.
TFieldPath<FProperty> ResolveParamsProperty is also filled if any extra params must be known.
Later in the same function the real runtime TObjectPtr<UFunction> Function var is set on the dynamic binding struct using UClass::FindFunctionByName.
To check how the endpoint is called at runtime, I played my sequencer in game.
After the same common functions that are called when calling Play on the sequence player (see Play Level Sequence internals) FBoundObjectTask::ForEachAllocation will call FSharedPlaybackState::FindBoundObjects → FMovieSceneObjectCache::FindBoundObjects → FMovieSceneObjectCache::UpdateBindings → ULevelSequencePlayer::ResolveBoundObjects → FMovieSceneBindingReferences::ResolveBinding → UMovieSceneReplaceableBindingBase::ResolveBinding.
Its inside UMovieSceneReplaceableDirectorBlueprintBinding::ResolveRuntimeBindingInternal → FMovieSceneDynamicBindingInvoker::ResolveDynamicBinding that the function is checked and inside FMovieSceneDynamicBindingInvoker::InvokeDynamicBinding that the function is really called with UObject::ProcessEvent on the director instance.
In another example I created a child class of UMovieSceneReplaceableActorBinding_BPBase to use an endpoint that isn’t using the BP sequence director.
The main callstack is the same (all the way to UMovieSceneReplaceableBindingBase::ResolveBinding), but UMovieSceneReplaceableBindingBase::ResolveBinding was the virtual override.
Note that FMovieSceneBindingReference holds a CustomBinding var which is a UMovieSceneCustomBinding.
This is inside FMovieSceneBindingReferences.
Another side note is that ResolveRuntimeBindingInternal in UMovieSceneReplaceableBindingBase is the actual C++ function that returns the resolved binding result.