UK2Node

Abstract base class of all blueprint graph nodes.

Windows
MacOS
Linux

Inheritance Hierarchy

UObjectBase

UObjectBaseUtility

UObject

UEdGraphNode

UK2Node

UAnimGraphNode_Base

UAnimGraphNode_ApplyAdditive

UAnimGraphNode_ApplyMeshSpaceAdditive

UAnimGraphNode_AssetPlayerBase

UAnimGraphNode_BlendSpaceBase

UAnimGraphNode_AimOffsetLookAt

UAnimGraphNode_BlendSpaceEvaluator

UAnimGraphNode_BlendSpacePlayer

UAnimGraphNode_RotationOffsetBlendSpace

UAnimGraphNode_PoseByName

UAnimGraphNode_PoseHandler

UAnimGraphNode_PoseBlendNode

UAnimGraphNode_PoseDriver

UAnimGraphNode_SequenceEvaluator

UAnimGraphNode_SequencePlayer

UAnimGraphNode_BlendBoneByChannel

UAnimGraphNode_BlendListBase

UAnimGraphNode_BlendListByBool

UAnimGraphNode_BlendListByEnum

UAnimGraphNode_BlendListByInt

UAnimGraphNode_LayeredBoneBlend

UAnimGraphNode_ComponentToLocalSpace

UAnimGraphNode_CopyPoseFromMesh

UAnimGraphNode_CurveSource

UAnimGraphNode_CustomProperty

UAnimGraphNode_LinkedAnimGraphBase

UAnimGraphNode_LinkedAnimGraph

UAnimGraphNode_LinkedAnimLayer

UAnimGraphNode_Inertialization

UAnimGraphNode_LinkedInputPose

UAnimGraphNode_LocalToComponentSpace

UAnimGraphNode_MakeDynamicAdditive

UAnimGraphNode_MeshRefPose

UAnimGraphNode_ModifyCurve

UAnimGraphNode_MultiWayBlend

UAnimGraphNode_PoseSnapshot

UAnimGraphNode_RandomPlayer

UAnimGraphNode_RefPoseBase

UAnimGraphNode_IdentityPose

UAnimGraphNode_LocalRefPose

UAnimGraphNode_Root

UAnimGraphNode_RotateRootBone

UAnimGraphNode_SaveCachedPose

UAnimGraphNode_ScaleChainLength

UAnimGraphNode_SkeletalControlBase

UAnimGraphNode_AnimDynamics

UAnimGraphNode_ApplyLimits

UAnimGraphNode_BoneDrivenController

UAnimGraphNode_CCDIK

UAnimGraphNode_Constraint

UAnimGraphNode_CopyBone

UAnimGraphNode_CopyBoneDelta

UAnimGraphNode_Fabrik

UAnimGraphNode_HandIKRetargeting

UAnimGraphNode_LegIK

UAnimGraphNode_LookAt

UAnimGraphNode_ModifyBone

UAnimGraphNode_ObserveBone

UAnimGraphNode_ResetRoot

UAnimGraphNode_RigidBody

UAnimGraphNode_RigidBody_Chaos

UAnimGraphNode_RotationMultiplier

UAnimGraphNode_SplineIK

UAnimGraphNode_SpringBone

UAnimGraphNode_Trail

UAnimGraphNode_TwistCorrectiveNode

UAnimGraphNode_TwoBoneIK

UAnimGraphNode_WheelHandler

UAnimGraphNode_Slot

UAnimGraphNode_StateMachineBase

UAnimGraphNode_StateMachine

UAnimGraphNode_StateResult

UAnimGraphNode_CustomTransitionResult

UAnimGraphNode_SteamVRInputAnimPose

UAnimGraphNode_SteamVRSetWristTransform

UAnimGraphNode_TransitionPoseEvaluator

UAnimGraphNode_TransitionResult

UAnimGraphNode_TwoWayBlend

UAnimGraphNode_UseCachedPose

UGameplayTagsK2Node_LiteralGameplayTag

UGameplayTagsK2Node_MultiCompareBase

UGameplayTagsK2Node_MultiCompareGameplayTagAssetInterface

UGameplayTagsK2Node_MultiCompareGameplayTagAssetInterfaceSingleTags

UGameplayTagsK2Node_MultiCompareGameplayTagContainer

UGameplayTagsK2Node_MultiCompareGameplayTagContainerSingleTags

UK2Node_AssignmentStatement

UK2Node_BaseAsyncTask

UK2Node_AIMoveTo

UK2Node_AsyncAction

UK2Node_ConvertToHEIF

UK2Node_ConvertToJPEG

UK2Node_ConvertToPNG

UK2Node_ConvertToTIFF

UK2Node_DetectFaces

UK2Node_InAppPurchase

UK2Node_InAppPurchase2

UK2Node_InAppPurchaseQuery

UK2Node_InAppPurchaseQuery2

UK2Node_InAppPurchaseQueryOwned2

UK2Node_InAppPurchaseRestore

UK2Node_InAppPurchaseRestore2

UK2Node_InAppPurchaseUnprocessed2

UK2Node_LatentGameplayTaskCall

UK2Node_LatentAbilityCall

UK2Node_LeaderboardFlush

UK2Node_LeaderboardQuery

UK2Node_PlayMontage

UK2Node_BaseMCDelegate

UK2Node_AddDelegate

UK2Node_AssignDelegate

UK2Node_CallDelegate

UK2Node_ClearDelegate

UK2Node_RemoveDelegate

UK2Node_BitmaskLiteral

UK2Node_CallFunction

UK2Node_AddComponent

UK2Node_AnimGetter

UK2Node_CallArrayFunction

UK2Node_CallDataTableFunction

UK2Node_CallFunctionOnMember

UK2Node_CallMaterialParameterCollectionFunction

UK2Node_CallParentFunction

UK2Node_CommutativeAssociativeBinaryOperator

UK2Node_GetInputAxisKeyValue

UK2Node_GetInputVectorAxisValue

UK2Node_GetInputAxisValue

UK2Node_Message

UK2Node_CastByteToEnum

UK2Node_ConstructObjectFromClass

UK2Node_GenericCreateObject

UK2Node_SpawnActorFromClass

UK2Node_ConvertAsset

UK2Node_Copy

UK2Node_CreateDelegate

UK2Node_DataprepActionCore

UK2Node_DeadClass

UK2Node_DelegateSet

UK2Node_DMXBase

UK2Node_DoOnceMultiInput

UK2Node_DynamicCast

UK2Node_ClassDynamicCast

UK2Node_EaseFunction

UK2Node_EditablePinBase

UK2Node_Event

UK2Node_ActorBoundEvent

UK2Node_ComponentBoundEvent

UK2Node_CustomEvent

UK2Node_GameplayCueEvent

UK2Node_InputActionEvent

UK2Node_InputAxisEvent

UK2Node_InputAxisKeyEvent

UK2Node_InputVectorAxisEvent

UK2Node_InputKeyEvent

UK2Node_InputTouchEvent

UK2Node_WidgetAnimationEvent

UK2Node_FunctionTerminator

UK2Node_FunctionEntry

UK2Node_FunctionResult

UK2Node_GetDMXActiveModeFunctionValues

UK2Node_Tunnel

UK2Node_Composite

UK2Node_MathExpression

UK2Node_MacroInstance

UK2Node_EnumEquality

UK2Node_EnumInequality

UK2Node_EnumLiteral

UK2Node_EvaluateLiveLinkFrame

UK2Node_ExecutionSequence

UK2Node_MultiGate

UK2Node_ForEachElementInEnum

UK2Node_FormatText

UK2Node_GetArrayItem

UK2Node_GetClassDefaults

UK2Node_GetDataTableRow

UK2Node_GetDMXFixturePatch

UK2Node_GetEnumeratorName

UK2Node_GetEnumeratorNameAsString

UK2Node_GetNumEnumEntries

UK2Node_GetSequenceBinding

UK2Node_GetSubsystem

UK2Node_GetEditorSubsystem

UK2Node_GetEngineSubsystem

UK2Node_GetSubsystemFromPC

UK2Node_IfThenElse

UK2Node_InputAction

UK2Node_InputKey

UK2Node_InputTouch

UK2Node_Knot

UK2Node_Literal

UK2Node_LoadAsset

UK2Node_LoadAssetClass

UK2Node_MakeContainer

UK2Node_MakeArray

UK2Node_MakeMap

UK2Node_MakeSet

UK2Node_MakeVariable

UK2Node_MatineeController

UK2Node_PureAssignmentStatement

UK2Node_Select

UK2Node_Self

UK2Node_SetVariableOnPersistentFrame

UK2Node_SpawnActor

UK2Node_Switch

UGameplayTagsK2Node_SwitchGameplayTag

UGameplayTagsK2Node_SwitchGameplayTagContainer

UK2Node_SwitchEnum

UK2Node_SwitchInteger

UK2Node_SwitchName

UK2Node_SwitchString

UK2Node_TemporaryVariable

UDEPRECATED_K2Node_LocalVariable

UK2Node_Timeline

UK2Node_TransitionRuleGetter

UK2Node_TunnelBoundary

UK2Node_Variable

UK2Node_StructOperation

UK2Node_StructMemberGet

UK2Node_BreakStruct

UK2Node_StructMemberSet

UK2Node_MakeStruct

UK2Node_SetFieldsInStruct

UK2Node_VariableGet

UK2Node_VariableSet

UK2Node_VariableSetRef

References

Module

BlueprintGraph

Header

/Engine/Source/Editor/BlueprintGraph/Classes/K2Node.h

Include

#include "K2Node.h"

Syntax

class UK2Node : public UEdGraphNode

Remarks

Abstract base class of all blueprint graph nodes.

Constructors

Name Description

Public function

UK2Node

(
    const FObjectInitializer& ObjectIn...
)

Functions

Name Description

Public function Virtual Const

bool

 

AllowMultipleSelfs

(
    bool bInputAsArray
)

Protected function

void

 

BroadcastUserDefinedPinRenamed

(
    FName OldName,
    FName NewName
)

Attempt to broadcast an event for a user-defined pin being renamed on this node

Public function Virtual Const

bool

 

CanEverInsertExecutionPin()

Return whether the node's execution pins should support the remove execution pin action

Public function Virtual Const

bool

 

CanEverRemoveExecutionPin()

Return whether the node's execution pins should support the remove execution pin action

Public function Virtual Const

bool

 

CanPlaceBreakpoints()

Returns whether this node can have breakpoints placed on it in the debugger

Public function Virtual

void

 

ClearCachedBlueprintData

(
    UBlueprint* Blueprint
)

Clears out any cached data that needs to be regenerated after a structural blueprint change

Public function Virtual

void

 

ConvertDeprecatedNode

(
    UEdGraph* Graph,
    bool bOnlySafeChanges
)

Performs a node-specific deprecation fixup, which may delete this node and replace it with another one

Public function Virtual Const

FNodeHandlin...

 

CreateNodeHandler

(
    FKismetCompilerContext& CompilerCo...
)

Public function

bool

 

CreatePinsForFunctionEntryExit

(
    const UFunction* Function,
    bool bForFunctionEntry
)

Creates the pins required for a function entry or exit node (only inputs as outputs or outputs as inputs respectively)

Protected function

void

 

DestroyPinList

(
    TArray< UEdGraphPin* >& InPin...
)

Helper function to properly destroy a set of pins.

Public function Virtual Const

bool

 

DoesInputWildcardPinAcceptArray

(
    const UEdGraphPin* Pin
)

Public function Virtual Const

bool

 

DoesOutputWildcardPinAcceptContainer

(
    const UEdGraphPin* Pin
)

Public function

bool

 

DoesWildcardPinAcceptContainer

(
    const UEdGraphPin* Pin
)

Protected function Virtual Const

ERedirectTyp...

 

DoPinsMatchForReconstruction

(
    const UEdGraphPin* NewPin,
    int32 NewPinIndex,
    const UEdGraphPin* OldPin,
    int32 OldPinIndex
)

Whether or not two pins match for purposes of reconnection after reconstruction.

Public function Virtual Const

bool

 

DrawNodeAsEntry()

Return whether to draw this node as an entry

Public function Virtual Const

bool

 

DrawNodeAsExit()

Return whether to draw this node as an entry

Public function Virtual Const

bool

 

DrawNodeAsVariable()

Return whether to draw this node as a small variable node

Public function Virtual Const

void

 

EarlyValidation

(
    FCompilerResultsLog& MessageLog
)

This function if used for nodes that needs CDO for validation (Called before expansion)

Public function Virtual

void

 

ExpandNode

(
    FKismetCompilerContext& CompilerCo...,
    UEdGraph* SourceGraph
)

Expands a node while compiling, which may add additional nodes or delete this node

Public function

UK2Node *...

 

ExpandSplitPin

(
    FKismetCompilerContext* Compil...,
    UEdGraph* SourceGraph,
    UEdGraphPin* Pin
)

Public function

void

 

ExpandSplitPins

(
    FKismetCompilerContext& CompilerCo...,
    UEdGraph* SourceGraph
)

Helper function for ExpandNode(), allowing other contexts to call pin expansion alone

Protected function Virtual

void

 

FixupPinDefaultValues()

Handle backwards compatible fixes on load

Protected function Virtual

void

 

FixupPinStringDataReferences

(
    FArchive* SavingArchive
)

Fixes up structure/soft object ref pins, on both save and load

Public function Const

UBlueprint &...

 

GetBlueprint()

Get the Blueprint object to which this node belongs

Public function Const

UClass *

 

GetBlueprintClassFromNode()

Util to get the generated class from a node.

Public function Virtual Const

FText

 

GetCompactNodeTitle()

Return title if drawing this node in 'compact' mode

Public function Virtual Const

FName

 

GetCornerIcon()

Public function Virtual Const

UClass *

 

GetDynamicBindingClass()

Returns which dynamic binding class (if any) to use for this node.

Public function Const

UEdGraphPin ...

 

GetExecPin()

Get the input execution pin if this node is impure (will return NULL when IsNodePure() returns true)

Public function Virtual Const

void

 

GetMenuActions

Replacement for GetMenuEntries().

Public function Virtual Const

FText

 

GetMenuCategory()

Override to provide a default category for specific node types to be listed under.

Public function Virtual Const

void

 

GetNodeAttributes

(
    TArray< TKeyValuePair< FString, FSt...
)

This function returns an arbitrary number of attributes that describe this node for analytics events

Public function Virtual Const

int32

 

GetNodeRefreshPriority()

Protected function Virtual Const

void

 

GetRedirectPinNames

(
    const UEdGraphPin& Pin,
    TArray< FString >& RedirectPinName...
)

Determines what the possible redirect pin names are

Public function Virtual Const

AActor *

 

GetReferencedLevelActor()

If this node references an actor in the level that should be selectable by "Find Actors In Level," this will return a reference to that actor

Public function Virtual Const

FBlueprintNo...

 

GetSignature()

Retrieves a unique identifier for this node type.

Public function Virtual Const

FText

 

GetToolTipHeading()

Public function Virtual

void

 

HandleVariableRenamed

(
    UBlueprint* InBlueprint,
    UClass* InVariableClass,
    UEdGraph* InGraph,
    const FName& InOldVarName,
    const FName& InNewVarName
)

Handle when a variable is renamed in the Blueprint Palette

Public function Virtual Const

bool

 

HasExternalDependencies

(
    TArray< class UStruct* >*...
)

Returns whether or not this node has dependencies on an external structure If OptionalOutput isn't null, it should be filled with the known dependencies objects (Classes, Structures, Functions, etc).

Public function Const

bool

 

HasValidBlueprint()

Return true if this node has a valid blueprint outer, or false otherwise.

Public function

void

 

InsertNewNode

(
    UEdGraphPin* FromPin,
    UEdGraphPin* NewLinkPin,
    TSet< UEdGraphNode* >& OutNod...
)

Handles inserting the node between the FromPin and what the FromPin was original connected to

Public function Virtual

bool

 

IsActionFilteredOut

(
    FBlueprintActionFilter const& Filt...
)

Determine if the node of this type should be filtered in the actions menu

Public function Virtual Const

bool

 

IsConnectionDisallowed

(
    const UEdGraphPin* MyPin,
    const UEdGraphPin* OtherPin,
    FString& OutReason
)

Public function Virtual Const

bool

 

IsNodePure()

Returns whether this node is considered 'pure' by the compiler

Public function Virtual Const

bool

 

IsNodeRootSet()

Query if this node should be kept as part of the root set during the pruning stage of compilation.

Public function Virtual Const

bool

 

IsNodeSafeToIgnore()

Query if this is a node that is safe to ignore (e.g., a comment node or other non-structural annotation that can be pruned with no warnings).

Protected function

void

 

Message_Error

(
    const FString& Message
)

Protected function

void

 

Message_Note

(
    const FString& Message
)

Sends a message to the owning blueprint's CurrentMessageLog, if there is one available.

Protected function

void

 

Message_Warn

(
    const FString& Message
)

Public function Virtual Const

bool

 

NodeCausesStructuralBlueprintChange()

Return true if adding/removing this node requires calling MarkBlueprintAsStructurallyModified on the Blueprint

Public function Virtual

void

 

NotifyPinConnectionListChanged

(
    UEdGraphPin* Pin
)

Called when the connection list of one of the pins of this node is changed in the editor, after the pin has had it's literal cleared

Public function

FOnUserDefin...

 

OnUserDefinedPinRenamed()

Retrieves a delegate that is called when a user-defined pin on this node is renamed

Public function Virtual

void

 

PostReconstructNode()

Called at the end of ReconstructNode, allows node specific work to be performed

Protected function

void

 

PreloadObject

(
    UObject* ReferencedObject
)

Ensures the specified object is preloaded. ReferencedObject can be NULL.

Public function Virtual

void

 

PreloadRequiredAssets()

Called before compilation begins, giving a blueprint time to force the linker to load data

Public function Virtual

void

 

ReallocatePinsDuringReconstruction

(
    TArray< UEdGraphPin* >& OldPi...
)

Reallocate pins during reconstruction; by default ignores the old pins and calls AllocateDefaultPins() If you override this to create additional pins you likely need to call RestoreSplitPins to restore any pins that have been split (e.g. a vector pin split into its components)

Protected function

void

 

ReconstructSinglePin

(
    UEdGraphPin* NewPin,
    UEdGraphPin* OldPin,
    ERedirectType RedirectType
)

Handles the actual reconstruction (copying data, links, name, etc...) from two pins that have already been matched together.

Public function Virtual Const

bool

 

ReferencesVariable

(
    const FName& InVarName,
    const UStruct* InScope
)

Return whether this node references the specified variable, give the supplied scope.

Public function Virtual Const

void

 

RegisterDynamicBinding

(
    UDynamicBlueprintBinding* Bind...
)

Puts information about this node into the dynamic binding object.

Public function

ERenamePinRe...

 

RenameUserDefinedPin

(
    const FName OldName,
    const FName NewName,
    bool bTest
)

Renames a user defined pin and broadcasts the result to any OnUserDefinedPinRenamed listeners on success (if bTest is false)

Protected function Virtual

ERenamePinRe...

 

RenameUserDefinedPinImpl

(
    const FName OldName,
    const FName NewName,
    bool bTest
)

Implementation function that renames an existing pin on the node. Does not broadcast notifications.

Protected function

void

 

RestoreSplitPins

(
    TArray< UEdGraphPin* >& OldPi...
)

Helper function to restore Split Pins after ReallocatePinsDuringReconstruction, call after recreating all pins to restore split pin state.

Protected function

void

 

RewireOldPinsToNewPins

(
    TArray< UEdGraphPin* >& InOld...,
    TArray< UEdGraphPin* >& InNew...,
    TMap< UEdGraphPin*, UEdGraphPi...
)

Helper function to rewire old pins to new pins during node reconstruction (or other regeneration of pins)

Public function Virtual Const

bool

 

ShouldDrawAsBead()

Should draw as a bead with no location of it's own

Public function Virtual Const

bool

 

ShouldDrawCompact()

Should draw compact

Protected function Const

ERedirectTyp...

 

ShouldRedirectParam

(
    const TArray< FString >& OldPinNam...,
    FName& NewPinName,
    const UK2Node* NewPinNode
)

Searches ParamRedirect Map and find if there is matching new param

returns the redirect type

Public function Virtual Const

bool

 

ShouldShowNodeProperties()

Return whether the node's properties display in the blueprint details panel

Overridden from UEdGraphNode

Name Description

Public function Virtual

void

 

AutowireNewNode

(
    UEdGraphPin* FromPin
)

Autowire a newly created node.

Public function Virtual Const

bool

 

CanCreateUnderSpecifiedSchema

(
    const UEdGraphSchema* DesiredS...
)

Can this node be created under the specified schema.

Public function Virtual Const

bool

 

CanJumpToDefinition()

Returns true if it is possible to jump to the definition of this node (e.g., if it's a variable get or a function call)

Public function Virtual Const

bool

 

CanSplitPin

(
    const UEdGraphPin* Pin
)

Whether or not struct pins belonging to this node should be allowed to be split or not.

Public function Virtual Const

FString

 

GetDocumentationLink()

Returns the link used for external documentation for the graph node

Public function Virtual Const

UObject *...

 

GetJumpTargetForDoubleClick()

Returns the object that should be focused when double-clicking on this node (the object can be an actor, which selects it in the world, or a node/graph/pin)

Public function Virtual Const

FLinearColor

 

GetNodeTitleColor()

Gets the draw color of a node's title bar

Public function Virtual Const

UEdGraphPin ...

 

GetPassThroughPin

(
    const UEdGraphPin* FromPin
)

Return the matching "pass-through" pin for the given pin (if supported by this node)

Public function Virtual Const

void

 

GetPinHoverText

(
    const UEdGraphPin& Pin,
    FString& HoverTextOut
)

Fetch the hover text for a pin when the graph is being edited.

Public function Virtual

FString

 

GetPinMetaData

(
    FName InPinName,
    FName InKey
)

Return the requested metadata for the pin if there is any

Public function Virtual Const

bool

 

IsInDevelopmentMode()

Determines whether or not the node will compile in development mode.

Public function Virtual Const

void

 

JumpToDefinition()

Jump to the definition of this node (should only be called if CanJumpToDefinition() return true)

Public function Virtual

void

 

PinConnectionListChanged

(
    UEdGraphPin* Pin
)

Called when the connection list of one of the pins of this node is changed in the editor

Public function Virtual

void

 

ReconstructNode()

Refresh the connectors on a node, preserving as many connections as it can.

Public function Virtual Const

bool

 

ShowPaletteIconOnNode()

Should we show the Palette Icon for this node on the node title

Public function Virtual Const

void

 

ValidateNodeDuringCompilation

(
    FCompilerResultsLog& MessageLog
)

Gives each visual node a chance to do final validation before it's node is harvested for use at runtime.

Overridden from UObject

Name Description

Public function Virtual

void

 

PostLoad()

Do any object-specific cleanup required immediately after loading an object.

Public function Virtual

void

 

Serialize

(
    FArchive& Ar
)

Handles reading, writing, and reference collecting using FArchive.

Enums

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss