Project: FluidSurface Plugin

In UE2 we had a simple but fun feature called a FluidSurfaceInfo. This was a small, simulated fluid surface that you could place in your level, and would respond to the player running through it and shooting it. It was requested that we bring back this feature in UE4. So I am posting the original source from UE2, if anyone is interested in porting it to UE4 as a plugin! I made a page on the wiki with the source code here:

This is a CPU implementation. In UE3 we had a more sophisticated GPU-based fluid surface implementation, but I don’t really know that code, and I thought this would be a simpler place to start. I would look at the CableComponent plugin to give an example of how to set up a plugin and render custom geometry each frame. This is not intended to be an ‘ocean surface’ feature, but something useful for small pools of water (or, you know, toxic acid, lava, the usual…). This is UE2 source, back when we had .uc files, so the first job will be turning those into UE4 decorated C++ headers.

I’m happy to try and answer any questions about here it here on the forums (if I can remember!) and I’m sorry for the lack of comments :(. If anyone makes some progress, please post your github branch here so others can check it out and contribute :slight_smile:

Just downloaded the code. Figured I would give it a shot as this would actually come in handy for my project. Will post if I have any breakthroughs.

I hope someone figures this out!

I do miss those fluid surfaces!

Thanks for bringing this up JamesG!



That was amazing time, I remember my first ‘OMG! AWESOME!’ reaction to UT2003 water. And then water splashes were attached in UT2004… Still one of my fav VFX out there. Thanks, JamesG!

I’ll also take a look at it, see what I can do. Thanks for posting it James.

Need it badly

As I’m the greatest Noob at the history of c++ xD

I need this integration badly …but how could I ? !!! :frowning:

I’ve started writing the plugin based on the code from above. The first iteration will be a complete CPU based solution based on the above. Then I will improve it from there.

EDIT: So far basic rendering of hex grid done.


Wow that was fast, nice work buddy.

Another update. Testing ripples.

More water rippling. Actor interaction.

Nice one! Looks good so far.

Wow that’s looking awesome. Can’t wait to see the whole thing.

You guyz need to hook up with these guyz: JBaldwin - UE4 Content Preview Thread - Work in Progress - Unreal Engine Forums

Wow, nice! Is your work on GitHub? Let me know if you’d like a review or anything.

Thanks James, not yet, just added oscillators and Hit/Touch effects. Just need to clean up the rendering code a bit then will upload to github

This is awesome work, very nice

You need to put this inside plugin folder and compile again? Thanks.

FluidSurface Plugin Release v0.0.1

FluidSurface Plugin Release v0.0.1

Okay so I am not used to using GitHub, so I have uploaded the source code for the plugin to my private fork. You’ll find it under the master branch in “Engine/Plugins/Runtime/FluidSurface/”. Link is The plugin contains the following:

  • CPU Based fluid simulation (Based on the UE2 code originally provided by JamesG) - Up to 255x255 grid, with variable spacing
  • Particle effects that play when surface receives damage or when overlapped by an actor supporting overlapping
  • Material Tessellation
  • A small Modifier framework (Can create new modifiers based off AFluidSurfaceModifier)
  • An oscillator modifier
  • An example rain effect modifier

There is still plenty of work to be done, so this is purely still an alpha test release, use at your own risk. For now you will have to compile your own version (I will provide precompiled binaries later when the plugin is more stable).

Here is a video that shows the features:

Now that the files are up on GitHub, feel free to review it, apologies in advance for the messy code.

1 Like

Nice work Ehamloptiran, that was really fast :slight_smile: Looking forward to what you’ll make out of it :slight_smile:

Niiiice! What a cool example of “the New Epic!” I can’t wait to see where all this goes :smiley: