Blood Engine - A droplet emitter system

oh…
hmm, prob would need to modify the whole thing, to have another parameter that gets passed in , that then relates to a table index of different emmiter types…

And or perhaps copy the whole thing and name it BloodEngine_type_2, and call it , which has a different emitter type… that would be easy…

I tried modifying the whole thing but It’s really advanced and I couldn’t get it to work, but making 2 different modules sounds kinda wacky but it should work, thanks!

wacky work… depends on how many unique emitters you want… if you want more then a few, then it would prob be better to figure out modifying it or asking for a feature…

sounds like a good feature to me!

1 Like

My apologies for the delay. I’ve been busy on exams this week, but as of now, I’ve been gathering and thinking of ideas for the upcoming minor update. Here’s what I have planned:

  1. Emitters: I’m working on creating Emitters, they are distinct from the base module. These can be created using :CreateEmitter(). Each Emitterwill have its own EmitterSettings, allowing for greater flexibility and customization.

  2. Guides: A week ago, I started working on several guides, including ones on Ignore-Characters and Replication. These will provide detailed instructions and best practices for these features.

  3. DropletColor: I’m introducing a new feature, DropletColor, which controls the color of the droplets. This feature allows for real-time color changes and includes random values for easy customization.

In summary, the next minor release will include the following enhancements:

  • Multiple Emitters: You no longer need to create new instances of the module, (which leads to performance loss as it creates parts each time you create a new instance of it), to have multiple emitters with their own settings. Each emitter’s settings will be separate and will not interfere with each other.

  • DropletColor: This new setting enables dynamic color management of the emitted droplets, eliminating the need for manual adjustments outside of the module.

  • New Guides: In-depth guides on how to configure droplets to ignore Characters, as well as instructions for replicating droplets and pools across all clients, will be made available in the near future.

These features will be rolled out during my spare time.

2 Likes

So, the droplets will blend colors when they touch?

To clarify, I’m referring to the capability to alter the color of the droplets during emission or after they’ve transformed into pools without manually doing it outside of the module’s operation. This includes a smooth transition between colors, as well as an option to randomly select a color within a specified range.

I have zero coding knowledge, does anyone have a script they’re willing to share on how to make players bleed when they take damage?

You should learn coding, you are not going to be able to get anything done without knowing how to script, I suggest you search some resources to get started on luau.

1 Like

I am. I’ve only recently made an entrance into the coding scene, and I don’t particularly have a lot of time for dedicating to it. Most of my learning is also done with pre-existing/open-source scripts and reading documentation.

Hey, i have a idea for another feature “Mixed” its like Decals and normal Parts combined like in games “Blood Engine”, “RedBox” and other

I had intended to include that previously, but it slipped my mind. I appreciate your suggestion.

1 Like

how do i make this work when the player takes damage?

howd u get it to emit when damage is taken

Call it from your damage script

thats what im confused on, im not sure how

Looks really cool! Though I have a few questions.

So, I assume your system uses decals for the blood textures, right?

The thing is, decals generate lots of draw calls which is kiiind of slow when you have lots of blood.

Would you mind testing beams and see what the performance is when you have many of them?

I’ve wanted to test beams for a while myself to see if they’re more optimized as a replacement for many decals but haven’t gotten the time for it yet.

Beams really function kinda like decals, except they use attachments instead of being pasted onto a part and who knows maybe they’re rendered similarly to particles which could make them very light-weight if you wanted perma-blood.

1 Like

Just use HealthChanged.

local humanoid = character:WaitForChild("Humanoid")
local oldHealth = humanoid.Health

humanoid.HealthChanged:Connect(function(currentHealth)
      if currentHealth < oldHealth then
           oldHealth = currentHealth
           -- Emit the blood from here
      end
end)

You can emit blood from client, the script above is just an example.

2 Likes

Just to clear up any confusion, the system doesn’t actually use Decals. Instead, it utilizes SurfaceAppearance. I initially referred to it as ‘Decals’ because ‘SurfaceAppearance’ seemed a bit lengthy for an option, and Decals are more commonly recognized.

I’m assuming transparent images used on invisible meshparts?
Have you tested the performance with 2000+ splatters?

I’m actually curious to the performance difference between decals / surfaceappearance / beams.

The thing is that transparent objects tend to create lots of draw calls because Roblox doesn’t cluster them.
But since beams are (maybe) rendered the same way particle effects are, maybe they don’t create as much draw calls.

But that’s something I feel like no one has really tested out yet.

This module could be useful for my weather module, I’ve been wondering if I could use this module for customizable realistic rain splatter and particles.

It may be slow but I’ll test it out when I could.