UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Script.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 Script.h: Blueprint bytecode execution engine.
5=============================================================================*/
6
7#pragma once
8
10#include "HAL/ThreadSingleton.h"
11#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
13#endif
14#include "Stats/Stats.h"
15#include "Misc/EnumClassFlags.h"
16#include "Misc/CoreMisc.h"
18
19struct FFrame;
21namespace verse { class task; }
22
23// It's best to set only one of these, but strictly speaking you could set both.
24// The results will be confusing. Native time would be included only in a coarse
25// 'native time' timer, and all overhead would be broken up per script function
26#define TOTAL_OVERHEAD_SCRIPT_STATS (STATS && 0)
27#define PER_FUNCTION_SCRIPT_STATS ((STATS || ENABLE_STATNAMEDEVENTS) && 1)
28
30
31#if TOTAL_OVERHEAD_SCRIPT_STATS
34#endif // TOTAL_OVERHEAD_SCRIPT_STATS
35
36/*-----------------------------------------------------------------------------
37 Constants & types.
38-----------------------------------------------------------------------------*/
39
40// Sizes.
41enum { MAX_STRING_CONST_SIZE = 1024 };
42
47
53
54
61// If you change this, make sure to bump either VER_MIN_SCRIPTVM_UE4 or VER_MIN_SCRIPTVM_LICENSEEUE4
62#define SCRIPT_LIMIT_BYTECODE_TO_64KB 0
63
64#if SCRIPT_LIMIT_BYTECODE_TO_64KB
66#else
68#endif
69
70// Context object for data and utilities that may be needed throughout BP execution
71// In the future, it would be preferable for this not to be a thread singleton but to have
72// clearer initialization/termination semantics and per-thread tuning for the stack allocator
74{
75public:
76
78
80
81 FVirtualStackAllocator* GetVirtualStackAllocator() { return &VirtualStackAllocator; }
82
83private:
84
85 FVirtualStackAllocator VirtualStackAllocator;
86};
87
88//
89// Blueprint VM intrinsic return value declaration.
90//
91#define RESULT_PARAM Z_Param__Result
92#define RESULT_DECL void*const RESULT_PARAM
93
96{
97 enum Type
98 {
100 Absorbed = 0x0,
102 Remote = 0x1,
104 Local = 0x2
105 };
106
108 inline const TCHAR* ToString(FunctionCallspace::Type Callspace)
109 {
110 switch (Callspace)
111 {
112 case Absorbed:
113 return TEXT("Absorbed");
114 case Remote:
115 return TEXT("Remote");
116 case Local:
117 return TEXT("Local");
118 }
119
120 return TEXT("");
121 }
122}
123
124//
125// Function flags.
126//
127// Note: Please keep ParseFunctionFlags in sync when this enum is modified.
128//
129// This MUST be kept in sync with EEnumFlags defined in
130// Engine\Source\Programs\Shared\EpicGames.Core\UnrealEngineTypes.cs
132{
133 // Function flags.
134 FUNC_None = 0x00000000,
135
136 FUNC_Final = 0x00000001, // Function is final (prebindable, non-overridable function).
137 FUNC_RequiredAPI = 0x00000002, // Indicates this function is DLL exported/imported.
138 FUNC_BlueprintAuthorityOnly= 0x00000004, // Function will only run if the object has network authority
139 FUNC_BlueprintCosmetic = 0x00000008, // Function is cosmetic in nature and should not be invoked on dedicated servers
140 // FUNC_ = 0x00000010, // unused.
141 // FUNC_ = 0x00000020, // unused.
142 FUNC_Net = 0x00000040, // Function is network-replicated.
143 FUNC_NetReliable = 0x00000080, // Function should be sent reliably on the network.
144 FUNC_NetRequest = 0x00000100, // Function is sent to a net service
145 FUNC_Exec = 0x00000200, // Executable from command line.
146 FUNC_Native = 0x00000400, // Native function.
147 FUNC_Event = 0x00000800, // Event function.
148 FUNC_NetResponse = 0x00001000, // Function response from a net service
149 FUNC_Static = 0x00002000, // Static function.
150 FUNC_NetMulticast = 0x00004000, // Function is networked multicast Server -> All Clients
151 FUNC_UbergraphFunction = 0x00008000, // Function is used as the merge 'ubergraph' for a blueprint, only assigned when using the persistent 'ubergraph' frame
152 FUNC_MulticastDelegate = 0x00010000, // Function is a multi-cast delegate signature (also requires FUNC_Delegate to be set!)
153 FUNC_Public = 0x00020000, // Function is accessible in all classes (if overridden, parameters must remain unchanged).
154 FUNC_Private = 0x00040000, // Function is accessible only in the class it is defined in (cannot be overridden, but function name may be reused in subclasses. IOW: if overridden, parameters don't need to match, and Super.Func() cannot be accessed since it's private.)
155 FUNC_Protected = 0x00080000, // Function is accessible only in the class it is defined in and subclasses (if overridden, parameters much remain unchanged).
156 FUNC_Delegate = 0x00100000, // Function is delegate signature (either single-cast or multi-cast, depending on whether FUNC_MulticastDelegate is set.)
157 FUNC_NetServer = 0x00200000, // Function is executed on servers (set by replication code if passes check)
158 FUNC_HasOutParms = 0x00400000, // function has out (pass by reference) parameters
159 FUNC_HasDefaults = 0x00800000, // function has structs that contain defaults
160 FUNC_NetClient = 0x01000000, // function is executed on clients
161 FUNC_DLLImport = 0x02000000, // function is imported from a DLL
162 FUNC_BlueprintCallable = 0x04000000, // function can be called from blueprint code
163 FUNC_BlueprintEvent = 0x08000000, // function can be overridden/implemented from a blueprint
164 FUNC_BlueprintPure = 0x10000000, // function can be called from blueprint code, and is also pure (produces no side effects). If you set this, you should set FUNC_BlueprintCallable as well.
165 FUNC_EditorOnly = 0x20000000, // function can only be called from an editor scrippt.
166 FUNC_Const = 0x40000000, // function can be called from blueprint code, and only reads state (never writes state)
167 FUNC_NetValidate = 0x80000000, // function must supply a _Validate implementation
168
169 FUNC_AllFlags = 0xFFFFFFFF,
170};
171
173{
174 Ar << (uint32&)Flags;
175 return Ar;
176}
177
179
180// Combinations of flags.
181#define FUNC_FuncInherit ((EFunctionFlags)(FUNC_Exec | FUNC_Event | FUNC_BlueprintCallable | FUNC_BlueprintEvent | FUNC_BlueprintAuthorityOnly | FUNC_BlueprintCosmetic | FUNC_Const))
182#define FUNC_FuncOverrideMatch ((EFunctionFlags)(FUNC_Exec | FUNC_Final | FUNC_Static | FUNC_Public | FUNC_Protected | FUNC_Private))
183#define FUNC_NetFuncFlags ((EFunctionFlags)(FUNC_Net | FUNC_NetReliable | FUNC_NetServer | FUNC_NetClient | FUNC_NetMulticast))
184#define FUNC_AccessSpecifiers ((EFunctionFlags)(FUNC_Public | FUNC_Private | FUNC_Protected))
185
186//
187// Evaluatable expression item types.
188//
190{
191 // Variable references.
192 EX_LocalVariable = 0x00, // A local variable.
193 EX_InstanceVariable = 0x01, // An object variable.
194 EX_DefaultVariable = 0x02, // Default variable for a class context.
195 // = 0x03,
196 EX_Return = 0x04, // Return from function.
197 // = 0x05,
198 EX_Jump = 0x06, // Goto a local address in code.
199 EX_JumpIfNot = 0x07, // Goto if not expression.
200 // = 0x08,
201 EX_Assert = 0x09, // Assertion.
202 // = 0x0A,
203 EX_Nothing = 0x0B, // No operation.
204 EX_NothingInt32 = 0x0C, // No operation with an int32 argument (useful for debugging script disassembly)
205 // = 0x0D,
206 // = 0x0E,
207 EX_Let = 0x0F, // Assign an arbitrary size value to a variable.
208 // = 0x10,
209 EX_BitFieldConst = 0x11, // assign to a single bit, defined by an FProperty
210 EX_ClassContext = 0x12, // Class default object context.
211 EX_MetaCast = 0x13, // Metaclass cast.
212 EX_LetBool = 0x14, // Let boolean variable.
213 EX_EndParmValue = 0x15, // end of default value for optional function parameter
214 EX_EndFunctionParms = 0x16, // End of function call parameters.
215 EX_Self = 0x17, // Self object.
216 EX_Skip = 0x18, // Skippable expression.
217 EX_Context = 0x19, // Call a function through an object context.
218 EX_Context_FailSilent = 0x1A, // Call a function through an object context (can fail silently if the context is NULL; only generated for functions that don't have output or return values).
219 EX_VirtualFunction = 0x1B, // A function call with parameters.
220 EX_FinalFunction = 0x1C, // A prebound function call with parameters.
221 EX_IntConst = 0x1D, // Int constant.
222 EX_FloatConst = 0x1E, // Floating point constant.
223 EX_StringConst = 0x1F, // String constant.
224 EX_ObjectConst = 0x20, // An object constant.
225 EX_NameConst = 0x21, // A name constant.
226 EX_RotationConst = 0x22, // A rotation constant.
227 EX_VectorConst = 0x23, // A vector constant.
228 EX_ByteConst = 0x24, // A byte constant.
229 EX_IntZero = 0x25, // Zero.
230 EX_IntOne = 0x26, // One.
231 EX_True = 0x27, // Bool True.
232 EX_False = 0x28, // Bool False.
233 EX_TextConst = 0x29, // FText constant
234 EX_NoObject = 0x2A, // NoObject.
235 EX_TransformConst = 0x2B, // A transform constant
236 EX_IntConstByte = 0x2C, // Int constant that requires 1 byte.
237 EX_NoInterface = 0x2D, // A null interface (similar to EX_NoObject, but for interfaces)
238 EX_DynamicCast = 0x2E, // Safe dynamic class casting.
239 EX_StructConst = 0x2F, // An arbitrary UStruct constant
240 EX_EndStructConst = 0x30, // End of UStruct constant
241 EX_SetArray = 0x31, // Set the value of arbitrary array
243 EX_PropertyConst = 0x33, // FProperty constant.
244 EX_UnicodeStringConst = 0x34, // Unicode string constant.
245 EX_Int64Const = 0x35, // 64-bit integer constant.
246 EX_UInt64Const = 0x36, // 64-bit unsigned integer constant.
247 EX_DoubleConst = 0x37, // Double constant.
248 EX_Cast = 0x38, // A casting operator which reads the type as the subsequent byte
249 EX_SetSet = 0x39,
250 EX_EndSet = 0x3A,
251 EX_SetMap = 0x3B,
252 EX_EndMap = 0x3C,
257 EX_Vector3fConst = 0x41, // A float vector constant.
258 EX_StructMemberContext = 0x42, // Context expression to address a property within a struct
259 EX_LetMulticastDelegate = 0x43, // Assignment to a multi-cast delegate
260 EX_LetDelegate = 0x44, // Assignment to a delegate
261 EX_LocalVirtualFunction = 0x45, // Special instructions to quickly call a virtual function that we know is going to run only locally
262 EX_LocalFinalFunction = 0x46, // Special instructions to quickly call a final function that we know is going to run only locally
263 // = 0x47, // CST_ObjectToBool
264 EX_LocalOutVariable = 0x48, // local out (pass by reference) function parameter
265 // = 0x49, // CST_InterfaceToBool
267 EX_InstanceDelegate = 0x4B, // const reference to a delegate or normal function object
268 EX_PushExecutionFlow = 0x4C, // push an address on to the execution flow stack for future execution when a EX_PopExecutionFlow is executed. Execution continues on normally and doesn't change to the pushed address.
269 EX_PopExecutionFlow = 0x4D, // continue execution at the last address previously pushed onto the execution flow stack.
270 EX_ComputedJump = 0x4E, // Goto a local address in code, specified by an integer value.
271 EX_PopExecutionFlowIfNot = 0x4F, // continue execution at the last address previously pushed onto the execution flow stack, if the condition is not true.
272 EX_Breakpoint = 0x50, // Breakpoint. Only observed in the editor, otherwise it behaves like EX_Nothing.
273 EX_InterfaceContext = 0x51, // Call a function through a native interface variable
274 EX_ObjToInterfaceCast = 0x52, // Converting an object reference to native interface variable
275 EX_EndOfScript = 0x53, // Last byte in script code
276 EX_CrossInterfaceCast = 0x54, // Converting an interface variable reference to native interface variable
277 EX_InterfaceToObjCast = 0x55, // Converting an interface variable reference to an object
278 // = 0x56,
279 // = 0x57,
280 // = 0x58,
281 // = 0x59,
282 EX_WireTracepoint = 0x5A, // Trace point. Only observed in the editor, otherwise it behaves like EX_Nothing.
283 EX_SkipOffsetConst = 0x5B, // A CodeSizeSkipOffset constant
284 EX_AddMulticastDelegate = 0x5C, // Adds a delegate to a multicast delegate's targets
285 EX_ClearMulticastDelegate = 0x5D, // Clears all delegates in a multicast target
286 EX_Tracepoint = 0x5E, // Trace point. Only observed in the editor, otherwise it behaves like EX_Nothing.
287 EX_LetObj = 0x5F, // assign to any object ref pointer
288 EX_LetWeakObjPtr = 0x60, // assign to a weak object pointer
289 EX_BindDelegate = 0x61, // bind object and name to delegate
290 EX_RemoveMulticastDelegate = 0x62, // Remove a delegate from a multicast delegate's targets
291 EX_CallMulticastDelegate = 0x63, // Call multicast delegate
296 EX_CallMath = 0x68, // static pure function from on local call space
298 EX_InstrumentationEvent = 0x6A, // Instrumentation event
300 EX_ClassSparseDataVariable = 0x6C, // Sparse data variable
302 // = 0x6E,
303 // = 0x6F,
304 EX_AutoRtfmTransact = 0x70, // AutoRTFM: run following code in a transaction
305 EX_AutoRtfmStopTransact = 0x71, // AutoRTFM: if in a transaction, abort or break, otherwise no operation
306 EX_AutoRtfmAbortIfNot = 0x72, // AutoRTFM: evaluate bool condition, abort transaction on false
307 EX_Max = 0xFF,
308};
309
316
327
328// Kinds of text literals
330{
331 /* Text is an empty string. The bytecode contains no strings, and you should use FText::GetEmpty() to initialize the FText instance. */
332 Empty,
341};
342
343// Script instrumentation event types
367
368// Information about a blueprint instrumentation signal
370{
371public:
372
374
384
387
390
392 bool IsContextObjectValid() const { return ContextObject != nullptr; }
393
395 const UObject* GetContextObject() const { return ContextObject; }
396
398 bool IsStackFrameValid() const { return StackFramePtr != nullptr; }
399
401 const FFrame& GetStackFrame() const { return *StackFramePtr; }
402
404 COREUOBJECT_API const UClass* GetClass() const;
405
408
411
414
417
418protected:
419
429 const struct FFrame* StackFramePtr;
431};
432
433// Blueprint core runtime delegates
435{
436public:
437 // Callback for debugging events such as a breakpoint (Object that triggered event, active stack frame, Info)
439 // Callback for blueprint profiling signals
441 // Callback for blueprint instrumentation enable/disable events
443
444public:
445 // Called when a script exception occurs
447 // Called when a script profiling event is fired
449 // Called when a script profiler is enabled/disabled
451
452public:
457};
458
459#if DO_BLUEPRINT_GUARD
460
464struct COREUOBJECT_API FBlueprintContextTracker : TThreadSingleton<FBlueprintContextTracker>
465{
466 FBlueprintContextTracker() = default;
467
470
472 static const FBlueprintContextTracker* TryGet();
473
475 void ResetRunaway();
476
479 {
480 return ++Runaway;
481 }
482
484 void EnterScriptContext(const class UObject* ContextObject, const class UFunction* ContextFunction);
485
487 void ExitScriptContext();
488
491
494
497 {
498 return ScriptEntryTag;
499 }
500
502 UE_DEPRECATED(5.1, "GetScriptStack() inefficiently copies the array to return and is now deprecated. Use GetCurrentScriptStack() which returns a TArrayView instead")
504 {
506 }
507
510 {
512 }
513
515 {
517 }
518
522
526
527private:
528
529 // Runaway tracking
530 int32 Runaway = 0;
531 int32 Recurse = 0;
532 bool bRanaway = false;
533 bool bScriptTimedOut = false;
534
535 // Script entry point tracking, enter/exit context
537
538 // Stack pointers from the VM to be unrolled when we assert
540
541 // Map of reported access warnings in exception handler
543
544 // Only FFrame can modify the stack
545 friend FFrame;
547 friend verse::task;
548};
549
550#endif // DO_BLUEPRINT_GUARD
551
552
553// Scoped struct to allow execution of script in editor, while resetting the runaway loop counts
555{
556public:
559
560private:
561 bool bOldGAllowScriptExecutionInEditor;
562};
563
564#if TOTAL_OVERHEAD_SCRIPT_STATS
565 // Low overhead timer used to instrument the VM (ProcessEvent and ProcessInternal):
567 {
568 struct FPausableScopeTimer;
569 struct FScopedVMTimer;
570
571 class FThreadedTimerManager : public TThreadSingleton<FThreadedTimerManager>
572 {
573 public:
575 : ActiveTimer(nullptr)
576 , ActiveVMScope(nullptr)
577 {}
578
580
581 // We need to keep track of the current VM timer because we only want to
582 // track time while 'in' the VM. We use this to detect whether we're running
583 // script or just doing RPC:
585 };
586
588 {
590 : PreviouslyActiveTimer(nullptr)
591 , TotalTime(0.0)
592 , StartTime(0.0)
593 {
594 }
595
596 void Start();
597 void Pause(double CurrentTime) { TotalTime += CurrentTime - StartTime; }
598 void Resume() { StartTime = FPlatformTime::Seconds(); }
599 double Stop();
600
601 private:
603 double TotalTime;
604 double StartTime;
605 };
606
607 struct FScopedVMTimer
608 {
611
614 };
615
616 struct FScopedNativeTimer
617 {
620
622 };
623 };
624
625#define SCOPED_SCRIPT_NATIVE_TIMER(VarName) \
626 FBlueprintEventTimer::FScopedNativeTimer VarName
627
628#else // TOTAL_OVERHEAD_SCRIPT_STATS
629 #define SCOPED_SCRIPT_NATIVE_TIMER(VarName)
630#endif // TOTAL_OVERHEAD_SCRIPT_STATS
632COREUOBJECT_API bool IsValidCPPIdentifierChar(TCHAR Char);
633
636
643COREUOBJECT_API FString UnicodeToCPPIdentifier(const FString& InName, bool bDeprecated, const TCHAR* Prefix);
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define UE_FORCEINLINE_HINT
Definition Platform.h:723
#define DECLARE_STATS_GROUP(GroupDesc, GroupId, GroupCat)
Definition Stats.h:689
#define DECLARE_FLOAT_COUNTER_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:681
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_ThreeParams(DelegateName, Param1Type, Param2Type, Param3Type)
Definition DelegateCombinations.h:67
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
@ Char
Character type.
@ Stop
Definition PrecomputedVolumetricLightmapStreaming.cpp:26
void ProcessLocalScriptFunction(UObject *Context, FFrame &Stack, RESULT_DECL)
Definition ScriptCore.cpp:1186
EAutoRtfmStopTransactMode
Definition Script.h:311
@ AbortingExitAndAbortParent
Definition Script.h:314
@ AbortingExit
Definition Script.h:313
@ GracefulExit
Definition Script.h:312
#define RESULT_DECL
Definition Script.h:92
COREUOBJECT_API FString ToValidCPPIdentifierChars(TCHAR Char)
Definition ScriptCore.cpp:429
uint32 CodeSkipSizeType
Definition Script.h:67
@ MAX_STRING_CONST_SIZE
Definition Script.h:41
UE_FORCEINLINE_HINT FArchive & operator<<(FArchive &Ar, EFunctionFlags &Flags)
Definition Script.h:172
EFunctionFlags
Definition Script.h:132
@ FUNC_BlueprintPure
Definition Script.h:164
@ FUNC_NetClient
Definition Script.h:160
@ FUNC_Protected
Definition Script.h:155
@ FUNC_Final
Definition Script.h:136
@ FUNC_EditorOnly
Definition Script.h:165
@ FUNC_BlueprintCallable
Definition Script.h:162
@ FUNC_BlueprintEvent
Definition Script.h:163
@ FUNC_NetServer
Definition Script.h:157
@ FUNC_HasDefaults
Definition Script.h:159
@ FUNC_Net
Definition Script.h:142
@ FUNC_Public
Definition Script.h:153
@ FUNC_BlueprintCosmetic
Definition Script.h:139
@ FUNC_None
Definition Script.h:134
@ FUNC_NetValidate
Definition Script.h:167
@ FUNC_RequiredAPI
Definition Script.h:137
@ FUNC_HasOutParms
Definition Script.h:158
@ FUNC_Private
Definition Script.h:154
@ FUNC_AllFlags
Definition Script.h:169
@ FUNC_NetResponse
Definition Script.h:148
@ FUNC_BlueprintAuthorityOnly
Definition Script.h:138
@ FUNC_NetRequest
Definition Script.h:144
@ FUNC_MulticastDelegate
Definition Script.h:152
@ FUNC_NetReliable
Definition Script.h:143
@ FUNC_Event
Definition Script.h:147
@ FUNC_DLLImport
Definition Script.h:161
@ FUNC_UbergraphFunction
Definition Script.h:151
@ FUNC_NetMulticast
Definition Script.h:150
@ FUNC_Const
Definition Script.h:166
@ FUNC_Delegate
Definition Script.h:156
@ FUNC_Native
Definition Script.h:146
@ FUNC_Exec
Definition Script.h:145
@ FUNC_Static
Definition Script.h:149
uint16 VariableSizeType
Definition Script.h:52
ECastToken
Definition Script.h:318
@ CST_FloatToDouble
Definition Script.h:323
@ CST_DoubleToFloat
Definition Script.h:322
@ CST_ObjectToInterface
Definition Script.h:319
@ CST_ObjectToBool
Definition Script.h:320
@ CST_InterfaceToBool
Definition Script.h:321
@ CST_Max
Definition Script.h:325
COREUOBJECT_API FString UnicodeToCPPIdentifier(const FString &InName, bool bDeprecated, const TCHAR *Prefix)
Definition ScriptCore.cpp:463
EExprToken
Definition Script.h:190
@ EX_SkipOffsetConst
Definition Script.h:283
@ EX_WireTracepoint
Definition Script.h:282
@ EX_BitFieldConst
Definition Script.h:209
@ EX_Cast
Definition Script.h:248
@ EX_RemoveMulticastDelegate
Definition Script.h:290
@ EX_LetWeakObjPtr
Definition Script.h:288
@ EX_SetArray
Definition Script.h:241
@ EX_InstanceDelegate
Definition Script.h:267
@ EX_SetSet
Definition Script.h:249
@ EX_StringConst
Definition Script.h:223
@ EX_FieldPathConst
Definition Script.h:301
@ EX_VectorConst
Definition Script.h:227
@ EX_NoInterface
Definition Script.h:237
@ EX_UInt64Const
Definition Script.h:246
@ EX_NameConst
Definition Script.h:225
@ EX_LetDelegate
Definition Script.h:260
@ EX_True
Definition Script.h:231
@ EX_PropertyConst
Definition Script.h:243
@ EX_EndSet
Definition Script.h:250
@ EX_AutoRtfmAbortIfNot
Definition Script.h:306
@ EX_Self
Definition Script.h:215
@ EX_StructConst
Definition Script.h:239
@ EX_ClassContext
Definition Script.h:210
@ EX_EndFunctionParms
Definition Script.h:214
@ EX_LocalVariable
Definition Script.h:192
@ EX_EndOfScript
Definition Script.h:275
@ EX_TextConst
Definition Script.h:233
@ EX_CallMulticastDelegate
Definition Script.h:291
@ EX_LetMulticastDelegate
Definition Script.h:259
@ EX_NoObject
Definition Script.h:234
@ EX_FinalFunction
Definition Script.h:220
@ EX_ArrayConst
Definition Script.h:293
@ EX_MetaCast
Definition Script.h:211
@ EX_Max
Definition Script.h:307
@ EX_LetBool
Definition Script.h:212
@ EX_ObjectConst
Definition Script.h:224
@ EX_ArrayGetByRef
Definition Script.h:299
@ EX_SoftObjectConst
Definition Script.h:295
@ EX_Skip
Definition Script.h:216
@ EX_Jump
Definition Script.h:198
@ EX_PopExecutionFlowIfNot
Definition Script.h:271
@ EX_InstanceVariable
Definition Script.h:193
@ EX_SwitchValue
Definition Script.h:297
@ EX_RotationConst
Definition Script.h:226
@ EX_LetObj
Definition Script.h:287
@ EX_EndArrayConst
Definition Script.h:294
@ EX_Nothing
Definition Script.h:203
@ EX_SetConst
Definition Script.h:253
@ EX_ClearMulticastDelegate
Definition Script.h:285
@ EX_CrossInterfaceCast
Definition Script.h:276
@ EX_Vector3fConst
Definition Script.h:257
@ EX_SetMap
Definition Script.h:251
@ EX_Int64Const
Definition Script.h:245
@ EX_LetValueOnPersistentFrame
Definition Script.h:292
@ EX_InterfaceContext
Definition Script.h:273
@ EX_AutoRtfmTransact
Definition Script.h:304
@ EX_Tracepoint
Definition Script.h:286
@ EX_Assert
Definition Script.h:201
@ EX_EndMapConst
Definition Script.h:256
@ EX_EndArray
Definition Script.h:242
@ EX_ComputedJump
Definition Script.h:270
@ EX_EndStructConst
Definition Script.h:240
@ EX_UnicodeStringConst
Definition Script.h:244
@ EX_JumpIfNot
Definition Script.h:199
@ EX_InstrumentationEvent
Definition Script.h:298
@ EX_MapConst
Definition Script.h:255
@ EX_PopExecutionFlow
Definition Script.h:269
@ EX_ClassSparseDataVariable
Definition Script.h:300
@ EX_EndMap
Definition Script.h:252
@ EX_DefaultVariable
Definition Script.h:194
@ EX_VirtualFunction
Definition Script.h:219
@ EX_NothingInt32
Definition Script.h:204
@ EX_LocalOutVariable
Definition Script.h:264
@ EX_AddMulticastDelegate
Definition Script.h:284
@ EX_EndSetConst
Definition Script.h:254
@ EX_IntConstByte
Definition Script.h:236
@ EX_BindDelegate
Definition Script.h:289
@ EX_IntConst
Definition Script.h:221
@ EX_AutoRtfmStopTransact
Definition Script.h:305
@ EX_TransformConst
Definition Script.h:235
@ EX_FloatConst
Definition Script.h:222
@ EX_Context
Definition Script.h:217
@ EX_Return
Definition Script.h:196
@ EX_ObjToInterfaceCast
Definition Script.h:274
@ EX_InterfaceToObjCast
Definition Script.h:277
@ EX_IntOne
Definition Script.h:230
@ EX_DynamicCast
Definition Script.h:238
@ EX_LocalFinalFunction
Definition Script.h:262
@ EX_CallMath
Definition Script.h:296
@ EX_PushExecutionFlow
Definition Script.h:268
@ EX_LocalVirtualFunction
Definition Script.h:261
@ EX_Context_FailSilent
Definition Script.h:218
@ EX_IntZero
Definition Script.h:229
@ EX_StructMemberContext
Definition Script.h:258
@ EX_DeprecatedOp4A
Definition Script.h:266
@ EX_Breakpoint
Definition Script.h:272
@ EX_False
Definition Script.h:232
@ EX_ByteConst
Definition Script.h:228
@ EX_EndParmValue
Definition Script.h:213
@ EX_Let
Definition Script.h:207
@ EX_DoubleConst
Definition Script.h:247
EBlueprintTextLiteralType
Definition Script.h:330
@ MAX_SIMPLE_RETURN_VALUE_SIZE
Definition Script.h:46
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition Script.h:74
static COREUOBJECT_API FBlueprintContext * GetThreadSingleton()
Definition ScriptCore.cpp:208
FBlueprintContext()
Definition ScriptCore.cpp:187
FVirtualStackAllocator * GetVirtualStackAllocator()
Definition Script.h:81
Definition Script.h:435
static COREUOBJECT_API FOnScriptInstrumentEvent OnScriptProfilingEvent
Definition Script.h:448
static COREUOBJECT_API bool IsDebuggingEnabled()
Definition ScriptCore.cpp:280
DECLARE_MULTICAST_DELEGATE_OneParam(FOnToggleScriptProfiler, bool)
static COREUOBJECT_API void InstrumentScriptEvent(const FScriptInstrumentationSignal &Info)
Definition ScriptCore.cpp:267
static COREUOBJECT_API void ThrowScriptException(const UObject *ActiveObject, struct FFrame &StackFrame, const FBlueprintExceptionInfo &Info)
Definition ScriptCore.cpp:215
DECLARE_MULTICAST_DELEGATE_OneParam(FOnScriptInstrumentEvent, const FScriptInstrumentationSignal &)
static COREUOBJECT_API FOnScriptDebuggingEvent OnScriptException
Definition Script.h:446
DECLARE_MULTICAST_DELEGATE_ThreeParams(FOnScriptDebuggingEvent, const UObject *, const struct FFrame &, const FBlueprintExceptionInfo &)
static COREUOBJECT_API void SetScriptMaximumLoopIterations(const int32 MaximumLoopIterations)
Definition ScriptCore.cpp:272
static COREUOBJECT_API FOnToggleScriptProfiler OnToggleScriptProfiler
Definition Script.h:450
Definition NameTypes.h:617
Definition VirtualStackAllocator.h:72
Definition ArrayView.h:139
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition ThreadSingleton.h:44
static FORCEINLINE T * TryGet()
Definition ThreadSingleton.h:118
static FORCEINLINE T & Get()
Definition ThreadSingleton.h:101
Definition Class.h:3793
Definition Class.h:2476
Definition Object.h:95
Definition Script.h:345
Type
Definition Script.h:347
@ PushState
Definition Script.h:358
@ Stop
Definition Script.h:364
@ Instance
Definition Script.h:350
@ Event
Definition Script.h:351
@ SuspendState
Definition Script.h:361
@ PopState
Definition Script.h:362
@ NodeEntry
Definition Script.h:356
@ NodeExit
Definition Script.h:357
@ NodeDebugSite
Definition Script.h:355
@ ClassScope
Definition Script.h:349
@ ResumeEvent
Definition Script.h:353
@ ResetState
Definition Script.h:360
@ RestoreState
Definition Script.h:359
@ Class
Definition Script.h:348
@ TunnelEndOfThread
Definition Script.h:363
@ InlineEvent
Definition Script.h:352
@ PureNodeEntry
Definition Script.h:354
Definition Script.h:96
@ Start
Definition GeoEnum.h:100
Definition VVMContentScope.cpp:14
static double Seconds()
Definition AndroidPlatformTime.h:20
Definition BlueprintExceptionInfo.h:27
Definition Script.h:555
COREUOBJECT_API FEditorScriptExecutionGuard()
Definition ScriptCore.cpp:403
COREUOBJECT_API ~FEditorScriptExecutionGuard()
Definition ScriptCore.cpp:416
Definition Stack.h:114
Definition Script.h:370
const struct FFrame * StackFramePtr
Definition Script.h:429
bool IsStackFrameValid() const
Definition Script.h:398
COREUOBJECT_API FName GetFunctionName() const
Definition ScriptCore.cpp:820
FScriptInstrumentationSignal(EScriptInstrumentation::Type InEventType, const UObject *InContextObject, UFunction *InFunction, const int32 LinkId=INDEX_NONE)
Definition Script.h:375
void SetType(EScriptInstrumentation::Type InType)
Definition Script.h:389
const UObject * ContextObject
Definition Script.h:423
const FName EventName
Definition Script.h:427
const UFunction * Function
Definition Script.h:425
const int32 LatentLinkId
Definition Script.h:430
COREUOBJECT_API int32 GetScriptCodeOffset() const
Definition ScriptCore.cpp:825
int32 GetLatentLinkId() const
Definition Script.h:416
EScriptInstrumentation::Type EventType
Definition Script.h:421
COREUOBJECT_API const UClass * GetFunctionClassScope() const
Definition ScriptCore.cpp:815
const FFrame & GetStackFrame() const
Definition Script.h:401
const UObject * GetContextObject() const
Definition Script.h:395
COREUOBJECT_API const UClass * GetClass() const
Definition ScriptCore.cpp:810
EScriptInstrumentation::Type GetType() const
Definition Script.h:386
bool IsContextObjectValid() const
Definition Script.h:392