High performance water: Swimmable part 2.0

Honestly right now I don’t remember. I’ll have a look at the code and tell you when I have some spare time.

1 Like

I’ll have a look at this when I have the time

3 Likes

Aren’t you supposed to update the container for CollectionService on CollectionService tag added?

local function folderChanged() --if you want to update the water parts this tracks the change
	container = folder or game:GetService("CollectionService"):GetTagged(tag)
	zone = zonePlus.new(container)
end

if script.PartFolder.Value then
	container.ChildAdded:Connect(folderChanged)
	container.ChildRemoved:Connect(folderChanged)
else
	game:GetService("CollectionService"):GetInstanceAddedSignal(script.CollectionServiceTag.Value):Connect(folderChanged)
	game:GetService("CollectionService"):GetInstanceRemovedSignal(script.CollectionServiceTag.Value):Connect(folderChanged)
end

folderChanged() works both for the folder and collectionService

1 Like

I added this:

container = folder or game:GetService("CollectionService"):GetTagged(tag)

Inside the FolderChanged() function.

Shouldn’t that line also be added in your local script?

If someone doesn’t mind can they help me with this problem: How can I use parallel lua scripting to improve performance of terrain generation

Oh, I thought it was written like that on my script. I’ll change it. Thanks

2 Likes

Is there a way to let it work with mesh water that is client-side (duplicated from replicated storage to workspace on client-side)?
I have tried using tags and other ways but nothing worked.

The whole system is client sided meaning it should technically work

But it doesnt no matter what i did, but after having a good sleep ill try again

Thanks for the resource and tutorial!

Unfortunately, something prevents my character model from swimming - up, down, left or right. The jump mechanism is the only feature that works.

Here is an image of my character. Despite its unconventional design, it is fully rigged and is compatible with Roblox.

Here is a video of the issue:

What would be the issue here? I’ve tried changing CharDensity and CharDensityUp, but the problem hasn’t been fixed.

(Ignore the first person setting - I’ve toggled it on and off, and there’s been no change to the issue)

Are you sure its well optimized? I’m not sure if this is a problem on my end but I have a ocean with a ocean floor, and I added some terrain to the bottom of the ocean floor, along with some meshes like seaweed and kelp to make it more lively. As soon as the player jumps in the water, I get like 3 fps, and my screen shakes extremely. I have 110 seaweed meshes and 100 kelp meshes. I know thats alot, but my PC shouldn’t be getting 3 fps when it tries rendering that. The meshes are very low poly, and have no textures, and I know its not the meshes fault because I made the seaweed and kelp meshes above the water and roblox had no problem rendering those. I also have about 30 grass meshes above the ocean on my water, and they have no issue rendering. To test, I removed the kelp meshes and reduced the amount of seaweed to 30 meshes, and made them the same texture. I still went from like 120 fps outside the water and like 10 inside the water. If you want to test this out yourself just make a big water part and add like 50 meshes deep inside of the part, and also, the reason for it being laggy isnt related to the underwater lighting, because I disabled that too and it made no difference.

Video of the issue

So it seems that the issue was on my part, because my water was 2048 x 2048, which was too much for the game to handle I guess. Sadly, you can’t make large oceans using this water system, but making my water 1024 x 1024 made it way smoother.

Hi are you able to share the float update?

Hi, I released a module to make your parts float in this water: Simple Floating Module

1 Like

If there are lag issues it’s probably related to the zone+ module I use to detect contact witht the water. Unfortunately I can’t do anything about that.

1 Like

hello, is it possible to make custom swimming animations for r6 with this script?

No, but you can make your own by checking if the humanoid state is swimming and then applying the animation.

Doing this might be better tho:

1 Like

It actually is possible I did it for my game, you have to make ur game R15 to copy the animate script and then copy the chunk of code for swimming animations in R15 animate and add it into the R6 animate script. And copy the part where you put the swim anim ids and some other stuff, pretty easy.

1 Like