So I’ve created a puddle system from scratch, I tend to make simulations and algorithms that power simulations. Some of my Community Resources Concerning this are here.
This is not just a blood system this is a puddle system. By rounding the droplets position using grid logic this algorithm grows puddles on the ground. By Raycasting It covers the limbs of characters the particle touches. If you step on a puddle you have footprints.
There are 4 Example settings in this, Blood, Mud, Honey, and Green Slime.
You can easily create your own by just copying and customizing these textures and particles in a directory.
This code is very performant. Let me know what you think!
This is a unplanned release so in time I will try to post some screenshots illustrating the features.
Something you would want to consider is this function;
local function updateparams()
if paramsupdate then
paramsupdate=false
params = RaycastParams.new()
params.FilterDescendantsInstances = {workspace.Terrain,game.CollectionService:GetTagged("floorunion")}
params.FilterType = Enum.RaycastFilterType.Include
params.IgnoreWater = false
task.delay(10,function()
paramsupdate=true
end)
end
return params
end
In my project I use terrain and blocks tagged floorunion to determine when someone is inside of a building. So I was able to use it for my raycast parameters which includes the terrain and objects with that tag. So you can consider changing that to something more suitable.