Release notes

Changelog

1.3.1 · Toolsets and skills for Unreal’s own MCP

Unreal Engine 5.8 · October 2026

Coming soon to Fab. Fab buyers never saw 1.3.0, so these notes cover everything since 1.0.0.

Ralpha now plugs into Unreal’s own MCP server as toolsets and skills.

  • New geo toolset for Cesium for Unreal 2.x (installed separately): latitude/longitude camera placement, georeference, tilesets and terrain height.
  • New solver toolset: sun position for any place and time, exposure from sun elevation, lens field of view, horizon distance, sea state and stars.
  • Domain skills registered with Unreal’s agent-skill system: sky and sun, sunset, water and ocean, clouds, exposure, and real places.
  • Photoreal MetaHuman support.
  • Precise character performance controls: exact Control Rig channel inspection, key editing and guarded restoration; two characters on the same rig stay independently addressable.
  • Every registered command tested in a fresh project on Mac, with a Windows pass, a hardware ray-tracing pass and a Linux build.
  • Docs rewritten around Unreal’s native MCP (port 30030), with the plugin’s own HTTP (30020) and TCP (30010) endpoints as the secondary path.

New commands and options

  • Material-instance assets: create_material_instance_asset, set_material_instance_asset_params and get_material_instance_asset_params make and edit saved material instances, with parameters checked against the parent before anything is written. The first two are also typed native tools.
  • Camera selection: set_camera, get_camera_settings and capture_screenshot take camera_id (a CineCamera’s name or label).
  • Exact sequence rates: create_sequence keeps 23.976, 29.97 and 59.94 exactly, takes frame_rate_numerator / frame_rate_denominator and tick_resolution, and reports the rates it set.
  • Actors by label everywhere: Blueprint-variable, selection and lock commands accept an actor’s editor label as well as its object name; resolve_actor reports what an id resolves to (and every match when a label is shared).
  • Component properties: set_component_property / get_component_property set and read any property of an actor’s component (several at once, nested struct fields too) and report the value before and after.
  • Visibility scopes: set_actor_visible and get_hidden_actors take scope = editor | game | all. editor is the viewport’s temporary hide; game is “Actor Hidden In Game”, which Play-in-Editor, the game and captures skip.
  • Per-render console variables: render_sequence_asset takes console_variables_json (for example {"r.Shadow.Virtual.Cache": 0}), applied to that render only and reported back.
  • Cloud lighting: set_cloud_tracing_quality sets use_per_sample_atmospheric_transmittance, and get_cloud_tracing_quality reads it back.
  • Mesh measurement: get_mesh_ref_pose reads a skeletal mesh’s own reference pose; get_skinned_vertices returns a character’s vertex positions at its current pose (optionally with triangles, to a file).

Behaviour changes

  • Creates refuse a taken name. create_material, create_sequence, create_data_table, create_data_asset, create_input_context, create_input_action, the media-source, playlist and NDI creates, create_env_query, create_eqs_query (with persist: true), create_behavior_tree, create_blackboard, create_state_tree, create_blend_space, create_aim_offset, bake_dynamic_to_static and ocio_load_lut refuse with error_code: asset_exists and leave the existing asset untouched. Pass overwrite: true to replace it. If the old asset is still in use, the overwrite is refused with the users named, and force: true replaces it anyway. A create with no name picks a free one (<Default>_N). create_blueprint, create_anim_blueprint, create_ability_blueprint and create_effect_blueprint honour overwrite: true too.
  • One default camera. With no camera_id, set_camera, get_camera_settings and the Camera commands (when no camera is selected) use the CineCamera labelled Ralpha_Camera, the one capture_screenshot and pilot_camera use, and fall back to the first CineCamera only when there is none.
  • Remote Control’s HTTP port. rc_start_server with an http_port other than the one in Remote Control’s settings is refused unless you pass force: true, because moving it restarts Unreal’s HTTP server module, which also drops the editor’s MCP endpoint.

Reliability fixes

  • Editor crashes fixed: fog commands after a level reload, fog material parameters, spawning a boat on water, changing scalability while frames are rendering, quitting after mounting a pak, and creating or saving over an asset that already exists on disk no longer crash the editor.
  • Saves are safe: every create gets a fully loaded package or refuses, so a save never writes a partially loaded asset; a failed save reports success: false with the reason.
  • No blocking dialogs: water-body, ocean and landscape creation no longer open a modal that froze the editor.
  • Startup-only renderer settings are refused instead of being toggled at runtime.
  • Reads no longer change the scene: reading post-process settings never spawns a volume.
  • What you set is what you read back: sky and cloud albedo, light colour, lens focal length and aperture, light roll, chromatic aberration and cloud wind keep the value you sent.
  • Spot, point and rect lights keep everything you send: intensity units, source radius, position, rotation and label apply on spawn and on update, and read back.
  • Ralpha’s set_actor_transform is a partial update: fields you leave out keep their values.
  • AI moves report what happened: move commands say a move was requested, never that it arrived; get_ai_state reads back whether the pawn arrived or was blocked.
  • Behavior trees keep the blackboard you give them; a blackboard that does not exist is refused instead of ignored.
  • Changes carry into Play-in-Editor: play_animation persists on the character.
  • Effects start on first use in a fresh project: effect pools and every command that spawns an effect wait for the Niagara system to finish compiling, so they run as active instead of doing nothing.
  • Sun and exposure agree: the solver reports the scene exposure for Ralpha’s sun (scene_ev100).
  • Honest refusals: commands that had no visible effect now say so instead of reporting success; setters called with no parameters refuse and name the fields they need.

Known issues

  • Unreal’s own ActorTools set_actor_transform (Epic’s toolset, not Ralpha) resets location, rotation or scale you leave out. Send all three, or use Ralpha’s set_actor_transform.
  • Solver-sun exposure uses wide metering bounds rather than a calibrated absolute value near the horizon.
  • Rarely, the editor can take longer than a minute to close after a long MetaHuman session.

Source plugin plus editor Python and the unchanged MuJoCo 3.3.2 runtime. 3,248 commands register; 3,176 verified one by one in a fresh project, each with its effect read back. The other 72 need particular hardware, a platform, or a paid service or device; Docs/COMMAND_REFERENCE.md lists them with what each needs.

1.0.0 · Fab launch candidate

Unreal Engine 5.7 · May 13, 2026

Approved by Fab but held, and never released to buyers. Superseded by 1.3.1 for UE 5.8.

  • Mac UE 5.7.4 cold-install smoke passed from the launch zip.
  • Plugin served its own MCP on 127.0.0.1:30010.