← All namespaces

system

Editor & system Core

Engine-level controls: run builds and tests, console commands, the job queue, and read-only scene inspection.

What it's for

The system namespace covers the process- and engine-level operations that sit underneath the asset- and actor-specific namespaces: spawning Unreal Build Tool for a scripted recompile, running automation tests and reporting pass/fail counts, issuing console commands at engine scope, and managing the long-running job queue that every slow operation flows through.

Its inspection branch, system.inspect.*, is the read-only counterpart to the mutating actor and level namespaces. When your assistant only needs to look — count the actors in a level, find every instance of a class, read the active viewport camera, or dump one object's properties — it reaches for system.inspect so nothing in the scene is touched. Reserve the write-side actor.* and level.* calls for when the next step actually changes state.

Console commands span two namespaces. Use system.console_command for project- and engine-wide cvars and editor-process commands; use editor.console_command when the command targets the editor world or viewport. When a command name is unfamiliar, discover it through the console search sub-namespace before running it.

Slow operations here never block the connection. Builds, test runs, and folder dumps return a job ticket immediately and keep running in the background; your assistant polls system.job_status to learn when they finish, and can list or cancel jobs in flight.

Examples

Run automation tests and wait for the result

Your assistant kicks off the suite, gets a ticket back, and polls the job until it is done.

You: Run the PinWright automation tests and tell me if anything failed.

  call("system.run_tests", {filter:"PinWright"})
    → {ticket_id:"job_7f2a", status:"running"}
  call("system.job_status", {ticket_id:"job_7f2a"})
    → {status:"completed", result:{passed:214, failed:0}}

Done. All 214 tests passed, 0 failures.

Set an engine-scope console variable

A project- or engine-wide cvar goes through the process-scope console command.

You: Bump the texture streaming pool size to 2048.

  call("system.console_command", {command:"r.Streaming.PoolSize 2048"})
    → {ok:true}

Done. Streaming pool size set to 2048.

Find actors in the level without touching them

The read-only inspection branch reports what is in the world so the assistant can plan a change.

You: How many StaticMeshActors are in the current level?

  call("system.inspect.find_by_class", {className:"StaticMeshActor"})
    → {actors:[{name:"Floor", ...}, {name:"Wall_01", ...}], count:12}

Done. Found 12 StaticMeshActors in the active world.

← Back to all namespaces