rdInst Tutorial 11.9 – Storing Custom Properties in rdECS object types
Last Updated: 25th August 2026
Tutorial created using rdInst version 1.35
All Object types stored in rdECS BakedData is described in a string called a “sid”. Things such as the mesh name, materials, actor class, skeletal mesh name etc is stored in this sid.
To Store custom properties in Blueprints you’re wanting to add, it’s as simple as adding two functions to the BP – rdToString and rdFromString. In these functions you store your properties as strings, delimited with pipes |s.
This tutorial goes through and shows one of the BPs I had to add this to in my game. It’s a very nice Escalator blueprint from Fab, but it needs to store things such as direction, panel type etc.
Step 1. Open the Blueprint of the object you want stored properties on.
Either open it from the Content Browser or “Edit Blueprint” in the level outliner.

Step 2. Add a rdToString function.
Add the function and add a String output called “str”. Make sure “Call in Editor” is Ticked as it won’t work if it isn’t.
Build a String using AppendString, adding each of the properties you’re wanting stored followed by a pipe | string:
Note that if you run out of inputs on the AppendString node, just follow it with another, passing in the result of the first one.

Step 3. Add a rdFromString function.
Now add another function called “rdFromString” – this one should have a String input and no output. It should also have “Call in Editor” ticked.

Note that you can have a check to make sure the correct number of properties are stored, then convert each one from the string and set the properties from the results.
Step 3. Properties referencing level actors.
Sometimes you’ll want to have a BP reference other actors in the level. This can be done with rdSpawnActor entities by storing an ID for the object instance. For the restore, it’s queued up (if needed) until all actors have been spawned (including any that need to be streamed in first), then finds the actors level reference from that ID and assigns them. The IDs you use for your properties are isolated to that specific instance of your actor so you can freely use any number of the same BPs in your level.
This tutorial is going to save the load the actor references for an elevator system – the keypads, doors and elevators all reference each other.

So like the previous BP, we add a rdToString and rdFromString function to the BP, with “Call in Editor” ticked.
In the rdToString, for the actor references, use the “rdGetActorRefId” function in rdInstSubsystem to fill the property string values, use a unique ID on each of the properties (unique for this BP).

Then for the rdFromString, build it back, there’s no need to parse the reference items, before the rdFromString is called, the context is pre-built – so you can just call rdGetResolvedActorRef(Id) and set your references with the cast results :

Step 4. Done.
That’s all that needs to be done – now your custom properties will be saved with the rdECS data.