In short. Don’t use the water system.
Make your own.
For A bit more info.
Adding to the persistent is only applicable to non rendered actors.
Because if rendered, they will always be rendered when present in persistent.
Putting a water actor that renders water in persistent is an immediate red flag for performance.
Putting in an actor that handles water interaction but isn’t “always rendered” doesn’t affect performance.
Adding individualized actors to each level is always better.
This includes procedural foliage, RTs, and whatever other construct you can think of.
If the level isn’t there, why should the components that make up that level be loaded? They should not.
Why make your own?
Because the current system is a true mess. It’s not really thought for world comp, since they mentioned they want to remove world comp anyway.
Its basically unknown what they want to replace the system with, or when. And how much of the engine and old projects they will break.
Going by the overall company track record, forums fuckup included, we won’t be able to use the new engine version for a year or so until they actually solve the issues they created by removing functions.
So, if you want to get something done that will persist through engine versions, make your own.
Its pretty simple too at a base level.
You need a CPP class that allows for a blueprint function that returns the wave height at a specific location.
With that function, you can implement various ways to make characters/stuff “float”.
The same function you use in code is used in the shader to generate the graphics.
Thats the gist of it.
Interaction is done locally with flow maps and vector fields. Usually does not affect other things.
Last but not least. If you want something that’s a lot better than what you can cook, and a lot better than what the epic team has put together this far, BUT has completely ignored…
The engine for it is behind in version, but the effects it gives, and cost of rendering is a real benefit…
If you are making a surfing game or something that requires high complexity, its something to really consider despite being stuck to an older engine.