rdInst Tutorial 11.4 – VAT and Proxy Entities
Last Updated: 26th January 2026
Tutorial created using rdInst version 1.53
rdEntities supports swapping to Proxy Actors when close, or when an impact will happen on them – these can be have more functionality than the simple ECS StaticMeshes – full Animation and Logic for attacks etc. They can also fully support GAS and Ability System Components.
It’s pretty straight forward setting them up, they just need some properties set in the Entity Descriptor DataAssets, a rdECSsync Component to keep all the ECS side of things ticking along, and possibly some delegate Events to control anything when they swap between VATs and the Proxies.
This tutorial will expand on Tutorial 11.3, adding ProxyActors for the VAT Entities.
Step 1. Create Characters with CMC and Path Following for Manny and Quinn
The first thing to do is create some Character BPs for the Proxies, It’s good to have a Character BaseClass and subclass each NPC Proxy from that, so let’s start with creating a BP_BaseNPC Blueprint – Create it subclassed from Character. Add a cylinder component and shrink the height to make a visible platform (so we can see when they swap to proxies). Also add a rdECSsync Component – that handles syncing this proxy and it’s anims etc with the VAT version and entity grid data.

Click on the “Mesh” and set the Z Rotation (Yaw) to -90.
Set the Navigation settings in the Details panel as below:

Change the Optimization settings as below:

Now we need to add an AIController,
Right-Click in the ContentBrowser and select New Blueprint Class – choose “AI Controller” and the Base Class.

Call it something like “BP_NPCAIController”, open it and add a variable called “AttachedOwner” with a type of BP_BaseNPC reference. Add these nodes in the Event Graph:

Make sure the settings are as in the snap below (most default to these anyway):

Now Click on the Path Following Component and select “Crowd Following” for the class type in the details:

We want the NPC to chase the closest player, so add a new property to the BP (type Pawn) called “TargetActor” and add the following code to the BPs Tick Event:

We need to sync the anims when swapping between VATs and this, which can be done via it’s swap delegate:

Now create a new Animation Blueprint, call it ABP_NPC. The trick to getting performance for large numbers of Characters in a level is to keep the ABPs simple – the Animation Blends can be quite expensive, and it’s common to add quite a number of them, whether in the ABPs themselves or in montages and blend spaces, often a mixture of all of the above. In this tutorial, we have a Blend between Idle and Chase, so consider each Entity in it’s Actor state is doing at most 1 animation blend each frame (simple on purpose, most games will also have attack/hit react animations too).
Add a property called “pawn” of character BP class (BP_BaseNPC), in the InitializeAnimation event, set this property to our ABP owner.

Add an integer property called “NPCState” – this will control whether the NPC is Idle (0) or Chasing (1). Also add a float property called “GroundSpeed”. Now in the Threaded Update Animation event, add this code:

Now create a new StateMachine in the AnimGraph


Then create this code in the Animation State:

Make an Animation BP for each NPC and create Subclasses of this Base BP (BP_Manny and BP_Quinn), point them to their Skeletal Meshes and Animation Blueprints.
Step 2. Edit the Entity Descriptor Assets made in Tutorial 11.3
Open up the ED_Manny and ED_Quinn DataAssets we created in the previous tutorial – all we need to do is set the Proxy Class to the relevant Character BP (i.e. BP_Manny and BP_Quinn) and their proxy offsets.
The Character BP centers from the collision capsule, so we need to set a Z offset of 90 (half height). We also need to rotate it 90 degrees (the yaw).

There’s a few other options for proxies there too:
Proxy Remains Proxy can be used to swap to a proxy when close, but from then on, remain as the proxy.
Proxy Don’t Destroy Proxy is used to keep the proxy actor created a swap time (can be useful for when the actor (outer) is being used to identify the entity).
Step 3. Save and Spawn using the edited Entity Configurations
Now just save those files and use them on the spawn functions to enable proxy swapping.
Note that in the Spawn, you can manually specify a distance at which they swap – leaving that as “-1” uses the default distance (specified in rdInst Settings).