Great module!
I’d like to add something for those who have lesser scripting skills. If you would like to ignore player parts do:
local Instances = BloodInstance.RaycastParams.FilterDescendantsInstances
BloodInstance.RaycastParams.FilterDescendantsInstances = {Instances and unpack(Instances), character}
–
Here’s my full script
-- You can leave any of these values as nil, it'll use the default values
local DripSettings = {
500, -- Limit: The maximum number of blood drips that can be active at once
true, -- RandomOffset: Whether to use random positions for the blood drips
0.5, -- Speed: The speed or velocity at which the blood drips fall
0.01, -- DripDelay: The delay between emitting blood drips,
false, -- DripVisibile: Determines if the blood drip is visibile when emitted
{} -- Filter: An array used to make the drips ignore certain parts (go through them, not interact with them)
}
-- MODULES
local BloodEngine = require(game.ReplicatedStorage.BloodEngine)
local BloodInstance = BloodEngine.new(table.unpack(DripSettings)) -- customize to whatever you want
game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
local Instances = BloodInstance.RaycastParams.FilterDescendantsInstances
BloodInstance.RaycastParams.FilterDescendantsInstances = {Instances and unpack(Instances), character}
local humanoid = character:WaitForChild("Humanoid") :: Humanoid?
local root = character:WaitForChild("HumanoidRootPart")
humanoid.Died:Once(function()
BloodInstance:Emit(root, root.CFrame.LookVector, 100) -- also customize to whatever you want
end)
end)
end)