Loading...
Control Pixotope virtual production graphics from Companion/Buttons by sending commands to the Pixotope Gateway HTTP API.
Network access from the Companion/Buttons host to the Gateway machine.
The Gateway exposes a single publish endpoint:
http://{Gateway IP}:{Port}/gateway/{API Version}/publish
Set these in the connection settings:
127.0.0.1).16208).2.2.0). The Gateway
does not validate this, so the default is fine in most setups.~LOCAL~-Engine).1000).
Lower = fresher, more traffic.5000; 0 disables it).The connection indicator turns green once the Gateway responds.

You rarely type these by hand:
…/publish?Type=Call&Target=~LOCAL~-Engine&Method=GetProperty&ParamObjectSearch=DirectionalLight_0.LightComponent0&ParamPropertyPath=Intensity.
Paste it into Set Property, Get Property, or the property feedbacks.http://{Gateway IP}:{Port}/gateway/2.2.0/publish?Type=Get&Target=Store&Name=State
(e.g. State.General.FrameRate). A wrong or empty path returns null, which shows as a blank
variable.ParamFunctionArguments as a JSON array with text values quoted,
e.g. …&ParamFunctionArguments=[10,"HELLO"] (numbers bare, strings in quotes). Unquoted values
like [10,HELLO] work in a browser but not here, because the module needs valid JSON.$(pixotope:prop_*) variables created at runtime.Set Property with a pasted editor URL and a value:

Set Property — about the value: the URL you copy from Pixotope includes the property's current value. The module ignores any value embedded in the URL — paste the URL into the Editor URL field (it provides the object and property to target) and type the value you want to send in the separate Value field.
The Raw API Request action sends any Topic/Message. Field rules: Name is used only for
Set/Get; Method is used only for Call; a blank Target means the Default Engine
Target. It is fire-and-forget — it logs the HTTP status at debug but does not display returned
values (use the Watch feedbacks to read values back).
Set a property (e.g. change a light's intensity)
Topic Type: Call
Target: (blank, or ~LOCAL~-Engine)
Method: SetProperty
Message:
{ "Params": { "ObjectSearch": "DirectionalLight_1.LightComponent0", "PropertyPath": "Intensity", "Value": 50 } }
Get a property
Topic Type: Call
Method: GetProperty
Message:
{ "Params": { "ObjectSearch": "DirectionalLight_1.LightComponent0", "PropertyPath": "Intensity" } }
Call a function on an actor
Topic Type: Call
Method: CallFunction
Message:
{ "Params": { "ObjectSearch": "MyActor", "FunctionName": "Play", "FunctionArguments": {} } }
Get a Store value
GetStoreState.General.FrameRate{}Set a Store value
SetStoreState.General.<writable path>{ "Value": "yourValue" }$(pixotope:prop_<name>). Applies no styling.State.General.FrameRate).$(pixotope:connection_status) — Connected / Disconnected / Connecting.$(pixotope:gateway_url) — the resolved publish URL.$(pixotope:prop_<name>) — a property or Store value, kept live by a Watch feedback or set on
demand by Get Property. Module variables are global, so reference them from any button,
trigger, or text field. They are created at runtime (not predefined) and last for the session;
removing a Watch feedback removes its variable, and Clear stored property variables removes
them all.A button displaying a live property value via a watched variable:

null; double-check the path (see
Finding object and Store paths). The debug log shows … returned null when this happens.The Pixotope Gateway API is designed for trusted studio LANs and does not use API keys. Keep the Gateway on a protected network.