editor.render

Ten methods covering Movie Render Queue: job add/remove/enable, output configuration inspection, render start/cancel via the PIE executor, and non-blocking status polling. AI agents reach through this namespace to queue and run cinematic exports without opening the MRQ window.

← API Reference

Requires: the MovieRenderPipelineCore and MovieRenderPipelineEditor modules. Stock UE ships both enabled. If MRQ is not available, all methods return -32001 NotFound.

Method summary

Method Mutating Tier Purpose
getQueuenoFreeAll jobs in the Movie Render Queue.
addJobyesFreeAdd a new render job.
removeJobyesFreeRemove a job by index.
clearQueueyesFreeRemove every job from the queue.
setJobEnabledyesFreeEnable or disable a job.
getJobConfignoFreeRender settings + CVar overrides for a job.
getOutputSettingsnoFreeOutput format and settings for a job.
startRenderyesFreeStart rendering via the PIE executor (returns immediately).
cancelRenderyesFreeCancel the active render.
getStatusnoFreeOverall + per-job render progress.

editor.render.getQueue

Return every job currently in the Movie Render Queue with its current state.

No parameters.

Returns:

FieldTypeDescription
jobsarrayEach: {index, jobName, sequence, map, enabled, consumed, author, comment, progress, statusMessage}.
countnumberNumber of jobs.
isRenderingboolWhether a render is currently active.

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.render.getQueue" }

Example Response:

{
  "jsonrpc": "2.0", "id": 1,
  "result": {
    "jobs": [
      { "index": 0, "jobName": "Final Render", "sequence": "/Game/Cinematics/MasterSequence.MasterSequence", "map": "/Game/Maps/L_Main.L_Main", "enabled": true, "consumed": false, "author": "tom", "comment": "", "progress": 0.0, "statusMessage": "Ready" }
    ],
    "count": 1,
    "isRendering": false
  }
}

editor.render.addJob

Add a new render job to the queue.

Parameters:

NameTypeRequiredDescription
sequencestringYesSoft object path to a LevelSequence asset.
mapstringNoLevel/map path to render in. Defaults to the current level.
jobNamestringNoDisplay name for the job.
authorstringNoAuthor name shown on burn-in.

Returns: { index, jobName, sequence, success }.

Example Request:

{
  "jsonrpc": "2.0", "id": 2,
  "method": "editor.render.addJob",
  "params": { "sequence": "/Game/Cinematics/MasterSequence", "jobName": "Final Render" }
}

Example Response:

{
  "jsonrpc": "2.0", "id": 2,
  "result": { "index": 0, "jobName": "Final Render", "sequence": "/Game/Cinematics/MasterSequence.MasterSequence", "success": true }
}

editor.render.removeJob

Remove a job from the queue by index.

Parameters:

NameTypeRequiredDescription
indexnumberYesZero-based index of the job to remove.

Returns: { success, remainingJobs }.

Example Request:

{ "jsonrpc": "2.0", "id": 3, "method": "editor.render.removeJob", "params": { "index": 0 } }

Example Response:

{ "jsonrpc": "2.0", "id": 3, "result": { "success": true, "remainingJobs": 0 } }

editor.render.clearQueue

Remove every job from the queue. Non-reversible.

No parameters.

Returns: { success: true }.

Example Request:

{ "jsonrpc": "2.0", "id": 4, "method": "editor.render.clearQueue" }

Example Response:

{ "jsonrpc": "2.0", "id": 4, "result": { "success": true } }

editor.render.setJobEnabled

Enable or disable a job. Disabled jobs are skipped during rendering.

Parameters:

NameTypeRequiredDescription
indexnumberYesZero-based job index.
enabledboolYesWhether the job should be enabled.

Returns: { success, index, enabled }.

Example Request:

{ "jsonrpc": "2.0", "id": 5, "method": "editor.render.setJobEnabled", "params": { "index": 0, "enabled": false } }

Example Response:

{ "jsonrpc": "2.0", "id": 5, "result": { "success": true, "index": 0, "enabled": false } }

editor.render.getJobConfig

Get render configuration details for a specific job, including settings and console variable overrides.

Parameters:

NameTypeRequiredDescription
indexnumberYesZero-based job index.

Returns:

FieldTypeDescription
indexnumberJob index echo.
jobNamestringJob name.
sequencestringLevel Sequence path.
mapstringMap path.
isUsingGraphConfigboolWhether the job uses MRQ Graph config rather than legacy.
settingsarrayEach: {class, enabled}.
consoleVariableOverridesarrayEach: {name, value, enabled}.

Example Request:

{ "jsonrpc": "2.0", "id": 6, "method": "editor.render.getJobConfig", "params": { "index": 0 } }

Example Response:

{
  "jsonrpc": "2.0", "id": 6,
  "result": {
    "index": 0, "jobName": "Final Render",
    "sequence": "/Game/Cinematics/MasterSequence.MasterSequence",
    "map":      "/Game/Maps/L_Main.L_Main",
    "isUsingGraphConfig": true,
    "settings": [
      { "class": "MoviePipelineDeferredPassBase",       "enabled": true },
      { "class": "MoviePipelineImageSequenceOutput_EXR", "enabled": true }
    ],
    "consoleVariableOverrides": [
      { "name": "r.MotionBlurQuality", "value": "4", "enabled": true }
    ]
  }
}

editor.render.getOutputSettings

Return output format and settings information for a job.

Parameters:

NameTypeRequiredDescription
indexnumberNoJob index. Defaults to 0.

Returns:

FieldTypeDescription
indexnumberJob index.
jobNamestringJob name.
outputFormatsarrayEach: {class, enabled}.
totalSettingsnumberTotal number of settings in the config.

Example Request:

{ "jsonrpc": "2.0", "id": 7, "method": "editor.render.getOutputSettings", "params": { "index": 0 } }

Example Response:

{
  "jsonrpc": "2.0", "id": 7,
  "result": {
    "index": 0, "jobName": "Final Render",
    "outputFormats": [ { "class": "MoviePipelineImageSequenceOutput_EXR", "enabled": true } ],
    "totalSettings": 6
  }
}

editor.render.startRender

Start rendering the queue using the PIE executor. Returns immediately; poll getStatus for progress.

No parameters.

Returns: { started, enabledJobCount, totalJobCount }.

Errors:

CodeMessageCondition
-32600Already renderingA render is in progress.
-32602No enabled jobsQueue has no enabled jobs.

Example Request:

{ "jsonrpc": "2.0", "id": 8, "method": "editor.render.startRender" }

Example Response:

{ "jsonrpc": "2.0", "id": 8, "result": { "started": true, "enabledJobCount": 1, "totalJobCount": 1 } }

editor.render.cancelRender

Cancel the currently active render.

No parameters.

Returns: { cancelled: bool }.

Errors:

CodeMessageCondition
-32600Not renderingNo render is in progress.

Example Request:

{ "jsonrpc": "2.0", "id": 9, "method": "editor.render.cancelRender" }

Example Response:

{ "jsonrpc": "2.0", "id": 9, "result": { "cancelled": true } }

editor.render.getStatus

Get current render status with overall and per-job progress.

No parameters.

Returns:

FieldTypeDescription
isRenderingboolWhether a render is in progress.
progressnumberOverall progress in [0.0, 1.0].
statusMessagestringCurrent status message from the executor.
jobsarrayEach: {index, jobName, progress, statusMessage, consumed, enabled}.

Example Request:

{ "jsonrpc": "2.0", "id": 10, "method": "editor.render.getStatus" }

Example Response:

{
  "jsonrpc": "2.0", "id": 10,
  "result": {
    "isRendering": true,
    "progress": 0.42,
    "statusMessage": "Rendering frame 126/300",
    "jobs": [
      { "index": 0, "jobName": "Final Render", "progress": 0.42, "statusMessage": "Rendering frame 126/300", "consumed": false, "enabled": true }
    ]
  }
}

Related