A difficult idea to approach, what have you tried?
Personally I would split the blood into two halfs, and then raycast a center for general position, a second one for the first half of the blood and rotate it accordingly and then a third one for the second half and rotate it accordingly. If the place to set the blood is too far, just dont spawn the half.
It’s important to understand that blood spatters dont really wrap around edges, and tbh in Roblox blood spatters are generally avoided.
I was actually thinking of having it all client side and just have the server tell the client in what direction to spawn the splatters and use math.randomseed() and such to generate random splatters that are simular to each other (assuming math.random is the same for everyone if the same seed is used).
When on client, splatters could stay longer or be more detailed depending on client’s personal settings.
To make it look more realistic and dynamic I was thinking of
splatters placed on anchored parts stay anchored
but when placed on moving parts they will be unachored and welded instead.
(dynamic/moving splatters would despawn earlier than anchored parts since they require slightly more work as they are moving.)
Yeah, I meant on the client. Just let the server send the client what positions and rotations to put the parts at. Also, you will still have to despawn splatters after a bit, server or client. They will both get pretty laggy over time if you do not.