Warning: This video is out of date. If you are looking to learn how to create and use Data Layers, the process has changed. In short, you must create a Data Layer Assets (under the "miscellaneous" category), and then assign that layer to your level via the Data Layers window. If you create the Data Layer first you can assign it to the Data Layer asset you created. The rest of the above video works as described.
Hi Ryan, Thanks for this video, this solves my problems, however I have an issue: The option to "add to new data layer" is grayed out. What should I do? I am in UE 5.21, following your instructions at 2:20 in of the video After I select actors, I hover mouse to the data layer window area and right click. The option to "add to new data layer" is grayed out. What should I do?
Found a solution to this in a comment. Make a Data Layer asset (found in the miscellaneous tab when creating a new asset). You'll need one for each layer you want to use. You can create a new Data Layer in the Data Layers window, but you can't rename it or use it until you assign a Data Layer asset. Once you create one, select the layer, then drop the asset into the slot and you're good to go!
This is so simple and brilliant. This was the missing key to make my procedurally spawned outposts work. With a simple Select node or a random float which ties into something similar, i can now simply activate randomly selected datalayers representing entire outposts on a moon's terrain. Brilliant.
I know this video has lads of comments, but anybody figured out how we can "hold" vars when inloading and reloading a Datalayer? Like when you set a Bool on an interaction, but when you unload and reload the Datalayer the var is empty again. Any tips?
Yeah I noticed this. You have to create a data layer data table, but it prompts you to do so. Then open that and change to run time, then the advanced option appears.
This looks super useful for horror games, where you enter a room but when you turn around the room changed. At least with this feature it is much more simplified.
Yeah I can imagine player walks in a hidden trigger box, a glass smashes behind them, they turn around and the door they came in through is now dirty looking corridor. Definitely good for some psychological horror aspects.
@RyanLaley Looking for ways to modifier my level; Im thinking Data layers is the right track or direction but; let's say, I have a day/night cycle; can I use Data Layers to do things like; modify enemy health, or DMG; when the environment is in a particular state? Day enemy health normal, Night cycle enemy health increased? Hopefully that made sense. If anyone in the comments ahs ideas i would love to hear them.
For anyone finding this comment later. Yes we can. Once you have made a data layer, double click it in the datalayer tab and it will say (Current). Everything you do whilst your data layer is set to current will only apply to that data layer. Including foliage. Hope this helps someone
I know this might be a dumb question but, if I had an area that isn’t loaded until you were to actually go to that area and it unloads whenever you leave is it for per player or just everyone? So if someone enters the room does it load for everyone or just one person?
Hi, i implemented this and it worked great... until i cant spawn without a selected pawn and when I reach a certain distance it just stops and ditches the pawn
Do data layers only work with data layer assets? I was trying to organize my level using the regular layers at first, but ran into a world partition issue. I guess when using WP, you cant use layers, or something like that. Which led me to looking up data layers. I was trying to add stuff to a data layer, but it only added once i went into the "Details" panel and toggled with the "Data layer asset' settings. Is that really the only way to use data layers, having to convert all my assets to data layer assets, or am I missing something...?
"Data layers are like level system, so if you know how to do that then its very similar." Doesn't really help those that don't know how to use level system since new to UE.
Anyone know anything about what the debug colour is used for? I can't t find and docs about it and it sounds cool - if it does what i think it might...
how to load a new map in a new way? and another question: when I select an object and try to create a data layer, it’s not active for me. I can only create a new empty layer. - ue5.3
I can't seem to find it, but how do we check if a data layer is fully loaded. The get data layer runtime state and effective state nodes tell me it's loaded right after it's done in the execution. But i can see that the data layer isn't fully loaded. Is there a node or a way for me to check that?
When we have a data layer group containing let's say for example three sub data layers, is it possible to edit them all together in the same time? (in order to edit other sub data layer it's pretty annoying that first you have to exit from editing on sub data layer in order to be able to edit another one)
As someone who works on audio, this is really helpful. It’s been a bit weird trying to adapt to not having sublevels. Great to know there is an analog to it available in UE5 world partition. Thanks!
I'm making a game where you help people and the more you help the bigger their village gets. This seems like a solution for the way I can handle adding in building over time. Thank you.
Lets say I'll make a huge open world map. Can I use this for optimizing my map/game/level? From my understand I could but I am not to sure if that's truly it's purpose :3
It doesn't really optimize if your goal is just to keep distance objects unloaded. World partitions are already designed with dynamic loading and unloading in mind, so no matter how big your map is if you have it broken into partitions it will stay performant. What data layers are used for is real-time changes to your map, such as removing a town and replacing it with a destroyed one if you fail a quest, or having an "upside down" or alternate dimension version of the same map you want to swap between. Rather than writing your own methods to remove and replace objects, terrain, and other aspects of a large open-world level, data layers utilizes the existing level streaming system to stream out and in these changes rather than streaming out and in distant objects, so you save a ton of development time and performance by using them instead of manual alterations to your game world. Basically, any time that you would want to make changes to groups of objects in an existing map, rather than load and unload them by using tags or another data structure just save them in a data layer and stream them in and out. You'll save time and performance. But if your goal is just to unload distance objects you'll want to mess with the world partition and nanite settings, not data layers, as those are already designed with abstracting and unloading distant geometry in mind.
Where did you learn about data layers?! 😉 awesome channel Ryan! Super grateful I got to meet you! Looking forward to seeing you at another event soon! Cheers man!🤟
Hey Ryan! Thank you for the video. Question: My project is currently split into sublevels. Do I have to merge all subs into persistant level and then convert to world partition? Thank you.
I engourage u to keep this format of one video topic coverage. Since u take a lot of time on releasing chapters for ur series I miss the thread and the interest on the series because I can't follow it well. First time watching one of ur videos in a long time due to that. Btw ty for this great video.
Can we add tags to datalayer, so we can for example select all other "interior" tag and disable them when we are inside a specific interior and don't want other layers loaded?
It's not covered in this tutorial, but it's a setting on the actor's detail properties under 'Is spatially loaded' if true it'll load based on the streaming source range in the world partition
what is the difference between" loaded " and " activated ", I didn't quite understand the difference? also, how can we access this feature through C++ ( since I've just started working with C++ inside UE5 I don't know much about how to do things that I usually do with BPs in C++ ) thanks for great tutorials
not sure but loaded means that the objects get loaded but not visible, which may get them displayed faster because it is already in memory, unloaded should take longer but can make the games performance better until you load it in. again not sure but this is how i understood it
Warning: This video is out of date. If you are looking to learn how to create and use Data Layers, the process has changed.
In short, you must create a Data Layer Assets (under the "miscellaneous" category), and then assign that layer to your level via the Data Layers window. If you create the Data Layer first you can assign it to the Data Layer asset you created. The rest of the above video works as described.
Hi Ryan, Thanks for this video, this solves my problems, however I have an issue: The option to "add to new data layer" is grayed out. What should I do?
I am in UE 5.21, following your instructions at 2:20 in of the video
After I select actors, I hover mouse to the data layer window area and right click.
The option to "add to new data layer" is grayed out.
What should I do?
I have the same issue on my side.
Found a solution to this in a comment. Make a Data Layer asset (found in the miscellaneous tab when creating a new asset). You'll need one for each layer you want to use. You can create a new Data Layer in the Data Layers window, but you can't rename it or use it until you assign a Data Layer asset. Once you create one, select the layer, then drop the asset into the slot and you're good to go!
If anyone comes across this in the future: You can't add things like foliage scatter actors to the layers, that solved the issue for me@@mattreevesdev
Such a calming and informative teacher. Thank you.
I wish I had a guy like you in my dev life. Thanks for all your videos!
This is so simple and brilliant.
This was the missing key to make my procedurally spawned outposts work.
With a simple Select node or a random float which ties into something similar, i can now simply activate randomly selected datalayers representing entire outposts on a moon's terrain. Brilliant.
can you spawn / move them at runtime or is it fixed in the location you placed it when creating the level?
I know this video has lads of comments, but anybody figured out how we can "hold" vars when inloading and reloading a Datalayer? Like when you set a Bool on an interaction, but when you unload and reload the Datalayer the var is empty again. Any tips?
Maybe saving before unloading (save/load class)
This change a bit in 5.1, one more step , still easy to do.
Yeah I noticed this. You have to create a data layer data table, but it prompts you to do so. Then open that and change to run time, then the advanced option appears.
careful data layer not working in 5.2
This looks super useful for horror games, where you enter a room but when you turn around the room changed. At least with this feature it is much more simplified.
Yeah I can imagine player walks in a hidden trigger box, a glass smashes behind them, they turn around and the door they came in through is now dirty looking corridor. Definitely good for some psychological horror aspects.
Cool
am wondering can I use a collision trigger to activate it
First thing I thought of when first hearing about data layers :D Indeed very horror compatible.
@RyanLaley Looking for ways to modifier my level; Im thinking Data layers is the right track or direction but; let's say, I have a day/night cycle; can I use Data Layers to do things like; modify enemy health, or DMG; when the environment is in a particular state? Day enemy health normal, Night cycle enemy health increased? Hopefully that made sense. If anyone in the comments ahs ideas i would love to hear them.
Hi Ryan, how do you manage with data layers on multiplayer games?... Data layers are authority only, only runs on server
How can I make specific actor persistent always no matter how far loading and unloading is
Can we get Foliage to work with Data layers?
For anyone finding this comment later.
Yes we can. Once you have made a data layer, double click it in the datalayer tab and it will say (Current).
Everything you do whilst your data layer is set to current will only apply to that data layer. Including foliage. Hope this helps someone
I know this might be a dumb question but, if I had an area that isn’t loaded until you were to actually go to that area and it unloads whenever you leave is it for per player or just everyone? So if someone enters the room does it load for everyone or just one person?
Hi, i implemented this and it worked great... until i cant spawn without a selected pawn and when I reach a certain distance it just stops and ditches the pawn
Do data layers only work with data layer assets? I was trying to organize my level using the regular layers at first, but ran into a world partition issue. I guess when using WP, you cant use layers, or something like that. Which led me to looking up data layers. I was trying to add stuff to a data layer, but it only added once i went into the "Details" panel and toggled with the "Data layer asset' settings. Is that really the only way to use data layers, having to convert all my assets to data layer assets, or am I missing something...?
What about loading in when a WP cell loads in?😊
Great video, thank you!
I live for your tutorials, it's like learning from the absolute master
"Data layers are like level system, so if you know how to do that then its very similar." Doesn't really help those that don't know how to use level system since new to UE.
Anyone know anything about what the debug colour is used for? I can't
t find and docs about it and it sounds cool - if it does what i think it might...
how to load a new map in a new way? and another question: when I select an object and try to create a data layer, it’s not active for me. I can only create a new empty layer. - ue5.3
So what's the difference between putting the 2 airships in the same data layer, and parenting them to the same folder in the level outliner?
I can't seem to find it, but how do we check if a data layer is fully loaded. The get data layer runtime state and effective state nodes tell me it's loaded right after it's done in the execution. But i can see that the data layer isn't fully loaded. Is there a node or a way for me to check that?
When we have a data layer group containing let's say for example three sub data layers, is it possible to edit them all together in the same time? (in order to edit other sub data layer it's pretty annoying that first you have to exit from editing on sub data layer in order to be able to edit another one)
As someone who works on audio, this is really helpful. It’s been a bit weird trying to adapt to not having sublevels. Great to know there is an analog to it available in UE5 world partition. Thanks!
great! is it possible to make this with a boton i mean activate /show layers with botton
how to make it so that the actor is not unloaded in a better way and so that it can be seen from afar
Can it be used in mobile game development
I'm making a game where you help people and the more you help the bigger their village gets. This seems like a solution for the way I can handle adding in building over time. Thank you.
Thanks! Any chance to see a tutorial on the HLOD Layer system?
Lets say I'll make a huge open world map. Can I use this for optimizing my map/game/level? From my understand I could but I am not to sure if that's truly it's purpose :3
It doesn't really optimize if your goal is just to keep distance objects unloaded. World partitions are already designed with dynamic loading and unloading in mind, so no matter how big your map is if you have it broken into partitions it will stay performant. What data layers are used for is real-time changes to your map, such as removing a town and replacing it with a destroyed one if you fail a quest, or having an "upside down" or alternate dimension version of the same map you want to swap between. Rather than writing your own methods to remove and replace objects, terrain, and other aspects of a large open-world level, data layers utilizes the existing level streaming system to stream out and in these changes rather than streaming out and in distant objects, so you save a ton of development time and performance by using them instead of manual alterations to your game world.
Basically, any time that you would want to make changes to groups of objects in an existing map, rather than load and unload them by using tags or another data structure just save them in a data layer and stream them in and out. You'll save time and performance. But if your goal is just to unload distance objects you'll want to mess with the world partition and nanite settings, not data layers, as those are already designed with abstracting and unloading distant geometry in mind.
@@hunteriv4869 Oh ok, that makes a lot of sense since I knew there was world partitions alrdy. Ok, thanks a lot for this detailed explanation!
Where did you learn about data layers?! 😉 awesome channel Ryan! Super grateful I got to meet you! Looking forward to seeing you at another event soon! Cheers man!🤟
Data Layers crash with Foliage.
Thanks for the video.
.....Well, i Found the solution : )
Cheers.-
RUclips gold ✨
Not working in 5.1 :) , please make us an updated tutorial , pretty please!
Hey Ryan! Thank you for the video. Question: My project is currently split into sublevels. Do I have to merge all subs into persistant level and then convert to world partition? Thank you.
Can you make a tutorial on how to make a game that switches planets using data layers? Like star citizen
Great vid, I thought I was doing it wrong, but I forgot to re-set the data layer for my variables after moving stuff around.
I don't really know what you've been doing on the video, but for sure im saving this on my UE5 playlist :)
Thanks for the video! I like this kind of format.
I've been following your tutorials for ages and this is the first time i actually saw you and i gotta say you sound way younger than you are.
I engourage u to keep this format of one video topic coverage. Since u take a lot of time on releasing chapters for ur series I miss the thread and the interest on the series because I can't follow it well. First time watching one of ur videos in a long time due to that.
Btw ty for this great video.
Can we add tags to datalayer, so we can for example select all other "interior" tag and disable them when we are inside a specific interior and don't want other layers loaded?
thank u :)
is this what is used to load and unload things at distances?
It's not covered in this tutorial, but it's a setting on the actor's detail properties under 'Is spatially loaded' if true it'll load based on the streaming source range in the world partition
Thank You
what is the difference between" loaded " and " activated ", I didn't quite understand the difference?
also, how can we access this feature through C++ ( since I've just started working with C++ inside UE5 I don't know much about how to do things that I usually do with BPs in C++ )
thanks for great tutorials
not sure but loaded means that the objects get loaded but not visible, which may get them displayed faster because it is already in memory, unloaded should take longer but can make the games performance better until you load it in. again not sure but this is how i understood it
@@rageinthecage3900 thanks for enlightening me
@@punchline1729 hehe, better than nothing right? sry
@@rageinthecage3900 all good
@@punchline1729 probably you are beyond this right now, things move fast in gamedev-world ;D