ClassicBlood - Classic looking optimized way to create blood splats

Back to home
Click me!
About

ClassicBlood is a classic looking optimized way to create blood splats with various options to customize the result! ClassicBlood utilizes ObjectCache to get the best perfomance results.

API
--Single splat spawn
ClassicBlood.Spawn(Part:Part, Side:Enum.NormalId)
--Bulk splats spawn
ClassicBlood.BulkSpawn(Part:Part, Side:Enum.NormalId, Amount:number, DelayTime:number)
--Returns current Cache.
ClassicBlood.GetCache()
Tips\How to use

Don’t use for loops to spawn big amount of splats at the same time instead use build-in method(BulkSpawn) to spawn lots and lots of blood(more optimized). Use settings to customize various parameters such as blood weld to unanchored parts or bloods color dry after sometime.
Every blood droplet has tag(“Blood”) you can customize blood even more with tags!(Do not edit original API so its easier to update!)

Showcase

Plans
  • Replace runservice connection with touched for more perfomance(likely not happening)
  • Add sounds
  • Add dynamic settings or function to update settings
  • Rewrite some stupid stuff
Links

You can also click on image to get the module.

25 Likes

UPDATE V1.1

  • Added .GetCache method, Example:
task.wait(4)
local CollectionService = game:GetService("CollectionService")
local ClassicBlood = require(game:GetService("ReplicatedStorage").ClassicBlood)
local Cache = ClassicBlood.GetCache()

for _, BloodyPart in pairs(CollectionService:GetTagged("Blood")) do
	print(Cache:IsInUse(BloodyPart))
end

you should maybe add a feature if a blood lands on a other one it expands. besides that its very good.

1 Like

why are the blood drops square? can they be changed to like a puddle?

You can just change the template part to be ball… But the style of blood is classic so why would you?

1 Like

also is there a way to change the blood color? or have a command to only use a ceritan color? (like if someone is making a game where monsters bleed green and humans bleed red)

Oh my goodness i am so blind lol. Thanks for showing me this

1 Like

Turned this off temporarily in my game (Blood spawns on melee hits, bullet hits, explosions and limb decapitations) because if it never hits a brick or falls into the void, it’ll infinitely call RayCast thousands of times and turn my extremely lightweight game into a really slow lagfest, especially after an explosion. I will attempt to create a despawn timer, but I believe that is something that should be implemented in an update, instead.

Show me your code
aaa filler text

Specifically what part of it? It’s an unmodified ClassicBlood module, and all I need to do is use BulkSpawn a couple of times while the spawning position is over the void, and eventually, lag begins to set in.

erm, thats how object cache works, it moves parts to far far away, and when we need part we just move it to needed cframe. Also try anchoring your blood particles and testing various settings

I simply could not get it to work with roblox physics, i will rewrite the module in next update likely, i was scripting it when i was sick and made many mistakes.