unreal-engine-mcp-server 0.6.0-beta-c → 0.6.0-beta-e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/CHANGELOG.md +148 -9
  2. package/README.md +2 -2
  3. package/dist/gateway/gateway-manifest.generated.json +838 -133
  4. package/dist/proxy/native-proxy.js +6 -5
  5. package/dist/server/gateway/gateway-execute-dispatch.js +2 -1
  6. package/dist/server/gateway/gateway-execute-envelope.js +5 -1
  7. package/dist/server/gateway/gateway-execute-lookup.js +1 -1
  8. package/dist/server/gateway/gateway-execute.js +17 -4
  9. package/dist/server/gateway/gateway-schema-validate.js +13 -2
  10. package/dist/server/gateway/gateway-task-results.d.ts +6 -0
  11. package/dist/server/gateway/gateway-task-results.js +40 -0
  12. package/dist/server/tool-registry-manage-tools.js +4 -1
  13. package/dist/tools/catalog/capabilities/generated/canonical-registry.generated.d.ts +2 -2
  14. package/dist/tools/catalog/capabilities/generated/canonical-registry.generated.js +2 -2
  15. package/dist/tools/catalog/capabilities/generated/canonical-registry.generated.json +4079 -618
  16. package/dist/tools/catalog/capabilities/generated/capability-cost-index.generated.d.ts +1 -1
  17. package/dist/tools/catalog/capabilities/generated/capability-cost-index.generated.js +18 -1
  18. package/dist/tools/catalog/capabilities/generated/parent-tool-definitions.generated.js +1546 -212
  19. package/dist/tools/catalog/capabilities/records/aggregate.d.ts +1 -1
  20. package/dist/tools/catalog/capabilities/records/aggregate.js +1 -1
  21. package/dist/tools/catalog/capabilities/records/build-environment/spline.data.js +4 -3
  22. package/dist/tools/catalog/capabilities/records/build-environment/water.data.js +8 -5
  23. package/dist/tools/catalog/capabilities/records/control-actor/advanced-records.js +29 -8
  24. package/dist/tools/catalog/capabilities/records/control-actor/search-records.js +2 -2
  25. package/dist/tools/catalog/capabilities/records/control-actor/spawn-records.js +13 -5
  26. package/dist/tools/catalog/capabilities/records/control-actor/state-records.js +2 -1
  27. package/dist/tools/catalog/capabilities/records/control-actor/transform-records.js +27 -9
  28. package/dist/tools/catalog/capabilities/records/control-editor/asset.js +4 -1
  29. package/dist/tools/catalog/capabilities/records/control-editor/camera.js +5 -1
  30. package/dist/tools/catalog/capabilities/records/control-editor/command.js +5 -1
  31. package/dist/tools/catalog/capabilities/records/control-editor/input.js +2 -1
  32. package/dist/tools/catalog/capabilities/records/control-editor/screenshot.js +2 -1
  33. package/dist/tools/catalog/capabilities/records/control-editor/session.js +8 -1
  34. package/dist/tools/catalog/capabilities/records/control-editor/timing.js +5 -3
  35. package/dist/tools/catalog/capabilities/records/core/builder.d.ts +1 -0
  36. package/dist/tools/catalog/capabilities/records/core/builder.js +1 -0
  37. package/dist/tools/catalog/capabilities/records/folds/build-environment.folds.js +2 -2
  38. package/dist/tools/catalog/capabilities/records/folds/control-actor.folds.js +2 -2
  39. package/dist/tools/catalog/capabilities/records/folds/manage-asset.folds.js +8 -8
  40. package/dist/tools/catalog/capabilities/records/folds/manage-audio.folds.js +5 -5
  41. package/dist/tools/catalog/capabilities/records/folds/manage-blueprint.folds.js +2 -2
  42. package/dist/tools/catalog/capabilities/records/folds/manage-effect.folds.js +3 -3
  43. package/dist/tools/catalog/capabilities/records/folds/manage-sequence.folds.js +6 -6
  44. package/dist/tools/catalog/capabilities/records/folds/system-control.folds.js +2 -2
  45. package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/animation-properties.js +7 -5
  46. package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/authoring-1.data.js +86 -1
  47. package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/authoring-2.data.js +7 -2
  48. package/dist/tools/catalog/capabilities/records/gameplay/manage-effect/effect-properties.js +7 -6
  49. package/dist/tools/catalog/capabilities/records/gameplay/manage-effect/effect.data.js +38 -27
  50. package/dist/tools/catalog/capabilities/records/inspect/component-actor.data.js +1 -1
  51. package/dist/tools/catalog/capabilities/records/inspect/object-property.data.js +188 -10
  52. package/dist/tools/catalog/capabilities/records/inspect/properties.d.ts +1 -0
  53. package/dist/tools/catalog/capabilities/records/inspect/properties.js +2 -1
  54. package/dist/tools/catalog/capabilities/records/inspect/runtime.data.js +2 -1
  55. package/dist/tools/catalog/capabilities/records/inspect/stats.data.js +6 -2
  56. package/dist/tools/catalog/capabilities/records/manage-asset/asset-advanced.js +46 -0
  57. package/dist/tools/catalog/capabilities/records/manage-asset/asset-lifecycle.js +2 -2
  58. package/dist/tools/catalog/capabilities/records/manage-asset/asset-query.js +4 -3
  59. package/dist/tools/catalog/capabilities/records/manage-asset/builder.d.ts +3 -0
  60. package/dist/tools/catalog/capabilities/records/manage-asset/builder.js +3 -0
  61. package/dist/tools/catalog/capabilities/records/manage-asset/content-sources.js +3 -1
  62. package/dist/tools/catalog/capabilities/records/manage-asset/material-create.js +17 -2
  63. package/dist/tools/catalog/capabilities/records/manage-asset/material-graph.js +7 -5
  64. package/dist/tools/catalog/capabilities/records/manage-asset/material-params.js +5 -5
  65. package/dist/tools/catalog/capabilities/records/manage-audio/authoring.data.js +15 -5
  66. package/dist/tools/catalog/capabilities/records/manage-audio/runtime.data.js +1 -0
  67. package/dist/tools/catalog/capabilities/records/manage-blueprint/functions-events.js +3 -2
  68. package/dist/tools/catalog/capabilities/records/manage-blueprint/graph-batch.js +2 -2
  69. package/dist/tools/catalog/capabilities/records/manage-blueprint/graph-pins.js +6 -2
  70. package/dist/tools/catalog/capabilities/records/manage-blueprint/properties.js +4 -2
  71. package/dist/tools/catalog/capabilities/records/manage-blueprint/scs-components.js +7 -2
  72. package/dist/tools/catalog/capabilities/records/manage-blueprint/variables-metadata.js +8 -2
  73. package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-animation.js +14 -4
  74. package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-lifecycle.js +13 -5
  75. package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-panels.js +1 -1
  76. package/dist/tools/catalog/capabilities/records/manage-sequence/cinematic.js +12 -3
  77. package/dist/tools/catalog/capabilities/records/manage-sequence/helpers.js +2 -2
  78. package/dist/tools/catalog/capabilities/records/manage-sequence/mrq.js +23 -4
  79. package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-bindings.js +2 -2
  80. package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-lifecycle.js +7 -2
  81. package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-playback.js +9 -5
  82. package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-state-ranges.js +19 -0
  83. package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-tracks.js +10 -5
  84. package/dist/tools/catalog/capabilities/records/manage-tools/index.js +30 -2
  85. package/dist/tools/catalog/capabilities/records/system-control/console.js +3 -1
  86. package/dist/tools/catalog/capabilities/records/system-control/system-ops.js +122 -10
  87. package/dist/tools/catalog/capabilities/records/utility/output-glossary.js +11 -0
  88. package/dist/tools/catalog/capabilities/records/utility/utility-schema-pins.js +6 -3
  89. package/dist/tools/catalog/capabilities/records/world/manage-geometry.optimize.data.js +29 -0
  90. package/dist/tools/catalog/capabilities/records/world/manage-geometry.primitives.data.js +2 -1
  91. package/dist/tools/catalog/capabilities/records/world/properties.js +2 -2
  92. package/dist/tools/catalog/capabilities/semantic/envelope.d.ts +1 -1
  93. package/dist/tools/catalog/capabilities/semantic/errors.d.ts +1 -1
  94. package/dist/tools/catalog/unreal-gateway-definition.js +2 -2
  95. package/dist/utils/responses/gateway-reply-compaction.d.ts +6 -0
  96. package/dist/utils/responses/gateway-reply-compaction.js +264 -0
  97. package/dist/utils/responses/response-content.d.ts +0 -1
  98. package/dist/utils/responses/response-content.js +0 -172
  99. package/dist/utils/responses/response-validator.d.ts +1 -1
  100. package/dist/utils/responses/response-validator.js +39 -8
  101. package/package.json +2 -2
  102. package/server.json +2 -2
@@ -12,6 +12,9 @@
12
12
  "edit_anim_graph",
13
13
  "edit_animation",
14
14
  "create_control_rig",
15
+ "edit_control_rig",
16
+ "get_control_rig",
17
+ "list_rig_units",
15
18
  "setup_ik",
16
19
  "edit_montage",
17
20
  "play_montage",
@@ -82,6 +85,7 @@
82
85
  "conditionVariable",
83
86
  "connectToOutput",
84
87
  "constraintName",
88
+ "controlType",
85
89
  "createConstraints",
86
90
  "createIfMissing",
87
91
  "crossfadeDuration",
@@ -99,9 +103,11 @@
99
103
  "forceRootLock",
100
104
  "frame",
101
105
  "frameRate",
106
+ "from",
102
107
  "fromSection",
103
108
  "fromState",
104
109
  "geomType",
110
+ "global",
105
111
  "gridDivisions",
106
112
  "groupName",
107
113
  "height",
@@ -114,6 +120,7 @@
114
120
  "kind",
115
121
  "layerSetup",
116
122
  "length",
123
+ "limit",
117
124
  "limits",
118
125
  "linearDamping",
119
126
  "location",
@@ -132,6 +139,7 @@
132
139
  "morphTargets",
133
140
  "name",
134
141
  "newBoneName",
142
+ "node",
135
143
  "nodeId",
136
144
  "nodeName",
137
145
  "notifyClass",
@@ -139,19 +147,23 @@
139
147
  "numFrames",
140
148
  "outputPath",
141
149
  "overwrite",
150
+ "parent",
142
151
  "parentBoneName",
143
152
  "parentClass",
144
153
  "path",
145
154
  "physicsAssetName",
146
155
  "physicsAssetPath",
156
+ "pin",
147
157
  "pitch",
148
158
  "playRate",
149
159
  "poseNames",
160
+ "position",
150
161
  "positionX",
151
162
  "positionY",
152
163
  "priorityOrder",
153
164
  "profileName",
154
165
  "propertyName",
166
+ "query",
155
167
  "radius",
156
168
  "ragdoll",
157
169
  "rebuildBlendParameters",
@@ -189,6 +201,7 @@
189
201
  "stateName",
190
202
  "states",
191
203
  "staticMeshPath",
204
+ "steps",
192
205
  "suffix",
193
206
  "targetBoneName",
194
207
  "targetChain",
@@ -199,12 +212,14 @@
199
212
  "targetWeightInterpolationSpeed",
200
213
  "threshold",
201
214
  "time",
215
+ "to",
202
216
  "toSection",
203
217
  "toState",
204
218
  "trackIndex",
205
219
  "transitions",
206
220
  "transmission",
207
221
  "treeName",
222
+ "unit",
208
223
  "value",
209
224
  "vehicleType",
210
225
  "verticalAxisName",
@@ -236,7 +251,12 @@
236
251
  },
237
252
  "additiveAnimType": {
238
253
  "type": "string",
239
- "description": "String parameter."
254
+ "enum": [
255
+ "NoAdditive",
256
+ "LocalSpaceAdditive",
257
+ "MeshSpaceAdditive"
258
+ ],
259
+ "description": "NoAdditive (default) plays the clip as a full pose. LocalSpaceAdditive keeps only its difference from the base pose and adds that on top of whatever plays under it (a Sequencer section on another row, Apply Additive in an Animation Blueprint). MeshSpaceAdditive adds rotations in mesh space, for aim offsets; Sequencer cannot play it."
240
260
  },
241
261
  "angularDamping": {
242
262
  "type": "number",
@@ -325,7 +345,12 @@
325
345
  },
326
346
  "basePoseType": {
327
347
  "type": "string",
328
- "description": "Additive base pose type (RefPose, AnimScaled, AnimFrame)."
348
+ "enum": [
349
+ "RefPose",
350
+ "AnimScaled",
351
+ "AnimFrame"
352
+ ],
353
+ "description": "What the additive difference is taken from (default RefPose): RefPose = the skeleton reference pose, AnimScaled = basePoseAnimation frame by frame, AnimFrame = one frame (basePoseFrame) of basePoseAnimation."
329
354
  },
330
355
  "bidirectional": {
331
356
  "type": "boolean",
@@ -385,7 +410,7 @@
385
410
  "additionalProperties": true,
386
411
  "x-unreal-reflection-boundary": true
387
412
  },
388
- "description": "Bone tracks to key: [{ boneName, frames: [{ frame, rotationDelta?: {pitch,yaw,roll}, rotation?: {pitch,yaw,roll}|{x,y,z,w}, location?: {x,y,z}, scale?: {x,y,z} }] }]. Channels left out keep the reference pose of that bone, so a rotation-only track poses without collapsing the skeleton. Prefer rotationDelta, which bends the bone relative to its rest orientation; plain rotation replaces the local rotation outright and needs the rest orientation to already be known."
413
+ "description": "Bone tracks to key: [{ boneName, frames: [{ frame, rotationDelta?: {pitch,yaw,roll}, rotation?: {pitch,yaw,roll}|{x,y,z,w}, location?: {x,y,z}, scale?: {x,y,z} }] }]. frame runs 0 to numFrames inclusive. Only the poses that matter need keys: frames between two keys of a channel are blended (rotation slerped), frames before its first key or after its last hold that key. Channels left out keep the reference pose of that bone, so a rotation-only track poses without collapsing the skeleton. Prefer rotationDelta, which bends the bone relative to its rest orientation; plain rotation replaces the local rotation outright and needs the rest orientation to already be known. Calling it again with the name of an existing clip re-keys that clip from empty (its additive settings are kept)."
389
414
  },
390
415
  "cacheName": {
391
416
  "type": "string",
@@ -445,6 +470,17 @@
445
470
  "type": "string",
446
471
  "description": "Name of the created physics constraint."
447
472
  },
473
+ "controlType": {
474
+ "type": "string",
475
+ "enum": [
476
+ "transform",
477
+ "float",
478
+ "bool",
479
+ "position",
480
+ "rotator"
481
+ ],
482
+ "description": "add_control: the value the control drives (default transform)."
483
+ },
448
484
  "createConstraints": {
449
485
  "type": "boolean",
450
486
  "description": "Create joint constraints between bodies."
@@ -527,6 +563,15 @@
527
563
  "set_axis_settings",
528
564
  "set_interpolation_settings",
529
565
  "rebuild",
566
+ "add_unit",
567
+ "connect",
568
+ "disconnect",
569
+ "set_pin",
570
+ "remove_node",
571
+ "import_bones",
572
+ "add_null",
573
+ "add_control",
574
+ "remove_element",
530
575
  "auto",
531
576
  "set",
532
577
  "copy",
@@ -543,7 +588,7 @@
543
588
  "set_deltas",
544
589
  "import"
545
590
  ],
546
- "description": "Which configure anim graph node variant to run."
591
+ "description": "The edit to make (each step of steps names its own)."
547
592
  },
548
593
  "element": {
549
594
  "type": "string",
@@ -590,6 +635,10 @@
590
635
  "type": "number",
591
636
  "description": "Frames per second (default 30)."
592
637
  },
638
+ "from": {
639
+ "type": "string",
640
+ "description": "connect, disconnect: the output pin, Node.Pin as get_control_rig lists it; execution runs from the event's execute pin to each unit's (ExecutePin in UE 5.8)."
641
+ },
593
642
  "fromSection": {
594
643
  "type": "string",
595
644
  "description": "Source montage section."
@@ -602,6 +651,10 @@
602
651
  "type": "string",
603
652
  "description": "Body primitive: Sphyl, Box, Sphere, TaperedCapsule, MultiConvexHull or SingleConvexHull."
604
653
  },
654
+ "global": {
655
+ "type": "boolean",
656
+ "description": "add_bone, add_null: location, rotation and scale are in rig space, not relative to the parent."
657
+ },
605
658
  "gridDivisions": {
606
659
  "type": "number",
607
660
  "description": "Number of grid divisions on the axis."
@@ -689,6 +742,10 @@
689
742
  "type": "number",
690
743
  "description": "Capsule length between the end caps (default 20)."
691
744
  },
745
+ "limit": {
746
+ "type": "number",
747
+ "description": "Most units to list (default 50, up to 500); matched counts them all."
748
+ },
692
749
  "limits": {
693
750
  "type": "object",
694
751
  "additionalProperties": false,
@@ -725,12 +782,26 @@
725
782
  "description": "Linear damping value."
726
783
  },
727
784
  "location": {
728
- "type": "array",
729
- "items": {
730
- "type": "number"
731
- },
732
- "minItems": 3,
733
- "maxItems": 3,
785
+ "oneOf": [
786
+ {
787
+ "type": "array",
788
+ "items": {
789
+ "type": "number"
790
+ },
791
+ "minItems": 3,
792
+ "maxItems": 3,
793
+ "description": "World or relative location as [x, y, z]."
794
+ },
795
+ {
796
+ "type": "array",
797
+ "items": {
798
+ "type": "number"
799
+ },
800
+ "minItems": 3,
801
+ "maxItems": 3,
802
+ "description": "add_bone, add_null, add_control: location [x, y, z] in cm (a control's offset), relative to the parent unless global."
803
+ }
804
+ ],
734
805
  "description": "World or relative location as [x, y, z]."
735
806
  },
736
807
  "lodIndex": {
@@ -796,6 +867,10 @@
796
867
  "type": "string",
797
868
  "description": "Replacement bone name."
798
869
  },
870
+ "node": {
871
+ "type": "string",
872
+ "description": "One node's name: only that node, with every struct member pin by its full path."
873
+ },
799
874
  "nodeId": {
800
875
  "type": "string",
801
876
  "description": "The node GUID; an alternative to nodeName."
@@ -824,6 +899,10 @@
824
899
  "type": "boolean",
825
900
  "description": "Overwrite an existing asset with the same name."
826
901
  },
902
+ "parent": {
903
+ "type": "string",
904
+ "description": "add_bone, add_null, add_control: the parent element's name (a bone, null or control); omitted, the top of the hierarchy."
905
+ },
827
906
  "parentBoneName": {
828
907
  "type": "string",
829
908
  "description": "Parent bone name."
@@ -844,6 +923,10 @@
844
923
  "type": "string",
845
924
  "description": "Canonical /Game PhysicsAsset path."
846
925
  },
926
+ "pin": {
927
+ "type": "string",
928
+ "description": "set_pin: the pin, Node.Pin; a struct member has its own pin (SetTransform.Item.Name, SetTransform.Transform.Translation.X)."
929
+ },
847
930
  "pitch": {
848
931
  "type": "number",
849
932
  "description": "Aim offset pitch in degrees."
@@ -859,6 +942,15 @@
859
942
  },
860
943
  "description": "Distinct names for the poses in frame order; frames without a name keep the engine default name."
861
944
  },
945
+ "position": {
946
+ "type": "array",
947
+ "items": {
948
+ "type": "number"
949
+ },
950
+ "minItems": 2,
951
+ "maxItems": 2,
952
+ "description": "add_unit: graph position [x, y] (default right of the last node)."
953
+ },
862
954
  "positionX": {
863
955
  "type": "number",
864
956
  "description": "Graph X position of the new node (default 0)."
@@ -879,6 +971,10 @@
879
971
  "type": "string",
880
972
  "description": "The property: a member of the node's settings struct (Alpha, PlayRate, bLoopAnimation, Sequence) or of the graph node (NodeComment), with dots for a nested one (Node.PlayRate). On an asset player the asset property (Sequence, BlendSpace) is written through the node's own setter and read back, and fails when the node did not take it; any other property is written by reflection and its stored value read back."
881
973
  },
974
+ "query": {
975
+ "type": "string",
976
+ "description": "Words to match in the unit's name, display name, category or keywords (spaces ignored), e.g. two bone, aim, set transform."
977
+ },
882
978
  "radius": {
883
979
  "type": "number",
884
980
  "description": "Sphere or capsule radius (default 10)."
@@ -958,6 +1054,15 @@
958
1054
  "minItems": 3,
959
1055
  "maxItems": 3,
960
1056
  "description": "Rotation as [pitch, yaw, roll] in degrees."
1057
+ },
1058
+ {
1059
+ "type": "array",
1060
+ "items": {
1061
+ "type": "number"
1062
+ },
1063
+ "minItems": 3,
1064
+ "maxItems": 3,
1065
+ "description": "add_bone, add_null, add_control: rotation [pitch, yaw, roll] in degrees."
961
1066
  }
962
1067
  ],
963
1068
  "description": "Box or capsule rotation relative to the bone as [pitch, yaw, roll]."
@@ -986,6 +1091,15 @@
986
1091
  "minItems": 3,
987
1092
  "maxItems": 3,
988
1093
  "description": "Bone scale as [x, y, z] (default [1, 1, 1])."
1094
+ },
1095
+ {
1096
+ "type": "array",
1097
+ "items": {
1098
+ "type": "number"
1099
+ },
1100
+ "minItems": 3,
1101
+ "maxItems": 3,
1102
+ "description": "add_bone, add_null, add_control: scale [x, y, z] (default 1)."
989
1103
  }
990
1104
  ],
991
1105
  "description": "Bone scale as [x, y, z] (default [1, 1, 1])."
@@ -1097,6 +1211,15 @@
1097
1211
  "type": "string",
1098
1212
  "description": "StaticMesh to skin, e.g. a coat downloaded as a rigid mesh."
1099
1213
  },
1214
+ "steps": {
1215
+ "type": "array",
1216
+ "items": {
1217
+ "type": "object",
1218
+ "additionalProperties": true,
1219
+ "x-unreal-reflection-boundary": true
1220
+ },
1221
+ "description": "Several edits in order, each an object with edit and its own fields as above; the first that fails stops the rest, and those before it stay (failedStep names it)."
1222
+ },
1100
1223
  "suffix": {
1101
1224
  "type": "string",
1102
1225
  "description": "Suffix appended to each retargeted asset name."
@@ -1137,6 +1260,10 @@
1137
1260
  "type": "number",
1138
1261
  "description": "Time in seconds."
1139
1262
  },
1263
+ "to": {
1264
+ "type": "string",
1265
+ "description": "connect, disconnect: the input pin, Node.Pin."
1266
+ },
1140
1267
  "toSection": {
1141
1268
  "type": "string",
1142
1269
  "description": "Target montage section."
@@ -1192,6 +1319,10 @@
1192
1319
  "type": "string",
1193
1320
  "description": "Comment/name for the blend node (alias of name)."
1194
1321
  },
1322
+ "unit": {
1323
+ "type": "string",
1324
+ "description": "add_unit: the unit, as an object path (/Script/ControlRig.RigUnit_SetTransform), its struct name with or without RigUnit_ (SetTransform), or its display name."
1325
+ },
1195
1326
  "value": {
1196
1327
  "oneOf": [
1197
1328
  {
@@ -1199,6 +1330,14 @@
1199
1330
  },
1200
1331
  {
1201
1332
  "description": "The value: a number, boolean or string, an {x,y,z} or {r,g,b,a} object for a struct, or for an asset property the asset path (/Game/Anims/A_Idle)."
1333
+ },
1334
+ {
1335
+ "type": [
1336
+ "string",
1337
+ "number",
1338
+ "boolean"
1339
+ ],
1340
+ "description": "set_pin: the value as text (Bone, foot_l), a number, or true/false."
1202
1341
  }
1203
1342
  ],
1204
1343
  "description": "Property value (any type)."
@@ -1285,6 +1424,9 @@
1285
1424
  "edit_anim_graph",
1286
1425
  "edit_animation",
1287
1426
  "create_control_rig",
1427
+ "edit_control_rig",
1428
+ "get_control_rig",
1429
+ "list_rig_units",
1288
1430
  "setup_ik",
1289
1431
  "edit_montage",
1290
1432
  "play_montage",
@@ -1556,7 +1698,7 @@
1556
1698
  },
1557
1699
  "amplitude": {
1558
1700
  "type": "number",
1559
- "description": "Wave amplitude."
1701
+ "description": "Same as waveHeight; waveHeight wins when both are given."
1560
1702
  },
1561
1703
  "aperture": {
1562
1704
  "type": "number",
@@ -1899,23 +2041,47 @@
1899
2041
  "description": "Foliage density."
1900
2042
  },
1901
2043
  "direction": {
1902
- "type": "object",
1903
- "description": "Direction rotation.",
1904
- "properties": {
1905
- "pitch": {
1906
- "type": "number",
1907
- "description": "Pitch"
1908
- },
1909
- "yaw": {
1910
- "type": "number",
1911
- "description": "Yaw"
2044
+ "oneOf": [
2045
+ {
2046
+ "type": "object",
2047
+ "description": "Direction rotation.",
2048
+ "properties": {
2049
+ "pitch": {
2050
+ "type": "number",
2051
+ "description": "Pitch"
2052
+ },
2053
+ "yaw": {
2054
+ "type": "number",
2055
+ "description": "Yaw"
2056
+ },
2057
+ "roll": {
2058
+ "type": "number",
2059
+ "description": "Roll"
2060
+ }
2061
+ },
2062
+ "additionalProperties": false
1912
2063
  },
1913
- "roll": {
1914
- "type": "number",
1915
- "description": "Roll"
2064
+ {
2065
+ "type": "object",
2066
+ "description": "Wind direction: its yaw sets where the waves travel.",
2067
+ "properties": {
2068
+ "pitch": {
2069
+ "type": "number",
2070
+ "description": "Pitch"
2071
+ },
2072
+ "yaw": {
2073
+ "type": "number",
2074
+ "description": "Yaw"
2075
+ },
2076
+ "roll": {
2077
+ "type": "number",
2078
+ "description": "Roll"
2079
+ }
2080
+ },
2081
+ "additionalProperties": false
1916
2082
  }
1917
- },
1918
- "additionalProperties": false
2083
+ ],
2084
+ "description": "Direction rotation."
1919
2085
  },
1920
2086
  "directionalLightActorPath": {
1921
2087
  "type": "string",
@@ -2609,23 +2775,47 @@
2609
2775
  "description": "Spline points."
2610
2776
  },
2611
2777
  "position": {
2612
- "type": "object",
2613
- "description": "Position {x, y, z}.",
2614
- "properties": {
2615
- "x": {
2616
- "type": "number",
2617
- "description": "X"
2618
- },
2619
- "y": {
2620
- "type": "number",
2621
- "description": "Y"
2778
+ "oneOf": [
2779
+ {
2780
+ "type": "object",
2781
+ "description": "Point position relative to the spline actor {x, y, z}: its local space, the location get_splines_info with actorName reports (worldLocation is where the point lies in the level).",
2782
+ "properties": {
2783
+ "x": {
2784
+ "type": "number",
2785
+ "description": "X"
2786
+ },
2787
+ "y": {
2788
+ "type": "number",
2789
+ "description": "Y"
2790
+ },
2791
+ "z": {
2792
+ "type": "number",
2793
+ "description": "Z"
2794
+ }
2795
+ },
2796
+ "additionalProperties": false
2622
2797
  },
2623
- "z": {
2624
- "type": "number",
2625
- "description": "Z"
2798
+ {
2799
+ "type": "object",
2800
+ "description": "Position {x, y, z}.",
2801
+ "properties": {
2802
+ "x": {
2803
+ "type": "number",
2804
+ "description": "X"
2805
+ },
2806
+ "y": {
2807
+ "type": "number",
2808
+ "description": "Y"
2809
+ },
2810
+ "z": {
2811
+ "type": "number",
2812
+ "description": "Z"
2813
+ }
2814
+ },
2815
+ "additionalProperties": false
2626
2816
  }
2627
- },
2628
- "additionalProperties": false
2817
+ ],
2818
+ "description": "Point position relative to the spline actor {x, y, z}: its local space, the location get_splines_info with actorName reports (worldLocation is where the point lies in the level)."
2629
2819
  },
2630
2820
  "properties": {
2631
2821
  "type": "object",
@@ -3050,7 +3240,7 @@
3050
3240
  },
3051
3241
  "steepness": {
3052
3242
  "type": "number",
3053
- "description": "Wave steepness."
3243
+ "description": "Crest sharpness of the short waves, 0 (smooth swell) to 1 (peaked); the long waves take about half. Keep it under about 0.3: steep crests from many waves fold the surface over itself."
3054
3244
  },
3055
3245
  "strength": {
3056
3246
  "type": "number",
@@ -3178,11 +3368,11 @@
3178
3368
  },
3179
3369
  "waveHeight": {
3180
3370
  "type": "number",
3181
- "description": "Wave height."
3371
+ "description": "Height (amplitude) of the largest wave in cm; the body's other waves shrink to 15% of it, as a real sea's do. A calm harbour is about 5-10, open sea 50 or more."
3182
3372
  },
3183
3373
  "waveLength": {
3184
3374
  "type": "number",
3185
- "description": "Wave length."
3375
+ "description": "Wavelength of the longest wave in cm, crest to crest; the shortest waves are 13% of it (a harbour is about 1500-2500)."
3186
3376
  },
3187
3377
  "width": {
3188
3378
  "type": "number",
@@ -3288,6 +3478,7 @@
3288
3478
  "componentName",
3289
3479
  "componentNames",
3290
3480
  "componentType",
3481
+ "contactCm",
3291
3482
  "defaults",
3292
3483
  "deleteScope",
3293
3484
  "distance",
@@ -3299,6 +3490,7 @@
3299
3490
  "folder",
3300
3491
  "force",
3301
3492
  "functionName",
3493
+ "groundTrace",
3302
3494
  "info",
3303
3495
  "inputs",
3304
3496
  "intervalSeconds",
@@ -3319,17 +3511,22 @@
3319
3511
  "newName",
3320
3512
  "offset",
3321
3513
  "parentActor",
3514
+ "points",
3322
3515
  "properties",
3323
3516
  "propertyName",
3324
3517
  "propertyNames",
3325
3518
  "propertyPath",
3326
3519
  "radius",
3327
3520
  "readMode",
3521
+ "relativeLocation",
3522
+ "relativeRotation",
3328
3523
  "renameObject",
3329
3524
  "report",
3330
3525
  "rotation",
3331
3526
  "scale",
3527
+ "snapToTarget",
3332
3528
  "snapshotName",
3529
+ "socketName",
3333
3530
  "spawnKind",
3334
3531
  "startWhen",
3335
3532
  "summary",
@@ -3403,7 +3600,7 @@
3403
3600
  "x-unreal-reflection-boundary": true
3404
3601
  },
3405
3602
  "x-unreal-reflection-boundary": true,
3406
- "description": "Actors to spawn, 1-500. Each is a spawn payload: classPath, blueprintPath or meshPath, plus actorName, location, rotation, scale ([x, y, z] arrays). Optional per item: materialPath (applied like set_material; componentName/materialSlot/allComponents narrow it), variables ({name: value} Blueprint variables set on the new instance, like set_blueprint_variables), folder (outliner folder path), tags (actor tags; delete_by_tag removes the batch again). Items that fail are reported; the rest still spawn."
3603
+ "description": "Actors to spawn, 1-500. Each is a spawn payload: classPath, blueprintPath or meshPath, plus actorName, location, rotation, scale ([x, y, z] arrays). Optional per item: materialPath (applied like set_material; componentName/materialSlot/allComponents narrow it), variables ({name: value} Blueprint variables set on the new instance, like set_blueprint_variables; in a running game they are set before its BeginPlay, so it starts with them), folder (outliner folder path), tags (actor tags; delete_by_tag removes the batch again). Items that fail are reported; the rest still spawn."
3407
3604
  },
3408
3605
  {
3409
3606
  "type": "array",
@@ -3483,7 +3680,7 @@
3483
3680
  "description": "Many actors in one call, each {actorName, variables} with its own values; every actor is reported, the actors that took a variable come back under affectedActors (which the receipt lists as changes, with an actor handle each), and the call fails naming any that did not take all of its variables."
3484
3681
  }
3485
3682
  ],
3486
- "description": "Actors to spawn, 1-500. Each is a spawn payload: classPath, blueprintPath or meshPath, plus actorName, location, rotation, scale ([x, y, z] arrays). Optional per item: materialPath (applied like set_material; componentName/materialSlot/allComponents narrow it), variables ({name: value} Blueprint variables set on the new instance, like set_blueprint_variables), folder (outliner folder path), tags (actor tags; delete_by_tag removes the batch again). Items that fail are reported; the rest still spawn."
3683
+ "description": "Actors to spawn, 1-500. Each is a spawn payload: classPath, blueprintPath or meshPath, plus actorName, location, rotation, scale ([x, y, z] arrays). Optional per item: materialPath (applied like set_material; componentName/materialSlot/allComponents narrow it), variables ({name: value} Blueprint variables set on the new instance, like set_blueprint_variables; in a running game they are set before its BeginPlay, so it starts with them), folder (outliner folder path), tags (actor tags; delete_by_tag removes the batch again). Items that fail are reported; the rest still spawn."
3487
3684
  },
3488
3685
  "allComponents": {
3489
3686
  "type": "boolean",
@@ -3510,7 +3707,7 @@
3510
3707
  },
3511
3708
  "classPath": {
3512
3709
  "type": "string",
3513
- "description": "Unreal class path (e.g. /Script/Engine.PointLight or /Game/Enemies/BP_Bug) of the actors to find (alias of className)."
3710
+ "description": "Unreal class path (e.g. /Script/Engine.PointLight or /Game/Enemies/BP_Enemy) of the actors to find (alias of className)."
3514
3711
  },
3515
3712
  "collisionEnabled": {
3516
3713
  "type": "boolean",
@@ -3518,7 +3715,7 @@
3518
3715
  },
3519
3716
  "componentName": {
3520
3717
  "type": "string",
3521
- "description": "Target component name on the actor."
3718
+ "description": "Call the function on this component of the actor instead of on the actor itself (refused with COMPONENT_NOT_FOUND when the actor has none of that name)."
3522
3719
  },
3523
3720
  "componentNames": {
3524
3721
  "type": "array",
@@ -3531,6 +3728,10 @@
3531
3728
  "type": "string",
3532
3729
  "description": "Component class to add."
3533
3730
  },
3731
+ "contactCm": {
3732
+ "type": "number",
3733
+ "description": "With groundTrace: how far above its own lowest height a point still counts as planted (default 2 cm), so an ankle bone that never reaches the floor still counts as down when the foot is."
3734
+ },
3534
3735
  "defaults": {
3535
3736
  "type": "object",
3536
3737
  "additionalProperties": true,
@@ -3599,6 +3800,10 @@
3599
3800
  "type": "string",
3600
3801
  "description": "Actor function name to call."
3601
3802
  },
3803
+ "groundTrace": {
3804
+ "type": "boolean",
3805
+ "description": "With points: each sample's aboveGround gives each point's height over the first surface below it that blocks Visibility (the actor and what is attached to it ignored), negative when the point is inside that surface, and pointStats sums up its contact."
3806
+ },
3602
3807
  "info": {
3603
3808
  "type": "string",
3604
3809
  "enum": [
@@ -3769,6 +3974,14 @@
3769
3974
  "type": "string",
3770
3975
  "description": "Parent actor name to attach to."
3771
3976
  },
3977
+ "points": {
3978
+ "type": "array",
3979
+ "items": {
3980
+ "type": "string"
3981
+ },
3982
+ "maxItems": 8,
3983
+ "description": "Places on the actor sampled with it (at most 8): a component by its name (LegL), a bone or socket of any of its components (foot_l, hand_r), or a component's own socket as Component.Socket (Weapon.Muzzle). Each sample's points gives each one's world location [x, y, z]; a name the actor lacks is refused with the names it has. Fewer samples are kept with points: 400 x 2 / (2 + points)."
3984
+ },
3772
3985
  "properties": {
3773
3986
  "type": "object",
3774
3987
  "description": "Component property key-value pairs. Each key is a name or dotted path, as propertyName takes it (BodyInstance.CollisionEnabled works).",
@@ -3816,6 +4029,24 @@
3816
4029
  "description": "Which get transform variant to run; omit for 'transform'.",
3817
4030
  "default": "transform"
3818
4031
  },
4032
+ "relativeLocation": {
4033
+ "type": "array",
4034
+ "items": {
4035
+ "type": "number"
4036
+ },
4037
+ "minItems": 3,
4038
+ "maxItems": 3,
4039
+ "description": "With snapToTarget: offset from the bone or socket in its own space, as [x, y, z]."
4040
+ },
4041
+ "relativeRotation": {
4042
+ "type": "array",
4043
+ "items": {
4044
+ "type": "number"
4045
+ },
4046
+ "minItems": 3,
4047
+ "maxItems": 3,
4048
+ "description": "With snapToTarget: rotation relative to the bone or socket, as [pitch, yaw, roll] in degrees."
4049
+ },
3819
4050
  "renameObject": {
3820
4051
  "type": "boolean",
3821
4052
  "description": "Also rename the object itself to newName, made valid and unique (default false: the label only). The label is editor-only; the object name ships in the cooked level. References from inside the same level follow the rename, a Level Sequence binding or a soft reference by the old path does not. An actor saved in its own package (World Partition) keeps its object name, with a note."
@@ -3846,10 +4077,18 @@
3846
4077
  "maxItems": 3,
3847
4078
  "description": "Scale as [x, y, z]."
3848
4079
  },
4080
+ "snapToTarget": {
4081
+ "type": "boolean",
4082
+ "description": "Snap the child onto the bone or socket instead of keeping its current world placement (default false)."
4083
+ },
3849
4084
  "snapshotName": {
3850
4085
  "type": "string",
3851
4086
  "description": "Name for the actor snapshot."
3852
4087
  },
4088
+ "socketName": {
4089
+ "type": "string",
4090
+ "description": "Bone or socket on that component to attach to (hand_r, weapon_r, head). Refused with SOCKET_NOT_FOUND when the component has neither."
4091
+ },
3853
4092
  "spawnKind": {
3854
4093
  "type": "string",
3855
4094
  "enum": [
@@ -3869,7 +4108,7 @@
3869
4108
  },
3870
4109
  "propertyName": {
3871
4110
  "type": "string",
3872
- "description": "That actor's property, as propertyNames reads it (e.g. bActorEnableCollision)."
4111
+ "description": "That actor's property, as propertyNames reads it: bActorEnableCollision, or a component's as Component.Property (CharacterMovement.MovementMode starts the run on a landing when equals is MOVE_Walking)."
3873
4112
  },
3874
4113
  "equals": {
3875
4114
  "description": "Value that starts the run, as samples show it (\"True\", \"False\", 3)."
@@ -4533,6 +4772,10 @@
4533
4772
  "inspect_object",
4534
4773
  "get_blueprint_details",
4535
4774
  "raycast_mesh",
4775
+ "check_mesh",
4776
+ "describe_view",
4777
+ "capture_passes",
4778
+ "raycast_world",
4536
4779
  "get_property",
4537
4780
  "set_property",
4538
4781
  "inspect_class",
@@ -4552,6 +4795,7 @@
4552
4795
  "actorName",
4553
4796
  "actorNames",
4554
4797
  "blueprintPath",
4798
+ "channel",
4555
4799
  "className",
4556
4800
  "classPath",
4557
4801
  "componentName",
@@ -4560,29 +4804,36 @@
4560
4804
  "editorState",
4561
4805
  "filter",
4562
4806
  "format",
4807
+ "ignoreActors",
4563
4808
  "info",
4564
4809
  "kind",
4565
4810
  "limit",
4811
+ "location",
4566
4812
  "lookup",
4567
4813
  "markDirty",
4568
4814
  "meshPath",
4569
4815
  "name",
4570
4816
  "objectKind",
4571
4817
  "objectPath",
4818
+ "objectPaths",
4572
4819
  "offset",
4573
4820
  "outputPath",
4821
+ "passes",
4574
4822
  "properties",
4575
4823
  "propertyName",
4576
4824
  "propertyNames",
4577
4825
  "propertyPath",
4578
4826
  "rays",
4827
+ "rotation",
4579
4828
  "snapshotName",
4580
4829
  "snapshotOp",
4581
4830
  "statsKind",
4582
4831
  "structPath",
4583
4832
  "tag",
4833
+ "traceComplex",
4584
4834
  "value",
4585
- "watch"
4835
+ "watch",
4836
+ "width"
4586
4837
  ],
4587
4838
  "inputSchema": {
4588
4839
  "type": "object",
@@ -4602,6 +4853,10 @@
4602
4853
  "type": "string",
4603
4854
  "description": "Blueprint asset /Game path (for CDO/component inspection without spawning)."
4604
4855
  },
4856
+ "channel": {
4857
+ "type": "string",
4858
+ "description": "Collision channel traced: Visibility (default), Camera, WorldStatic, WorldDynamic, Pawn, PhysicsBody, Vehicle, Destructible, or a project trace channel by its name. What blocks depends on each component's response to that channel: most meshes block Visibility, a character capsule blocks Pawn."
4859
+ },
4605
4860
  "className": {
4606
4861
  "type": "string",
4607
4862
  "description": "Class name or /Script/ class path to inspect."
@@ -4663,6 +4918,13 @@
4663
4918
  "type": "string",
4664
4919
  "description": "Exporter format by file extension, default T3D (the text form of the object); fails with EXPORT_FAILED when no exporter for that format handles the object."
4665
4920
  },
4921
+ "ignoreActors": {
4922
+ "type": "array",
4923
+ "items": {
4924
+ "type": "string"
4925
+ },
4926
+ "description": "Actors (label, name or path) the lines pass through, such as the player pawn a line starts inside; an unknown name is refused."
4927
+ },
4666
4928
  "info": {
4667
4929
  "type": "string",
4668
4930
  "enum": [
@@ -4686,6 +4948,22 @@
4686
4948
  "type": "number",
4687
4949
  "description": "Maximum objects to return (default 100)."
4688
4950
  },
4951
+ "location": {
4952
+ "type": "object",
4953
+ "properties": {
4954
+ "x": {
4955
+ "type": "number"
4956
+ },
4957
+ "y": {
4958
+ "type": "number"
4959
+ },
4960
+ "z": {
4961
+ "type": "number"
4962
+ }
4963
+ },
4964
+ "additionalProperties": false,
4965
+ "description": "Camera location {x, y, z} in cm; omitted, the viewport's current one. The camera stays there."
4966
+ },
4689
4967
  "lookup": {
4690
4968
  "type": "string",
4691
4969
  "enum": [
@@ -4703,7 +4981,7 @@
4703
4981
  },
4704
4982
  "meshPath": {
4705
4983
  "type": "string",
4706
- "description": "Static mesh asset path, e.g. /Game/Meshes/SM_Rock. Rays meet its source triangles, so a Nanite mesh answers at full detail."
4984
+ "description": "Static mesh asset path, e.g. /Game/Meshes/SM_Rock. Its source triangles (LOD 0 as imported or built) are checked, so a Nanite mesh answers at full detail. A placed actor's mesh is named by get_components."
4707
4985
  },
4708
4986
  "name": {
4709
4987
  "type": "string",
@@ -4726,6 +5004,15 @@
4726
5004
  "type": "string",
4727
5005
  "description": "Object path of the world actor or asset (e.g. /Game/Maps/Demo.Demo_PersistentLevel)."
4728
5006
  },
5007
+ "objectPaths": {
5008
+ "type": "array",
5009
+ "items": {
5010
+ "type": "string"
5011
+ },
5012
+ "minItems": 1,
5013
+ "maxItems": 64,
5014
+ "description": "The same write on several targets in one call, in place of objectPath: each entry is a target as objectPath takes it (an actor, \"Actor.Component\", an asset, a class default), written as a single call would be, with properties too. Answered under targets; the call fails naming each target that did not take the write, and the others keep it."
5015
+ },
4729
5016
  "offset": {
4730
5017
  "type": "number",
4731
5018
  "description": "Matching objects to skip before the first one returned, for paging (default 0); hasMore says whether more follow."
@@ -4734,6 +5021,18 @@
4734
5021
  "type": "string",
4735
5022
  "description": "File to also write the export to, inside the project (relative to it, or absolute under it), e.g. Saved/Exports/Actor.t3d. A path outside the project is refused with INVALID_PATH."
4736
5023
  },
5024
+ "passes": {
5025
+ "type": "array",
5026
+ "items": {
5027
+ "type": "string",
5028
+ "enum": [
5029
+ "id",
5030
+ "depth",
5031
+ "normal"
5032
+ ]
5033
+ },
5034
+ "description": "Passes to write (default all three)."
5035
+ },
4737
5036
  "properties": {
4738
5037
  "oneOf": [
4739
5038
  {
@@ -4753,7 +5052,7 @@
4753
5052
  },
4754
5053
  "propertyName": {
4755
5054
  "type": "string",
4756
- "description": "Property to read or write: a name, or a dotted path through structs at any depth (BodyInstance.CollisionEnabled). A bare name that is not on the object itself resolves to the one struct member carrying it. Give this or propertyPath."
5055
+ "description": "Property to read or write: a name, or a dotted path through structs and object references at any depth (BodyInstance.CollisionEnabled). On an actor the path may start with a component's name, including one added in the level (MyAudio.VolumeMultiplier). A bare name that is not on the object itself resolves to the one struct member carrying it. Give this or propertyPath."
4757
5056
  },
4758
5057
  "propertyNames": {
4759
5058
  "oneOf": [
@@ -4769,44 +5068,93 @@
4769
5068
  "items": {
4770
5069
  "type": "string"
4771
5070
  },
4772
- "minItems": 1,
4773
- "maxItems": 64,
4774
- "description": "Several properties of the same target in one call, in place of propertyName: each read as a single call would (dotted paths too, such as CharacterMovement.MaxWalkSpeed). Answered under properties; a name that does not resolve is listed under missingProperties with the reason, and the others still answer."
5071
+ "minItems": 1,
5072
+ "maxItems": 64,
5073
+ "description": "Several properties of the same target in one call, in place of propertyName: each read as a single call would (dotted paths too, such as CharacterMovement.MaxWalkSpeed). Answered under properties; a name that does not resolve is listed under missingProperties with the reason, and the others still answer."
5074
+ }
5075
+ ],
5076
+ "description": "Several properties of the same target in one call, in place of propertyName: each read as a single call would (dotted paths too, such as CharacterMovement.MaxWalkSpeed). Answered under properties; a name that does not resolve is listed under missingProperties with the reason, and the others still answer."
5077
+ },
5078
+ "propertyPath": {
5079
+ "type": "string",
5080
+ "description": "Same as propertyName (a name or dotted path); used when propertyName is absent. Give this or propertyName."
5081
+ },
5082
+ "rays": {
5083
+ "oneOf": [
5084
+ {
5085
+ "type": "array",
5086
+ "minItems": 1,
5087
+ "maxItems": 256,
5088
+ "items": {
5089
+ "type": "object",
5090
+ "additionalProperties": false,
5091
+ "required": [
5092
+ "origin",
5093
+ "direction"
5094
+ ],
5095
+ "properties": {
5096
+ "origin": {
5097
+ "type": "object",
5098
+ "additionalProperties": true,
5099
+ "x-unreal-reflection-boundary": true,
5100
+ "description": "Ray start {x, y, z} in the mesh's local space, in cm; start outside the mesh to find its outer surface."
5101
+ },
5102
+ "direction": {
5103
+ "type": "object",
5104
+ "additionalProperties": true,
5105
+ "x-unreal-reflection-boundary": true,
5106
+ "description": "Ray direction {x, y, z}; any length, it is normalized."
5107
+ }
5108
+ }
5109
+ },
5110
+ "description": "Rays in the mesh's local space; each answers in hits at the same index."
5111
+ },
5112
+ {
5113
+ "type": "array",
5114
+ "minItems": 1,
5115
+ "maxItems": 256,
5116
+ "items": {
5117
+ "type": "object",
5118
+ "additionalProperties": false,
5119
+ "required": [
5120
+ "start",
5121
+ "end"
5122
+ ],
5123
+ "properties": {
5124
+ "start": {
5125
+ "type": "object",
5126
+ "additionalProperties": true,
5127
+ "x-unreal-reflection-boundary": true,
5128
+ "description": "Line start {x, y, z} in world space, in cm."
5129
+ },
5130
+ "end": {
5131
+ "type": "object",
5132
+ "additionalProperties": true,
5133
+ "x-unreal-reflection-boundary": true,
5134
+ "description": "Line end {x, y, z} in world space; nothing past it is reported."
5135
+ }
5136
+ }
5137
+ },
5138
+ "description": "Lines in world space; each answers in hits at the same index."
4775
5139
  }
4776
5140
  ],
4777
- "description": "Several properties of the same target in one call, in place of propertyName: each read as a single call would (dotted paths too, such as CharacterMovement.MaxWalkSpeed). Answered under properties; a name that does not resolve is listed under missingProperties with the reason, and the others still answer."
5141
+ "description": "Lines in world space; each answers in hits at the same index."
4778
5142
  },
4779
- "propertyPath": {
4780
- "type": "string",
4781
- "description": "Same as propertyName (a name or dotted path); used when propertyName is absent. Give this or propertyName."
4782
- },
4783
- "rays": {
4784
- "type": "array",
4785
- "minItems": 1,
4786
- "maxItems": 256,
4787
- "items": {
4788
- "type": "object",
4789
- "additionalProperties": false,
4790
- "required": [
4791
- "origin",
4792
- "direction"
4793
- ],
4794
- "properties": {
4795
- "origin": {
4796
- "type": "object",
4797
- "additionalProperties": true,
4798
- "x-unreal-reflection-boundary": true,
4799
- "description": "Ray start {x, y, z} in the mesh's local space, in cm; start outside the mesh to find its outer surface."
4800
- },
4801
- "direction": {
4802
- "type": "object",
4803
- "additionalProperties": true,
4804
- "x-unreal-reflection-boundary": true,
4805
- "description": "Ray direction {x, y, z}; any length, it is normalized."
4806
- }
5143
+ "rotation": {
5144
+ "type": "object",
5145
+ "properties": {
5146
+ "pitch": {
5147
+ "type": "number"
5148
+ },
5149
+ "yaw": {
5150
+ "type": "number"
5151
+ },
5152
+ "roll": {
5153
+ "type": "number"
4807
5154
  }
4808
5155
  },
4809
- "description": "Rays in the mesh's local space; each answers in hits at the same index."
5156
+ "additionalProperties": false,
5157
+ "description": "Camera rotation {pitch, yaw, roll} in degrees; omitted, the viewport's current one."
4810
5158
  },
4811
5159
  "snapshotName": {
4812
5160
  "type": "string",
@@ -4838,6 +5186,10 @@
4838
5186
  "type": "string",
4839
5187
  "description": "Actor tag to match."
4840
5188
  },
5189
+ "traceComplex": {
5190
+ "type": "boolean",
5191
+ "description": "Trace the render triangles of meshes that allow it instead of their simple collision (default false: the shapes the game's movement collides with)."
5192
+ },
4841
5193
  "value": {
4842
5194
  "description": "Property value to set (type depends on the target property)."
4843
5195
  },
@@ -4847,7 +5199,7 @@
4847
5199
  "properties": {
4848
5200
  "propertyName": {
4849
5201
  "type": "string",
4850
- "description": "The property to sample; a dotted path reaches through widgets and structs (LivesBox.RenderTransform)."
5202
+ "description": "The property to sample; a dotted path reaches through widgets and structs (LivesBox.RenderTransform). Omitted, the property the call writes."
4851
5203
  },
4852
5204
  "objectPath": {
4853
5205
  "type": "string",
@@ -4862,17 +5214,22 @@
4862
5214
  "description": "Seconds between samples (default 0: every frame); a sample is kept only when the value changed."
4863
5215
  }
4864
5216
  },
4865
- "required": [
4866
- "propertyName"
4867
- ],
4868
5217
  "additionalProperties": false
4869
5218
  },
5219
+ "width": {
5220
+ "type": "number",
5221
+ "description": "Width of every pass in pixels (default 960, 64 to 4096); the height follows the viewport's shape so the passes line up with it."
5222
+ },
4870
5223
  "action": {
4871
5224
  "type": "string",
4872
5225
  "enum": [
4873
5226
  "inspect_object",
4874
5227
  "get_blueprint_details",
4875
5228
  "raycast_mesh",
5229
+ "check_mesh",
5230
+ "describe_view",
5231
+ "capture_passes",
5232
+ "raycast_world",
4876
5233
  "get_property",
4877
5234
  "set_property",
4878
5235
  "inspect_class",
@@ -5995,6 +6352,7 @@
5995
6352
  "process_asset",
5996
6353
  "set_metadata",
5997
6354
  "create_render_target",
6355
+ "export_mesh",
5998
6356
  "edit_material_instance",
5999
6357
  "nanite_rebuild_mesh",
6000
6358
  "bulk_delete",
@@ -6054,6 +6412,8 @@
6054
6412
  "classNames",
6055
6413
  "clearExisting",
6056
6414
  "code",
6415
+ "collectionPath",
6416
+ "collisionType",
6057
6417
  "color",
6058
6418
  "columnTypes",
6059
6419
  "combineMeshes",
@@ -6221,6 +6581,7 @@
6221
6581
  "samples",
6222
6582
  "save",
6223
6583
  "savePath",
6584
+ "scalars",
6224
6585
  "scale",
6225
6586
  "seamless",
6226
6587
  "searchScope",
@@ -6273,6 +6634,7 @@
6273
6634
  "valueName",
6274
6635
  "values",
6275
6636
  "varGuid",
6637
+ "vectors",
6276
6638
  "virtualTextureStreaming",
6277
6639
  "width",
6278
6640
  "x",
@@ -6391,7 +6753,7 @@
6391
6753
  },
6392
6754
  "blendMode": {
6393
6755
  "type": "string",
6394
- "description": "Blend mode."
6756
+ "description": "Blend mode, such as Opaque, Masked, Translucent, Additive, Modulate or AlphaComposite. The Details panel label and the BLEND_ name work too."
6395
6757
  },
6396
6758
  "blendTexture": {
6397
6759
  "type": "string",
@@ -6444,6 +6806,21 @@
6444
6806
  "type": "string",
6445
6807
  "description": "HLSL code."
6446
6808
  },
6809
+ "collectionPath": {
6810
+ "type": "string",
6811
+ "description": "Material Parameter Collection a CollectionParameter node reads (name picks its parameter); a collection that does not load, or lacks the parameter, adds nothing and fails, listing its parameters."
6812
+ },
6813
+ "collisionType": {
6814
+ "type": "string",
6815
+ "enum": [
6816
+ "box",
6817
+ "sphere",
6818
+ "capsule",
6819
+ "complex",
6820
+ "none"
6821
+ ],
6822
+ "description": "box, sphere or capsule: one shape fitted to the mesh bounds (a capsule stands upright along Z) replaces its simple collision. complex: the render triangles are the collision, exact for terrain-like or concave meshes but costlier. none: no collision, so pawns and traces pass through."
6823
+ },
6447
6824
  "color": {
6448
6825
  "description": "Text colour (default white) as {r, g, b, a} or [r, g, b, a] in 0-1."
6449
6826
  },
@@ -6681,7 +7058,7 @@
6681
7058
  },
6682
7059
  "format": {
6683
7060
  "type": "string",
6684
- "description": "Pixel format."
7061
+ "description": "File format; default glb, or the extension outputPath ends in. glb and gltf are scaled to meters with materials converted to glTF PBR; fbx and obj keep centimeters."
6685
7062
  },
6686
7063
  "freeOnly": {
6687
7064
  "type": "boolean",
@@ -6730,7 +7107,7 @@
6730
7107
  },
6731
7108
  "includeLevel": {
6732
7109
  "type": "boolean",
6733
- "description": "Also search the actors and components of the open level (default true)."
7110
+ "description": "Also search the actors and components of the open level: true or false outright; omitted, only when that level lies under packagePaths (always with the default /Game)."
6734
7111
  },
6735
7112
  "includeMetadata": {
6736
7113
  "type": "boolean",
@@ -6851,6 +7228,7 @@
6851
7228
  "landscape",
6852
7229
  "post_process",
6853
7230
  "function",
7231
+ "parameter_collection",
6854
7232
  "metadata",
6855
7233
  "tags"
6856
7234
  ],
@@ -6963,7 +7341,7 @@
6963
7341
  },
6964
7342
  "materialDomain": {
6965
7343
  "type": "string",
6966
- "description": "Material domain."
7344
+ "description": "Material domain: Surface, DeferredDecal, LightFunction, Volume, PostProcess or UI (a widget, brush or font material). The Details panel label (User Interface) and the MD_ name work too."
6967
7345
  },
6968
7346
  "materialPath": {
6969
7347
  "type": "string",
@@ -7068,7 +7446,7 @@
7068
7446
  },
7069
7447
  "name": {
7070
7448
  "type": "string",
7071
- "description": "DataTable name."
7449
+ "description": "Asset name."
7072
7450
  },
7073
7451
  "neverStream": {
7074
7452
  "type": "boolean",
@@ -7198,7 +7576,7 @@
7198
7576
  "x-unreal-reflection-boundary": true
7199
7577
  },
7200
7578
  "x-unreal-reflection-boundary": true,
7201
- "description": "Steps run in order, 1-200. Each is {edit, ...the params of that edit}: edit is a node adder (add_material_node, add_scalar_parameter, add_vector_parameter, add_texture_sample, add_texture_coordinate, add_math_node, add_noise, add_custom_expression, ...), use_material_function, connect_nodes, set_node_position, update_custom_expression, set_blend_mode, set_shading_model, set_material_domain or set_two_sided. Optional per step: id (names the created node; later steps use \"$id\" in sourceNodeId/targetNodeId/nodeId), from/to (\"$id.Pin\" shorthand for connect_nodes, where a source pin may be channel letters like \"$uv.G\"; \"Main.EmissiveColor\" is the material output). A created node without x/y is laid out automatically. Deleting and disconnecting are not batched. The batch stops at the first failing step; when every step ran, the material is compiled and saved once."
7579
+ "description": "Steps run in order, 1-200. Each is {edit, ...the params of that edit}: edit is a node adder (add_material_node, add_scalar_parameter, add_vector_parameter, add_texture_sample, add_texture_coordinate, add_math_node, add_noise, add_custom_expression, ...; or add_material_node with nodeKind, as in the single call: {\"edit\": \"add_material_node\", \"nodeKind\": \"world_position\"}), use_material_function, connect_nodes, set_node_position, update_custom_expression, set_blend_mode, set_shading_model, set_material_domain or set_two_sided. Optional per step: id (names the created node; later steps use \"$id\" in sourceNodeId/targetNodeId/nodeId), from/to (\"$id.Pin\" shorthand for connect_nodes, where a source pin may be channel letters like \"$uv.G\"; \"Main.EmissiveColor\" is the material output). A created node without x/y is laid out automatically. Deleting and disconnecting are not batched. The batch stops at the first failing step; when every step ran, the material is compiled and saved once."
7202
7580
  },
7203
7581
  "order": {
7204
7582
  "type": "array",
@@ -7411,7 +7789,8 @@
7411
7789
  "enum": [
7412
7790
  "thumbnail",
7413
7791
  "lods",
7414
- "mesh_materials"
7792
+ "mesh_materials",
7793
+ "mesh_collision"
7415
7794
  ],
7416
7795
  "description": "Which process asset variant to run."
7417
7796
  },
@@ -7540,6 +7919,14 @@
7540
7919
  "type": "string",
7541
7920
  "description": "Package path for the instance."
7542
7921
  },
7922
+ "scalars": {
7923
+ "type": "array",
7924
+ "items": {
7925
+ "type": "object",
7926
+ "x-unreal-reflection-boundary": true
7927
+ },
7928
+ "description": "Scalar parameters, each {name, default}: a name the collection lacks is added, one it has takes the new default (0 when a new one gives none)."
7929
+ },
7543
7930
  "scale": {
7544
7931
  "type": "number",
7545
7932
  "description": "Noise scale (default 1)."
@@ -7580,7 +7967,7 @@
7580
7967
  },
7581
7968
  "shadingModel": {
7582
7969
  "type": "string",
7583
- "description": "Shading model."
7970
+ "description": "Shading model, such as DefaultLit, Unlit, Subsurface, ClearCoat or TwoSidedFoliage. The Details panel label and the MSM_ name work too."
7584
7971
  },
7585
7972
  "skeletonPath": {
7586
7973
  "type": "string",
@@ -7782,6 +8169,14 @@
7782
8169
  "type": "string",
7783
8170
  "description": "Stable member GUID."
7784
8171
  },
8172
+ "vectors": {
8173
+ "type": "array",
8174
+ "items": {
8175
+ "type": "object",
8176
+ "x-unreal-reflection-boundary": true
8177
+ },
8178
+ "description": "Vector parameters, each {name, default}: default as [r, g, b, a] or {r, g, b, a} (alpha 1 when omitted); a name the collection lacks is added, one it has takes the new default."
8179
+ },
7785
8180
  "virtualTextureStreaming": {
7786
8181
  "type": "boolean",
7787
8182
  "description": "Enable VT streaming."
@@ -7816,6 +8211,7 @@
7816
8211
  "process_asset",
7817
8212
  "set_metadata",
7818
8213
  "create_render_target",
8214
+ "export_mesh",
7819
8215
  "edit_material_instance",
7820
8216
  "nanite_rebuild_mesh",
7821
8217
  "bulk_delete",
@@ -7884,6 +8280,7 @@
7884
8280
  "applyToChildren",
7885
8281
  "assetPath",
7886
8282
  "attachPointName",
8283
+ "attenuateWithLPF",
7887
8284
  "attenuationPath",
7888
8285
  "attenuationShape",
7889
8286
  "autoPlay",
@@ -7934,6 +8331,11 @@
7934
8331
  "lowFrequency",
7935
8332
  "lowGain",
7936
8333
  "lowPassFilterFrequency",
8334
+ "lpfFrequencyAtMax",
8335
+ "lpfFrequencyAtMin",
8336
+ "lpfRadiusMax",
8337
+ "lpfRadiusMin",
8338
+ "maxSeconds",
7937
8339
  "midFrequency",
7938
8340
  "midGain",
7939
8341
  "mixName",
@@ -7945,6 +8347,7 @@
7945
8347
  "occlusionFilterScale",
7946
8348
  "occlusionInterpolationTime",
7947
8349
  "occlusionVolumeScale",
8350
+ "oneShot",
7948
8351
  "operations",
7949
8352
  "outputName",
7950
8353
  "outputType",
@@ -8014,6 +8417,10 @@
8014
8417
  "type": "string",
8015
8418
  "description": "Socket or bone name to attach the sound to."
8016
8419
  },
8420
+ "attenuateWithLPF": {
8421
+ "type": "boolean",
8422
+ "description": "Air absorption on or off: a low-pass whose cutoff drops with distance. Sending any lpf value turns it on unless this is false."
8423
+ },
8017
8424
  "attenuationPath": {
8018
8425
  "type": "string",
8019
8426
  "description": "Canonical /Game SoundAttenuation asset path."
@@ -8024,7 +8431,7 @@
8024
8431
  },
8025
8432
  "autoPlay": {
8026
8433
  "type": "boolean",
8027
- "description": "Whether the sound starts playing when it is created (default true)."
8434
+ "description": "Whether the sound plays now and again every time the game starts (default true); false leaves starting it to a Blueprint."
8028
8435
  },
8029
8436
  "bypass": {
8030
8437
  "type": "boolean",
@@ -8197,7 +8604,7 @@
8197
8604
  },
8198
8605
  "innerRadius": {
8199
8606
  "type": "number",
8200
- "description": "Inner radius of full volume, in centimetres."
8607
+ "description": "Inner radius of full volume, in centimetres: a Box shape takes it as its half-size on every axis, a Capsule as its radius (half height at least that), a Sphere or Cone as its radius."
8201
8608
  },
8202
8609
  "inputName": {
8203
8610
  "type": "string",
@@ -8262,6 +8669,26 @@
8262
8669
  "type": "number",
8263
8670
  "description": "Low-pass filter cutoff frequency in Hz."
8264
8671
  },
8672
+ "lpfFrequencyAtMax": {
8673
+ "type": "number",
8674
+ "description": "Low-pass cutoff in Hz at lpfRadiusMax and beyond (900 sounds like a distant, muffled engine)."
8675
+ },
8676
+ "lpfFrequencyAtMin": {
8677
+ "type": "number",
8678
+ "description": "Low-pass cutoff in Hz at lpfRadiusMin and nearer (20000 leaves the sound unfiltered)."
8679
+ },
8680
+ "lpfRadiusMax": {
8681
+ "type": "number",
8682
+ "description": "Distance in cm where the cutoff reaches lpfFrequencyAtMax."
8683
+ },
8684
+ "lpfRadiusMin": {
8685
+ "type": "number",
8686
+ "description": "Distance in cm where the low-pass starts closing; nearer than this the cutoff is lpfFrequencyAtMin."
8687
+ },
8688
+ "maxSeconds": {
8689
+ "type": "number",
8690
+ "description": "Longest the measurement runs, in seconds (default 5, 0.2 to 20). A sound that ends sooner ends it then; looping sounds, music and MetaSounds that never trigger On Finished play until this."
8691
+ },
8265
8692
  "midFrequency": {
8266
8693
  "type": "number",
8267
8694
  "description": "Centre frequency of EQ band 1 in Hz."
@@ -8311,6 +8738,10 @@
8311
8738
  "type": "number",
8312
8739
  "description": "Volume scale applied while occluded (0-1)."
8313
8740
  },
8741
+ "oneShot": {
8742
+ "type": "boolean",
8743
+ "description": "false makes a continuous source with no On Finished output: the engine treats it as looping, so a hum or ambience whose AudioComponent starts out of earshot resumes when the listener comes near. Default true (it plays until On Finished fires)."
8744
+ },
8314
8745
  "operations": {
8315
8746
  "type": "array",
8316
8747
  "items": {
@@ -8319,7 +8750,7 @@
8319
8750
  "x-unreal-reflection-boundary": true
8320
8751
  },
8321
8752
  "x-unreal-reflection-boundary": true,
8322
- "description": "Steps run in order, 1-200, stopping at the first failure. Each is {edit, ...the params of that edit}: edit is add_node, connect, disconnect, remove_node, set_default, add_input or add_output (the add_metasound_node, connect_metasound_nodes, disconnect_metasound_nodes, remove_metasound_node, set_metasound_default, add_metasound_input, add_metasound_output params). Optional per step: id (names the node it creates; later steps use \"$id\" in nodeId/nodeIds/sourceNodeId/targetNodeId), from/to (\"$id.PinName\" shorthand for connect; interface nodes such as the On Play input are named with the explicit fields)."
8753
+ "description": "Steps run in order, 1-200, stopping at the first failure; every add_node class is looked up first, so a node class the registry does not hold fails the batch with nothing applied, and so is every pin a connect or set_default names on a node the batch adds (a wrong one fails with PIN_NOT_FOUND and that node's pins). Each is {edit, ...the params of that edit}: edit is add_node, connect, disconnect, remove_node, set_default, add_input or add_output (the add_metasound_node, connect_metasound_nodes, disconnect_metasound_nodes, remove_metasound_node, set_metasound_default, add_metasound_input, add_metasound_output params). Optional per step: id (names the node it creates; later steps use \"$id\" in nodeId/nodeIds/sourceNodeId/targetNodeId), from/to (\"$id.PinName\" shorthand for connect; interface nodes such as the On Play input are named with the explicit fields)."
8323
8754
  },
8324
8755
  "outputName": {
8325
8756
  "type": "string",
@@ -8352,7 +8783,8 @@
8352
8783
  "at_location",
8353
8784
  "spawn_at_location",
8354
8785
  "attached",
8355
- "prime"
8786
+ "prime",
8787
+ "measure"
8356
8788
  ],
8357
8789
  "description": "Which play sound variant to run."
8358
8790
  },
@@ -8624,6 +9056,7 @@
8624
9056
  "eventName",
8625
9057
  "eventType",
8626
9058
  "explicitWrapWidth",
9059
+ "exposeOnSpawn",
8627
9060
  "fadeTime",
8628
9061
  "fillColorAndOpacity",
8629
9062
  "fillValue",
@@ -8661,6 +9094,7 @@
8661
9094
  "justification",
8662
9095
  "key",
8663
9096
  "keyLabel",
9097
+ "keys",
8664
9098
  "kind",
8665
9099
  "layoutProperty",
8666
9100
  "left",
@@ -8774,6 +9208,7 @@
8774
9208
  "variableNames",
8775
9209
  "variableType",
8776
9210
  "visibility",
9211
+ "waitForShaders",
8777
9212
  "widgetKind",
8778
9213
  "widgetPath",
8779
9214
  "widthOverride",
@@ -9074,6 +9509,10 @@
9074
9509
  "type": "boolean",
9075
9510
  "description": "Use explicit wrap width."
9076
9511
  },
9512
+ "exposeOnSpawn": {
9513
+ "type": "boolean",
9514
+ "description": "Expose on Spawn: the variable becomes an input pin on SpawnActor and Create Widget nodes for this class, set as the actor is made (before its BeginPlay). Makes it instance-editable too, as the editor does."
9515
+ },
9077
9516
  "fadeTime": {
9078
9517
  "type": "number",
9079
9518
  "description": "Seconds of the fade: the damage flash (default 0.6) or the loading screen FadeIn animation (0 makes none)."
@@ -9269,6 +9708,18 @@
9269
9708
  "type": "string",
9270
9709
  "description": "Key shown in the interaction prompt badge, such as E."
9271
9710
  },
9711
+ "keys": {
9712
+ "type": "array",
9713
+ "minItems": 1,
9714
+ "maxItems": 200,
9715
+ "items": {
9716
+ "type": "object",
9717
+ "additionalProperties": true,
9718
+ "x-unreal-reflection-boundary": true
9719
+ },
9720
+ "x-unreal-reflection-boundary": true,
9721
+ "description": "Many keyframes in one call, in place of time: each {time, propertyValue or value, and any of slotName, trackType, interpolation that differ from the call's own}. Every key is checked before any is written: a refused one is named by its index (keys[3]) and nothing is added. The Widget Blueprint is saved once."
9722
+ },
9272
9723
  "kind": {
9273
9724
  "type": "string",
9274
9725
  "enum": [
@@ -9426,7 +9877,7 @@
9426
9877
  },
9427
9878
  "nodeType": {
9428
9879
  "type": "string",
9429
- "description": "The node to create: CallFunction (memberName, plus memberClass for a function of another class), Event (eventName: BeginPlay, Tick), CustomEvent (customEventName), VariableGet or VariableSet (memberName), Cast (targetClass), InputAxisEvent (inputAxisName), Branch, Sequence, Select, Switch, SwitchOnInt, SwitchOnEnum, SwitchOnString, DoOnce, DoN, FlipFlop, Gate, MultiGate, ForLoop, ForEachLoop, WhileLoop (each also WithBreak), MakeArray, MakeStruct and BreakStruct (structPath), SpawnActorFromClass, GetAllActorsOfClass, Self, Timeline, Reroute, Comment; a common function by name (PrintString, Delay, SetActorLocation, GetPlayerPawn, IsValid, PlaySound2D); or a K2Node class name that inspect_graph info=node_types lists. For create_struct_make_break_nodes: make or break."
9880
+ "description": "The node to create: CallFunction (memberName, plus memberClass for a function of another class), Event (eventName: BeginPlay, Tick), CustomEvent (customEventName), VariableGet or VariableSet (memberName), Cast (targetClass), InputAxisEvent (inputAxisName), Branch, Sequence, Select, Switch, SwitchOnInt, SwitchOnEnum, SwitchOnString, DoOnce, DoN, FlipFlop, Gate, MultiGate, ForLoop, ForEachLoop, WhileLoop (each also WithBreak), MakeArray, MakeStruct and BreakStruct (structPath), SpawnActorFromClass, GetAllActorsOfClass, Self, Timeline, Reroute, Comment (a Switch on Int is made with only Default: wire a case by its number, from \"$id.0\", \"$id.1\"..., and the case pin is added; a Sequence or a commutative math node grows its inputs the same way); a common function by name (PrintString, Delay, SetActorLocation, GetPlayerPawn, GetActorOfClass, IsValid, PlaySound2D); or a K2Node class name that inspect_graph info=node_types lists. For create_struct_make_break_nodes: make or break."
9430
9881
  },
9431
9882
  "offset": {
9432
9883
  "type": "number",
@@ -9468,7 +9919,7 @@
9468
9919
  "x-unreal-reflection-boundary": true
9469
9920
  },
9470
9921
  "x-unreal-reflection-boundary": true,
9471
- "description": "Steps run in order, 1-200. Each is {edit, ...that edit's own params}. Member steps come before the nodes that use them: add_variable (variableName, variableType as add_variable takes it: basic, class, struct, enum and container types, defaultValue, isPublic, category), add_function (functionName, inputs, outputs, pure, isPublic; its body steps set graphName to the function name; with an id, \"$id\" is its entry node and \"$id_return\" its return node, which exists when outputs are declared), add_event (customEventName and parameters, or componentName plus eventName for a component or Widget Blueprint widget delegate, e.g. PlayButton with OnClicked) and add_event_dispatcher (dispatcherName, parameters [{name, type}]). Node steps: create_node, connect_pins, set_pin_default_value, set_node_property, create_reroute_node. create_node also takes nodeType CallDelegate (memberName: a dispatcher), Message (memberClass: an interface, memberName: its function), AsyncTask (memberClass: the task or async-action class, memberName: its static factory; event graphs only) and FunctionResult (one more return node in a function graph). Optional per step: id (names the created node; later steps use \"$id\" in fromNodeId, toNodeId and nodeId), from and to (\"$id.PinName\" shorthand for connect_pins), pinDefaults (create_node only: {PinName: value} applied to the new node; a read-only pin such as Set Text's Value gets a MakeLiteral node wired into it). \"$entry\" is the graph's own entry node (a Construction Script or function graph starts there: from \"$entry.then\"). A create step without posX and posY is auto-placed, and once every step ran it moves beside a node it is wired to (right of what runs it, below-left of what reads it); one whose posX and posY overlap an existing node is placed at the nearest free position instead, and its result says where in placementWarning, so a crowded row never stops the batch (a single create_node call still refuses an overlap). Every function, variable, dispatcher and async factory a step names is checked before any step runs, so a misspelled one fails the batch with nothing applied; any other failure stops the batch at that step, and that step leaves nothing behind (a member step included), in whichever graph it ran."
9922
+ "description": "Steps run in order, 1-200. Each is {edit, ...that edit's own params}. Member steps come before the nodes that use them: add_variable (variableName, variableType as add_variable takes it: basic, class, struct, enum and container types, defaultValue, isPublic, exposeOnSpawn, category), add_function (functionName, inputs, outputs, pure, isPublic; its body steps set graphName to the function name; with an id, \"$id\" is its entry node and \"$id_return\" its return node, which exists when outputs are declared), add_event (customEventName and parameters, or componentName plus eventName for a component or Widget Blueprint widget delegate, e.g. PlayButton with OnClicked) and add_event_dispatcher (dispatcherName, parameters [{name, type}]). Node steps: create_node, connect_pins, set_pin_default_value, set_node_property, create_reroute_node. create_node also takes nodeType CallDelegate (memberName: a dispatcher), Message (memberClass: an interface, memberName: its function), AsyncTask (memberClass: the task or async-action class, memberName: its static factory; event graphs only) and FunctionResult (one more return node in a function graph). Optional per step: id (names the created node; later steps use \"$id\" in fromNodeId, toNodeId and nodeId), from and to (\"$id.PinName\" shorthand for connect_pins), pinDefaults (create_node only: {PinName: value} applied to the new node; a read-only pin such as Set Text's Value gets a MakeLiteral node wired into it). \"$entry\" is the graph's own entry node (a Construction Script or function graph starts there: from \"$entry.then\"). A create step without posX and posY is auto-placed, and once every step ran it moves beside a node it is wired to (right of what runs it, below-left of what reads it); one whose posX and posY overlap an existing node is placed at the nearest free position instead, and its result says where in placementWarning, so a crowded row never stops the batch (a single create_node call still refuses an overlap). Every function, variable, dispatcher and async factory a step names is checked before any step runs, so a misspelled one fails the batch with nothing applied; any other failure stops the batch at that step, and that step leaves nothing behind (a member step included), in whichever graph it ran."
9472
9923
  }
9473
9924
  ],
9474
9925
  "description": "SCS operations applied in order. Each entry is an object with `type` plus that operation's own fields; `type: \"add_component\"` also takes componentName, componentClass (or componentType), attachTo, transform, meshPath, materialPath and a nested properties bag; `type: \"modify_component\"` takes the same transform, meshPath, materialPath and properties for a component that already exists; transform is {location:{x,y,z}, rotation:{pitch,yaw,roll}, scale:{x,y,z}} (or those three directly on the operation), and a part left out keeps its current value, while a transform that cannot be applied (a part that is not an {x,y,z} or {pitch,yaw,roll} object or a three-number array, or a component with no transform) is named in warnings, not skipped, as is a meshPath or materialPath that does not load or that its component cannot take; `type: \"attach_component\"` (or \"reparent\") moves componentName under parentComponent (or attachTo/newParent). A failed operation is named in warnings, and the call fails when none applied. Each result carries instancesUpdated (placed copies that took the change, 0 included) with up to three of their paths, and a hint, repeated in warnings, when a mesh or material lands on a hidden component."
@@ -9613,7 +10064,7 @@
9613
10064
  "description": "Value to assign to the property. An object or class reference takes a path (a Blueprint class path ends in _C); null or \"None\" clears it."
9614
10065
  },
9615
10066
  {
9616
- "description": "set_node_property: text for NodeComment, a number for NodePosX or NodePosY, true or false for bCommentBubbleVisible or bDisabled, Enabled, Disabled or DevelopmentOnly for EnabledState, an asset path for a reflected field. set_pin_default_value: the pin's new default as text: a number, true or false, an enum value name, a vector as X,Y,Z (0,150,110), a rotator as P,Y,R, or an asset path."
10067
+ "description": "set_node_property: text for NodeComment, a number for NodePosX or NodePosY, true or false for bCommentBubbleVisible or bDisabled, Enabled, Disabled or DevelopmentOnly for EnabledState, the text of a Math Expression node's Expression (each other name becomes an input pin, except one the Blueprint has a variable of, which reads that variable; a comparison used as a number is refused: write SelectFloat(1, 0, A > B)), an asset path for a reflected field. set_pin_default_value: the pin's new default as text: a number, true or false, an enum value name, a vector as X,Y,Z (0,150,110), a rotator as P,Y,R, or an asset path."
9617
10068
  }
9618
10069
  ],
9619
10070
  "description": "The key value, by trackType: opacity a number 0-1; color {r,g,b,a} or [r,g,b,a]; translation, scale or shear {x,y} or [x,y]; angle a number in degrees; transform any of {translation:{x,y}, scale:{x,y}, angle, shear:{x,y}}. A value of the wrong shape is refused before anything is added."
@@ -9799,7 +10250,7 @@
9799
10250
  },
9800
10251
  "targetClass": {
9801
10252
  "type": "string",
9802
- "description": "Target class for a node that carries one: a Cast target, a CreateWidget or SpawnActor class, or the subsystem a Get Subsystem node returns. Required for cast and subsystem nodes, whose type is stored on the node itself and cannot be set afterwards."
10253
+ "description": "Target class for a node that carries one: a Cast target, a CreateWidget or SpawnActor class, the subsystem a Get Subsystem node returns, or the class GetAllActorsOfClass and GetActorOfClass look for (their result is then typed to it, so a ForEach element wires to its functions). Required for cast and subsystem nodes, whose type is stored on the node itself and cannot be set afterwards."
9803
10254
  },
9804
10255
  "targetNode": {
9805
10256
  "type": "string",
@@ -9870,7 +10321,7 @@
9870
10321
  "type": "object",
9871
10322
  "additionalProperties": true,
9872
10323
  "x-unreal-reflection-boundary": true,
9873
- "description": "The layout as one nested node {type, name, children[], slot{}, ...props}. type: a UMG class short name (CanvasPanel, Overlay, VerticalBox, HorizontalBox, Border, SizeBox, ScaleBox, UniformGridPanel, Spacer, TextBlock, RichTextBlock, Image, ProgressBar, Button). name: the widget name, unique in the Widget Blueprint (each becomes a variable a graph can read). Props: text, fontSize, color [r,g,b,a] (text colour, border brush, image tint, bar fill), justify left|center|right, autoWrap, opacity, visibility, padding (number or [l,t,r,b]: a border's inner padding), radius (rounded border, image or button) with outlineColor and outlineWidth, imageSize [w,h], texture (an image's texture path), percent (progress bar), width, height, maxHeight (size box). Text blocks also take typeface (Bold, Regular, Light, Italic), fontFamily, letterSpacing, outline with outlineColor, and shadowOffset [x,y] with shadowColor. slot places the node in its parent: in a canvas anchors [minX,minY,maxX,maxY], alignment [x,y], position [x,y], size [w,h], autoSize, z; in a box padding, hAlign (left|center|right|fill), vAlign (top|center|bottom|fill) and fill (a share of the free space). An unknown field is refused, not ignored; at most 200 widgets."
10324
+ "description": "The layout as one nested node {type, name, children[], slot{}, ...props}. type: a UMG class short name (CanvasPanel, Overlay, VerticalBox, HorizontalBox, Border, SizeBox, ScaleBox, UniformGridPanel, Spacer, TextBlock, RichTextBlock, Image, ProgressBar, Button). name: the widget name, unique in the Widget Blueprint (each becomes a variable a graph can read). Props: text, fontSize, color [r,g,b,a] (text colour, border brush, image tint, bar fill), justify left|center|right, autoWrap, opacity, visibility, padding (number or [l,t,r,b]: a border's inner padding), radius (rounded border, image or button) with outlineColor and outlineWidth, imageSize [w,h], texture (an image's texture path), material (an Image's or Border's brush: a UI material or instance that draws the whole widget, such as a rounded panel with its rim and gradient), percent (progress bar), width, height, maxHeight (size box). Text blocks also take typeface (Bold, Regular, Light, Italic), fontFamily, letterSpacing, outline with outlineColor, and shadowOffset [x,y] with shadowColor. slot places the node in its parent: in a canvas anchors [minX,minY,maxX,maxY], alignment [x,y], position [x,y], size [w,h], autoSize, z; in a box padding, hAlign (left|center|right|fill), vAlign (top|center|bottom|fill) and fill (a share of the free space). A Widget Blueprint with no root yet gets a canvas, and a tree root with no slot (and no positionX/Y or sizeX/Y) fills it. An unknown field is refused, not ignored; at most 200 widgets."
9874
10325
  },
9875
10326
  "typeface": {
9876
10327
  "type": "string",
@@ -9922,6 +10373,10 @@
9922
10373
  ],
9923
10374
  "description": "Widget visibility state."
9924
10375
  },
10376
+ "waitForShaders": {
10377
+ "type": "boolean",
10378
+ "description": "true: when the drawing left shaders compiling (the editor compiles a material's UI shaders the first time it is drawn: right after the editor starts, or after a material edit), wait for them, at most 25 seconds, and draw again; shaderWait in the reply says how long it waited. Default false: draw once and report shadersCompiling."
10379
+ },
9925
10380
  "widgetKind": {
9926
10381
  "type": "string",
9927
10382
  "enum": [
@@ -10700,6 +11155,7 @@
10700
11155
  "angle",
10701
11156
  "assetPath",
10702
11157
  "attachToActor",
11158
+ "autoActivate",
10703
11159
  "autoConnect",
10704
11160
  "boxSize",
10705
11161
  "cleanupTarget",
@@ -10795,6 +11251,10 @@
10795
11251
  "type": "string",
10796
11252
  "description": "Name of the actor the spawned system attaches to."
10797
11253
  },
11254
+ "autoActivate": {
11255
+ "type": "boolean",
11256
+ "description": "false places the effect switched off so it waits for its cue (a particle track trigger key, Activate); default true, which also fires it when the level starts."
11257
+ },
10798
11258
  "autoConnect": {
10799
11259
  "type": "boolean",
10800
11260
  "description": "Whether inserted pins are auto-connected."
@@ -10841,7 +11301,7 @@
10841
11301
  },
10842
11302
  "deltaTime": {
10843
11303
  "type": "number",
10844
- "description": "Simulation delta time per step, in seconds."
11304
+ "description": "Seconds per step (default 0.1); steps of about a frame (0.02) simulate the way the game does."
10845
11305
  },
10846
11306
  "density": {
10847
11307
  "type": "number",
@@ -10898,7 +11358,7 @@
10898
11358
  "emitterProperties": {
10899
11359
  "type": "object",
10900
11360
  "additionalProperties": true,
10901
- "description": "Emitter settings to change. Supported key: enabled (boolean); any other key is refused. Module inputs are set with set_parameter_value.",
11361
+ "description": "Emitter settings to change: enabled (boolean) turns the emitter on or off; moduleEnabled ({ModuleName: boolean}, names as get_niagara_info lists them) turns stack modules on or off, so a template module that works against the values set (a size curve, wind) can be switched off. Any other key is refused. Module inputs are set with set_parameter_value.",
10902
11362
  "x-unreal-reflection-boundary": true
10903
11363
  },
10904
11364
  "endLocation": {
@@ -11016,11 +11476,11 @@
11016
11476
  },
11017
11477
  "materialPath": {
11018
11478
  "type": "string",
11019
- "description": "Canonical /Game material asset path for the renderer."
11479
+ "description": "Canonical /Game material asset path for the renderer; its Niagara sprite or ribbon usage flag is set and the material saved, so the renderer never falls back to the default material."
11020
11480
  },
11021
11481
  "meshPath": {
11022
11482
  "type": "string",
11023
- "description": "Canonical /Game mesh asset path."
11483
+ "description": "Canonical /Game static mesh for the mesh renderer; its materials get their Niagara mesh-particle usage flag set and saved, so the particles never fall back to the default material."
11024
11484
  },
11025
11485
  "moduleKind": {
11026
11486
  "type": "string",
@@ -11072,7 +11532,7 @@
11072
11532
  },
11073
11533
  "parameterType": {
11074
11534
  "type": "string",
11075
- "description": "Niagara parameter type (Float, Vector, Color, ...)."
11535
+ "description": "Niagara parameter type (Float, Vector, Color or LinearColor, ...)."
11076
11536
  },
11077
11537
  "parameterValue": {
11078
11538
  "description": "Niagara parameter value (any type)."
@@ -11098,7 +11558,7 @@
11098
11558
  ],
11099
11559
  "additionalProperties": false
11100
11560
  },
11101
- "description": "Several values written together and saved once, in place of parameterName and parameterValue: each {parameterName, parameterValue} names a user parameter or a module input as get_niagara_info lists it (InitializeParticle.Lifetime), and emitterName and save apply to every entry. The reply lists every entry (parameterName, applied, error); the call fails PARAMETER_BATCH_INCOMPLETE naming any that did not apply, and the others stay written."
11561
+ "description": "Several values written together and saved once, in place of parameterName and parameterValue: each {parameterName, parameterValue} names a user parameter, a module input or a module's static switch as get_niagara_info lists it (InitializeParticle.Lifetime, InitializeParticle.Ribbon Width Mode), and emitterName and save apply to every entry. The reply lists every entry (parameterName, applied, error); the call fails PARAMETER_BATCH_INCOMPLETE naming any that did not apply, and the others stay written."
11102
11562
  },
11103
11563
  "path": {
11104
11564
  "type": "string",
@@ -11118,7 +11578,7 @@
11118
11578
  },
11119
11579
  "reset": {
11120
11580
  "type": "boolean",
11121
- "description": "Whether the effect restarts from its initial state."
11581
+ "description": "Restart the system from age 0 before stepping, so it ends at exactly steps x deltaTime seconds; also plays a finished system again. Without it the steps add to the age it has."
11122
11582
  },
11123
11583
  "rotation": {
11124
11584
  "type": "array",
@@ -11146,7 +11606,7 @@
11146
11606
  },
11147
11607
  "scriptType": {
11148
11608
  "type": "string",
11149
- "description": "Niagara script usage (System, Emitter, Particle)."
11609
+ "description": "Which script the graph edit works in: Spawn (default) or Update. With emitterName that is the particle spawn or particle update stack of that emitter; without it, the system spawn or update script."
11150
11610
  },
11151
11611
  "shape": {
11152
11612
  "type": "string",
@@ -11158,7 +11618,7 @@
11158
11618
  },
11159
11619
  "sourceBinding": {
11160
11620
  "type": "string",
11161
- "description": "Data source the parameter binds to."
11621
+ "description": "The parameter to read: a user parameter of the same type (User.Tint) or an engine, system or emitter one (Emitter.Age)."
11162
11622
  },
11163
11623
  "spawnOnEvent": {
11164
11624
  "type": "boolean",
@@ -11174,7 +11634,7 @@
11174
11634
  },
11175
11635
  "steps": {
11176
11636
  "type": "number",
11177
- "description": "Number of simulation steps to advance."
11637
+ "description": "Steps to run (default 1): the system ages steps x deltaTime seconds."
11178
11638
  },
11179
11639
  "system": {
11180
11640
  "type": "string",
@@ -11629,6 +12089,7 @@
11629
12089
  "configure_mesh_lods",
11630
12090
  "convert_to_nanite",
11631
12091
  "convert_to_static_mesh",
12092
+ "split_mesh",
11632
12093
  "get_mesh_info",
11633
12094
  "edit_dynamic_mesh",
11634
12095
  "get_vertex_position"
@@ -11646,6 +12107,7 @@
11646
12107
  "baseRadius",
11647
12108
  "blurIterations",
11648
12109
  "booleanOp",
12110
+ "by",
11649
12111
  "cap",
11650
12112
  "center",
11651
12113
  "collision",
@@ -11659,6 +12121,8 @@
11659
12121
  "depthSegments",
11660
12122
  "dimensions",
11661
12123
  "distance",
12124
+ "dropRepeats",
12125
+ "dryRun",
11662
12126
  "edges",
11663
12127
  "edit",
11664
12128
  "enableCollision",
@@ -11668,6 +12132,7 @@
11668
12132
  "floating",
11669
12133
  "frequency",
11670
12134
  "g",
12135
+ "gap",
11671
12136
  "groupID",
11672
12137
  "hardEdgeAngle",
11673
12138
  "height",
@@ -11687,9 +12152,13 @@
11687
12152
  "materialId",
11688
12153
  "materials",
11689
12154
  "maxHullCount",
12155
+ "maxParts",
12156
+ "meshPath",
11690
12157
  "midpoint",
12158
+ "minTriangles",
11691
12159
  "modeling",
11692
12160
  "name",
12161
+ "namePrefix",
11693
12162
  "numCuts",
11694
12163
  "numRings",
11695
12164
  "numSides",
@@ -11700,6 +12169,7 @@
11700
12169
  "optimization",
11701
12170
  "outerRadius",
11702
12171
  "outputPath",
12172
+ "pivot",
11703
12173
  "position",
11704
12174
  "primitive",
11705
12175
  "profile",
@@ -11819,6 +12289,14 @@
11819
12289
  ],
11820
12290
  "description": "Which boolean mesh variant to run."
11821
12291
  },
12292
+ "by": {
12293
+ "type": "string",
12294
+ "enum": [
12295
+ "parts",
12296
+ "material"
12297
+ ],
12298
+ "description": "parts (default): one mesh per separate object, where connected pieces whose bounds touch or come within gap cm are one object (a crate's planks stay one crate); material: one per material slot."
12299
+ },
11822
12300
  "cap": {
11823
12301
  "type": "boolean",
11824
12302
  "description": "Close open ends: the tube ends of a loft, sweep or extrude along a spline, or for a revolve flat discs from the first and last profile points to the axis (revolve default true)."
@@ -11902,7 +12380,7 @@
11902
12380
  },
11903
12381
  "depth": {
11904
12382
  "type": "number",
11905
- "description": "Primitive depth along Z."
12383
+ "description": "Primitive depth: a box's size along Z; a plane's size along Y (a plane lies flat in XY, centred, facing +Z)."
11906
12384
  },
11907
12385
  "depthSegments": {
11908
12386
  "type": "integer",
@@ -11931,6 +12409,14 @@
11931
12409
  "type": "number",
11932
12410
  "description": "Distance for offset-style operations."
11933
12411
  },
12412
+ "dropRepeats": {
12413
+ "type": "boolean",
12414
+ "description": "Leave out an object that only repeats a larger one where it stands, such as an LOD copy an importer merged into the mesh (default true)."
12415
+ },
12416
+ "dryRun": {
12417
+ "type": "boolean",
12418
+ "description": "Answer the meshes the split would make (size, triangles, offset, and exists when the name is taken) and create nothing, to tune gap and minTriangles first. A large pack can take longer than one call waits."
12419
+ },
11934
12420
  "edges": {
11935
12421
  "type": "array",
11936
12422
  "items": {
@@ -12006,6 +12492,10 @@
12006
12492
  "type": "number",
12007
12493
  "description": "Green channel, 0-1."
12008
12494
  },
12495
+ "gap": {
12496
+ "type": "number",
12497
+ "description": "With by parts: pieces whose bounds come within this many cm of each other are one object (default 2)."
12498
+ },
12009
12499
  "groupID": {
12010
12500
  "type": "integer",
12011
12501
  "description": "Polygroup id assigned to the appended triangle."
@@ -12024,7 +12514,7 @@
12024
12514
  },
12025
12515
  "heightSegments": {
12026
12516
  "type": "integer",
12027
- "description": "Tessellation segments along height."
12517
+ "description": "Tessellation segments along height (on a plane, along its depth, Y)."
12028
12518
  },
12029
12519
  "hullCount": {
12030
12520
  "type": "integer",
@@ -12107,10 +12597,22 @@
12107
12597
  "type": "integer",
12108
12598
  "description": "Hull budget (1 to 64, default 8) when collisionType is convex_decomposition."
12109
12599
  },
12600
+ "maxParts": {
12601
+ "type": "number",
12602
+ "description": "More parts than this (default 64) refuses the split with nothing made."
12603
+ },
12604
+ "meshPath": {
12605
+ "type": "string",
12606
+ "description": "The static mesh asset to split; it is not changed."
12607
+ },
12110
12608
  "midpoint": {
12111
12609
  "type": "number",
12112
12610
  "description": "Texture luminance midpoint for displacement."
12113
12611
  },
12612
+ "minTriangles": {
12613
+ "type": "number",
12614
+ "description": "Objects with fewer triangles are left out (default 12): loose bits, decal cards."
12615
+ },
12114
12616
  "modeling": {
12115
12617
  "type": "string",
12116
12618
  "enum": [
@@ -12138,6 +12640,10 @@
12138
12640
  "type": "string",
12139
12641
  "description": "Name for the new asset or node."
12140
12642
  },
12643
+ "namePrefix": {
12644
+ "type": "string",
12645
+ "description": "Names are <namePrefix>01, <namePrefix>02 ..., largest part first (default <source name>_Part); a name already taken refuses the split before anything is made."
12646
+ },
12141
12647
  "numCuts": {
12142
12648
  "type": "integer",
12143
12649
  "description": "Number of evenly spaced cuts."
@@ -12213,6 +12719,15 @@
12213
12719
  "type": "string",
12214
12720
  "description": "Canonical /Game output asset path."
12215
12721
  },
12722
+ "pivot": {
12723
+ "type": "string",
12724
+ "enum": [
12725
+ "bottom",
12726
+ "center",
12727
+ "source"
12728
+ ],
12729
+ "description": "Each new mesh's pivot: bottom (default), the bottom centre of its bounds, so it stands on what it is placed on; center; or source, the source's own origin."
12730
+ },
12216
12731
  "position": {
12217
12732
  "type": "object",
12218
12733
  "description": "Position {x, y, z} for the operation.",
@@ -12979,6 +13494,7 @@
12979
13494
  "configure_mesh_lods",
12980
13495
  "convert_to_nanite",
12981
13496
  "convert_to_static_mesh",
13497
+ "split_mesh",
12982
13498
  "get_mesh_info",
12983
13499
  "edit_dynamic_mesh",
12984
13500
  "get_vertex_position"
@@ -15228,11 +15744,13 @@
15228
15744
  "actorPath",
15229
15745
  "actors",
15230
15746
  "additionalOptions",
15747
+ "allJobs",
15231
15748
  "animationPath",
15232
15749
  "animationSequencePath",
15233
15750
  "antiAliasingMethod",
15234
15751
  "aperture",
15235
15752
  "assetPath",
15753
+ "audioOutput",
15236
15754
  "autoClear",
15237
15755
  "autoPlay",
15238
15756
  "bindingGuid",
@@ -15245,6 +15763,7 @@
15245
15763
  "className",
15246
15764
  "clearSources",
15247
15765
  "componentName",
15766
+ "compositeOntoFinalImage",
15248
15767
  "consoleVariables",
15249
15768
  "control",
15250
15769
  "craneArmLength",
@@ -15261,6 +15780,8 @@
15261
15780
  "duration",
15262
15781
  "durationFrames",
15263
15782
  "durationSeconds",
15783
+ "easeInFrames",
15784
+ "easeOutFrames",
15264
15785
  "edit",
15265
15786
  "enabled",
15266
15787
  "end",
@@ -15275,14 +15796,18 @@
15275
15796
  "focusDistance",
15276
15797
  "frame",
15277
15798
  "frameRate",
15799
+ "frames",
15278
15800
  "friendlyName",
15279
15801
  "from",
15802
+ "gameModeOverride",
15280
15803
  "height",
15281
15804
  "includeTranslucentObjects",
15282
15805
  "info",
15806
+ "interpolation",
15283
15807
  "jobId",
15284
15808
  "jobName",
15285
15809
  "key",
15810
+ "keys",
15286
15811
  "kind",
15287
15812
  "label",
15288
15813
  "lengthInFrames",
@@ -15310,6 +15835,7 @@
15310
15835
  "onlyJob",
15311
15836
  "outputDirectory",
15312
15837
  "parameterName",
15838
+ "particleKey",
15313
15839
  "path",
15314
15840
  "paused",
15315
15841
  "platformSources",
@@ -15337,6 +15863,7 @@
15337
15863
  "renderJobName",
15338
15864
  "renderPass",
15339
15865
  "renderPasses",
15866
+ "renderTimeoutMs",
15340
15867
  "replayName",
15341
15868
  "resolution",
15342
15869
  "rotation",
@@ -15375,7 +15902,6 @@
15375
15902
  "temporalSampleCount",
15376
15903
  "time",
15377
15904
  "timeSeconds",
15378
- "timeoutMs",
15379
15905
  "to",
15380
15906
  "trackKind",
15381
15907
  "trackName",
@@ -15426,6 +15952,10 @@
15426
15952
  },
15427
15953
  "description": "Additional replay streamer options."
15428
15954
  },
15955
+ "allJobs": {
15956
+ "type": "boolean",
15957
+ "description": "Remove every job in the queue instead of one."
15958
+ },
15429
15959
  "animationPath": {
15430
15960
  "type": "string",
15431
15961
  "description": "Animation sequence asset path (alias of animationSequencePath)."
@@ -15446,6 +15976,10 @@
15446
15976
  "type": "string",
15447
15977
  "description": "Canonical /Game asset path."
15448
15978
  },
15979
+ "audioOutput": {
15980
+ "type": "boolean",
15981
+ "description": "true also writes a .wav of everything the world played during the render (music, effects, gameplay sounds) beside the frames; false removes it. MRQ records audio only when the editor runs with -DeterministicAudio, and the reply warns when it does not."
15982
+ },
15449
15983
  "autoClear": {
15450
15984
  "type": "boolean",
15451
15985
  "description": "Whether the media texture clears when playback stops."
@@ -15510,7 +16044,11 @@
15510
16044
  },
15511
16045
  "componentName": {
15512
16046
  "type": "string",
15513
- "description": "Name of the component owning the target material."
16047
+ "description": "Component of the actor the track works on. skeletal_animation: the skeletal mesh that plays the clip (default the actor's root when that is a skeletal mesh; it gets its own binding under the actor, because Sequencer otherwise plays the clip on the first skeletal mesh it finds, which on a character built from several meshes copies another's pose and shows nothing). material_parameter: the component owning the material."
16048
+ },
16049
+ "compositeOntoFinalImage": {
16050
+ "type": "boolean",
16051
+ "description": "For the ui pass: draw the UI over the final image (default true); false writes it as its own ViewportUI layer."
15514
16052
  },
15515
16053
  "consoleVariables": {
15516
16054
  "type": "object",
@@ -15524,6 +16062,7 @@
15524
16062
  "create",
15525
16063
  "queue",
15526
16064
  "start",
16065
+ "remove",
15527
16066
  "play",
15528
16067
  "pause",
15529
16068
  "seek",
@@ -15599,6 +16138,36 @@
15599
16138
  "type": "number",
15600
16139
  "description": "Killcam duration in seconds (<=600)."
15601
16140
  },
16141
+ "easeInFrames": {
16142
+ "oneOf": [
16143
+ {
16144
+ "type": "number",
16145
+ "minimum": 0,
16146
+ "description": "Frames at the start of the section over which the clip blends in from the clip it overlaps (0 or omitted: it takes over at once)."
16147
+ },
16148
+ {
16149
+ "type": "number",
16150
+ "minimum": 0,
16151
+ "description": "Frames the section fades in over; 0 removes its ease in."
16152
+ }
16153
+ ],
16154
+ "description": "Frames at the start of the section over which the clip blends in from the clip it overlaps (0 or omitted: it takes over at once)."
16155
+ },
16156
+ "easeOutFrames": {
16157
+ "oneOf": [
16158
+ {
16159
+ "type": "number",
16160
+ "minimum": 0,
16161
+ "description": "Frames at the end of the section over which the clip blends out into the clip that overlaps it."
16162
+ },
16163
+ {
16164
+ "type": "number",
16165
+ "minimum": 0,
16166
+ "description": "Frames the section fades out over; 0 removes its ease out."
16167
+ }
16168
+ ],
16169
+ "description": "Frames at the end of the section over which the clip blends out into the clip that overlaps it."
16170
+ },
15602
16171
  "edit": {
15603
16172
  "type": "string",
15604
16173
  "enum": [
@@ -15612,7 +16181,8 @@
15612
16181
  "add_keyframe",
15613
16182
  "set_locked",
15614
16183
  "set_muted",
15615
- "set_solo"
16184
+ "set_solo",
16185
+ "set_section"
15616
16186
  ],
15617
16187
  "description": "Which edit sequence bindings variant to run."
15618
16188
  },
@@ -15638,6 +16208,10 @@
15638
16208
  "type": "integer",
15639
16209
  "minimum": 1,
15640
16210
  "description": "Custom playback range end frame, EXCLUSIVE: must be strictly greater than startFrame. 0..1 renders exactly one frame; 0..0 renders nothing and is refused as INVALID_FRAME_RANGE."
16211
+ },
16212
+ {
16213
+ "type": "number",
16214
+ "description": "New end of the section in display-rate frames, after its start."
15641
16215
  }
15642
16216
  ],
15643
16217
  "description": "Custom playback range end frame, EXCLUSIVE: must be strictly greater than startFrame. 0..1 renders exactly one frame; 0..0 renders nothing and is refused as INVALID_FRAME_RANGE."
@@ -15711,6 +16285,16 @@
15711
16285
  ],
15712
16286
  "description": "Frame rate as fps or a rate string such as 24fps or 24000/1001."
15713
16287
  },
16288
+ "frames": {
16289
+ "type": "array",
16290
+ "minItems": 1,
16291
+ "maxItems": 500,
16292
+ "items": {
16293
+ "type": "integer",
16294
+ "description": "Frame number."
16295
+ },
16296
+ "description": "Remove the keys on each of these frames in one call, of every key type (transform, float, Visibility, particle). Without frame and frames every key on the track goes."
16297
+ },
15714
16298
  "friendlyName": {
15715
16299
  "type": "string",
15716
16300
  "description": "Human-readable replay name."
@@ -15719,6 +16303,10 @@
15719
16303
  "type": "number",
15720
16304
  "description": "Fade start opacity value."
15721
16305
  },
16306
+ "gameModeOverride": {
16307
+ "type": "string",
16308
+ "description": "The game mode the render plays. Unset, MRQ uses its cinematic game mode, which spawns no player pawn and no HUD: right for a cinematic, empty for gameplay. \"level\" plays the level's own game mode (its pawn, HUD and rules); a class path (/Game/X/BP_Mode or /Script/Module.Class) plays that one."
16309
+ },
15722
16310
  "height": {
15723
16311
  "type": "integer",
15724
16312
  "description": "Output height in pixels (positive; paired with width)."
@@ -15741,6 +16329,15 @@
15741
16329
  "description": "Which get properties variant to run; omit for 'properties'.",
15742
16330
  "default": "properties"
15743
16331
  },
16332
+ "interpolation": {
16333
+ "type": "string",
16334
+ "enum": [
16335
+ "auto",
16336
+ "linear",
16337
+ "constant"
16338
+ ],
16339
+ "description": "How the curve leaves this key: auto (default) a smooth curve through the keys, linear a steady rate to the next key (a bullet, a constant pan), constant a hold that jumps at the next key."
16340
+ },
15744
16341
  "jobId": {
15745
16342
  "type": "string",
15746
16343
  "description": "Render job identifier."
@@ -15753,6 +16350,38 @@
15753
16350
  "type": "string",
15754
16351
  "description": "Metadata key to look up; the reply then carries found and value."
15755
16352
  },
16353
+ "keys": {
16354
+ "type": "array",
16355
+ "minItems": 1,
16356
+ "maxItems": 500,
16357
+ "items": {
16358
+ "type": "object",
16359
+ "properties": {
16360
+ "frame": {
16361
+ "type": "integer",
16362
+ "description": "Frame number for this key."
16363
+ },
16364
+ "value": {
16365
+ "description": "Key value, in the form value takes."
16366
+ },
16367
+ "interpolation": {
16368
+ "type": "string",
16369
+ "enum": [
16370
+ "auto",
16371
+ "linear",
16372
+ "constant"
16373
+ ],
16374
+ "description": "How the curve leaves this key; default the interpolation of the call."
16375
+ }
16376
+ },
16377
+ "required": [
16378
+ "frame",
16379
+ "value"
16380
+ ],
16381
+ "additionalProperties": false
16382
+ },
16383
+ "description": "Several keys on this property in one call, in place of frame and value: a whole curve, or a flash shown on one frame and hidden on the next. Each entry is {frame, value, interpolation}; they are written in order, so lookAt keys turn the short way from the entry before. Every frame is checked before any key is written."
16384
+ },
15756
16385
  "kind": {
15757
16386
  "type": "string",
15758
16387
  "enum": [
@@ -15916,6 +16545,15 @@
15916
16545
  "type": "string",
15917
16546
  "description": "Material parameter name to animate."
15918
16547
  },
16548
+ "particleKey": {
16549
+ "type": "string",
16550
+ "enum": [
16551
+ "activate",
16552
+ "deactivate",
16553
+ "trigger"
16554
+ ],
16555
+ "description": "The key at startFrame: trigger fires the system once, the key for a one-shot burst; activate keeps it running, so a one-shot that finishes starts again until the section ends; deactivate stops it. Default from activate."
16556
+ },
15919
16557
  "path": {
15920
16558
  "type": "string",
15921
16559
  "description": "Canonical /Game path of the master sequence that owns the shot track."
@@ -16024,16 +16662,22 @@
16024
16662
  },
16025
16663
  "renderPass": {
16026
16664
  "type": "string",
16027
- "description": "Render pass identifier, such as beauty or object_id."
16665
+ "description": "Render pass identifier: beauty (final, lit), depth, motion_vector, normal, object_id, custom_stencil (with materialPath), or ui (the game viewport's UMG layer: HUD and menus; widget and ui_renderer also work)."
16028
16666
  },
16029
16667
  "renderPasses": {
16030
16668
  "type": "array",
16031
16669
  "items": {
16032
16670
  "type": "string",
16033
- "description": "Render pass identifier."
16671
+ "description": "Render pass identifier, as renderPass takes."
16034
16672
  },
16035
16673
  "description": "Render pass identifiers to add."
16036
16674
  },
16675
+ "renderTimeoutMs": {
16676
+ "type": "integer",
16677
+ "minimum": 1,
16678
+ "maximum": 300000,
16679
+ "description": "How long the render may run before it is cancelled, in milliseconds (default and maximum 300000). options.timeoutMs is the gateway deadline for the call and never reaches the render."
16680
+ },
16037
16681
  "replayName": {
16038
16682
  "type": "string",
16039
16683
  "description": "Default replay name for recordings that do not name one."
@@ -16083,7 +16727,17 @@
16083
16727
  "description": "Seek time in seconds (alias of timeSeconds)."
16084
16728
  },
16085
16729
  "sectionIndex": {
16086
- "type": "integer",
16730
+ "oneOf": [
16731
+ {
16732
+ "type": "integer",
16733
+ "description": "Index of the shot section to configure."
16734
+ },
16735
+ {
16736
+ "type": "integer",
16737
+ "minimum": 0,
16738
+ "description": "Which section of the track, in the order info=keys lists them (default 0)."
16739
+ }
16740
+ ],
16087
16741
  "description": "Index of the shot section to configure."
16088
16742
  },
16089
16743
  "sectionName": {
@@ -16267,13 +16921,16 @@
16267
16921
  "description": "Range start frame or time."
16268
16922
  },
16269
16923
  "startFrame": {
16270
- "type": "integer",
16924
+ "type": [
16925
+ "integer",
16926
+ "number"
16927
+ ],
16271
16928
  "description": "Custom playback range start frame (paired with endFrame)."
16272
16929
  },
16273
16930
  "startTime": {
16274
16931
  "type": "number",
16275
16932
  "minimum": 0,
16276
- "description": "Sequence time in seconds to start playing from."
16933
+ "description": "Sequence time in seconds. play starts there; pause jumps the playhead there and holds that frame, so the viewport and screenshots show the scene at that moment. A time past the end of the playback range is refused: frame N at 24 fps is N / 24 seconds."
16277
16934
  },
16278
16935
  "subsequencePath": {
16279
16936
  "type": "string",
@@ -16303,12 +16960,6 @@
16303
16960
  "type": "number",
16304
16961
  "description": "Seek time in seconds (<=86400)."
16305
16962
  },
16306
- "timeoutMs": {
16307
- "type": "integer",
16308
- "minimum": 1,
16309
- "maximum": 300000,
16310
- "description": "Render deadline in milliseconds (default and maximum 300000)."
16311
- },
16312
16963
  "to": {
16313
16964
  "type": "number",
16314
16965
  "description": "Fade end opacity value."
@@ -16365,7 +17016,7 @@
16365
17016
  "description": "Key value at startFrame: a number for a scalar parameter, or an {r, g, b, a} object for a color parameter."
16366
17017
  },
16367
17018
  {
16368
- "description": "Keyframe value. For property \"Transform\" pass a composed object with any subset of {location:{x,y,z}, rotation:{pitch,yaw,roll}, scale:{x,y,z}}; each component supplied must carry all of its finite axes. For \"Location\"/\"Rotation\"/\"Scale\" pass that component object alone. Other properties take their own scalar value, so no type is declared here."
17019
+ "description": "Keyframe value. For property \"Transform\" pass a composed object with any subset of {location:{x,y,z}, rotation:{pitch,yaw,roll}, scale:{x,y,z}}; each component supplied must carry all of its finite axes; a new Transform track starts from the current transform of the actor, so the parts a key leaves out keep their values. Add lookAt:{x,y,z} beside location to aim the key at that point (a camera at its subject): pitch and yaw are worked out, roll comes from rotation.roll or 0, and the yaw turns the short way from the key before, so an orbit of aimed keys never spins round. For \"Location\"/\"Rotation\"/\"Scale\" pass that component object alone. Visibility takes true or false; other properties take their own scalar value, so no type is declared here."
16369
17020
  },
16370
17021
  {
16371
17022
  "type": [
@@ -16431,10 +17082,12 @@
16431
17082
  "enable_category",
16432
17083
  "disable_category",
16433
17084
  "get_status",
17085
+ "get_task_result",
16434
17086
  "reset"
16435
17087
  ],
16436
17088
  "parameterNames": [
16437
17089
  "category",
17090
+ "taskId",
16438
17091
  "tools"
16439
17092
  ],
16440
17093
  "inputSchema": {
@@ -16451,6 +17104,10 @@
16451
17104
  ],
16452
17105
  "description": "Category name to enable/disable."
16453
17106
  },
17107
+ "taskId": {
17108
+ "type": "string",
17109
+ "description": "The task.taskId the still-running answer gave. Only the last 32 such calls of this server or editor session are kept."
17110
+ },
16454
17111
  "tools": {
16455
17112
  "type": "array",
16456
17113
  "items": {
@@ -16468,6 +17125,7 @@
16468
17125
  "enable_category",
16469
17126
  "disable_category",
16470
17127
  "get_status",
17128
+ "get_task_result",
16471
17129
  "reset"
16472
17130
  ],
16473
17131
  "description": "Action to invoke on manage_tools."
@@ -16498,6 +17156,8 @@
16498
17156
  "read_log",
16499
17157
  "list_output_files",
16500
17158
  "delete_output_file",
17159
+ "list_save_games",
17160
+ "edit_save_game",
16501
17161
  "execute_python",
16502
17162
  "set_project_setting",
16503
17163
  "get_project_settings",
@@ -16529,6 +17189,8 @@
16529
17189
  "connectionType",
16530
17190
  "control",
16531
17191
  "cvar",
17192
+ "dataValidation",
17193
+ "deleteSlot",
16532
17194
  "detailed",
16533
17195
  "duration",
16534
17196
  "enableBatching",
@@ -16556,6 +17218,7 @@
16556
17218
  "lodBias",
16557
17219
  "maps",
16558
17220
  "maxFPS",
17221
+ "maxTests",
16559
17222
  "message",
16560
17223
  "metadata",
16561
17224
  "minScreenRadius",
@@ -16578,18 +17241,21 @@
16578
17241
  "port",
16579
17242
  "profile",
16580
17243
  "profileType",
17244
+ "properties",
16581
17245
  "recursive",
16582
17246
  "replaceSourceActors",
16583
17247
  "resolution",
16584
17248
  "returnBase64",
16585
17249
  "root",
16586
17250
  "runsBack",
17251
+ "saveGameClass",
16587
17252
  "savePath",
16588
17253
  "scale",
16589
17254
  "seconds",
16590
17255
  "section",
16591
17256
  "setting",
16592
17257
  "slop",
17258
+ "slotName",
16593
17259
  "snapshotPath",
16594
17260
  "soundPath",
16595
17261
  "source",
@@ -16597,8 +17263,10 @@
16597
17263
  "streamingDistance",
16598
17264
  "target",
16599
17265
  "text",
17266
+ "timeoutSeconds",
16600
17267
  "traceFile",
16601
17268
  "type",
17269
+ "userIndex",
16602
17270
  "value",
16603
17271
  "volume",
16604
17272
  "widgetId",
@@ -16704,6 +17372,14 @@
16704
17372
  "type": "string",
16705
17373
  "description": "Alternate CVar name field."
16706
17374
  },
17375
+ "dataValidation": {
17376
+ "type": "boolean",
17377
+ "description": "Also run Data Validation on every asset that loads (default false): an asset row gains dataValidation (valid, invalid or notValidated, the last when no validator checks that kind of asset) with its errors and warnings, a folder row the count of each verdict and issues (up to 20 assets with errors or warnings). An invalid asset makes its row invalid."
17378
+ },
17379
+ "deleteSlot": {
17380
+ "type": "boolean",
17381
+ "description": "true deletes the slot instead; properties are then ignored."
17382
+ },
16707
17383
  "detailed": {
16708
17384
  "type": "boolean",
16709
17385
  "description": "Produce a detailed report."
@@ -16828,6 +17504,10 @@
16828
17504
  "type": "number",
16829
17505
  "description": "Maximum frames per second."
16830
17506
  },
17507
+ "maxTests": {
17508
+ "type": "number",
17509
+ "description": "Run at most this many of the matching tests, in the order the editor lists them (default 50, at most 200); matched says how many there were."
17510
+ },
16831
17511
  "message": {
16832
17512
  "type": "string",
16833
17513
  "description": "Notification message text."
@@ -16955,6 +17635,12 @@
16955
17635
  ],
16956
17636
  "description": "Profiling domain to display."
16957
17637
  },
17638
+ "properties": {
17639
+ "type": "object",
17640
+ "additionalProperties": true,
17641
+ "x-unreal-reflection-boundary": true,
17642
+ "description": "Saved properties to set, by name, each value as list_save_games shows it ({\"BestScore\": 0}). All are checked before the slot is written. A slot being created may leave them out: it is written with its class defaults."
17643
+ },
16958
17644
  "recursive": {
16959
17645
  "type": "boolean",
16960
17646
  "description": "For a folder path, include its subfolders (default true)."
@@ -16985,6 +17671,10 @@
16985
17671
  "type": "number",
16986
17672
  "description": "With source previous: how many editor runs back to read (default 1, max 20). After a crash and one more restart, the crashed run is 2."
16987
17673
  },
17674
+ "saveGameClass": {
17675
+ "type": "string",
17676
+ "description": "SaveGame subclass to create the slot from when it does not exist yet, such as /Game/Core/BP_Save.BP_Save_C (SaveGame itself is abstract); an existing slot keeps its own class."
17677
+ },
16988
17678
  "savePath": {
16989
17679
  "type": "string",
16990
17680
  "description": "Destination /Game folder (default /Game/UI/Widgets)."
@@ -17030,6 +17720,10 @@
17030
17720
  "type": "number",
17031
17721
  "description": "Occlusion query bounds padding in world units (r.OcclusionSlop)."
17032
17722
  },
17723
+ "slotName": {
17724
+ "type": "string",
17725
+ "description": "Slot to change, as list_save_games lists it: its file name without .sav."
17726
+ },
17033
17727
  "snapshotPath": {
17034
17728
  "type": "string",
17035
17729
  "description": "Snapshot .utrace file name, resolved inside Saved/Profiling (default a generated name)."
@@ -17064,6 +17758,10 @@
17064
17758
  "type": "string",
17065
17759
  "description": "Optional text for text-bearing components."
17066
17760
  },
17761
+ "timeoutSeconds": {
17762
+ "type": "number",
17763
+ "description": "Stop a test still running after this many seconds and count it failed (default 60, at most 600)."
17764
+ },
17067
17765
  "traceFile": {
17068
17766
  "type": "string",
17069
17767
  "description": "File mode: .utrace file name, resolved inside Saved/Profiling (default a generated McpInsights_<time>.utrace)."
@@ -17072,6 +17770,11 @@
17072
17770
  "type": "string",
17073
17771
  "description": "Optional benchmark type."
17074
17772
  },
17773
+ "userIndex": {
17774
+ "type": "integer",
17775
+ "minimum": 0,
17776
+ "description": "User index the game saves under (default 0)."
17777
+ },
17075
17778
  "value": {
17076
17779
  "type": "string",
17077
17780
  "description": "Setting value."
@@ -17133,6 +17836,8 @@
17133
17836
  "read_log",
17134
17837
  "list_output_files",
17135
17838
  "delete_output_file",
17839
+ "list_save_games",
17840
+ "edit_save_game",
17136
17841
  "execute_python",
17137
17842
  "set_project_setting",
17138
17843
  "get_project_settings",