Remote Control Preset HTTP Reference

Details about the HTTP endpoints offered by the Remote Control API for accessing properties and functions exposed in a Remote Control Preset.

Windows
MacOS
Linux

This page describes the HTTP endpoints offered by the Remote Control API for Remote Control Presets and details the format of the message body you need to include when you call each endpoint.

The examples in this page are using the Blueprint Third-Person Template. To follow along with the examples, add a Remote Control Preset to the project, name it MyPreset, and expose the following properties and functions:

  • Directional Light's rotation property, renamed as Directional Light Rotation

  • Print Text function from the Kismet System Library, with Print to Log enabled

Screenshot of Remote Control Preset with a Directional Light's rotation property and Print Text function exposed

GET remote/presets

Use this endpoint to get the list of all available presets. The call returns a JSON payload with information on every Remote Control Preset in the project.

Example

Send the request with an empty request body. A successful request returns a 200 status and a response body with the following properties:

{
    "Presets": [
        {
            "Name": "MyPreset",
            "Path": "/Game/Presets/MyPreset.MyPreset"
        }
    ]
}

GET remote/preset/insert_preset_name

Use this endpoint to get details on specific presets in your project. In the URL, replace insert_preset_name with the name of a Remote Control Preset in your project. If the preset is found with the name specified, the call returns a JSON payload with information on the preset.

If a preset cannot be found with the specified name, the call returns a JSON payload with an error message:

{
    "errorMessage": "Preset insert_preset_name could not be found."
}

Example

Sending the request GET http://localhost:30010/remote/preset/MyPreset with an empty request body returns a successful request with a 200 status and the following response body:

{
    "Preset": {
        "Name": "MyPreset",
        "Path": "/Game/Presets/MyPreset.MyPreset",
        "Groups": [
            {
                "Name": "Lighting",
                "ExposedProperties": [
                    {
                        "DisplayName": "Directional Light Rotation",
                        "UnderlyingProperty": {
                            "Name": "RelativeRotation",
                            "Description": "Rotation of the component relative to its parent",
                            "Type": "FRotator",
                            "ContainerType": "",
                            "KeyType": "",
                            "Metadata": {
                                "ToolTip": "Rotation of the component relative to its parent"
                            }
                        }
                    }
                ],
                "ExposedFunctions": []
            },
            {
                "Name": "Print",
                "ExposedProperties": [],
                "ExposedFunctions": [
                    {
                        "DisplayName": "Print Text (KismetSystemLibrary)",
                        "UnderlyingFunction": {
                            "Name": "PrintText",
                            "Description": "Prints text to the log, and optionally, to the screen\nIf Print To Log is true, it will be visible in the Output Log window.  Otherwise it will be logged only as 'Verbose', so it generally won't show up.\n\n@param       InText                  The text to log out\n@param       bPrintToScreen  Whether or not to print the output to the screen\n@param       bPrintToLog             Whether or not to print the output to the log\n@param       bPrintToConsole Whether or not to print the output to the console\n@param       TextColor               Whether or not to print the output to the console\n@param       Duration                The display duration (if Print to Screen is True). Using negative number will result in loading the duration time from the config.",
                            "Arguments": [
                                {
                                    "Name": "WorldContextObject",
                                    "Description": "",
                                    "Type": "UObject*",
                                    "ContainerType": "",
                                    "KeyType": "",
                                    "Metadata": {}
                                },
                                {
                                    "Name": "InText",
                                    "Description": "",
                                    "Type": "FText",
                                    "ContainerType": "",
                                    "KeyType": "",
                                    "Metadata": {}
                                },
                                {
                                    "Name": "bPrintToScreen",
                                    "Description": "",
                                    "Type": "bool",
                                    "ContainerType": "",
                                    "KeyType": "",
                                    "Metadata": {}
                                },
                                {
                                    "Name": "bPrintToLog",
                                    "Description": "",
                                    "Type": "bool",
                                    "ContainerType": "",
                                    "KeyType": "",
                                    "Metadata": {}
                                },
                                {
                                    "Name": "TextColor",
                                    "Description": "",
                                    "Type": "FLinearColor",
                                    "ContainerType": "",
                                    "KeyType": "",
                                    "Metadata": {}
                                },
                                {
                                    "Name": "Duration",
                                    "Description": "",
                                    "Type": "float",
                                    "ContainerType": "",
                                    "KeyType": "",
                                    "Metadata": {}
                                }
                            ]
                        }
                    }
                ]
            }
        ]
    }
}

GET remote/preset/insert_preset_name/metadata

Use this endpoint to get all metadata associated with the preset. In the URL, replace insert_preset_name with the name of a Remote Control Preset in your project. The call returns a JSON payload with the metadata entries for that preset.

Example

Sending the request GET http://localhost:30010/remote/preset/MyPreset/metadata with an empty request body returns a successful request with a 200 status and the following response body:

{
    "Metadata": {}
}

Once you add Metadata entries with PUT remote/preset/insert_preset_name/metadata/insert_metadata_key, calling this endpoint will include those key-value pairs in this result.

PUT remote/preset/insert_preset_name/metadata/insert_metadata_key

Use this endpoint to create or update a metadata key-value pair for the preset. The metadata key can be any name but the request body must include the property "Value" in the JSON object; any other property will make the value an empty string. The call returns only the status of the request.

Example

Send the request PUT http://localhost:30010/remote/preset/MyPreset/metadata/MyKey with the following request body:

{
    "Value": "MyValue"
}

A successful request returns a 200 status. Verify the key-value pair was created by calling GET http://localhost:30010/remote/preset/MyPreset/metadata:

{
    "Metadata": {
        "MyKey": "MyValue"
    }
}

GET remote/preset/insert_preset_name/metadata/insert_metadata_key>

Use this endpoint to read the value associated with a metadata key. The call returns a JSON payload with the information requested.

Example

Send the request GET http://localhost:30010/remote/preset/MyPreset/metadata/MyKey with an empty request body. A successful request gives a 200 status with the following response body:

{
    "Value": "MyValue"
}

DELETE remote/preset/insert_preset_name/metadata/insert_metadata_key

Use this endpoint to remove a metadata key-value pair associated with the preset. The call returns only the status of the request.

Example

Sending the request DELETE http://localhost:30010/remote/preset/MyPreset/metadata/MyKey returns a successful request with a 200 status. Verify the key-value pair was deleted by calling GET http://localhost:30010/remote/preset/MyPreset/metadata:

{
    "Metadata": {}
}

GET remote/preset/insert_preset_name/property/insert_property_name

Use this endpoint to read a property exposed in the preset. The call returns a JSON payload with the requested information.

Example

Send the request GET http://localhost:30010/remote/preset/MyPreset/property/Directional Light Rotation with an empty request body.

A successful request returns a 200 status with the following response body:

{
    "PropertyValues": [
        {
            "ObjectPath": "/Game/ThirdPersonBP/Maps/ThirdPersonExampleMap.ThirdPersonExampleMap:PersistentLevel.LightSource_0.LightComponent0",
            "PropertyValue": {
                "Pitch": -66.3094,
                "Yaw": 7.72808,
                "Roll": -6.48224
            }
        }
    ]
}

PUT remote/preset/insert_preset_name/property/insert_property_name

Use this endpoint to update the value of a property exposed in the preset.

Example

Send the request PUT http://localhost:30010/remote/preset/MyPreset/property/Directional Rotation Light with the following request body:

{
    "PropertyValue": {
        "Pitch": -90,
        "Yaw": 0,
        "Roll": 0
    },
    "GenerateTransaction": true
}

A successful request returns a 200 status. Verify the change by looking at the property in the preset:

image alt text

PUT remote/preset/insert_preset_name/function/insert_function_name

Use this endpoint to call a function exposed in the preset. The call returns a JSON payload with any return values from the function.

Example

Send the request PUT http://localhost:30010/remote/preset/MyPreset/function/Print Text (KismetSystemLibrary) with the following request body:

{
    "Parameters": {
        "InText": "Hello, World"
    },
    "GenerateTransaction": true
}

A successful request returns a 200 status with the following response body and "Hello, World" printed to the Output Log:

{
    "ReturnedValues": [
        {}
    ]
}
Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss