Plug-ins | Unreal Engine
Installation
Please get in touch with our customer support team to get access to the latest version of the Unreal Engine plug-in.
For engine-wide installation:
Find the engine plugin’s marketplace folder. The full path of Unreal Engine 5.4 by default is:
C:\Program Files\Epic Games\UE_5.4\Engine\PluginsDownload the Twikit plugin, unzip it, and paste the resulting folder into the above Plugins folder.
You should now be able to activate the plugin using the Unreal Editor plugin manager in any project you open in the editor.
Finish setting up the plugin with the following steps:
In Edit > Project Settings, under “Default Modes”, make sure “Default GameMode” is set to TwikitGameMode. If you don’t do this then mouse interaction will not work.
In the content browser, under settings (top-right of the window) check “Show Plugin Content” and “Show Engine Content” (in case of engine-wide installation)
For a per-project installation, the steps are the same, except the plugin should be added to the project Plugins folder instead of the engine Plugins folder.
Usage
Under Plugins > Twikit Plugin C++ Classes > A_Twikit_Plugin > Public you’ll find TwikitActor. Drag this to the level.
Select the Actor (e.g. in the Outliner panel) if it’s not selected. Then in the properties panel find the “Twikit” section. Add a descriptor path and hit ENTER (or Reload Product). The descriptor should now be loaded.
To find a descriptor for a product, go to the preview page of the product. Open the browser console, in the network tab filter on “json”. You’ll see the view descriptor, it is e.g. https://cdn.twikit.com/projects/xx/products/xxxxxxxx/descriptors/xxxxxxxx.export.json. Right-click and copy as URL.
If you don’t see anything after the descriptor is loaded, try increasing the size of the loaded geometry, e.g. setting the Scale to e.g. 100. Do not use the UE built-in scale for this, use the scale property in the “Twikit” section, see below for more information.
The plugin prints logging info to the Output Log panel, you can check there for errors/warnings or simply more info
To see product properties, start the game (the play button at the top). Then fly to the product geometry and click on it. The properties should appear in the top-left corner. See the “Properties” section of this document for more info.
API
Twikit Actors have a (blueprint) API. The following methods are available:
Get Parameter Data
Set Float Parameter
Set Bool Parameter
Set String Parameter
Load Configuration
Save Configuration
There are also events:
On Product Loaded
On Product Synced
On Configuration Saved
Get Parameter Data
Example output:
"params": [
{
"visible": true,
"enabled": true,
"id": "Metal",
"param_type": "boolean-parameter",
"type": "bool",
"value": false
},
{
"visible": true,
"enabled": true,
"id": "Multiplier",
"param_type": "number",
"type": "float",
"value": 1
},
{
"visible": true,
"enabled": true,
"id": "Color",
"param_type": "text",
"type": "text",
"value": "ffffff"
},
{
"visible": true,
"enabled": true,
"id": "Texture",
"param_type": "enum",
"type": "enum",
"value": "Happy",
"choices": [
{
"id": "Happy",
"name": "Happy",
"value": "Happy",
"image": "",
"color": ""
},
{
"id": "Sad",
"name": "Sad",
"value": "Sad",
"image": "",
"color": ""
}
]
}
]
}
Note that GetParameterData
returns all options, even ones that are configured in the product to be invisible, e.g. a text input parameter when the mode for the product is set to using an image. This choice is made to avoid confusion because of a dynamically changing option list when interfacing with an actor. The visible
status of individual options can and will change when setting other actor parameters. It is up to implementations to properly handle this.
param_type
The type of the parameter. Important for e.g. images inputs: the type
there is string, the param_type
is colormap
, shape
or colorshape
, depending on the exact image input.
Images
colormap
This is basically an image. Supported formats are bmp and png. The value of a colormap
parameter is set as a string, with value the path to the image file. This can be a local image or an url.
shape
Same as colormap
, but for svg
images.
colorshape
A “colorshape” is actually the same image in svg and in bitmap form. Input for this can be generated using e.g. potrace. For now, the way to programatically set input is to set the following json blob as data:
{
"type": "csh",
"data": '{"width":500,"height":500,"base64":"<snip>","svg":"<snip>"}'
}
The images are embedded in the blob. base64
is a base64-encoded bmp i.e. every pixel listed as rgb8 triplet. svg
is the svg file data.
type
The type of the value of the parameter: text
, float
, bool
, enum
(see below)
enum
enum
parameters have choices
member that lists the possible choices. id
is the ID, name
is a human-readable name (note that these are currently always the same). value
is provided for completeness but isn’t currently used. If the option represents a color, color
will contain a 6-digit hex string.image
contains the URL to the option thumbnail, if available.
Set Parameter Data
For setting new parameter values you use one of the Set…Parameter
methods. Which one depends on the type
of the parameter, as seen in the above GetParameterData
output. One small gotcha: for list parameters the type is enum
, for setting the value you use SetStringParameter
. The value is the id
of the corresponding option you wish to activate.
The actor needs to be fully loaded to be able to interact with its parameters. If you want to query the parameter list on game start, then you should use the Product Loaded
event to wait with querying the list until the product data is in place:

On Product Loaded
Emitted when a new product is loaded. This is
On the initial product load
When a new configuration is loaded (and the LoadProduct option is true)
On Product Updated
Emitted whenever the product is updated. This is:
When the product is loaded (update is emitted before load)
When the product is updated following a parameter change
On Configuration Saved
Listen to this to know whether parameter saving works, and to get the resulting configuration ID
Misc
Compatibility
We provide plugin builds for the following Unreal Engine versions:
5.3.2
5.4.4
A built plugin is compatible with one of the above. Using the plugin with a different UE version will result in a warning on startup, “plugin incompatible, do you want to compile…”. Compilation will not work (we don’t provide a build-from-soures plugin) and the plugin will not load.
Scaling
The TwikitActor has its own scaling property. Use this to scale the model, don’t use unreal’s built-in scaling. If you do use built-in scaling, manipulating (e.g. moving) the actor becomes slow. There is also no way back, you need to delete and recreate the actor.
The underlying reason is that the actor uses procedural meshes. We’ve disabled undo information for these meshes in the actor, as they are slow. This works with moving the actor in the level, setting a scale however reactivates the undo information. The scale parameter we provide does not have this issue i.e. it allows scaling the actor whilst keeping it fast.
Properties
In game mode, properties (user inputs) for the selected TwikitActor are shown in the top-left corner. Only inputs that satisfy the following are shown:
ExternalId must be present
If there are parameter groups in the product, the property must be in a group
The property must be visible
Troubleshooting
I’m able to load the plugin, load actors, start a game, but the properties window isn’t showing
There are multiple possible causes:Try from a blank “architecture” or “automotive” project. The blank “game” project is known not to work, the player controller overrides the twikit player controller, preventing our actors from being selected.
Perhaps there are no properties, see the Properties section for the requirements.
When I open a project with the plugin, Unreal asks me to compile it
You are probably using the plugin with a version it wasn’t compiled for. Check that you are using the correct download for your version of Unreal Engine.