Is it possible to create a water part without a normal shape?

Hello everyone, so I want to make a water part, for example, a part that can fit in other shapes. like a water bottle that pours the water to another water bottle and filling the bottle’s shape.

I tried to think of ways to do this, but I have no idea how or where to start, is it even possible to create a part that changes shape to fit in other parts?

I looked for solutions in the developer hub, and on google and youtube, but I couldn’t find anything related.
Is there a way to do this? And if there is, what do I have to use to make it?

Thanks for who responds, I appreciate that a lot :slightly_smiling_face:

P.S: Is this the right category to write this topic?

1 Like

For complex shapes like a mesh or complex union, it’s gonna be a no.

If you want to create an effect of water spilling into a bottle you’d make a bottle with water in it first and have the bottle turn into that once you use water on it.

1 Like

What an interesting question!

I was so intrigued by this idea I decided to do some experiments.

Roblox has a voxel grid system you can use to find out where all the parts are, and voxel terrain that you can fill in one voxel at a time, which in theory makes doing something like this actually possible!

So my first experiment was using a grid, and FindPartInRegion3 to see if a grid point had any parts in it, and then if it was completely empty, I would spawn in a water voxel using

workspace.terrain:FillRegion(region, 4, Enum.Material.Water)

What I discovered was that it works pretty well for parts that are “axis aligned” like the block that I am standing on, but does not work well for parts that have been rotated.

There is also a resolution limit to this method of 4x4x4 studs.

1 Like

If you just want to flood fill in terrain, roblox also has a good example here:

1 Like

As a follow-up, if you want to use terrain water you can script it in like the previous replies or use the part to terrain plugin manually in Studio.

1 Like

Thank you all for replying :grinning: , I think I am going to try to use particles instead, I think it’s more simple because I want to do multiple things with it.

Just for reference, I figured out how to make it work properly with parts too.

You just have to use a proxy part and PartsTouching, but it works a treat!

3 Likes