Blood Engine - A droplet emitter system

just doesnt work and hes a red line under it in the sscript

I need an SS of the issue to solve it, this issue doesn’t appear up for me and not knowing what the issue is makes things harder to solve.

I found what the issue is, and it’ll be fixed in the next update along with some new improvements and fixes.

Also can you make a filter where you can ignore players characters? because I did it and it works but the blood splats doesnt ignore and welds the splats to the HumanoidRootPart

1 Like

I 100% gonna use this for a shower

1 Like

yeah, this is the small problem I am experiencing right now I added the local player to the filter list however if I try to do it for all the local players it just won’t work for some reason and won’t blacklist them, so this would be greatly appreciated if it was added.

1 Like

Blood Engine • V0.0.6



↳ General Changes

Accurate Raycasting: Implemented accurate raycasting using FastCast for improved precision.

Splash Effects: Introduced splash/impact effects to enhance visuals, includes the SplashAmount option, which manages how many particles to emit.

Ignore Players: Added the ability for the droplets to ignore players with the IgnorePlayers option, prevents any interaction between them.

Removal of Features: Temporarily removed the PoolExpansion feature. It is planned to be reintroduced in a future update following a rewrite to clean things up.

↳ Other Notes

The system’s feature set has grown unexpectedly, leading to cluttered and sorta hard-to-read code. A module rewrite is planned, including a complete rewrite of this post.

4 Likes

Thank you so much, this is a lifesaver.

2 Likes

Blood Engine • v1.0


↳ General Changes

Comprehensive Rewrite: The module has undergone a complete rewrite, enhancing its readability and ease of modification. This overhaul also improves the organization of the code, making it easier to locate specific elements.

Pool Expansion: Reintroducing the Pool Expansion feature, now enhanced with effects and new options such as:

  • Expansion: A toggle switch for this feature.
  • Distance: Defines the distance (in studs) within which a droplet should check for nearby pools.
  • ExpanseDivider: Controls the rate of pool size increase. Higher values result in a slower increase.
  • MaximumSize: Sets the maximum size a pool can reach.

Ignore Players: The IgnorePlayers option has been permanently removed. However, a guide on how to make droplets ignore players will be released in the future.

Splashing: Expanded the options for the splashing feature, providing more customization possibilities:

  • SplashName: The name of the attachment that releases particles on surface contact.
  • SplashByVelocity: If true, sets the number of particles based on the velocity of the droplet.
  • VelocityDivider: Controls the extent to which velocity can influence the splash amount. Higher values will lessen the effect.

Additional Options: Added and revamped several options to provide you with more control over the appearance of the droplets, pools and effects, as well as the functionality of the module:

  • FolderName: Specifies the name of the folder containing the droplets.
  • Type: Defines the droplet type. It can be either “Default” (Sphere) or “Decal”.
  • DefaultTransparency: Specifies the default transparency range of a pool.
  • Trail: Controls the visibility of the trail during droplet emission.
  • StartingSize: Sets the initial size of the droplets upon landing.
  • ScaleDown: Determines whether the pool should scale down when decaying.
  • OffsetRange: Specifies the offset range for the position vectors.
  • Tweens: Contains all the tweens used by the module: Decay, Land and Expand

↳ Other Notes

With this major release, both the Github Repository’s page and this post have been thoroughly revised and rewritten.

2 Likes

In this version are included a splatter like randomized offset?

Yeah, I’m assuming you’re talking about the RandomOffset option, which is enabled by default; you can edit its range by setting OffsetRange to something like {-2, 2}. The default value is {-5, 5}.

Thanks, but i still have a question. It is how do i use :Emit() and :EmitAmout.

What do i put inside brackets?
I need like Example

Usually, it should display the necessary arguments for a method as soon as half of the method’s name is typed out.

image

I tried to how to use and i dont know how to fix these errors

Code is:

local BloodEngine = require(game.ReplicatedStorage.Bld2)

-- Initialize BloodEngine with desired settings
local Engine = BloodEngine.new({
	Limit = 100, -- Sets the maximum number of droplets that can be created.
	Type = "Default", -- Defines the droplet type. It can be either "Default" (Sphere) or "Decal",
	RandomOffset = false, -- Determines whether a droplet should spawn at a random offset from a given position.
	OffsetRange = {-20, 10}, -- Specifies the offset range for the position vectors.
	DropletVelocity = {1, 2}, -- Controls the velocity of the emitted droplet.
	DropletDelay = {0.05, 0.1}, -- Sets the delay between emitting droplets in a loop (for the EmitAmount method).
	StartingSize = Vector3.new(0.01, 0.7, 0.01), -- Sets the initial size of the droplets upon landing.
	Expansion = true, -- Determines whether a pool can expand when a droplet lands on it.
	MaximumSize = 1, -- Sets the maximum size a pool can reach.
})


Engine:EmitAmount(workspace.Part, workspace.Part.Position, 50) --- I also tried CFrame

Currently, the first argument does not support providing a BasePart . Instead, it accepts positions. You can utilize the Position property of the Part for this purpose.

*Side-note: Don’t use the part’s position as the emitter’s direction, you can use it’s vectors (LookVector, UpVector, etc…).

I just realized it before you reply, but thank you also i have a question is in previous version there was bug, when like character or model removes, blood will wont remove. Is it fixed in this version?

Can you explain this in-depth?

So this is like i had like gore model and inside it was script that was using a blood system, and when it removes blood will wont remove, so it stay for about forever (I can make video if you need)

Certainly, could you please provide me with the video?

Just to let you know, I’ve recently rolled out a silent update to the module. This minor modification will now enable the Emit and EmitAmount functions to utilize a specified BasePart as the starting point.

wait file is too big i will make it on yt

1 Like