Unreal Engine

Updated October 2026

Describes how to install and configure the DousenUE plugin, how published assets are imported into Unreal Engine, and how to open an asset’s source file from the Content Browser. Supported engine versions: Unreal Engine 5.7 and 5.8.

Install the plugin

  1. In DousenDesktop, open Settings → Unreal. Under Project (Global Fallback), set the path to your .uproject file. An entry for the project on the Projects tab overrides this path.
  2. Under Install Plugin, click Install into .uproject. Desktop copies the bundled DousenUE plugin into the project’s Plugins folder. You can also copy the DousenUE folder into Plugins yourself.
  3. Open the project in Unreal Editor. If DousenUE isn’t enabled, enable it in the Plugins window and restart the editor when prompted.

DousenUE needs the PythonScriptPlugin and Interchange plugins, and Unreal enables them with it. If you build the plugin from source, build it for your project’s engine version. Use the plugin from the DousenDesktop version you run, and try a new version in a test project first.

Configure the plugin

The plugin reads its settings from the [/Script/DousenUE.DousenProjectSettings] section. Its defaults are in the plugin’s own Config/BaseDousenUE.ini. To override them, create Config/DefaultDousenUE.ini in the Unreal project with the keys you want to change. Commit the file to source control so everyone on the project gets the same values. It holds no credentials.

INI[/Script/DousenUE.DousenProjectSettings]
ServerScheme=https
ServerHost=core.example.com
ProjectId=YOUR_PROJECT_UUID
BridgeRelayHost=localhost
BridgeRelayPort=8766
bAutoReimportOnBridgeEvent=true
bUseDousenImportPipeline=true
bRefreshConventionsOnReimport=false

Replace the host and the UUID with your own. For development against a DousenCore on your own machine, use ServerScheme=http and ServerHost=localhost:8080.

KeyDefaultWhat it does
ServerScheme https The scheme of the DousenCore URL. The plugin refuses http unless ServerHost is localhost, an address that starts with 127., or ::1.
ServerHost localhost:8080 The host and port of DousenCore, without the scheme.
ProjectId empty The DousenCore project UUID. Without it, the plugin doesn’t fetch conventions or report the material catalog.
BridgeRelayHost localhost The host of DousenDesktop’s bridge: localhost, 127.0.0.1 or ::1. For any other value, the plugin logs “The RPyC bridge requires a loopback host” and doesn’t connect. Desktop runs on the same machine as the editor, so keep this value even when ServerHost points at a remote server.
BridgeRelayPort 8766 The port of DousenDesktop’s bridge. It must match the bridge port in Desktop’s settings.
bAutoReimportOnBridgeEvent true Lets the open editor import and reimport published assets. If it is false, the plugin refuses the imports that Desktop sends to the editor.
bUseDousenImportPipeline true Imports every Dousen asset with a Dousen Interchange pipeline, so the import settings don’t depend on the project’s default pipeline stack. Set it to false to use the project’s own Interchange configuration.
bRefreshConventionsOnReimport false Keeps the conventions that were stored with an asset when you reimport it. Set it to true to refresh them from the project’s current conventions. Existing asset names never change.
MaterialCatalog not set The path of the material catalog Data Asset, which must be in your project’s /Game content. See Material catalog and texture assignments.

Environment variables on the editor process override the INI. DOUSEN_CORE_URL overrides ServerScheme and ServerHost, DOUSEN_PROJECT_ID overrides ProjectId, and DOUSEN_BRIDGE_PORT overrides BridgeRelayPort.

The plugin signs its DousenCore requests with the access token that Desktop writes next to bridge.token when you sign in. Sign in to Desktop first. If ServerScheme and ServerHost don’t match the server that Desktop is signed in to, the plugin sends its requests without credentials.

Check your first editor session

  1. Start DousenDesktop, sign in, and select the project and task.
  2. Start Unreal Editor with the project. In Desktop’s Publish history tab, check that Unreal appears under Connected apps. If it doesn’t, see Troubleshooting.
  3. From a DCC, publish one small instance that has a valid type and tags. In Desktop, wait for Imported and saved in Unreal, and then find the asset in the expected Content Browser folder.
  4. If the project uses catalog materials, complete Create the catalog in Unreal first. Then publish an instance with a material assignment, and check the imported Material Instance.
  5. Right-click the imported asset and choose Open in DCC. Check that the source file opens in the DCC you expect.

How the plugin connects

The plugin calls DousenCore over HTTP for your project’s conventions and the material catalog. For publishes and task context, it connects to the DousenDesktop bridge on the same machine, port 8766 by default. When the editor starts, the plugin registers with the bridge as unreal, and then again every 30 seconds. The registration includes a second port on 127.0.0.1 that Desktop uses to send imports to the open editor. See Bridge API.

Publish and import

When you publish an instance from a DCC, Desktop records it in Publish history and sends the import to the project set in Settings → Unreal. If an editor is open, Desktop checks that it has that project open and sends the import to it. Otherwise, Desktop imports the asset in the background if headless import is on.

Dousen works out the asset’s name and folder from your project conventions, imports or reimports the asset, applies the materials, and saves the packages. Desktop shows Imported and saved in Unreal only after the packages are saved. To decide whether to retry, see Follow a publish in Publish history.

Reimport and Interchange

Dousen imports with Unreal’s Interchange framework. When you publish an instance again, the meshes and animations that already exist in Unreal reimport and keep their asset paths. Meshes that you add to the source scene wait for your approval, and meshes that you remove stay in the project.

To review and approve these changes, right-click an imported mesh in the Content Browser and choose Review instance topology. The menu item appears only for static and skeletal meshes that Dousen imported, and only when bUseDousenImportPipeline is on. For the review steps, geometry profiles and project import stacks, see Unreal Interchange.

Import profiles come from the project conventions that the plugin fetches from DousenCore, so they need a current DousenCore. Self-hosted studios must update Core to use them.

Naming and destination

Dousen builds an asset’s name and Content Browser folder from the asset type and tags in the published event, using your project’s naming conventions. The plugin fetches the conventions from DousenCore for the project in ProjectId and refreshes them every 5 minutes. Without conventions, the plugin can’t import a new asset, and reports “Project conventions unavailable; fetch conventions before importing new assets”.

Before it creates an asset, Dousen checks the required tag dimensions, the allowed values, the taxonomy, the package name and whether the asset already exists. A later reimport doesn’t rename the asset, even if you change the naming rules.

Material catalog and texture assignments

The material catalog lists the materials that artists can assign to a mesh in a DCC. Screenshots on this page use a sample project.

Admins: create a Dousen Material Catalog Data Asset in the project’s content, and set MaterialCatalog in Config/DefaultDousenUE.ini to its path. Saving the asset while you are signed in to Desktop as an admin reports the catalog to DousenCore. The portal shows the report, read-only, under Projects → your project → Materials.

Unreal Data Asset editor for a Dousen Material Catalog. One material, Harbor Coated Metal, has an ID, a material, the Allow Nanite option checked, and texture slots, scalar parameters and vector parameters.
A material catalog Data Asset with one entry.

Artists: in the DCC, load the catalog, choose a material for each mesh slot or texture set, set its textures, and publish the instance.

Material picker in a DCC. The CrateBody and MetalBands slots both use Painted Metal. CrateBody has BaseColor, Normal and ORM texture paths and a roughness multiplier of 0.6.
The material picker in a DCC assigns Painted Metal to both slots of a crate.

On import, Dousen applies the assignments to each mesh and binds the textures into the matching slots of its material instances. On static meshes, it also sets Nanite from the catalog’s Allow Nanite values. For the full rules and the setup steps, see Materials and textures.

Open the source file in a DCC

  1. In Desktop, select the task you published the asset under. The plugin takes the Jira key from that task.
  2. In the Content Browser, right-click a static mesh, skeletal mesh or texture, choose Open in DCC, and pick an application.

Desktop finds the source file from the project, the Jira key and the asset name. If needed, it syncs the file from Perforce or reads it from a configured cloud folder. Then it launches the DCC.

The menu lists the apps in Desktop’s app list and the apps registered over the bridge. It refreshes every 60 seconds, so it can take up to a minute to update after you start Desktop. If it has no apps, the entry reads Open in DCC (no DCCs registered) and is disabled. Start Desktop and check that Settings → DCC Apps lists your DCCs.

Metadata and search

Dousen stamps metadata on each imported asset. Convention tags are stored as Dousen.Convention.<key>, computer-vision tags as dousen_cv_*, and, when the event carries them, the published source as Dousen.PublishedDepotPath and Dousen.PublishedRole. To list an asset’s dousen_* metadata, such as its computer-vision tags, right-click a static mesh, skeletal mesh or texture and choose Show Dousen Tags.

To find assets by tag, go to the Tag Search section of the Dousen tab, enter tag keys and values, and click Search. The Content Browser shows the matching assets. You can search these computer-vision tags: dousen_cv_object_class, dousen_cv_poly_tier, dousen_cv_has_uvs, dousen_cv_is_skinned and dousen_cv_style_hint. Dousen sets only dousen_cv_poly_tier, dousen_cv_has_uvs, and dousen_cv_is_skinned, so dousen_cv_object_class and dousen_cv_style_hint match only tags that you add yourself.

Import when the editor is closed

In Desktop, open Settings → Unreal. Under Headless Import (UE Closed), select Auto-import via UnrealEditor-Cmd when UE is not running and set the path to UnrealEditor-Cmd. When no editor is open, Desktop then imports published assets in the background.

Desktop confirms a headless import only when it receives a valid receipt. If the receipt is missing or invalid, or the editor crashes or can’t save, Publish history shows the publish as failed or unconfirmed. Check the destination before you retry.

Troubleshooting

ProblemWhat to check
Unreal isn’t connected The plugin is enabled, BridgeRelayHost is localhost, 127.0.0.1 or ::1, BridgeRelayPort matches Desktop’s bridge port, and Desktop is running. Then check Desktop’s Logs tab.
A new import is rejected The plugin has the project’s conventions (ProjectId is set and the server is reachable), the asset type and tags are valid, and the name and folder don’t collide with an existing asset.
A mesh you added doesn’t appear A reimport doesn’t import new meshes. Use Review instance topology on an imported mesh.
The asset was imported, but the publish isn’t confirmed In Unreal, check that the asset and its packages were saved, and read the result in Publish history. Don’t retry until you know what was imported.
Open in DCC opens nothing Desktop’s Logs tab gives the reason. Common causes are no selected task, a source file that isn’t on disk, or a DCC that isn’t in Settings → DCC Apps. The asset path in Unreal isn’t the source file’s name, so don’t search the disk for it.
An animation uses the wrong skeleton Unreal uses the skeleton the event names. Without one, it follows the rig that the animation references, and then looks in the destination folder. See Export events from DCCs.
A large source file freezes the editor Part of the import and the save run on the editor’s game thread, so a large file can make the editor unresponsive.

For more help, see Interchange troubleshooting and Recover from a failed publish.