Question: If I have a level instance of a camp with multiple data layers (fresh, occupied, destroyed), that will be used multiple times in the map/world , how can I load a camp’s (level instance’s) destroyed data layer, without changing every other camps data layer to destroyed.
From what I can tell, a level instance’s data layer will not be present unless the world has that data layer. And getting the data layer subsystem is a single action for the whole world, with one singular instance runtime state.
GOAL: One World Partition Level with multiple Level Instances
Camp 1 → Data Layers
Fresh (Activated)
Occupied (Unloaded)
Destroyed (Unloaded)
Camp 2 → Data Layers
Fresh (Activated)
Occupied (Activated)
Destroyed (Unloaded)
Camp 3 → Data Layers
Fresh (Unloaded)
Occupied (Unloaded)
Destroyed (Activated)
Hi DoctorBrowne,
I haven’t used data layers but the documentation mentions data layer instances - perhaps using instances would help?
If you run into more problems, I have another approach that you may find even more optimal.
I have a tool called rdBPtools - you create assemblies/prefabs with it - but it also has the ability to have “themes” - every object in your assembly can optionally be given a comma separated list of themes in which it shows. Setting the theme variable in the blueprint instance (can have any number of different ones each level) then just shows the objects that either specifically have the theme listed, and objects with no themes set.
Ya, I currently use instances to differentiate types of camps. I would like to have the data layers correspond to the state. But I see what you mean, Instance Camp A New, Instance Camp A Occupied, etc.
In that way I could load and unload the states similar to level streaming.
From my understanding, if you stream a level in to a world partition map, the corresponding actors are not loaded/unloaded with the partition squares. Is that wrong? If so, this would not be a viable solution as the camps are very large (think mini-levels) in an open world area.
Having looked into this more, it appears that data layers are singular, and inherit upwards. thus to accomplish what I’m looking for a need Camp A_0 New, Camp A_0 Occupied, Camp A_1 New, etc along with a copied level instance where I exchange the data asset from Camp A_0 to Camp A_1 with replicated assets for the total amount of unique instances I plan on spawning on one map. Then the main map needs all of of those data layers present (A_TotalPossible# to A_TotalPossible# + B_TotalPoosible#, etc) so that I can target a camp by specifying that camps data layer.
This of course creates a lot of copy pasta work.
As instead of one instance with multiple data layers, I have multiple copy pasted level instances with only their data asset changed.
In doing this copy pasta work, I also noticed InstancedFiolageActors can not be reassigned to different Data Layers “Selection contains non-user managed actors.” Only able to be assigned when created to the selected data layer active.