Skip to main content

edit kit

260 tools. Generated from the plugin source; do not edit by hand.

Guide​

Editor essentials every other kit assumes: server info and undo/redo, reflection over any object, Play-In-Editor control with input injection, the level viewport and selection, console variables and rendering, log capture, ini/settings classes, plugins and the project descriptor. The kit is split over nine classes (UUeaKit_Edit, _EditCheckpoint, _EditObject, _EditPlay, _EditView, _EditConsole, _EditConfig, _EditTools, _EditWorkflow) that all register as kit edit; the tools are spread over eleven prefixes. Content-browser asset tools (asset.* / import.*) live in the asset kit (see Docs/guides/asset.md); the only asset. tool of this kit is asset.preview.

PrefixToolsWhat it covers
edit.67ping/discovery, undo/redo/transactions, checkpoints and rollback, workflows, level load/save/build, world settings, editor utilities, automation tests, Live Coding, source control, actor selection, batched calls
object.22read/write any reflected property on any object or CDO, diff/copy/reset, call UFUNCTIONs, class/enum/struct introspection
play.41PIE start/stop/status, actor state and function calls, spawn/teleport/possess, key/axis/mouse injection, frame stepping, traces, stats, players/worlds, widgets, captures
view.33level viewport camera, view modes, show flags, realtime/game view, bookmarks, projection, visible actors, pilot, snapping, screenshots, before/after captures
asset.1asset.preview (thumbnail image of any asset)
console.10console commands with captured output, cvars get/set/search/persist
render.13scalability, screen percentage, AA, shadows, Lumen/Nanite/GI/reflection method, ray tracing, vsync, max FPS
log.12editor log read, categories/verbosity, in-memory capture with markers, log file markers
settings.21settings.get/set, raw ini files (get/set/search/diff/flush), settings classes (schema, get_many/set_many, save/reload/reset)
project.22project info/paths/descriptor/version, default maps and game mode classes, modules/targets/maps/platforms, capabilities, text files, header search
plugin.13list/find/info, enable/disable, dependencies/dependents, content plugins, modules, .uplugin descriptor edits

276 tools in total on UE 5.x (272 on 4.27). Every tool takes JSON arguments named after the C++ struct fields in camelCase without the b prefix (bRecursive -> recursive). Asset references accept an object path (/Game/Folder/Asset.Asset), a package path (/Game/Folder/Asset) or a unique bare name.

Start here​

  1. edit.ping -> engine version, project and tool count. edit.get_state -> PIE, active transaction, dirty packages, selection, builds, focus.
  2. project.info / project.get_capabilities -> current map, default game mode/maps, plugins, Nanite/Lumen/ray tracing availability, kits and tool count.
  3. edit.search_tools {query:"screenshot viewport"} finds tools by words in name + description; edit.get_tool_schema {tool:"asset.rename_many"} gives the full input/output JSON schema; edit.get_tool_counts shows counts per prefix/kit and how many tools are hidden on this engine.

Tools​

edit. (server, transactions, level, utilities, tests, discovery)​

ToolPurpose
edit.ping / edit.list_kits / edit.get_stateServer + engine + project identification; loaded kits with tool names; editor state at a glance.
edit.undo / edit.redo (steps) / edit.history (limit) / edit.undo_to_index / edit.get_undo_stateUndo/redo N transactions, list the history (newest first), jump to a history index, counts and next titles.
edit.begin_transaction {title} / edit.end_transaction / edit.cancel_transactionGroup the following calls into one undo step, or throw them all away.
edit.reset_undo_bufferClears the undo/redo buffer (destructive, cannot be undone).
edit.load_map {map, saveCurrent} / edit.new_map {template, savePath} / edit.save_map {savePath, saveAll}Open, create (blank or from a template) and save the current level.
edit.get_map_info / edit.list_streaming_levels / edit.set_streaming_level {level, loaded, visible}Level summary (actors, class counts, streaming levels, bounds, lighting state); sub-level load/visibility (-1 keeps, 0/1 sets).
edit.get_world_settings {properties} / edit.set_world_settings {values}World Settings of the current level (game mode override, gravity, kill Z...).
edit.build {type, quality} / edit.is_building / edit.get_lighting_infoBuilds: lighting (preview/medium/high/production), geometry, visible_geometry, navigation, hlod, all; lighting state and light counts.
edit.get_level_bounds / edit.map_checkBounding box of every actor; Map Check errors/warnings per actor.
edit.run_utility_widget / edit.close_utility_widget / edit.run_utility_blueprintEditor Utility Widgets as tabs; run an Editor Utility Blueprint.
edit.run_editor_function {class, function, args}Call a static/BlueprintCallable function on a class CDO (function libraries, editor utilities).
edit.show_notification {message, type, duration}Toast in the editor (info/success/fail).
edit.list_dirty_packages / edit.set_background_throttling {enabled}Unsaved packages; disable "use less CPU in background" for unattended PIE runs.
edit.gc {fullPurge} / edit.get_memoryForce garbage collection; process memory and object counts.
edit.list_tests {contains, filter, limit} / edit.run_test {test, maxFrames} / edit.run_tests {test, maxTests, stopOnFailure} / edit.get_test_resultsAutomation tests: list (smoke/engine/product/perf/stress/negative), run one synchronously, run every match, re-read the last results.
edit.live_coding_status / edit.live_coding_enable {enabled} / edit.live_coding_compile {waitFrames}Live Coding (Windows): state, enable for the session, compile and wait.
edit.sc_info / edit.sc_checkout {files} / edit.sc_add / edit.sc_revertSource control on arbitrary files (/Game/... paths are converted to package files).
edit.select_actors {actors, class, nameContains, tag, layer, folder, add} / edit.deselect_actors / edit.select_all {class} / edit.invert_selection / edit.clear_selection / edit.get_selected_actorsEditor actor selection by name list or filters.
edit.select_component {actor, component, add} / edit.save_selection {slot} / edit.restore_selection {slot}Details-panel component selection; named selection slots.
edit.search_tools {query, kit, limit} / edit.get_tool_schema {tool} / edit.get_tool_countsTool discovery: word search, full JSON schema (with availableOnThisEngine), counts.
edit.call_many {calls:[{tool, argsJson}], stopOnError, atomic}Runs several tools in sequence in one round trip; per-call ok, resultJson, milliseconds. atomic:true takes an implicit checkpoint and, when a call fails, rolls every earlier call back (rolledBack, rollback report).
edit.checkpoint_create {name, note, replace, withPreview} / edit.checkpoint_list / edit.checkpoint_diff {name} / edit.checkpoint_delete {name}Named positions in the undo history (session only): what changed since (transactions, newly dirty packages, mutating calls, what cannot be undone). withPreview stores a 256 px viewport capture.
edit.checkpoint_rollback {name, dryRun}Undoes every transaction after the checkpoint, newest first; lists undone titles and issues it cannot revert (saved_to_disk, missing_on_disk, non_undoable_call, inside_active_transaction, history_reset, undo_failed, behind_checkpoint).
edit.list_workflows {category} / edit.get_workflow {id} / edit.validate_workflow {id | json, arguments} / edit.run_workflow {id | json, arguments, atomic, dryRun, runCleanup}Cross-kit recipes (JSON, Resources/Workflows + <Project>/Saved/UEAMCP/Workflows); also served as MCP prompts.

object. (reflection over anything)​

Object references: full object path, asset path or unique name, cdo:<Class> / class:<Class> (class default object of a native class or Blueprint), actor:<Label> (PIE world when running, else editor world), settings:<Class> (a config/settings CDO). Property paths support nesting, components, arrays and maps: Movement.MaxWalkSpeed, Items[2].Name, RootComponent.RelativeLocation.X, MyMap[KeyName].

ToolPurpose
object.resolve {object}Resolves a reference and describes it (class, outer, package, CDO/asset/actor flags).
object.list_properties {object, contains, category, editableOnly, includeInherited, maxValueLength}Reflected properties with type, category, flags, tooltip and value.
object.get_property {object, property} / object.get_properties {object, properties}One or many values by path.
object.set_property {object, property, value} / object.set_properties {object, values}Write from text (ImportText rules: structs (X=1,Y=2), arrays (a,b,c), objects by full path); runs PostEditChange.
object.reset_property / object.diff_from_default {object, other} / object.copy_properties {source, target, properties, editableOnly}Reset to archetype; list overrides vs CDO (or another object); copy between compatible objects.
object.get_container_size / object.array_add {object, property, value, index} / object.array_remove {index} / object.array_clearArray property editing.
object.call_function {object, function, args:[{key, value}]} / object.list_functions {object, contains, callableOnly}Call any UFUNCTION with text args (statics on cdo:<Class>); returns return value + out params.
object.get_class_info {class} / object.list_subclasses {class, nativeOnly, concreteOnly} / object.find {class, contains, pathContains, skipDefaults}Class ancestry/interfaces/module; loaded subclasses; loaded objects (TObjectIterator).
object.get_property_metadata {class, property} / object.get_enum_values {class} / object.get_struct_fields {class}ClampMin/Categories/AllowedClasses...; enum names and numeric values; struct fields with types.
object.export_text {object}T3D text export as the editor copies it.

play. (Play-In-Editor)​

ToolPurpose
play.start {map, mode:viewport|window, players, dedicatedServer} / play.stop / play.statusStart (session begins on the next editor tick), stop, running/paused/map/pawn/location.
play.start_simulate / play.toggle_simulate / play.toggle_pause / play.set_paused {paused}Simulate-In-Editor, possess/eject, pause.
play.exec_console {command}Console command in PIE (editor when not running); prefer console.exec for captured output.
play.list_actors {class, name, limit} / play.get_actor {actor, property} / play.get_actor_components {actor} / play.find_actors_by_tag {tag} / play.actors_near_player {radius, class}Live actor queries (Component.Property paths work). Without PIE they read the editor world.
play.set_actor_property {actor, property, value} / play.call_function {actor, component, function, args}Write live state; call a UFUNCTION on an actor or one of its components.
play.spawn_actor {class, location, rotation, label, properties} / play.destroy_actor {actor}Spawn (with properties applied) and destroy in the running world.
play.teleport_player {location, rotation, playerIndex} / play.teleport_actor {actor, location, rotation, scale, sweep}Move the pawn or any actor.
play.possess {pawn} / play.unpossess / play.set_view_target {actor, blendTime}Possession and camera view target.
play.press_key {key} / play.release_key / play.tap_key {key, holdFrames}Key injection through the player controller (press stays down until release).
play.set_axis {key, value, frames} / play.mouse_delta {deltaX, deltaY, frames}Axis and mouse deltas fed for N frames (each frame is ticked).
play.is_key_pressed {key} / play.get_input_stateCurrent key state / every pressed key with value.
play.advance_frames {frames, deltaSeconds}Tick N frames with a fixed delta (1-600) instead of waiting.
play.get_statsFPS, game/render/RHI/GPU ms, draw calls, memory, object/actor counts, boundBy.
play.line_trace {fromCamera, start, end, distance, channel, ignorePlayer}Trace from the player camera (or explicit points) with hit actor/component/normal.
play.get_player_state {playerIndex} / play.list_players / play.list_worlds / play.get_game_mode_infoController/pawn/velocity/movement mode; every player controller (multiplayer PIE); world contexts with net mode; game mode/state classes and match state.
play.get_visible_widgets {textOnly, visibleOnly}User widgets on screen with names, classes, texts, visibility.
play.set_time_dilation {value} / play.get_time_dilationGlobal time dilation (0.0001-20).
play.screenshot {savePath, maxSize} / play.screenshot_from_actor {actor, width, height, fov}PNG of the PIE viewport; render from an actor's camera component (or transform).

view. (level viewport)​

ToolPurpose
view.get_info / view.get_camera / view.set_camera {location, rotation | lookAt | focusActor}Full viewport state (plus every other viewport); camera pose; move or frame.
view.set_view_mode {mode}lit, unlit, wireframe, detail_lighting, lighting_only, shader_complexity, lightmap_density, lod_coloration, path_tracing, buffer_visualization... or a VMI_* name.
view.get_show_flags {contains, enabledOnly} / view.set_show_flag {flag, enabled}Engine show flags (Grid, Bounds, Collision, Navigation, Fog, PostProcessing...).
view.set_realtime {enabled} / view.set_game_view / view.set_immersiveRealtime rendering (needed for Niagara/animation previews), hide editor icons, maximise.
view.set_fov {fov} / view.set_type {type} / view.set_ortho_zoom {zoom} / view.set_clip_planes {near, far, clearFar} / view.set_camera_speed {setting, scalar}FOV, perspective/top/front/..., ortho zoom, clip planes, fly speed notch 1-8.
view.set_bookmark {index} / view.jump_to_bookmark / view.clear_bookmark / view.list_bookmarksCamera bookmarks 0-9 stored in the level.
view.focus_actors {actors, instant} / view.focus_point {location, distance} / view.pilot_actor {actors} / view.eject_pilotFrame actors or a point; lock the camera to an actor.
view.world_to_screen {position} / view.screen_to_world {u, v, trace, distance} / view.get_visible_actors {class, includeHidden}Projection both ways (normalised 0..1, origin top-left); actors in the frustum nearest first with screen coordinates.
view.get_snap / view.set_snap {gridSnap, rotationSnap, scaleSnap, surfaceSnap, gridSizeIndex, ...}Snapping toggles and grid indices (-1 keeps).
view.set_active_viewport {index} / view.redrawPick the active viewport (index from view.get_info); redraw all.
view.screenshot {maxSize, width, height, frameActors, showFlags, format, savePath}Canonical capture: active level viewport (PIE viewport while playing) as PNG/JPG, optionally framed on actors and with temporary show flags (both restored).
view.capture_compare {checkpoint, format} / asset.preview {asset, size, format}Before/after pair for a checkpoint created with withPreview:true (+ changedPixelRatio); thumbnail of any asset.
view.screenshot_from {location, rotation | lookAt, fov, gameView} / view.screenshot_editor {maxSize}PNG from a temporary camera pose (restored afterwards); the whole editor window with Slate UI.

console. and render.​

ToolPurpose
console.exec {command, world:auto|editor|pie} / console.exec_many {commands}Run commands and get what they printed (stat, obj list, help, cvar queries).
console.get_cvar {name} / console.set_cvar {name, value} / console.get_many {names} / console.set_many {variables, persist, iniFile, section}Value, type, help, flags and setBy layer; set with SetByConsole priority (previous value returned); persist:true writes [ConsoleVariables] in Default.ini.
console.search {query, includeCommands} / console.list_prefix {query} / console.list_commands / console.list_categoriesDiscover cvars by substring or prefix (r.Shadow.), commands only, prefix categories with counts.
render.get_scalability / render.set_scalability {group, level, resolutionQuality, persist}Per-group levels (-1 = group missing on this engine); set one group or all to 0-4 / low..cinematic, optionally into GameUserSettings.ini.
render.get_settingsSnapshot of the common rendering cvars, AA method, screen percentage, RHI, adapter, GI/reflection method, Nanite.
render.set_screen_percentage {value} / render.set_anti_aliasing {method} / render.set_shadow_quality {maxResolution, maxCascades, distanceScale, qualityLevel} / render.set_vsync {enabled} / render.set_max_fps {value}Runtime cvars (AA: none, fxaa, taa, msaa, tsr).
render.set_lumen {globalIllumination, reflections, hardwareRayTracing, qualityLevel} / render.set_nanite {enabled, maxPixelsPerEdge} / render.set_gi_method {method} / render.set_reflection_method {method} (5.0+)UE 5 features; GI: none/lumen/ssgi/plugin, reflections: none/lumen/ssr.
render.set_ray_tracing {enabled}Project setting (restart required) plus the runtime toggle where available.

log.​

ToolPurpose
log.read {lines, contains}Last lines of the editor log.
log.list_categories {contains} / log.get_verbosity {category} / log.set_verbosity {category, verbosity}Categories and verbosity (NoLogging ... VeryVerbose, All).
log.start_capture / log.stop_capture / log.clear_capture / log.get_markerIn-memory capture of every line (category, verbosity, message); the marker is the current index.
log.read_capture {sinceIndex, category, minVerbosity, contains, regex, limit}Captured entries after an index; reply carries lastIndex, error and warning counts.
log.write {message, verbosity}Write a line to the Output Log (marker between test steps).
log.get_file_marker / log.read_file_since {marker, contains, regex}Line count of the log file on disk; lines written after it.

settings.​

ToolPurpose
settings.get {section, property} / settings.set {section, property, value}Any settings class by name (GameMapsSettings, InputSettings, RendererSettings, any UDeveloperSettings); set writes the Default*.ini. Object values use full paths (/Game/Core/BP_GameMode.BP_GameMode_C).
settings.list_containers / settings.list_categories {container} / settings.list_sections {container, category} / settings.list_classes {contains, container, category}The Project/Editor settings tree as the settings windows show it, down to class names.
settings.get_class_schema {section, includeValues, configOnly, category}Properties of a settings class with type, tooltip, enum values and current value.
settings.get_many {section, properties} / settings.set_many {section, values}Several properties at once (set_many saves the ini).
settings.save {section} / settings.reload {section} / settings.reset_to_defaults {section}Save after object.set_property on settings:<Class>; discard in-memory edits; remove the project overrides (destructive).
settings.list_filesConfig branches (Engine, Game, Input, Editor, ...) with project Default*.ini and user files.
settings.get_ini {file, section, key} / settings.set_ini {file, section, key, value, writeDefault} / settings.remove_ini_keyRaw ini values as the engine resolves them (all layers merged); write to memory + Default.ini.
settings.get_ini_section {file, section} / settings.list_ini_sections {file, contains} / settings.search_ini {query, file} / settings.diff_from_default {file, sectionContains} / settings.flush {file}Whole sections, section names, full-text search, project-vs-engine-Base diff, flush a branch to disk.

project. and plugin.​

ToolPurpose
project.info / project.get_paths / project.get_build_info / project.get_capabilitiesName/map/defaults/plugins; every project and engine directory + log file; engine version/changelist/branch/RHI/compiler; feature detection (UE5, Nanite, Lumen, ray tracing, World Partition, Chaos, Enhanced Input, source control, Live Coding).
project.get_descriptor / project.set_descriptor_field {field, value}The .uproject (engine association, modules, plugin references, target platforms); edit Category, Description or EngineAssociation.
project.get_version / project.set_version {projectName, projectVersion, companyName, ...}GeneralProjectSettings fields in DefaultGame.ini (only non-empty fields applied).
project.get_default_maps / project.set_default_maps {gameDefaultMap, editorStartupMap, serverDefaultMap, transitionMap, globalDefaultGameMode, globalDefaultServerGameMode, gameInstanceClass}GameMapsSettings in DefaultEngine.ini (only non-empty fields applied).
project.set_game_mode_classes {gameMode, defaultPawnClass, playerControllerClass, hudClass, gameStateClass, playerStateClass, spectatorClass, save}Default classes on a GameMode class or Blueprint.
project.list_modules / project.list_targets / project.list_maps {folder, includeEngine} / project.list_platformsGame modules with loaded state; *.Target.cs; level assets + cook list; platforms with SDK/support flags.
project.read_file {path, maxChars} / project.write_file {path, content, append} / project.list_files {directory, pattern, recursive} / project.rename_file {path, newPath} / project.delete_file {path}Text files inside the project (read also inside the engine). Never touches .uasset/.umap.
project.search_headers {pattern, regex, pathContains, engine, project, contextLines, limit} / project.find_class_header {class}Grep over engine + project headers; the declaration block of a class.
plugin.list {contains, includeEngine, enabledOnly, contentOnly} / plugin.find {plugin} / plugin.get_info {plugin}Discovered plugins with enabled state, version, category, origin; full descriptor, modules, dependencies.
plugin.set_enabled {plugin, enabled, save}Writes the .uproject; reply has restartRequired:true.
plugin.get_dependencies {plugin, recursive} / plugin.get_dependents {plugin} / plugin.for_asset {asset} / plugin.list_content_plugins / plugin.list_modules {plugin}Dependency graph with found/active flags; which plugin mounts a path; /PluginName/ mount points; modules with loading phase.
plugin.get_descriptor_json / plugin.set_descriptor_field {plugin, field, value} / plugin.add_dependency {plugin, dependency, enabled, optional} / plugin.remove_dependencyRaw and field-level .uplugin edits.

Recipe: inspect and edit any object property​

  1. object.resolve {object:"cdo:/Game/BP/BP_Enemy"} (or actor:Enemy_3, settings:RendererSettings, /Game/Data/DT_Items.DT_Items) to confirm what you are pointing at.
  2. object.list_properties {object:"cdo:BP_Enemy", editableOnly:true, contains:"Health"} for exact names and types; object.get_property_metadata {class:"BP_Enemy", property:"MaxHealth"} for ClampMin/ClampMax.
  3. object.set_property {object:"cdo:BP_Enemy", property:"MaxHealth", value:"250"} or several with object.set_properties {values:[{key:"MaxHealth", value:"250"}, {key:"Mesh.RelativeScale3D", value:"(X=2,Y=2,Z=2)"}]}.
  4. object.diff_from_default {object:"cdo:BP_Enemy"} shows every override; asset.save {asset:"BP_Enemy"} writes the Blueprint. For a settings CDO finish with settings.save {section:"RendererSettings"} instead.

Recipe: batch calls in one round trip​

edit.call_many {
"calls": [
{"tool": "edit.begin_transaction", "argsJson": "{\"title\":\"Rename actor\"}"},
{"tool": "object.set_property", "argsJson": "{\"object\":\"actor:Door_1\",\"property\":\"IsOpen\",\"value\":\"True\"}"},
{"tool": "edit.end_transaction", "argsJson": "{}"}
],
"stopOnError": true
}

argsJson is a JSON object string; each result carries ok, resultJson and milliseconds. Wrap the batch in edit.begin_transaction {title:"..."} ... edit.end_transaction when the user should be able to undo it in one step. See Docs/guides/asset.md for an asset-import batch.

Recipe: checkpoint, try, roll back​

  1. edit.checkpoint_create {name:"before-lighting", withPreview:true} (fails if the name exists; replace:true overwrites). It records the undo position, dirty packages and a 256 px capture.
  2. Do the work with any tools. Each mutating reply carries undoable (false for tools that write files, save/delete packages on disk or write config: those are NonUndoable).
  3. edit.checkpoint_diff {name:"before-lighting"} lists the transactions, newly dirty packages and mutating calls since; view.capture_compare {checkpoint:"before-lighting"} returns the before/after images and changedPixelRatio.
  4. Keep it (edit.checkpoint_delete) or undo it all: edit.checkpoint_rollback {name:"before-lighting", dryRun:true} first, then without dryRun. Read rollback.issues: saved_to_disk (the file keeps the saved content), missing_on_disk, non_undoable_call, history_reset (a map load or asset deletion cleared the undo buffer), inside_active_transaction.

For a single batch use edit.call_many {atomic:true, calls:[...]}: the first failed call rolls every earlier call back (rolledBack, rollback). Atomic batches, workflows and rollbacks refuse to run while edit.begin_transaction (or any editor transaction) is open. Atomic batches and atomic workflows also refuse up front (nothing runs) when a call or main step is a NonUndoable tool (saves, asset deletes, file writes); run those separately or with atomic:false. A checkpoint rollback with a non_undoable_call issue never reports complete:true.

Recipe: see what a call did (_preview)​

Add "_preview" to the arguments of any tool; it is not part of any schema and is stripped before the tool runs.

  • actor.spawn_mesh {mesh:"/Engine/BasicShapes/Cube", name:"Crate_1", _preview:"viewport"} -> the reply gets an image of the level viewport framed on the changed actors (or the selection) plus preview {kind, subject, width, height}; the camera is restored afterwards.
  • material.set_settings {..., _preview:"asset"} -> the thumbnail of the first changed asset.
  • _preview:"auto" picks asset for asset changes and viewport for level changes.
  • On failure you get previewError (no viewport in unattended/-nullrhi runs, asset without a thumbnail renderer) and the tool result is unchanged. During PIE the play viewport is captured.
  • Direct captures: view.screenshot {width:640, height:360, frameActors:["Crate_1"], showFlags:{"Grid":false}, format:"jpg"} and asset.preview {asset:"/Game/Materials/M_Rock", size:256}.

Recipe: run a workflow​

  1. edit.list_workflows (or MCP prompts/list) -> ids, arguments with defaults, availability on this engine. edit.get_workflow {id} shows the JSON and the exact step list as prompt text.
  2. edit.validate_workflow {id:"actor.blockout_basic", arguments:{prefix:"Block"}} checks tools, argument names against schemas, plugins/min engine and ${...} substitutions.
  3. edit.run_workflow {id:"actor.blockout_basic", arguments:{prefix:"Block"}, dryRun:true} lists the resolved steps; run it without dryRun (and with _preview:"viewport" for a final image). Atomic by default: a failed step rolls everything back; the checkpoint workflow:<id> stays so edit.checkpoint_rollback {name:"workflow:actor.blockout_basic"} can undo a successful run later.
  4. runCleanup:true runs the workflow's cleanup steps (they may delete assets on disk).

Workflow files: {id, title, description, category, minEngine, requiresPlugins[], arguments[{name, type, description, default}], steps[{id, tool, args, expect?, optional?}], verify[{tool, args, expect}], cleanup[...]}. ${arg} and ${stepId.field.path} are substituted (a string that is only one token keeps the value's JSON type); expect maps reply paths to values ("*" = present and not empty). Put your own in <Project>/Saved/UEAMCP/Workflows/*.json (same id overrides a shipped one).

Recipe: PIE test loop with input injection, screenshots and log markers​

  1. asset.save_all, edit.set_background_throttling {enabled:false}, log.start_capture.
  2. play.start {map:"/Game/Maps/Arena", mode:"viewport"} then play.status until running:true (the session starts on the next tick); play.advance_frames {frames:30} lets BeginPlay settle.
  3. log.write {message:"STEP jump"} and mark = log.get_marker before each step, then drive the player: play.tap_key {key:"SpaceBar", holdFrames:5}, play.set_axis {key:"Gamepad_LeftY", value:1, frames:60}, play.mouse_delta {deltaX:200, frames:10}, or play.call_function {actor:"BP_Player_C_0", function:"Fire"}.
  4. Observe: play.get_player_state (velocity, movement mode, falling), play.get_actor {actor:"Door_1", property:"IsOpen"}, play.line_trace, play.get_visible_widgets {textOnly:true}, play.screenshot.
  5. log.read_capture {sinceIndex:mark, minVerbosity:"Warning"} for errors since the marker (regex for patterns); play.get_stats for frame time and boundBy.
  6. play.stop, then log.stop_capture. Stop PIE before editing Blueprints again.

play.press_key keeps the key down until play.release_key; play.set_axis / mouse_delta tick one frame per step. Enhanced Input actions can also be driven with input.pie_inject_action.

Recipe: config and scalability change​

  • Quick cvar: console.set_cvar {name:"r.ScreenPercentage", value:"75"} (runtime only) or console.set_many {variables:[{key:"r.Shadow.MaxResolution", value:"4096"}], persist:true} to write [ConsoleVariables] in DefaultEngine.ini.
  • Quality: render.set_scalability {group:"Shadow", level:"epic"} or {group:"all", level:2, persist:true}; render.set_anti_aliasing {method:"tsr"}, render.set_lumen {globalIllumination:true, reflections:true} (5.0+).
  • Project setting: settings.get_class_schema {section:"RendererSettings", category:"Lumen"} to find the exact property, then settings.set {section:"RendererSettings", property:"bSupportSkyAtmosphere", value:"True"} or settings.set_many. settings.diff_from_default {file:"Engine"} shows every project override afterwards.
  • Raw ini: settings.search_ini {query:"MaxFPS"} -> settings.set_ini {file:"Engine", section:"/Script/Engine.RendererSettings", key:"...", value:"..."}.
  • Game defaults: project.set_default_maps {gameDefaultMap:"/Game/Maps/Arena", globalDefaultGameMode:"/Game/Core/BP_GameMode.BP_GameMode_C"}.

Recipe: enable a plugin​

  1. plugin.find {plugin:"Niagara"} -> exact name and whether it is already enabled; plugin.get_dependencies {plugin:"MyPlugin", recursive:true} lists prerequisites with found / active flags.
  2. plugin.set_enabled {plugin:"MyPlugin", enabled:true} writes the .uproject; the reply says restartRequired:true. Modules load only after the editor restarts, so tell the user to restart before using content or classes from the plugin (plugin.list_modules shows loaded:false until then).
  3. After the restart: project.get_capabilities / plugin.list_content_plugins to confirm the mount point.

Recipe: run automation tests​

  1. edit.list_tests {contains:"Project.Functional", filter:"product"} -> full test paths.
  2. edit.run_test {test:"Project.Functional.Doors.OpenClose", maxFrames:3000} runs synchronously, pumping latent commands, and returns pass/fail, duration, frames used and every event with file/line.
  3. edit.run_tests {test:"Project.Functional", maxTests:20, stopOnFailure:true} for a suite; edit.get_test_results re-reads the last run. Pair with log.get_marker / log.read_capture to collect warnings emitted during the run.

Recipe: level and lighting​

  1. edit.load_map {map:"/Game/Maps/Arena", saveCurrent:true}; edit.get_map_info for actor counts, streaming levels, bounds and unbuiltLightingObjects.
  2. edit.set_world_settings {values:[{key:"DefaultGameMode", value:"BP_GameMode"}, {key:"KillZ", value:"-5000"}]}.
  3. edit.build {type:"lighting", quality:"preview"} and poll edit.is_building; edit.get_lighting_info afterwards.
  4. edit.map_check for actor errors; view.focus_actors {actors:["BadActor_1"]} + view.screenshot to show them.
  5. edit.save_map {saveAll:true}.

Gotchas​

  • Everything runs on the editor game thread, synchronously: long tools (edit.build, edit.run_tests, play.advance_frames with many frames, edit.live_coding_compile, deep asset.get_dependencies walks, project.search_headers) block the editor until they return. Keep frames, maxDepth, maxFrames and limit reasonable; edit.build returns as soon as the build has started, so poll edit.is_building.
  • Tools marked Mutates in the schema run inside an editor transaction and are undoable with edit.undo; edit.begin_transaction groups several into one step and edit.cancel_transaction reverts them. Not transactional: settings.*, console.set_* with persist, plugin.*, project.write_file / set_* (they write ini, .uproject or .uplugin files directly), play.* runtime state, source control (asset.checkout/revert, edit.sc_*) and file imports on disk.
  • Destructive tools: asset.delete, asset.delete_many (force:true nulls references), asset.delete_folder, asset.consolidate, asset.revert, edit.sc_revert, edit.reset_undo_buffer (cannot be undone), settings.remove_ini_key, settings.reset_to_defaults, project.delete_file. asset.delete refuses while referencers exist; check asset.get_referencers first.
  • MinEngine-gated tools are hidden on older engines: render.set_lumen, render.set_nanite, render.set_gi_method, render.set_reflection_method need UE 5.0+. edit.get_tool_schema reports availableOnThisEngine; render.get_scalability returns -1 for groups the engine lacks (GlobalIllumination, Reflection, Landscape on 4.27). view.set_camera_speed.scalar is ignored on 5.7+.
  • Nothing is auto-saved: asset.save / asset.save_many / asset.save_all (or save:true on the create/import tools) write to disk. asset.save_all before play.start so PIE sees the latest compiled state. settings.set / set_many / set_ini save immediately; object.set_property on a settings:<Class> object needs settings.save.
  • play.* actor tools fall back to the editor world when PIE is not running; input injection, teleport, spawn, possess, stats and widgets need a running session and affect only the live world. play.start returns before the world exists: poll play.status. Stop PIE before editing Blueprints.
  • Actor references (every kit): the exact label or object name of exactly one actor, or class:<ClassName> for the only actor of a class (class:WorldSettings). Prefixes and "first match" are not accepted; ambiguous references answer E_NOT_FOUND.
  • Checkpoints live in memory for the editor session only. Loading a map, deleting assets or edit.reset_undo_buffer clears the undo buffer: older checkpoints then report history_reset.
  • view.* needs a level viewport; screenshots need the editor visible and, on some drivers, in the foreground. view.screenshot_from restores the camera afterwards; view.set_realtime is required for Niagara/animation previews to advance.
  • console.set_cvar uses SetByConsole priority, which overrides scalability and project settings until restart; console.get_cvar.setBy tells you which layer currently owns a value. console.exec captures output; play.exec_console does not.
  • plugin.set_enabled and render.set_ray_tracing only take effect after an editor restart. project.write_file / delete_file / rename_file refuse .uasset/.umap files and paths outside the project; project.read_file also reads inside the engine directory.
  • object.set_property values follow ImportText: booleans True/False, enums by name, structs (X=1,Y=2,Z=3), arrays (a,b,c), object references as full paths. Writing to a CDO changes the class defaults for every instance; writing to actor:<Label> during PIE is lost when PIE stops.
  • asset.rename_many and asset.find_unused can touch hundreds of assets: use dryRun:true and a folder filter first. Bulk tools (*_many, asset.validate, settings.set_many, object.set_properties) report per-item failed entries instead of aborting.
  • Source control tools do nothing useful when edit.sc_info reports enabled:false; Live Coding tools are Windows only and report available:false elsewhere.

Tools​

Legend. risk 0 = read-only, 1 = harmless editor op, 2 = modifies asset, 3 = deletes/replaces asset, 4 = project/config/build op, 5 = potentially destructive (calls above MaxAutoRisk need "_confirm": true). mutates = runs in a transaction (edit.undo reverts). requires PIE / requires world = refused without a PIE session / an open level. requires plugin = unavailable while the plugin is disabled. dryRun = honours the dryRun argument. smoke = covered by edit.self_test.

console.exec (risk 1, smoke)​

Runs a console command and returns what it printed (cvar queries, "stat", "obj list", "help", ...).

ArgumentTypeDescription
commandstringrequired.
worldstring"auto" (PIE when running, else editor), "editor" or "pie". Default TEXT("auto").

Returns: command, output, handled, world.

console.exec_many (risk 1, smoke)​

Runs several console commands in order.

ArgumentTypeDescription
commandsarray of stringrequired.
worldstringDefault TEXT("auto").

Returns: results.

console.get_cvar (risk 0, smoke)​

Value, type, help text, flags and who last set a console variable.

ArgumentTypeDescription
namestringrequired. Console variable name, e.g. "r.ScreenPercentage".
valuestringNew value (console.set_cvar).

Returns: variable, previousValue.

console.get_many (risk 0, smoke)​

Values of several console variables.

ArgumentTypeDescription
namesarray of stringrequired.

Returns: variables, total.

console.list_categories (risk 0, smoke)​

Console variable categories (name prefix before the first dot) with counts.

No arguments.

Returns: categories, totalVariables, totalCommands.

console.list_commands (risk 0, smoke)​

Console commands (not variables) matching a substring.

ArgumentTypeDescription
querystringrequired. Substring (console.search) or prefix (console.list_prefix).
includeCommandsbooleanDefault false.
includeHelpbooleanDefault true.
limitintegerDefault 100.

Returns: variables, total.

console.list_prefix (risk 0, smoke)​

Console objects whose name starts with a prefix (e.g. "r.Shadow.").

ArgumentTypeDescription
querystringrequired. Substring (console.search) or prefix (console.list_prefix).
includeCommandsbooleanDefault false.
includeHelpbooleanDefault true.
limitintegerDefault 100.

Returns: variables, total.

console.search (risk 0, smoke)​

Console variables (and optionally commands) whose name contains a substring.

ArgumentTypeDescription
querystringrequired. Substring (console.search) or prefix (console.list_prefix).
includeCommandsbooleanDefault false.
includeHelpbooleanDefault true.
limitintegerDefault 100.

Returns: variables, total.

console.set_cvar (risk 1, smoke)​

Sets a console variable (SetByConsole priority) and returns the previous and new value.

ArgumentTypeDescription
namestringrequired. Console variable name, e.g. "r.ScreenPercentage".
valuestringNew value (console.set_cvar).

Returns: variable, previousValue.

console.set_many (risk 1, smoke)​

Sets many console variables; persist=true also writes them to Default.ini [ConsoleVariables].

ArgumentTypeDescription
variablesarray of UeabKeyValuerequired. Name -> value.
persistbooleanAlso write them to Default.ini [ConsoleVariables] so they survive restarts. Default false.
iniFilestringConfig branch for persist (default "Engine"). Default TEXT("Engine").
sectionstringDefault TEXT("ConsoleVariables").

Returns: variables, total.

edit.begin_transaction (risk 1, smoke)​

Opens a named transaction that groups the following tool calls into one undo step. Close it with edit.end_transaction.

ArgumentTypeDescription
titlestringrequired. Title shown in the editor's undo history.

Returns: message.

edit.build (risk 4, mutates, requires world)​

Starts a build: lighting (with quality), geometry, navigation, HLOD or all. Not smoke-tested: long running build.

ArgumentTypeDescription
typestringlighting, geometry, visible_geometry, navigation, hlod, all. Default TEXT("lighting").
qualitystringLighting quality: preview, medium, high, production. Default TEXT("preview").

Returns: type, started, running, message.

edit.call_many (risk 0, smoke)​

Runs several tools in sequence with JSON arguments (one round trip). atomic:true takes an implicit checkpoint and rolls every call back when one fails (rolledBack + rollback report in the reply).

ArgumentTypeDescription
callsarray of UeabToolCallrequired.
stopOnErrorbooleanStop at the first failed call (always true when atomic). Default true.
atomicbooleanTake an implicit checkpoint and roll every call back when one fails (needs no open transaction). Default false.

Returns: results, succeeded, failed, rolledBack, rollback.

edit.cancel_transaction (risk 1)​

Cancels the transaction opened by edit.begin_transaction, reverting everything done since.

No arguments.

Returns: message.

edit.checkpoint_create (risk 1, smoke)​

Records a named checkpoint for this editor session: undo-history position, dirty packages, time and (withPreview) a 256 px viewport capture. Roll back to it with edit.checkpoint_rollback.

ArgumentTypeDescription
namestringrequired. Unique checkpoint name for this editor session.
notestringFree text stored with the checkpoint.
replacebooleanOverwrite an existing checkpoint with the same name instead of failing. Default false.
withPreviewbooleanAlso store a low-resolution (256 px) capture of the viewport for view.capture_compare. Default false.

Returns: checkpoint, message.

edit.checkpoint_delete (risk 1, smoke)​

Forgets a checkpoint (the undo history is not touched).

ArgumentTypeDescription
namestringrequired. Checkpoint name (edit.checkpoint_list).

Returns: checkpoints, count.

edit.checkpoint_diff (risk 0, smoke)​

What changed since a checkpoint: transactions (oldest first), newly dirty packages, mutating tool calls and what a rollback could not revert.

ArgumentTypeDescription
namestringrequired. Checkpoint name (edit.checkpoint_list).

Returns: checkpoint, transactions, newDirtyPackages, calls, issues.

edit.checkpoint_list (risk 0, smoke)​

Checkpoints of this session with the number of transactions and tool calls recorded since each one.

No arguments.

Returns: checkpoints, count.

edit.checkpoint_rollback (risk 3, dryRun, smoke)​

Undoes every transaction recorded after the checkpoint, newest first, and lists each undone title plus what cannot be rolled back (packages saved to disk, deleted/renamed assets, files or config written, calls inside a still-open transaction). dryRun lists without undoing. Never touches older transactions.

ArgumentTypeDescription
namestringrequired. Checkpoint name (edit.checkpoint_list).
dryRunbooleanOnly list what would be undone and what cannot be rolled back. Default false.

Returns: rollback, message.

edit.clear_selection (risk 0, smoke)​

Clears the actor and component selection.

No arguments.

Returns: actors, count, components, center.

edit.close_utility_widget (risk 1)​

Closes the tab of an Editor Utility Widget. Not smoke-tested: needs a project-authored widget Blueprint.

ArgumentTypeDescription
assetstringrequired. Object path (/Game/Foo/Bar.Bar), package path (/Game/Foo/Bar) or unique bare name.

Returns: message.

edit.deselect_actors (risk 0, smoke)​

Removes actors from the selection.

ArgumentTypeDescription
actorsarray of stringActor labels or names.
classstringClass filter (native name or Blueprint).
nameContainsstringLabel substring filter.
tagstringActor tag filter.
layerstringLayer filter.
folderstringOutliner folder path filter (prefix match).
addbooleanAdd to the current selection instead of replacing it. Default false.
selectHiddenbooleanDefault false.
limitintegerDefault 1000.

Returns: actors, count, components, center.

edit.disable_kits (risk 1, smoke)​

Deactivates kits for this session (their tools leave tools/list but stay callable); sends notifications/tools/list_changed.

ArgumentTypeDescription
kitsarray of stringrequired. Kit names, e.g. ["bp", "input"]. "edit" exposes every edit.* / asset.* / play.* ... tool.

Returns: activeKits, changed, unknown, exposureMode, listedToolCount, message.

edit.enable_kits (risk 1, smoke)​

Activates kits for this session so tools/list advertises their tools (Adaptive mode); sends notifications/tools/list_changed. Tools can be called without this.

ArgumentTypeDescription
kitsarray of stringrequired. Kit names, e.g. ["bp", "input"]. "edit" exposes every edit.* / asset.* / play.* ... tool.

Returns: activeKits, changed, unknown, exposureMode, listedToolCount, message.

edit.end_transaction (risk 1, smoke)​

Closes the transaction opened by edit.begin_transaction.

No arguments.

Returns: message.

edit.gc (risk 1)​

Forces a garbage collection and reports object counts before/after. Not smoke-tested: GC inside the self-test transaction is unsafe.

ArgumentTypeDescription
fullPurgebooleanDefault true.

Returns: usedPhysicalMB, peakPhysicalMB, availablePhysicalMB, totalPhysicalMB, usedVirtualMB, peakVirtualMB, objectCount, objectCountBefore, actorCount, message.

edit.get_level_bounds (risk 0, requires world, smoke)​

World bounding box of every actor in the current level.

No arguments.

Returns: min, max, center, extent, actorsIncluded.

edit.get_lighting_info (risk 0, requires world, smoke)​

Lighting build state: unbuilt objects, lightmap sizes, configured quality, light counts by mobility.

No arguments.

Returns: building, unbuiltObjects, unbuiltReflectionCaptures, needsRebuild, lightmapTotalSizeKB, shadowmapTotalSizeKB, lightingScenario, forceNoPrecomputedLighting, configuredQuality, lightCount, lightsByMobility.

edit.get_map_info (risk 0, requires world, smoke)​

Name, package, dirty state, actor counts, class distribution, streaming levels, bounds and lighting state of the current level.

No arguments.

Returns: name, package, path, dirty, untitled, persistentActorCount, totalActorCount, streamingLevelCount, levelCount, gameModeOverride, unbuiltLightingObjects, partitioned, pieRunning, boundsMin, boundsMax, streamingLevels, classCounts.

edit.get_memory (risk 0, smoke)​

Process memory and object counts.

No arguments.

Returns: usedPhysicalMB, peakPhysicalMB, availablePhysicalMB, totalPhysicalMB, usedVirtualMB, peakVirtualMB, objectCount, objectCountBefore, actorCount, message.

edit.get_selected_actors (risk 0, smoke)​

Currently selected actors with their transforms and the selection centre.

No arguments.

Returns: actors, count, components, center.

edit.get_state (risk 0, smoke)​

Editor state at a glance: PIE, transactions, dirty packages, selection, builds, focus, FPS.

No arguments.

Returns: engine, project, currentMap, pieRunning, simulating, paused, transactionActive, activeTransaction, dirtyContentPackages, dirtyMapPackages, selectedActors, lightingBuildRunning, buildRunning, liveCodingCompiling, editorHasFocus, activeWindow, fps, uptimeSeconds, unattended, openAssetEditors, toolCount, listedToolCount, exposureMode, activeKits, maxAutoRisk.

edit.get_test_results (risk 0)​

Results of the last edit.run_test / edit.run_tests call. Not smoke-tested: no test has run in a fresh session, so it always reports "no tests have run yet".

No arguments.

Returns: results, passed, failed, totalSeconds.

edit.get_tool_counts (risk 0, smoke)​

Tool counts per prefix (asset, play, view, ...) and per kit.

No arguments.

Returns: prefixes, kits, total, hidden.

edit.get_tool_schema (risk 0, smoke)​

Full input/output JSON schema and description of one tool.

ArgumentTypeDescription
toolstringrequired.

Returns: tool, inputSchema, outputSchema, availableOnThisEngine, note.

edit.get_undo_state (risk 0, smoke)​

Undo/redo counts, next undo/redo titles and whether a transaction is being recorded.

No arguments.

Returns: undoCount, redoCount, queueLength, currentIndex, canUndo, canRedo, nextUndo, nextRedo, transactionActive, activeTransaction.

edit.get_workflow (risk 0, smoke)​

One workflow: summary, JSON text and the prompt text (goal, arguments, exact step list).

ArgumentTypeDescription
idstringrequired. Workflow id (edit.list_workflows).

Returns: workflow, json, promptText.

edit.get_world_settings (risk 0, requires world, smoke)​

World Settings values (game mode override, gravity, kill Z, bounds checks, ...).

ArgumentTypeDescription
propertiesarray of stringProperty names to read (edit.get_world_settings); empty = the common ones.
valuesarray of UeabKeyValueProperty -> value to write (edit.set_world_settings). GameMode accepts a class name or Blueprint.

Returns: entries, count.

edit.history (risk 0, smoke)​

Shows the editor's transaction history (newest first) with undo/redo counts.

ArgumentTypeDescription
limitintegerMaximum entries to return, newest first. Default 20.

Returns: entries, undoCount, redoCount.

edit.invert_selection (risk 0, smoke)​

Inverts the actor selection of the editor world.

No arguments.

Returns: actors, count, components, center.

edit.is_building (risk 0, smoke)​

Whether a build (lighting or other) is currently running.

No arguments.

Returns: type, started, running, message.

edit.list_active_kits (risk 0, smoke)​

Kits currently activated for the session, the exposure mode and how many tools are listed.

No arguments.

Returns: activeKits, changed, unknown, exposureMode, listedToolCount, message.

edit.list_dirty_packages (risk 0, smoke)​

Unsaved content and map packages.

No arguments.

Returns: contentPackages, mapPackages, total.

edit.list_kits (risk 0, smoke)​

Lists the kits loaded on this engine with tool counts, active flag, tool names and the exposure mode.

No arguments.

Returns: exposureMode, activeKits, availableToolCount, listedToolCount, kits.

edit.list_streaming_levels (risk 0, requires world, smoke)​

Streaming (sub) levels of the current world with loaded/visible state.

No arguments.

Returns: levels.

edit.list_tests (risk 0, smoke)​

Automation tests available in this editor, filtered by substring and category.

ArgumentTypeDescription
containsstringSubstring of the test path/name.
filterstringsmoke, engine, product, perf, stress, negative or empty for all.
limitintegerDefault 300.

Returns: tests, total.

edit.list_workflows (risk 0, smoke)​

Workflows available to this project (shipped + project), with arguments, step counts and whether this engine/plugin set can run them.

ArgumentTypeDescription
categorystringOnly workflows of this category (empty = all).

Returns: workflows, count, searchDirs, errors.

edit.live_coding_compile (risk 4)​

Triggers a Live Coding compile and optionally waits for it to finish (Windows). Not smoke-tested: long running compile.

ArgumentTypeDescription
waitFramesintegerFrames to wait for the compile to finish (0 = return immediately). Default 1800.

Returns: available, enabledForSession, enabledByDefault, started, compiling, compileRequested, framesWaited, message.

edit.live_coding_enable (risk 1)​

Enables/disables Live Coding for this session (Windows). Not smoke-tested: starts/stops the Live Coding console and cannot be reverted within the session.

ArgumentTypeDescription
enabledbooleanDefault true.

Returns: available, enabledForSession, enabledByDefault, started, compiling, compileRequested, framesWaited, message.

edit.live_coding_status (risk 0, smoke)​

Live Coding availability and state (Windows).

No arguments.

Returns: available, enabledForSession, enabledByDefault, started, compiling, compileRequested, framesWaited, message.

edit.load_map (risk 2)​

Opens a level in the editor (optionally saving dirty packages first). Not smoke-tested: swapping the open level is not undoable and would disturb every other tool in the run.

ArgumentTypeDescription
mapstringrequired. Level asset (object/package path or unique name).
saveCurrentbooleanSave dirty packages before switching. Default false.

Returns: name, package, path, dirty, untitled, persistentActorCount, totalActorCount, streamingLevelCount, levelCount, gameModeOverride, unbuiltLightingObjects, partitioned, pieRunning, boundsMin, boundsMax, streamingLevels, classCounts.

edit.map_check (risk 0, requires world, smoke)​

Runs Map Check on every actor and reports the actors that produced errors/warnings.

No arguments.

Returns: actorsChecked, errors, warnings, actorsWithIssues.

edit.new_map (risk 2)​

Creates and opens a new level (blank or from a template), optionally saving it to a path. Not smoke-tested: replaces the open level and may prompt to save.

ArgumentTypeDescription
templatestringOptional template level to copy (object/package path).
savePathstringOptional package path to save the new level to, e.g. "/Game/Maps/NewLevel".
saveCurrentbooleanDefault false.

Returns: name, package, path, dirty, untitled, persistentActorCount, totalActorCount, streamingLevelCount, levelCount, gameModeOverride, unbuiltLightingObjects, partitioned, pieRunning, boundsMin, boundsMax, streamingLevels, classCounts.

edit.ping (risk 0, smoke)​

Server, engine and project identification plus the number of tools available.

No arguments.

Returns: server, version, engine, project, toolCount.

edit.recommend_kits (risk 0, smoke)​

Ranks kits for a plain-text task description using tool names, descriptions and kit summaries. Does not activate anything.

ArgumentTypeDescription
querystringrequired. What you want to do, in plain words (e.g. "create a character blueprint with a jump input").
limitintegerMaximum kits returned (default 5). Default 5.

Returns: recommendations, note.

edit.redo (risk 1)​

Redoes the last N undone transactions.

ArgumentTypeDescription
stepsintegerHow many transactions to undo (or redo). Default 1.

Returns: stepsDone, transactions.

edit.reset_undo_buffer (risk 5, destructive)​

Clears the whole undo/redo buffer (cannot be undone).

ArgumentTypeDescription
reasonstringDefault TEXT("Reset by MCP").

Returns: undoCount, redoCount, queueLength, currentIndex, canUndo, canRedo, nextUndo, nextRedo, transactionActive, activeTransaction.

edit.restore_selection (risk 0, smoke)​

Restores a selection saved with edit.save_selection.

ArgumentTypeDescription
slotstringNamed slot (default "default"). Default TEXT("default").

Returns: actors, count, components, center.

edit.run_editor_function (risk 2, mutates, smoke)​

Calls a static/BlueprintCallable function on the class default object of a class (function libraries, editor utilities).

ArgumentTypeDescription
classstringrequired. Class (native, path or Blueprint function library) whose CDO receives the call.
functionstringrequired.
argsarray of UeabKeyValue

Returns: function, returnValue, returnType, outputs.

edit.run_test (risk 1)​

Runs one automation test and returns its events (latent commands are pumped while real editor frames pass). Not smoke-tested: tests may open maps or PIE.

ArgumentTypeDescription
teststringrequired. Full test name/path (edit.run_test) or a substring matching several tests (edit.run_tests).
maxFramesintegerMaximum frames to pump per test before giving up on latent commands. Default 3000.
maxTestsintegeredit.run_tests: maximum number of tests to run. Default 20.
stopOnFailurebooleanedit.run_tests: stop after the first failure. Default false.

Returns: results, passed, failed, totalSeconds.

edit.run_tests (risk 1)​

Runs every test whose path contains the substring (bounded by maxTests). Not smoke-tested: tests may open maps or PIE.

ArgumentTypeDescription
teststringrequired. Full test name/path (edit.run_test) or a substring matching several tests (edit.run_tests).
maxFramesintegerMaximum frames to pump per test before giving up on latent commands. Default 3000.
maxTestsintegeredit.run_tests: maximum number of tests to run. Default 20.
stopOnFailurebooleanedit.run_tests: stop after the first failure. Default false.

Returns: results, passed, failed, totalSeconds.

edit.run_utility_blueprint (risk 2, mutates)​

Runs an Editor Utility Blueprint (its Run event) or any asset the editor utility subsystem can run. Not smoke-tested: needs a project-authored runnable Blueprint.

ArgumentTypeDescription
assetstringrequired. Object path (/Game/Foo/Bar.Bar), package path (/Game/Foo/Bar) or unique bare name.

Returns: message.

edit.run_utility_widget (risk 1)​

Opens an Editor Utility Widget as a tab. Not smoke-tested: spawns a UI tab and needs a project-authored widget Blueprint.

ArgumentTypeDescription
assetstringrequired. Object path (/Game/Foo/Bar.Bar), package path (/Game/Foo/Bar) or unique bare name.

Returns: message.

edit.run_workflow (risk 3, dryRun)​

Runs a workflow through the tool table: steps in order (stop at the first failure; atomic rolls everything back), then verify, optionally cleanup. Replies per-step results; add "_preview" for a final image. Not smoke-tested here: Tools/workflow_smoke.py runs every workflow end to end with direct calls.

ArgumentTypeDescription
idstringWorkflow id (edit.list_workflows); or pass json instead.
jsonstringInline workflow JSON text (runs without saving it).
argumentsTMap<FString, FString>Argument values as text (converted to the declared types).
argumentsJsonstringSame as arguments but as one JSON object text, for array/object values.
atomicbooleanTake a checkpoint first and roll every step back when one fails. The checkpoint stays as "workflow:" for a later edit.checkpoint_rollback. Default true.
dryRunbooleanValidate and list the resolved steps without running anything. Default false.
runCleanupbooleanRun the workflow's cleanup steps at the end (removes what it created; may delete assets on disk). Default false.

Returns: workflowId, dryRun, succeeded, failedStep, error, warnings, steps, verify, verified, cleanup, resolvedArguments, checkpoint, rolledBack, rollback, changedActors.

edit.save_map (risk 2)​

Saves the current level (optionally "save as" and every dirty package). Not smoke-tested: an untitled level opens a modal Save As dialog.

ArgumentTypeDescription
savePathstringOptional package path for "save as", e.g. "/Game/Maps/Copy".
saveAllbooleanAlso save every dirty content package. Default false.

Returns: name, package, path, dirty, untitled, persistentActorCount, totalActorCount, streamingLevelCount, levelCount, gameModeOverride, unbuiltLightingObjects, partitioned, pieRunning, boundsMin, boundsMax, streamingLevels, classCounts.

edit.save_selection (risk 0, smoke)​

Remembers the current actor selection under a slot name.

ArgumentTypeDescription
slotstringNamed slot (default "default"). Default TEXT("default").

Returns: actors, count, components, center.

edit.sc_add (risk 4)​

Marks files for add. Not smoke-tested: needs a connected source-control provider and would touch the user's working copy.

ArgumentTypeDescription
filesarray of stringrequired. Absolute file paths (or /Game/... asset paths, converted to package files).

Returns: succeeded, failed, succeededCount, failedCount.

edit.sc_checkout (risk 4)​

Checks out (or marks for add) arbitrary files in source control. Not smoke-tested: needs a connected source-control provider and would touch the user's working copy.

ArgumentTypeDescription
filesarray of stringrequired. Absolute file paths (or /Game/... asset paths, converted to package files).

Returns: succeeded, failed, succeededCount, failedCount.

edit.sc_info (risk 0, smoke)​

Source control provider name, enabled and available flags.

No arguments.

Returns: enabled, available, provider, message.

edit.sc_revert (risk 5, destructive)​

Reverts files (local changes are lost). Not smoke-tested: destructive and needs a connected source-control provider.

ArgumentTypeDescription
filesarray of stringrequired. Absolute file paths (or /Game/... asset paths, converted to package files).

Returns: succeeded, failed, succeededCount, failedCount.

edit.search_tools (risk 0, smoke)​

Finds tools by words in their names and descriptions.

ArgumentTypeDescription
querystringrequired. Words searched in tool names and descriptions (all words must match).
kitstringRestrict to a kit ("edit", "bp", ...) or a prefix ("asset", "play").
limitintegerDefault 30.

Returns: tools, total.

edit.select_actors (risk 0)​

Selects actors by name list, class, label substring, tag, layer or folder (replaces or adds). Fails when nothing matches; the self-test level is empty.

ArgumentTypeDescription
actorsarray of stringActor labels or names.
classstringClass filter (native name or Blueprint).
nameContainsstringLabel substring filter.
tagstringActor tag filter.
layerstringLayer filter.
folderstringOutliner folder path filter (prefix match).
addbooleanAdd to the current selection instead of replacing it. Default false.
selectHiddenbooleanDefault false.
limitintegerDefault 1000.

Returns: actors, count, components, center.

edit.select_all (risk 0, smoke)​

Selects every actor (optionally only of a class).

ArgumentTypeDescription
actorsarray of stringActor labels or names.
classstringClass filter (native name or Blueprint).
nameContainsstringLabel substring filter.
tagstringActor tag filter.
layerstringLayer filter.
folderstringOutliner folder path filter (prefix match).
addbooleanAdd to the current selection instead of replacing it. Default false.
selectHiddenbooleanDefault false.
limitintegerDefault 1000.

Returns: actors, count, components, center.

edit.select_component (risk 0)​

Selects a component of an actor (Details panel component selection). Needs an actor; the self-test level is empty.

ArgumentTypeDescription
actorstringrequired.
componentstringrequired.
addbooleanDefault false.

Returns: actors, count, components, center.

edit.self_test (risk 4)​

Runs every available tool that declares Smoke args inside a cancelled transaction and a transient /Game/UeaSmoke_ folder; reports per-tool passed/failed/skipped/no_args with timings.

ArgumentTypeDescription
kitsarray of stringRestrict to these kits (empty = every kit).
includeMutatingbooleanAlso run tools flagged Mutates (they only touch the transient sandbox folder). Default true. Default true.
limitintegerStop after running this many tools (0 = no limit). Default 0.
listNoArgsbooleanInclude tools without Smoke args in Results with status "no_args" (default true; totals count them either way). Default true.

Returns: sandbox, sandboxDeleted, results, passed, failed, skipped, noArgs, total, totalMilliseconds, failedTools, engine.

edit.set_background_throttling (risk 4)​

Enables/disables "Use less CPU when in background" (disable for unattended PIE runs). Not smoke-tested: SaveConfig permanently rewrites the user's editor ini.

ArgumentTypeDescription
enabledbooleanDefault true.

Returns: message.

edit.set_streaming_level (risk 2, mutates, requires world)​

Loads/unloads or shows/hides a streaming level. Not smoke-tested: an empty project has no streaming levels to target.

ArgumentTypeDescription
levelstringrequired. Streaming level package name or substring.
loadedinteger-1 keeps, 0/1 sets. Default -1.
visibleintegerDefault -1.

Returns: levels.

edit.set_world_settings (risk 2, mutates, requires world, smoke)​

Writes World Settings values of the current level.

ArgumentTypeDescription
propertiesarray of stringProperty names to read (edit.get_world_settings); empty = the common ones.
valuesarray of UeabKeyValueProperty -> value to write (edit.set_world_settings). GameMode accepts a class name or Blueprint.

Returns: entries, count.

edit.show_notification (risk 1, smoke)​

Shows a toast notification in the editor.

ArgumentTypeDescription
messagestringrequired.
typestringinfo, success or fail. Default TEXT("info").
durationnumberDefault 4.0.

Returns: message.

edit.undo (risk 1)​

Undoes the last N editor transactions (including changes made by other tools).

ArgumentTypeDescription
stepsintegerHow many transactions to undo (or redo). Default 1.

Returns: stepsDone, transactions.

edit.undo_to_index (risk 1)​

Undoes or redoes until the history entry with the given index is current.

ArgumentTypeDescription
indexintegerIndex from edit.history (0 = oldest). The buffer is undone/redone until that entry is current. Default 0.

Returns: undoCount, redoCount, queueLength, currentIndex, canUndo, canRedo, nextUndo, nextRedo, transactionActive, activeTransaction.

edit.validate_workflow (risk 0, smoke)​

Checks a workflow (by id or JSON text): every tool exists on this engine, args match the tool schemas, plugins/min engine satisfied, "${...}" substitutions resolve.

ArgumentTypeDescription
idstringWorkflow id; or pass json instead.
jsonstringWorkflow JSON text to validate (not saved).
argumentsTMap<FString, FString>Argument values (text, converted to the declared types) used to check substitutions.

Returns: id, valid, problems, warnings, stepCount.

log.clear_capture (risk 1, smoke)​

Clears the captured entries.

No arguments.

Returns: marker, capturing, file.

log.get_file_marker (risk 0, smoke)​

Current line count of the log file on disk (marker for log.read_file_since).

No arguments.

Returns: marker, capturing, file.

log.get_marker (risk 0, smoke)​

Current capture index (pass it later as sinceIndex to read only newer entries).

No arguments.

Returns: marker, capturing, file.

log.get_verbosity (risk 0, smoke)​

Verbosity of one log category.

ArgumentTypeDescription
categorystringrequired.
verbositystringNoLogging, Fatal, Error, Warning, Display, Log, Verbose, VeryVerbose, All (log.set_verbosity).

Returns: category, verbosity, output.

log.list_categories (risk 0, smoke)​

Registered log categories with their verbosity.

ArgumentTypeDescription
containsstring
limitintegerDefault 500.

Returns: entries, count.

log.read (risk 0, smoke)​

Last lines of the editor log, optionally filtered by substring.

ArgumentTypeDescription
linesintegerDefault 100.
containsstringSubstring filter (e.g. "Error", "LogBlueprint").

Returns: lines.

log.read_capture (risk 0, smoke)​

Captured entries since an index, filtered by category, verbosity, substring or regex.

ArgumentTypeDescription
sinceIndexintegerReturn entries with an index greater than this (from a previous reply's LastIndex or log.get_marker). Default -1.
categorystring
minVerbositystringMinimum verbosity to include: Error, Warning, Display, Log, Verbose (default all).
containsstring
regexstringRegular expression applied to the message.
limitintegerDefault 200.

Returns: capturing, entries, lastIndex, totalCaptured, errors, warnings.

log.read_file_since (risk 0, smoke)​

Log file lines written after a marker, filtered by substring or regex.

ArgumentTypeDescription
markerintegerLine count returned by log.get_file_marker. Default 0.
containsstring
regexstring
limitintegerDefault 500.

Returns: lines, marker, totalLines.

log.set_verbosity (risk 1, smoke)​

Sets the verbosity of a log category (NoLogging, Error, Warning, Display, Log, Verbose, VeryVerbose, All).

ArgumentTypeDescription
categorystringrequired.
verbositystringNoLogging, Fatal, Error, Warning, Display, Log, Verbose, VeryVerbose, All (log.set_verbosity).

Returns: category, verbosity, output.

log.start_capture (risk 1, smoke)​

Starts capturing every log line in memory (category, verbosity, message) for log.read_capture.

No arguments.

Returns: marker, capturing, file.

log.stop_capture (risk 1, smoke)​

Stops the in-memory capture (entries stay readable).

No arguments.

Returns: marker, capturing, file.

log.write (risk 1, smoke)​

Writes a line to the Output Log (handy as a marker between test steps).

ArgumentTypeDescription
messagestringrequired.
verbositystringLog, Display, Warning or Error. Default TEXT("Display").

Returns: marker, capturing, file.

object.array_add (risk 2, mutates, smoke)​

Appends (or inserts at Index) an element parsed from text to an array property.

ArgumentTypeDescription
objectstringrequired.
propertystringrequired. Path of an array property.
valuestringValue for object.array_add / insert; index for object.array_remove (insert at Index when >= 0).
indexintegerDefault -1.

Returns: object, property, type, value, containerSize.

object.array_clear (risk 3, mutates, smoke)​

Empties an array property.

ArgumentTypeDescription
objectstringrequired.
propertystringrequired. Path of an array property.
valuestringValue for object.array_add / insert; index for object.array_remove (insert at Index when >= 0).
indexintegerDefault -1.

Returns: object, property, type, value, containerSize.

object.array_remove (risk 2, mutates, smoke)​

Removes the element at Index from an array property.

ArgumentTypeDescription
objectstringrequired.
propertystringrequired. Path of an array property.
valuestringValue for object.array_add / insert; index for object.array_remove (insert at Index when >= 0).
indexintegerDefault -1.

Returns: object, property, type, value, containerSize.

object.call_function (risk 2, mutates, smoke)​

Calls a UFUNCTION (native or Blueprint) on the object with text arguments; returns the return value and out params.

ArgumentTypeDescription
objectstringrequired. Object reference (see object.get_property). Static functions can be called on "cdo:".
functionstringrequired. UFUNCTION name (native or Blueprint).
argsarray of UeabKeyValueParameter name -> value as text. Missing parameters keep their defaults.

Returns: function, returnValue, returnType, outputs.

object.copy_properties (risk 2, mutates, smoke)​

Copies property values from one object to another (same or compatible classes).

ArgumentTypeDescription
sourcestringrequired.
targetstringrequired.
propertiesarray of stringProperty names to copy; empty = every property that exists on both classes.
editableOnlybooleanOnly editable (EditAnywhere/EditDefaultsOnly) properties. Default true.

Returns: succeeded, failed, succeededCount, failedCount.

object.create_asset (risk 2, mutates, smoke)​

Creates an asset of any concrete, non-actor UObject class (data assets, PrimaryAssetLabel, ...) at folder/name with default values; edit it with object.set_property.

ArgumentTypeDescription
classstringrequired. Class name or path (must be concrete, not an Actor, not a Blueprint-only type).
folderstringrequired. Destination folder, e.g. "/Game/Data".
namestringrequired. Asset name.

Returns: path, name, class, classPath, outer, package, isCDO, isAsset, isActor, isDirty, flags.

object.diff_from_default (risk 0, smoke)​

Properties whose value differs from the archetype/CDO (or from another object).

ArgumentTypeDescription
objectstringrequired.
otherstringCompare against this object instead of the archetype/CDO.
limitintegerDefault 200.

Returns: object, comparedTo, differences, total.

object.export_text (risk 0, smoke)​

Full text export (T3D) of an object's properties, as the editor copies it.

ArgumentTypeDescription
objectstringrequired.

Returns: text, lines, savedTo, problems.

object.find (risk 0, smoke)​

Finds loaded objects by class, name and path substring (TObjectIterator).

ArgumentTypeDescription
classstringClass filter (any UObject class).
containsstringSubstring of the object name.
pathContainsstringSubstring of the outer/package path (e.g. "/Game/" or "UEDPIE").
skipDefaultsbooleanSkip class default objects and archetypes. Default true.
limitintegerDefault 100.

Returns: objects, total.

object.get_class_info (risk 0, smoke)​

Parent chain, interfaces, flags, module and counts of a class.

ArgumentTypeDescription
classstringrequired. Class name, path or Blueprint asset.

Returns: class, path, parent, ancestors, interfaces, flags, isBlueprint, blueprintAsset, module, configName, propertyCount, functionCount, cdoPath, tooltip.

object.get_container_size (risk 0, smoke)​

Element count of an array/map/set property.

ArgumentTypeDescription
objectstringrequired.
propertystringrequired. Property path: "Health", "Movement.MaxWalkSpeed", "Items[2].Name", "Tags[0]", "RootComponent.RelativeLocation.X", "MyMap[KeyName]".
valuestringNew value as text (object.set_property). Object refs use full paths, structs use (X=1,Y=2), arrays use (a,b,c).

Returns: object, property, type, value, containerSize.

object.get_enum_values (risk 0, smoke)​

Values of an enum (native or user-defined).

ArgumentTypeDescription
classstringrequired. Class name, path or Blueprint asset.

Returns: enum, path, values, numericValues.

object.get_properties (risk 0, smoke)​

Reads several properties by path in one call.

ArgumentTypeDescription
objectstringrequired.
propertiesarray of stringrequired. Property paths to read.

Returns: entries, count.

object.get_property (risk 0, smoke)​

Reads one property by path (nested structs, components, arrays [i], maps [key]).

ArgumentTypeDescription
objectstringrequired.
propertystringrequired. Property path: "Health", "Movement.MaxWalkSpeed", "Items[2].Name", "Tags[0]", "RootComponent.RelativeLocation.X", "MyMap[KeyName]".
valuestringNew value as text (object.set_property). Object refs use full paths, structs use (X=1,Y=2), arrays use (a,b,c).

Returns: object, property, type, value, containerSize.

object.get_property_metadata (risk 0, smoke)​

Editor metadata of a property (ClampMin, Categories, AllowedClasses, ToolTip, ...).

ArgumentTypeDescription
classstringrequired. Class name or object reference.
propertystringrequired.

Returns: entries, count.

object.get_struct_fields (risk 0, smoke)​

Fields of a struct (native or user-defined) with types.

ArgumentTypeDescription
classstringrequired. Class name, path or Blueprint asset.

Returns: struct, path, fields, sizeBytes.

object.list_functions (risk 0, smoke)​

Lists the UFUNCTIONs of an object or class with their parameters.

ArgumentTypeDescription
objectstringrequired. Object reference or class name.
containsstring
callableOnlybooleanOnly BlueprintCallable/BlueprintPure functions. Default false.
includeInheritedbooleanDefault true.
limitintegerDefault 200.

Returns: class, functions, total.

object.list_properties (risk 0, smoke)​

Lists the reflected properties of an object with type, category, flags, tooltip and value.

ArgumentTypeDescription
objectstringrequired.
containsstringSubstring filter on the property name.
categorystringCategory filter (exact, case-insensitive).
editableOnlybooleanOnly properties editable in the Details panel. Default false.
includeValuesbooleanInclude the current value as text. Default true.
includeInheritedbooleanInclude properties declared on parent classes. Default true.
limitintegerDefault 200.
maxValueLengthintegerTruncate values longer than this many characters (0 = no truncation). Default 300.

Returns: object, class, properties, total.

object.list_subclasses (risk 0, smoke)​

Loaded subclasses of a class (native and Blueprint generated).

ArgumentTypeDescription
classstringrequired.
nativeOnlybooleanSkip Blueprint generated classes. Default false.
concreteOnlybooleanSkip abstract classes. Default false.
containsstring
limitintegerDefault 200.

Returns: classes, total.

object.reset_property (risk 2, mutates, smoke)​

Resets a property to the value of the archetype / class default object.

ArgumentTypeDescription
objectstringrequired.
propertystringrequired. Property path: "Health", "Movement.MaxWalkSpeed", "Items[2].Name", "Tags[0]", "RootComponent.RelativeLocation.X", "MyMap[KeyName]".
valuestringNew value as text (object.set_property). Object refs use full paths, structs use (X=1,Y=2), arrays use (a,b,c).

Returns: object, property, type, value, containerSize.

object.resolve (risk 0, smoke)​

No description.

ArgumentTypeDescription
objectstringrequired.

Returns: path, name, class, classPath, outer, package, isCDO, isAsset, isActor, isDirty, flags.

object.set_properties (risk 2, mutates, smoke)​

Writes several properties in one call; reports per-property failures.

ArgumentTypeDescription
objectstringrequired.
valuesarray of UeabKeyValuerequired. Property path -> value.

Returns: succeeded, failed, succeededCount, failedCount.

object.set_property (risk 2, mutates, smoke)​

Writes one property by path from text (ImportText rules) and runs PostEditChange.

ArgumentTypeDescription
objectstringrequired.
propertystringrequired. Property path: "Health", "Movement.MaxWalkSpeed", "Items[2].Name", "Tags[0]", "RootComponent.RelativeLocation.X", "MyMap[KeyName]".
valuestringNew value as text (object.set_property). Object refs use full paths, structs use (X=1,Y=2), arrays use (a,b,c).

Returns: object, property, type, value, containerSize.

play.actors_near_player (risk 0, requires PIE, smoke)​

Actors within a radius of the player pawn, closest first.

ArgumentTypeDescription
radiusnumberDefault 1000.0.
classstring
limitintegerDefault 50.
playerIndexintegerDefault 0.

Returns: center, actors, total.

play.advance_frames (risk 0, smoke)​

Lets the editor/PIE run N frames before returning (real frame timing; deltaSeconds only sizes the timeout). Returns the game and real time afterwards.

ArgumentTypeDescription
framesintegerFrames to tick (1-600). Default 1.
deltaSecondsnumberDelta time per frame in seconds. Default 0.016666.

Returns: framesTicked, gameTimeSeconds, realTimeSeconds, pieRunning.

play.call_function (risk 0, smoke)​

Calls a UFUNCTION on a PIE actor or one of its components with text arguments.

ArgumentTypeDescription
actorstringrequired.
componentstringOptional component name to call the function on instead of the actor.
functionstringrequired.
argsarray of UeabKeyValue

Returns: target, function, returnValue, outputs.

play.destroy_actor (risk 0, smoke)​

Destroys an actor of the PIE world.

ArgumentTypeDescription
actorstringrequired. Actor label or name in the PIE world (editor world when PIE is not running).

Returns: message.

play.exec_console (risk 1, smoke)​

Runs a console command in PIE (or in the editor when PIE is not running).

ArgumentTypeDescription
commandstringrequired. Console command, e.g. "stat fps" or "r.ScreenPercentage 50". Runs in PIE when active, else in the editor.

Returns: message.

play.find_actors_by_tag (risk 0, smoke)​

Actors carrying an actor tag.

ArgumentTypeDescription
tagstringrequired.
limitintegerDefault 100.

Returns: actors, total.

play.get_actor (risk 0, smoke)​

Reads a property (or the transform summary) of an actor in the PIE/editor world.

ArgumentTypeDescription
actorstringrequired. Actor label or name (PIE world when running, else editor world).
propertystringProperty path, e.g. "Health" or "CharacterMovement.MaxWalkSpeed". Empty returns transform + class summary only.

Returns: actor, property, value, components.

play.get_actor_components (risk 0, smoke)​

Components of an actor with class, parent, location and active/visible state.

ArgumentTypeDescription
actorstringrequired. Actor label or name in the PIE world (editor world when PIE is not running).

Returns: actor, components.

play.get_game_mode_info (risk 0, requires PIE, smoke)​

Game mode, game state, default classes, player count, match state and net mode of the running world.

No arguments.

Returns: gameMode, gameState, playerControllerClass, defaultPawnClass, hUDClass, playerStateClass, spectatorClass, numPlayers, matchState, gameInstance, netMode, authority.

play.get_input_state (risk 0, requires PIE, smoke)​

Every key currently pressed for the player (name -> value).

ArgumentTypeDescription
playerIndexintegerLocal player index (0 = first player). Default 0.

Returns: entries, count.

play.get_player_state (risk 0, requires PIE, smoke)​

Controller, pawn, transform, velocity, view point, movement mode, score and tags of a player.

ArgumentTypeDescription
playerIndexintegerLocal player index (0 = first player). Default 0.

Returns: controller, controllerClass, pawn, pawnClass, location, rotation, controlRotation, velocity, speed, viewLocation, viewRotation, playerName, score, movementMode, crouched, falling, paused, timeDilation, tags, viewTarget.

play.get_stats (risk 0, smoke)​

FPS, frame/game/render/RHI/GPU milliseconds, draw calls, memory, object and actor counts.

No arguments.

Returns: fps, frameMs, gameThreadMs, renderThreadMs, rhiThreadMs, gpuMs, drawCalls, primitivesDrawn, deltaSeconds, usedPhysicalMB, peakPhysicalMB, availablePhysicalMB, totalPhysicalMB, usedVirtualMB, objectCount, actorCount, pieRunning, boundBy.

play.get_time_dilation (risk 0, requires PIE, smoke)​

Current global time dilation.

No arguments.

Returns: value.

play.get_visible_widgets (risk 0, requires PIE, smoke)​

Widgets of the user widgets on screen: names, classes, texts, visibility.

ArgumentTypeDescription
textOnlybooleanOnly widgets that carry text (TextBlock, RichText, EditableText). Default false.
visibleOnlybooleanDefault true.
limitintegerDefault 200.

Returns: widgets, total, userWidgetCount.

play.is_key_pressed (risk 0, requires PIE, smoke)​

Whether a key is currently down for the player, with its axis value.

ArgumentTypeDescription
keystringrequired. FKey name, e.g. "SpaceBar", "W", "LeftMouseButton", "Gamepad_FaceButton_Bottom".
holdFramesintegerplay.tap_key: frames to hold before releasing (1-600). Default 1.
playerIndexintegerDefault 0.

Returns: key, pressed, value, message.

play.line_trace (risk 0, smoke)​

Line trace from the player camera (or explicit start/end) with hit actor, location and normal.

ArgumentTypeDescription
fromCamerabooleanTrace from the player camera along its view direction (default). Default true.
startUeabVec3
endUeabVec3
distancenumberDistance when tracing from the camera (cm). Default 10000.0.
channelstringCollision channel: "Visibility", "Camera", "WorldStatic", "Pawn", ... (ECC_ prefix optional). Default TEXT("Visibility").
ignorePlayerbooleanDefault true.
playerIndexintegerDefault 0.

Returns: hit, hitActor, hitActorClass, hitComponent, location, normal, distance, traceStart, traceEnd, physicalMaterial.

play.list_actors (risk 0, smoke)​

Lists actors of the PIE world (or the editor world when PIE is not running).

ArgumentTypeDescription
classstringSubstring of the class name (e.g. "Character").
namestringSubstring of the label/name.
limitintegerDefault 100.

Returns: actors, total.

play.list_players (risk 0, requires PIE, smoke)​

Every player controller of the running world (multiplayer PIE lists all clients).

No arguments.

Returns: players.

play.list_worlds (risk 0, smoke)​

World contexts (editor, PIE clients, dedicated server) with net mode and counts.

No arguments.

Returns: worlds.

play.mouse_delta (risk 0, requires PIE, smoke)​

Feeds mouse movement (MouseX/MouseY deltas) for N frames.

ArgumentTypeDescription
deltaXnumberDefault 0.0.
deltaYnumberDefault 0.0.
framesintegerDefault 1.
playerIndexintegerDefault 0.

Returns: key, pressed, value, message.

play.possess (risk 0, requires PIE, smoke)​

Makes the player controller possess a pawn.

ArgumentTypeDescription
pawnstringrequired. Pawn label/name.
playerIndexintegerDefault 0.

Returns: running, paused, map, elapsedSeconds, actorCount, playerPawn, playerLocation, gameMode.

play.press_key (risk 0, requires PIE, smoke)​

Injects a key press into the player controller (stays pressed until play.release_key).

ArgumentTypeDescription
keystringrequired. FKey name, e.g. "SpaceBar", "W", "LeftMouseButton", "Gamepad_FaceButton_Bottom".
holdFramesintegerplay.tap_key: frames to hold before releasing (1-600). Default 1.
playerIndexintegerDefault 0.

Returns: key, pressed, value, message.

play.release_key (risk 0, requires PIE, smoke)​

Injects a key release.

ArgumentTypeDescription
keystringrequired. FKey name, e.g. "SpaceBar", "W", "LeftMouseButton", "Gamepad_FaceButton_Bottom".
holdFramesintegerplay.tap_key: frames to hold before releasing (1-600). Default 1.
playerIndexintegerDefault 0.

Returns: key, pressed, value, message.

play.screenshot (risk 0, requires PIE, smoke)​

Screenshot of the PIE viewport returned as an image (PNG).

ArgumentTypeDescription
savePathstringOptional absolute PNG path to also write on disk.
maxSizeintegerLongest side in pixels for the returned image (0 = native). Default 1280.

Returns: width, height, savedTo, imageBase64, imageMimeType.

play.screenshot_from_actor (risk 0, smoke)​

Renders the scene from an actor's camera (or transform) into a PNG image block.

ArgumentTypeDescription
actorstringrequired. Actor whose camera component (or transform) is used as the view point.
widthintegerDefault 960.
heightintegerDefault 540.
fovnumber0 = use the camera component FOV (or 90). Default 0.0.
savePathstring

Returns: width, height, savedTo, imageBase64, imageMimeType.

play.set_actor_property (risk 0, smoke)​

Sets a property on a PIE actor (or a component with "Component.Property").

ArgumentTypeDescription
actorstringrequired.
propertystringrequired. Property path; "Component.Property" targets a component.
valuestringrequired.

Returns: actor, property, value, components.

play.set_axis (risk 0, requires PIE, smoke)​

Feeds an axis value (gamepad stick, mouse axis) for N frames.

ArgumentTypeDescription
keystringrequired. Axis key, e.g. "Gamepad_LeftX", "MouseX", or a digital key to feed as 1.0.
valuenumberDefault 1.0.
framesintegerFrames to keep feeding the axis (each frame is ticked). Default 1.
playerIndexintegerDefault 0.

Returns: key, pressed, value, message.

play.set_paused (risk 0, requires PIE, smoke)​

Pauses or resumes PIE explicitly.

ArgumentTypeDescription
pausedbooleanDefault true.

Returns: running, paused, map, elapsedSeconds, actorCount, playerPawn, playerLocation, gameMode.

play.set_time_dilation (risk 0, requires PIE, smoke)​

Sets the global time dilation of the running world (slow motion / fast forward).

ArgumentTypeDescription
valuenumber0.0001 - 20. Default 1.0.

Returns: value.

play.set_view_target (risk 0, requires PIE, smoke)​

Sets the camera view target of a player to an actor.

ArgumentTypeDescription
actorstringrequired.
blendTimenumberDefault 0.0.
playerIndexintegerDefault 0.

Returns: message.

play.spawn_actor (risk 0, smoke)​

Spawns an actor of a class at a location in the PIE world and applies properties.

ArgumentTypeDescription
classstringrequired. Actor class (native name, path or Blueprint).
locationUeabVec3
rotationUeabVec3
labelstringEditor label (also used as name hint).
propertiesarray of UeabKeyValueProperty -> value applied after spawn.

Returns: actor, message.

play.start (risk 1, requires world)​

Starts Play-In-Editor (optionally loading a map first, with N players / dedicated server).

ArgumentTypeDescription
mapstringOptional map to load before playing (object or package path). Empty = current level.
modestring"viewport" (selected viewport) or "window" (new editor window). Default TEXT("viewport").
playersintegerNumber of clients (1 = single player). Default 1.
dedicatedServerbooleanRun a dedicated server alongside the clients. Default false.

Returns: running, paused, map, elapsedSeconds, actorCount, playerPawn, playerLocation, gameMode.

play.start_simulate (risk 0)​

Starts Simulate-In-Editor (no player, editor camera free).

No arguments.

Returns: running, paused, map, elapsedSeconds, actorCount, playerPawn, playerLocation, gameMode.

play.status (risk 0, smoke)​

Whether PIE is running, elapsed time, map, player pawn and location.

No arguments.

Returns: running, paused, map, elapsedSeconds, actorCount, playerPawn, playerLocation, gameMode.

play.stop (risk 1)​

Stops Play-In-Editor.

No arguments.

Returns: running, paused, map, elapsedSeconds, actorCount, playerPawn, playerLocation, gameMode.

play.tap_key (risk 0, requires PIE, smoke)​

Press, let HoldFrames frames pass, release.

ArgumentTypeDescription
keystringrequired. FKey name, e.g. "SpaceBar", "W", "LeftMouseButton", "Gamepad_FaceButton_Bottom".
holdFramesintegerplay.tap_key: frames to hold before releasing (1-600). Default 1.
playerIndexintegerDefault 0.

Returns: key, pressed, value, message.

play.teleport_actor (risk 0, smoke)​

Teleports any actor (location, rotation, scale) in the running world.

ArgumentTypeDescription
actorstringActor label/name (play.teleport_actor). Ignored by play.teleport_player.
locationUeabVec3
rotationUeabVec3
hasRotationbooleanDefault false.
scaleUeabVec3Optional uniform/explicit scale (0 = keep).
hasScalebooleanDefault false.
sweepbooleanStop at collisions on the way. Default false.
playerIndexintegerDefault 0.

Returns: actor, message.

play.teleport_player (risk 0, requires PIE, smoke)​

Teleports the player pawn (location, optional rotation).

ArgumentTypeDescription
actorstringActor label/name (play.teleport_actor). Ignored by play.teleport_player.
locationUeabVec3
rotationUeabVec3
hasRotationbooleanDefault false.
scaleUeabVec3Optional uniform/explicit scale (0 = keep).
hasScalebooleanDefault false.
sweepbooleanStop at collisions on the way. Default false.
playerIndexintegerDefault 0.

Returns: actor, message.

play.toggle_pause (risk 1, requires PIE, smoke)​

Pauses or resumes the running PIE session.

No arguments.

Returns: running, paused, map, elapsedSeconds, actorCount, playerPawn, playerLocation, gameMode.

play.toggle_simulate (risk 0)​

Toggles between Play and Simulate (possess / eject).

No arguments.

Returns: running, paused, map, elapsedSeconds, actorCount, playerPawn, playerLocation, gameMode.

play.unpossess (risk 0, requires PIE, smoke)​

Unpossesses the current pawn of a player controller.

ArgumentTypeDescription
playerIndexintegerLocal player index (0 = first player). Default 0.

Returns: running, paused, map, elapsedSeconds, actorCount, playerPawn, playerLocation, gameMode.

plugin.add_dependency (risk 4, mutates)​

Adds (or updates) a dependency entry in a plugin's .uplugin Plugins array.

ArgumentTypeDescription
pluginstringrequired.
dependencystringrequired.
enabledbooleanDefault true.
optionalbooleanDefault false.

Returns: plugin, dependencies.

plugin.find (risk 0, smoke)​

Finds plugins by name substring (engine plugins included).

ArgumentTypeDescription
pluginstringrequired.

Returns: plugins, total.

plugin.for_asset (risk 0, smoke)​

Which plugin (or the project/engine) mounts an asset or content path.

ArgumentTypeDescription
assetstringrequired. Object path (/Game/Foo/Bar.Bar), package path (/Game/Foo/Bar) or unique bare name.

Returns: asset, mountPoint, source, plugin, contentDir.

plugin.get_dependencies (risk 0, smoke)​

Plugins a plugin depends on (from its .uplugin), with found/enabled state; optionally transitive.

ArgumentTypeDescription
pluginstringrequired.
recursivebooleanWalk transitively. Default false.

Returns: plugin, dependencies.

plugin.get_dependents (risk 0, smoke)​

Discovered plugins that declare a dependency on the plugin.

ArgumentTypeDescription
pluginstringrequired.

Returns: plugin, dependencies.

plugin.get_descriptor_json (risk 0, smoke)​

Raw .uplugin JSON text.

ArgumentTypeDescription
pluginstringrequired.

Returns: text, lines, savedTo, problems.

plugin.get_info (risk 0, smoke)​

Descriptor, paths, modules and dependencies of one plugin.

ArgumentTypeDescription
pluginstringrequired.

Returns: info, description, createdBy, createdByURL, docsURL, marketplaceURL, supportURL, engineVersion, contentDir, mountedAssetPath, descriptorFile, installed, explicitlyLoaded, requiresBuildPlatform, supportedTargetPlatforms, modules, dependencies.

plugin.list (risk 0, smoke)​

Discovered plugins with enabled state, version, category and origin.

ArgumentTypeDescription
containsstring
includeEnginebooleanInclude engine plugins (default false lists project + external plugins only). Default false.
enabledOnlybooleanDefault false.
contentOnlybooleanOnly plugins that can contain content. Default false.
limitintegerDefault 500.

Returns: plugins, total.

plugin.list_content_plugins (risk 0, smoke)​

Enabled plugins that mount content, with their /PluginName/ mount points.

No arguments.

Returns: plugins, total.

plugin.list_modules (risk 0, smoke)​

Modules declared by a plugin with type, loading phase and loaded state.

ArgumentTypeDescription
pluginstringrequired.

Returns: modules, loadedModuleCount.

plugin.remove_dependency (risk 4, mutates)​

Removes a dependency entry from a plugin's .uplugin.

ArgumentTypeDescription
pluginstringrequired.
dependencystringrequired.
enabledbooleanDefault true.
optionalbooleanDefault false.

Returns: plugin, dependencies.

plugin.set_descriptor_field (risk 4, mutates)​

Edits one descriptor field of a plugin and writes its .uplugin.

ArgumentTypeDescription
pluginstringrequired.
fieldstringrequired. FriendlyName, Description, Category, VersionName, Version, CreatedBy, CreatedByURL, DocsURL, MarketplaceURL, SupportURL, EngineVersion, CanContainContent, IsBetaVersion, IsExperimentalVersion, Installed, ExplicitlyLoaded, EnabledByDefault (true/false/unknown).
valuestringrequired.

Returns: info, description, createdBy, createdByURL, docsURL, marketplaceURL, supportURL, engineVersion, contentDir, mountedAssetPath, descriptorFile, installed, explicitlyLoaded, requiresBuildPlatform, supportedTargetPlatforms, modules, dependencies.

plugin.set_enabled (risk 4, mutates)​

Enables or disables a plugin in the .uproject (takes effect after an editor restart). Not smoked: rewrites the .uproject.

ArgumentTypeDescription
pluginstringrequired.
enabledbooleanDefault true.
savebooleanWrite the .uproject immediately (default true). Default true.

Returns: plugin, enabled, saved, restartRequired, message.

project.delete_file (risk 4, mutates, destructive, smoke)​

Deletes a file inside the project directory (not .uasset/.umap; use asset.delete for those).

ArgumentTypeDescription
pathstringrequired. Absolute path, or relative to the project directory. Must stay inside the project or engine directory.
contentstringproject.write_file: content.
appendbooleanproject.write_file: append instead of overwrite. Default false.
maxCharsintegerproject.read_file: maximum characters returned (0 = 200k). Default 0.

Returns: message.

project.find_class_header (risk 0)​

Finds the header that declares a class and returns its declaration block. Not smoked: scans the whole engine Source tree (minutes on the game thread).

ArgumentTypeDescription
classstringrequired. Class name, path or Blueprint asset.

Returns: class, file, line, declaration, truncated.

project.get_build_info (risk 0, smoke)​

Engine version, changelist, branch, build configuration/date, platform, RHI, engine dir and association.

No arguments.

Returns: engineVersion, engineVersionFull, changelist, branch, buildConfiguration, buildDate, buildVersion, engineInstalled, promotedBuild, platform, rhi, engineDir, engineAssociation, projectFile, projectHasCode, compiler.

project.get_capabilities (risk 0, smoke)​

Feature detection: engine generation, Nanite/Lumen/ray tracing availability, plugins, kits and tool count.

No arguments.

Returns: engine, uE5, naniteAvailable, lumenAvailable, rayTracingEnabled, worldPartition, chaos, enhancedInput, sourceControl, liveCoding, rhi, kits, toolCount, enabledProjectPlugins.

project.get_default_maps (risk 0, smoke)​

Default maps, game modes and game instance class (GameMapsSettings).

No arguments.

Returns: gameDefaultMap, editorStartupMap, serverDefaultMap, transitionMap, globalDefaultGameMode, globalDefaultServerGameMode, gameInstanceClass, configFile.

project.get_descriptor (risk 0, smoke)​

The .uproject descriptor: engine association, category, modules, plugin references, target platforms.

No arguments.

Returns: file, engineAssociation, category, description, isEnterprise, disableEnginePluginsByDefault, modules, plugins, targetPlatforms, additionalPluginDirectories, dirty.

project.get_paths (risk 0, smoke)​

Absolute project and engine directories.

No arguments.

Returns: projectFile, projectDir, contentDir, configDir, savedDir, logDir, intermediateDir, pluginsDir, sourceDir, engineDir, engineContentDir, engineConfigDir, enginePluginsDir, engineSourceDir, logFile.

project.get_version (risk 0, smoke)​

Project name, version, company and legal fields (GeneralProjectSettings).

No arguments.

Returns: projectName, projectVersion, projectID, companyName, companyDistinguishedName, description, homepage, copyrightNotice, supportContact, licensingTerms, privacyPolicy.

project.info (risk 0, smoke)​

Project name, paths, engine version, current map, default maps and game mode, enabled plugins.

No arguments.

Returns: projectName, projectDir, contentDir, engineVersion, currentMap, defaultGameMode, gameDefaultMap, editorStartupMap, enabledPlugins.

project.list_files (risk 0, smoke)​

Lists files in a directory inside the project or engine (wildcard, recursive).

ArgumentTypeDescription
directorystringrequired. Directory (absolute or relative to the project).
patternstringWildcard, e.g. ".ini" or ".h". Default TEXT("*").
recursivebooleanDefault false.
limitintegerDefault 500.

Returns: files, total.

project.list_maps (risk 0, smoke)​

Level assets of the project (and optionally engine) with the cook list from packaging settings.

ArgumentTypeDescription
folderstring
includeEnginebooleanDefault false.
limitintegerDefault 300.

Returns: maps, mapsToCook, cookAll, total.

project.list_modules (risk 0, smoke)​

Modules of the project descriptor (game modules) with loaded state, plus the loaded-module count.

No arguments.

Returns: modules, loadedModuleCount.

project.list_platforms (risk 0, smoke)​

Target platforms known to the editor with SDK installed and project-supported flags.

No arguments.

Returns: platforms, hostPlatform.

project.list_targets (risk 0, smoke)​

.Target.cs files in the project Source folder.

No arguments.

Returns: targets, hasSourceCode, sourceDir.

project.read_file (risk 0, smoke)​

Reads a text file inside the project or engine directory.

ArgumentTypeDescription
pathstringrequired. Absolute path, or relative to the project directory. Must stay inside the project or engine directory.
contentstringproject.write_file: content.
appendbooleanproject.write_file: append instead of overwrite. Default false.
maxCharsintegerproject.read_file: maximum characters returned (0 = 200k). Default 0.

Returns: path, content, sizeBytes, truncated, modifiedUtc.

project.rename_file (risk 4, mutates, smoke)​

Renames or moves a file inside the project directory.

ArgumentTypeDescription
pathstringrequired.
newPathstringrequired.

Returns: message.

project.search_headers (risk 0, smoke)​

Grep-like search over engine and project C++ headers (.h).

ArgumentTypeDescription
patternstringrequired. Text or regex searched in engine and project headers.
regexbooleanDefault false.
pathContainsstringSubstring the file path must contain (e.g. "Runtime/Engine/Classes/GameFramework").
enginebooleanSearch project Source and Plugins too (default true) and engine Source (default true). Default true.
projectbooleanDefault true.
contextLinesintegerDefault 0.
limitintegerDefault 50.
maxFilesintegerMaximum number of files scanned (safety cap). Default 20000.

Returns: matches, filesScanned, truncated.

project.set_default_maps (risk 4, mutates)​

Sets default maps / game modes / game instance in DefaultEngine.ini (only non-empty fields are applied).

ArgumentTypeDescription
gameDefaultMapstringEach field is applied only when non-empty. Maps accept /Game/... paths, classes accept names, paths or Blueprints.
editorStartupMapstring
serverDefaultMapstring
transitionMapstring
globalDefaultGameModestring
globalDefaultServerGameModestring
gameInstanceClassstring

Returns: gameDefaultMap, editorStartupMap, serverDefaultMap, transitionMap, globalDefaultGameMode, globalDefaultServerGameMode, gameInstanceClass, configFile.

project.set_descriptor_field (risk 4, mutates)​

Edits Category, Description or EngineAssociation in the .uproject.

ArgumentTypeDescription
fieldstringrequired. Category, Description or EngineAssociation.
valuestringrequired.

Returns: file, engineAssociation, category, description, isEnterprise, disableEnginePluginsByDefault, modules, plugins, targetPlatforms, additionalPluginDirectories, dirty.

project.set_game_mode_classes (risk 4, mutates)​

Sets the default classes of a GameMode (pawn, controller, HUD, game state, player state, spectator).

ArgumentTypeDescription
gameModestringrequired. Game mode class or Blueprint whose defaults are edited.
defaultPawnClassstring
playerControllerClassstring
hUDClassstring
gameStateClassstring
playerStateClassstring
spectatorClassstring
savebooleanDefault false.

Returns: entries, count.

project.set_version (risk 4, mutates)​

Sets project name/version/company/description fields in DefaultGame.ini.

ArgumentTypeDescription
projectNamestringEach field is applied only when non-empty.
projectVersionstring
companyNamestring
companyDistinguishedNamestring
descriptionstring
homepagestring
copyrightNoticestring
supportContactstring
licensingTermsstring
privacyPolicystring

Returns: projectName, projectVersion, projectID, companyName, companyDistinguishedName, description, homepage, copyrightNotice, supportContact, licensingTerms, privacyPolicy.

project.write_file (risk 4, mutates, smoke)​

Writes (or appends to) a text file inside the project directory. Never touches .uasset/.umap files.

ArgumentTypeDescription
pathstringrequired. Absolute path, or relative to the project directory. Must stay inside the project or engine directory.
contentstringproject.write_file: content.
appendbooleanproject.write_file: append instead of overwrite. Default false.
maxCharsintegerproject.read_file: maximum characters returned (0 = 200k). Default 0.

Returns: path, content, sizeBytes, truncated, modifiedUtc.

render.get_scalability (risk 0, smoke)​

Current scalability level per group plus resolution quality.

No arguments.

Returns: resolutionQuality, viewDistance, antiAliasing, shadow, globalIllumination, reflection, postProcess, texture, effects, foliage, shading, landscape, overall.

render.get_settings (risk 0, smoke)​

Snapshot of the common rendering cvars, AA method, screen percentage, RHI and adapter.

No arguments.

Returns: values, antiAliasingMethod, screenPercentage, rhi, adapter, rayTracingProjectSetting, globalIlluminationMethod, reflectionMethod, nanite, lumenHardwareRayTracing.

render.set_anti_aliasing (risk 1, smoke)​

Sets the anti-aliasing method: none, fxaa, taa, msaa, tsr (UE 5).

ArgumentTypeDescription
methodstringrequired. none, fxaa, taa, msaa, tsr (tsr needs UE 5).

Returns: values, antiAliasingMethod, screenPercentage, rhi, adapter, rayTracingProjectSetting, globalIlluminationMethod, reflectionMethod, nanite, lumenHardwareRayTracing.

render.set_gi_method (risk 1, UE 5.0+, smoke)​

Dynamic global illumination method: none, lumen, ssgi, plugin (UE 5).

ArgumentTypeDescription
methodstringrequired. GI: none, lumen, ssgi, plugin. Reflections: none, lumen, ssr.

Returns: values, antiAliasingMethod, screenPercentage, rhi, adapter, rayTracingProjectSetting, globalIlluminationMethod, reflectionMethod, nanite, lumenHardwareRayTracing.

render.set_lumen (risk 1, UE 5.0+, smoke)​

Lumen for GI and reflections, hardware ray tracing and GI quality (UE 5).

ArgumentTypeDescription
globalIlluminationbooleanUse Lumen for global illumination. Default true.
reflectionsbooleanUse Lumen for reflections. Default true.
hardwareRayTracinginteger-1 keeps, 0/1 sets r.Lumen.HardwareRayTracing. Default -1.
qualityLevelintegerScalability GI group 0-4 (-1 keeps). Default -1.

Returns: values, antiAliasingMethod, screenPercentage, rhi, adapter, rayTracingProjectSetting, globalIlluminationMethod, reflectionMethod, nanite, lumenHardwareRayTracing.

render.set_max_fps (risk 1, smoke)​

t.MaxFPS (0 = uncapped).

ArgumentTypeDescription
valuenumberDefault 100.0.

Returns: values, antiAliasingMethod, screenPercentage, rhi, adapter, rayTracingProjectSetting, globalIlluminationMethod, reflectionMethod, nanite, lumenHardwareRayTracing.

render.set_nanite (risk 1, UE 5.0+, smoke)​

Nanite on/off and pixels-per-edge (UE 5).

ArgumentTypeDescription
enabledbooleanDefault true.
maxPixelsPerEdgenumberr.Nanite.MaxPixelsPerEdge (0 = keep). Default 0.0.

Returns: values, antiAliasingMethod, screenPercentage, rhi, adapter, rayTracingProjectSetting, globalIlluminationMethod, reflectionMethod, nanite, lumenHardwareRayTracing.

render.set_ray_tracing (risk 4, mutates)​

Enables/disables ray tracing in the project settings (restart required) and the runtime toggle where available.

ArgumentTypeDescription
enabledbooleanDefault true.

Returns: values, antiAliasingMethod, screenPercentage, rhi, adapter, rayTracingProjectSetting, globalIlluminationMethod, reflectionMethod, nanite, lumenHardwareRayTracing.

render.set_reflection_method (risk 1, UE 5.0+, smoke)​

Reflection method: none, lumen, ssr (UE 5).

ArgumentTypeDescription
methodstringrequired. GI: none, lumen, ssgi, plugin. Reflections: none, lumen, ssr.

Returns: values, antiAliasingMethod, screenPercentage, rhi, adapter, rayTracingProjectSetting, globalIlluminationMethod, reflectionMethod, nanite, lumenHardwareRayTracing.

render.set_scalability (risk 1)​

Sets one scalability group (or all) to a level 0-4 / low..cinematic and optionally persists it. Not smoke-tested: it would override the user's scalability settings.

ArgumentTypeDescription
groupstringGroup: ViewDistance, AntiAliasing, Shadow, GlobalIllumination, Reflection, PostProcess, Texture, Effects, Foliage, Shading, Landscape or "all". Default TEXT("all").
levelstring0 low, 1 medium, 2 high, 3 epic, 4 cinematic (or the words). Default TEXT("3").
resolutionQualitynumberResolution quality percentage (0 = keep). Default 0.0.
persistbooleanSave to GameUserSettings.ini. Default false.

Returns: resolutionQuality, viewDistance, antiAliasing, shadow, globalIllumination, reflection, postProcess, texture, effects, foliage, shading, landscape, overall.

render.set_screen_percentage (risk 1, smoke)​

Sets r.ScreenPercentage (10-200).

ArgumentTypeDescription
valuenumberDefault 100.0.

Returns: values, antiAliasingMethod, screenPercentage, rhi, adapter, rayTracingProjectSetting, globalIlluminationMethod, reflectionMethod, nanite, lumenHardwareRayTracing.

render.set_shadow_quality (risk 1, smoke)​

Shadow map resolution, cascade count, distance scale and scalability group.

ArgumentTypeDescription
maxResolutionintegerr.Shadow.MaxResolution (0 = keep). Default 0.
maxCascadesintegerr.Shadow.CSM.MaxCascades (0 = keep). Default 0.
distanceScalenumberr.Shadow.DistanceScale (0 = keep). Default 0.0.
qualityLevelintegerScalability shadow group 0-4 (-1 = keep). Default -1.

Returns: values, antiAliasingMethod, screenPercentage, rhi, adapter, rayTracingProjectSetting, globalIlluminationMethod, reflectionMethod, nanite, lumenHardwareRayTracing.

render.set_vsync (risk 1, smoke)​

r.VSync.

ArgumentTypeDescription
enabledbooleanDefault true.

Returns: values, antiAliasingMethod, screenPercentage, rhi, adapter, rayTracingProjectSetting, globalIlluminationMethod, reflectionMethod, nanite, lumenHardwareRayTracing.

settings.diff_from_default (risk 0, smoke)​

Keys the project Default.ini adds or changes compared with the engine Base.ini.

ArgumentTypeDescription
filestringrequired. Config branch ("Engine", "Game", ...).
sectionContainsstring
limitintegerDefault 500.

Returns: projectFile, baseFile, entries, total.

settings.flush (risk 4)​

Writes the in-memory state of a config branch to disk. Not smoked: writes ini files to disk.

ArgumentTypeDescription
filestringrequired. Config branch: "Engine", "Game", "Input", "Editor", "EditorPerProjectUserSettings", "GameUserSettings", "Scalability", "DeviceProfiles" or an absolute .ini path.
sectionstringSection name, e.g. "/Script/Engine.RendererSettings" or "ConsoleVariables".
keystring
valuestringUsed by settings.set_ini.
writeDefaultbooleansettings.set_ini: also write to the project Default.ini (default true) instead of only the in-memory cache. Default true.

Returns: message.

settings.get (risk 0, smoke)​

Reads a project/engine setting (GameMapsSettings, InputSettings, RendererSettings, any UDeveloperSettings).

ArgumentTypeDescription
sectionstringrequired. Settings class: "GameMapsSettings", "EngineSettings", "InputSettings", "RendererSettings", "CollisionProfile" or any UDeveloperSettings / config class name.
propertystringrequired. Property name, e.g. "GlobalDefaultGameMode".
valuestringNew value in text form (used by settings.set). Object references use full paths.

Returns: section, property, value, configFile.

settings.get_class_schema (risk 0, smoke)​

Properties of a settings class: type, category, tooltip, enum values and current value.

ArgumentTypeDescription
sectionstringrequired. Settings class (see settings.list_classes), e.g. "RendererSettings", "GameMapsSettings", "EditorPerProjectUserSettings".
includeValuesbooleanDefault true.
configOnlybooleanOnly properties saved to config. Default true.
categorystring
limitintegerDefault 300.

Returns: class, configFile, defaultConfigFile, properties, total.

settings.get_ini (risk 0, smoke)​

Reads one ini value as the engine resolves it (all layers merged).

ArgumentTypeDescription
filestringrequired. Config branch: "Engine", "Game", "Input", "Editor", "EditorPerProjectUserSettings", "GameUserSettings", "Scalability", "DeviceProfiles" or an absolute .ini path.
sectionstringSection name, e.g. "/Script/Engine.RendererSettings" or "ConsoleVariables".
keystring
valuestringUsed by settings.set_ini.
writeDefaultbooleansettings.set_ini: also write to the project Default.ini (default true) instead of only the in-memory cache. Default true.

Returns: file, section, key, value, found, writtenTo.

settings.get_ini_section (risk 0, smoke)​

Every key/value of an ini section (merged view).

ArgumentTypeDescription
filestringrequired. Config branch: "Engine", "Game", "Input", "Editor", "EditorPerProjectUserSettings", "GameUserSettings", "Scalability", "DeviceProfiles" or an absolute .ini path.
sectionstringSection name, e.g. "/Script/Engine.RendererSettings" or "ConsoleVariables".
keystring
valuestringUsed by settings.set_ini.
writeDefaultbooleansettings.set_ini: also write to the project Default.ini (default true) instead of only the in-memory cache. Default true.

Returns: file, section, entries, exists.

settings.get_many (risk 0, smoke)​

Reads several properties of a settings class.

ArgumentTypeDescription
sectionstringrequired.
propertiesarray of stringsettings.get_many: property names.
valuesarray of UeabKeyValuesettings.set_many: property -> value.

Returns: entries, count.

settings.list_categories (risk 0, smoke)​

Categories of a settings container (Game, Engine, Editor, Plugins, ...).

ArgumentTypeDescription
containerstring"Project" or "Editor" (empty = both).
categorystringCategory inside the container (settings.list_sections).

Returns: items, total.

settings.list_classes (risk 0, smoke)​

Every settings/config class with container, category, section, config file and module.

ArgumentTypeDescription
containsstringSubstring filter on class, section or category name.
containerstring"Project", "Editor" or empty for both.
categorystring
limitintegerDefault 300.

Returns: classes, total.

settings.list_containers (risk 0, smoke)​

Settings containers ("Project", "Editor") as shown in the settings windows.

No arguments.

Returns: items, total.

settings.list_files (risk 0, smoke)​

Known config branches (Engine, Game, Input, Editor, ...) with the project Default*.ini and user files.

No arguments.

Returns: files, projectConfigDir, engineConfigDir.

settings.list_ini_sections (risk 0, smoke)​

Section names of a config branch.

ArgumentTypeDescription
filestringrequired.
containsstring
limitintegerDefault 500.

Returns: items, total.

settings.list_sections (risk 0, smoke)​

Sections (settings classes) of a container/category with their class names.

ArgumentTypeDescription
containerstring"Project" or "Editor" (empty = both).
categorystringCategory inside the container (settings.list_sections).

Returns: classes, total.

settings.reload (risk 4)​

Reloads a settings class from the ini files, discarding unsaved in-memory changes.

ArgumentTypeDescription
sectionstringrequired.

Returns: message.

settings.remove_ini_key (risk 4, mutates, destructive)​

Removes a key from the in-memory config and the project Default.ini.

ArgumentTypeDescription
filestringrequired. Config branch: "Engine", "Game", "Input", "Editor", "EditorPerProjectUserSettings", "GameUserSettings", "Scalability", "DeviceProfiles" or an absolute .ini path.
sectionstringSection name, e.g. "/Script/Engine.RendererSettings" or "ConsoleVariables".
keystring
valuestringUsed by settings.set_ini.
writeDefaultbooleansettings.set_ini: also write to the project Default.ini (default true) instead of only the in-memory cache. Default true.

Returns: file, section, key, value, found, writtenTo.

settings.reset_to_defaults (risk 5, mutates, destructive)​

Removes the project overrides of a settings class from Default*.ini and reloads it (engine defaults apply).

ArgumentTypeDescription
sectionstringrequired.

Returns: message.

settings.save (risk 4)​

Saves a settings class to its Default*.ini (after edits made through object.set_property).

ArgumentTypeDescription
sectionstringrequired.

Returns: message.

settings.search_ini (risk 0, smoke)​

Full-text search over sections, keys and values of the loaded ini files.

ArgumentTypeDescription
querystringrequired. Substring searched in section names, keys and values (case-insensitive).
filestringRestrict to one config branch. Empty = every loaded ini.
limitintegerDefault 200.

Returns: matches, total.

settings.set (risk 4, mutates)​

Writes a project/engine setting and saves its config file. Not smoke-tested: it would permanently change the user's project config.

ArgumentTypeDescription
sectionstringrequired. Settings class: "GameMapsSettings", "EngineSettings", "InputSettings", "RendererSettings", "CollisionProfile" or any UDeveloperSettings / config class name.
propertystringrequired. Property name, e.g. "GlobalDefaultGameMode".
valuestringNew value in text form (used by settings.set). Object references use full paths.

Returns: section, property, value, configFile.

settings.set_ini (risk 4, mutates)​

Writes an ini value to the in-memory config and (by default) to the project Default.ini.

ArgumentTypeDescription
filestringrequired. Config branch: "Engine", "Game", "Input", "Editor", "EditorPerProjectUserSettings", "GameUserSettings", "Scalability", "DeviceProfiles" or an absolute .ini path.
sectionstringSection name, e.g. "/Script/Engine.RendererSettings" or "ConsoleVariables".
keystring
valuestringUsed by settings.set_ini.
writeDefaultbooleansettings.set_ini: also write to the project Default.ini (default true) instead of only the in-memory cache. Default true.

Returns: file, section, key, value, found, writtenTo.

settings.set_many (risk 4, mutates)​

Writes several properties of a settings class and saves the Default*.ini.

ArgumentTypeDescription
sectionstringrequired.
propertiesarray of stringsettings.get_many: property names.
valuesarray of UeabKeyValuesettings.set_many: property -> value.

Returns: succeeded, failed, succeededCount, failedCount.

view.capture_compare (risk 0, smoke)​

Before/after image pair: the capture stored by edit.checkpoint_create {withPreview:true} and a capture of the same view now (same size), plus the fraction of changed pixels.

ArgumentTypeDescription
checkpointstringrequired. Checkpoint created with withPreview:true.
formatstringpng or jpg. Default TEXT("png").

Returns: checkpoint, images, changedPixelRatio, beforeKind, afterKind, notes.

view.clear_bookmark (risk 0, smoke)​

Clears a bookmark slot.

ArgumentTypeDescription
indexintegerBookmark slot 0-9. Default 0.

Returns: bookmarks, maxBookmarks.

view.eject_pilot (risk 0, smoke)​

Stops piloting.

No arguments.

Returns: viewport, nearClip, farClip, cameraSpeedSetting, cameraSpeed, immersive, pilotActor, gridSnap, rotationSnap, scaleSnap, gridSize, rotationGridDegrees, scaleGridSize, allViewports.

view.focus_actors (risk 0)​

Frames the given actors (or the current selection) in the viewport. Needs an actor; the self-test level is empty.

ArgumentTypeDescription
actorsarray of stringActor labels/names; empty = current selection.
instantbooleanDefault true.

Returns: location, rotation, fov, width, height.

view.focus_point (risk 0, smoke)​

Frames a world point at a distance.

ArgumentTypeDescription
locationUeabVec3required.
distancenumberDistance from the point (cm). Default 500.0.
instantbooleanDefault true.

Returns: location, rotation, fov, width, height.

view.get_camera (risk 0, smoke)​

Level viewport camera location, rotation, FOV and size.

No arguments.

Returns: location, rotation, fov, width, height.

view.get_info (risk 0, smoke)​

Everything about the active level viewport: type, view mode, realtime, game view, FOV, clip planes, speed, pilot, snapping, plus every other viewport.

No arguments.

Returns: viewport, nearClip, farClip, cameraSpeedSetting, cameraSpeed, immersive, pilotActor, gridSnap, rotationSnap, scaleSnap, gridSize, rotationGridDegrees, scaleGridSize, allViewports.

view.get_show_flags (risk 0, smoke)​

Lists engine show flags with their state in the active viewport.

ArgumentTypeDescription
containsstring
enabledOnlybooleanDefault false.
limitintegerDefault 400.

Returns: flags, total.

view.get_snap (risk 0, smoke)​

Grid / rotation / scale / surface snapping state and sizes.

No arguments.

Returns: gridSnap, rotationSnap, scaleSnap, surfaceSnap, gridSize, rotationGridDegrees, scaleGridSize, gridSizes.

view.get_visible_actors (risk 0, smoke)​

Actors whose bounds intersect the viewport frustum, nearest first, with screen coordinates.

ArgumentTypeDescription
classstring
includeHiddenbooleanDefault false.
limitintegerDefault 200.

Returns: actors, total.

view.jump_to_bookmark (risk 0, smoke)​

Jumps the camera to a bookmark slot.

ArgumentTypeDescription
indexintegerBookmark slot 0-9. Default 0.

Returns: location, rotation, fov, width, height.

view.list_bookmarks (risk 0, smoke)​

Bookmark slots of the current level with their camera poses.

No arguments.

Returns: bookmarks, maxBookmarks.

view.pilot_actor (risk 0)​

Makes the viewport follow an actor (pilot / lock camera to actor). Needs an actor; the self-test level is empty.

ArgumentTypeDescription
actorsarray of stringActor labels/names; empty = current selection.
instantbooleanDefault true.

Returns: viewport, nearClip, farClip, cameraSpeedSetting, cameraSpeed, immersive, pilotActor, gridSnap, rotationSnap, scaleSnap, gridSize, rotationGridDegrees, scaleGridSize, allViewports.

view.redraw (risk 0, smoke)​

Redraws every level viewport.

No arguments.

Returns: message.

view.screen_to_world (risk 0, smoke)​

Deprojects normalised viewport coordinates and optionally traces into the level.

ArgumentTypeDescription
unumberNormalised 0..1 (origin top-left). Default 0.5.
vnumberDefault 0.5.
tracebooleanTrace into the level and report the hit. Default true.
distancenumberDefault 100000.0.

Returns: origin, direction, hit, hitLocation, hitNormal, hitActor, distance.

view.screenshot (risk 0, smoke)​

Canonical viewport capture returned as an image: the active level viewport (or the PIE viewport while playing), optionally framed on actors and with temporary show-flag overrides, bounded by width/height/maxSize, PNG or JPG.

ArgumentTypeDescription
savePathstringOptional absolute path to also write the image on disk.
maxSizeintegerLongest side in pixels for the returned image (0 = native). Default 1280.
widthintegerMaximum width in pixels (0 = no limit); the aspect ratio is kept and nothing is upscaled. Default 0.
heightintegerMaximum height in pixels (0 = no limit). Default 0.
frameActorsarray of stringFrame these actors (label, name or class:) for the capture; the camera is restored afterwards. Ignored during PIE.
showFlagsTMap<FString, bool>Temporary show-flag overrides for the capture, e.g. {"Grid":false,"Fog":true}; restored afterwards.
formatstringpng or jpg. Default TEXT("png").

Returns: width, height, savedTo, imageBase64, imageMimeType.

view.screenshot_editor (risk 0)​

Captures the whole editor window (Slate UI included) as a PNG image block. Needs a real editor window.

ArgumentTypeDescription
maxSizeintegerLongest side in pixels for the returned image (0 = native). Default 1600.
savePathstring

Returns: width, height, savedTo, imageBase64, imageMimeType.

view.screenshot_from (risk 0)​

Captures the level viewport from a temporary camera pose (restored afterwards) as a PNG image block. Needs a real rendered viewport.

ArgumentTypeDescription
locationUeabVec3
rotationUeabVec3
hasLookAtbooleanDefault false.
lookAtUeabVec3
fovnumber0 = keep the viewport FOV. Default 0.0.
gameViewbooleanHide editor gizmos/icons while capturing. Default true.
maxSizeintegerDefault 1280.
savePathstring

Returns: width, height, savedTo, imageBase64, imageMimeType.

view.set_active_viewport (risk 0, smoke)​

Makes viewport N the active one (see view.get_info AllViewports).

ArgumentTypeDescription
indexintegerDefault 0.

Returns: viewport, nearClip, farClip, cameraSpeedSetting, cameraSpeed, immersive, pilotActor, gridSnap, rotationSnap, scaleSnap, gridSize, rotationGridDegrees, scaleGridSize, allViewports.

view.set_bookmark (risk 0, smoke)​

Stores the current camera in bookmark slot 0-9.

ArgumentTypeDescription
indexintegerBookmark slot 0-9. Default 0.

Returns: bookmarks, maxBookmarks.

view.set_camera (risk 1, smoke)​

Moves the level viewport camera (location + rotation, look-at point, or frame an actor).

ArgumentTypeDescription
locationUeabVec3
rotationUeabVec3Pitch, Yaw, Roll. Ignored when LookAt is set.
lookAtUeabVec3Point the camera at this world position.
hasLocationbooleanDefault true.
hasRotationbooleanDefault false.
hasLookAtbooleanDefault false.
focusActorstringFrame this actor (label/name) instead of using Location/Rotation.

Returns: location, rotation, fov, width, height.

view.set_camera_speed (risk 0, smoke)​

Sets the fly-camera speed notch (1-8) and, before 5.7, the speed scalar.

ArgumentTypeDescription
settingintegerToolbar notch 1-8 (0 = keep). Default 0.
scalarnumberSpeed scalar (0 = keep). Ignored on 5.7+ where only the notch applies. Default 0.0.

Returns: viewport, nearClip, farClip, cameraSpeedSetting, cameraSpeed, immersive, pilotActor, gridSnap, rotationSnap, scaleSnap, gridSize, rotationGridDegrees, scaleGridSize, allViewports.

view.set_clip_planes (risk 0, smoke)​

Overrides the near/far clip planes (cm).

ArgumentTypeDescription
nearnumberNear clip plane in cm (0 = keep). Default 0.0.
farnumberFar clip plane in cm (0 = keep). Default 0.0.
clearFarbooleanRemove the far clip override. Default false.

Returns: viewport, nearClip, farClip, cameraSpeedSetting, cameraSpeed, immersive, pilotActor, gridSnap, rotationSnap, scaleSnap, gridSize, rotationGridDegrees, scaleGridSize, allViewports.

view.set_fov (risk 0, smoke)​

Sets the viewport FOV in degrees.

ArgumentTypeDescription
fovnumberHorizontal FOV in degrees (5-170). Default 90.0.

Returns: viewport, nearClip, farClip, cameraSpeedSetting, cameraSpeed, immersive, pilotActor, gridSnap, rotationSnap, scaleSnap, gridSize, rotationGridDegrees, scaleGridSize, allViewports.

view.set_game_view (risk 0, smoke)​

Toggles Game View (hides editor icons, gizmos and editor-only actors).

ArgumentTypeDescription
enabledbooleanDefault true.

Returns: viewport, nearClip, farClip, cameraSpeedSetting, cameraSpeed, immersive, pilotActor, gridSnap, rotationSnap, scaleSnap, gridSize, rotationGridDegrees, scaleGridSize, allViewports.

view.set_immersive (risk 0, smoke)​

Toggles immersive (maximised) mode of the active level viewport.

ArgumentTypeDescription
enabledbooleanDefault true.

Returns: viewport, nearClip, farClip, cameraSpeedSetting, cameraSpeed, immersive, pilotActor, gridSnap, rotationSnap, scaleSnap, gridSize, rotationGridDegrees, scaleGridSize, allViewports.

view.set_ortho_zoom (risk 0, smoke)​

Ortho zoom of the active viewport (orthographic types only).

ArgumentTypeDescription
zoomnumberDefault 10000.0.

Returns: viewport, nearClip, farClip, cameraSpeedSetting, cameraSpeed, immersive, pilotActor, gridSnap, rotationSnap, scaleSnap, gridSize, rotationGridDegrees, scaleGridSize, allViewports.

view.set_realtime (risk 0, smoke)​

Toggles realtime rendering (needed for Niagara, animation and material previews).

ArgumentTypeDescription
enabledbooleanDefault true.

Returns: viewport, nearClip, farClip, cameraSpeedSetting, cameraSpeed, immersive, pilotActor, gridSnap, rotationSnap, scaleSnap, gridSize, rotationGridDegrees, scaleGridSize, allViewports.

view.set_show_flag (risk 0, smoke)​

Turns one engine show flag on or off by name (Grid, Bounds, Collision, Navigation, Fog, ...).

ArgumentTypeDescription
flagstringrequired. Show flag name, e.g. "Grid", "Bounds", "Collision", "Navigation", "PostProcessing", "Fog", "Particles", "StaticMeshes", "Landscape", "BSP", "Wireframe".
enabledbooleanDefault true.

Returns: flags, total.

view.set_snap (risk 0, smoke)​

Sets snapping toggles and grid size indices.

ArgumentTypeDescription
gridSnapinteger-1 keeps, 0/1 sets. Default -1.
rotationSnapintegerDefault -1.
scaleSnapintegerDefault -1.
surfaceSnapintegerDefault -1.
gridSizeIndexintegerIndex into the grid size list (0 = keep). Default -1.
rotationGridIndexintegerDefault -1.
scaleGridIndexintegerDefault -1.

Returns: gridSnap, rotationSnap, scaleSnap, surfaceSnap, gridSize, rotationGridDegrees, scaleGridSize, gridSizes.

view.set_type (risk 0, smoke)​

Switches the projection: perspective, top, bottom, left, right, front, back.

ArgumentTypeDescription
typestringrequired. perspective, top, bottom, left, right, front, back (or free ortho).

Returns: viewport, nearClip, farClip, cameraSpeedSetting, cameraSpeed, immersive, pilotActor, gridSnap, rotationSnap, scaleSnap, gridSize, rotationGridDegrees, scaleGridSize, allViewports.

view.set_view_mode (risk 0, smoke)​

Switches the view mode (lit, unlit, wireframe, detail_lighting, shader_complexity, ...).

ArgumentTypeDescription
modestringrequired. lit, unlit, wireframe, brush_wireframe, detail_lighting, lighting_only, light_complexity, shader_complexity, lightmap_density, stationary_light_overlap, reflections, player_collision, visibility_collision, lod_coloration, hlod_coloration, path_tracing, ray_tracing_debug, buffer_visualization, quad_overdraw, or a VMI_* name.

Returns: viewport, nearClip, farClip, cameraSpeedSetting, cameraSpeed, immersive, pilotActor, gridSnap, rotationSnap, scaleSnap, gridSize, rotationGridDegrees, scaleGridSize, allViewports.

view.world_to_screen (risk 0, smoke)​

Projects a world position to normalised viewport coordinates and pixels.

ArgumentTypeDescription
positionUeabVec3required.

Returns: u, v, pixelX, pixelY, onScreen, inFront.