Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Help With Blood Puddles Position And Rotation?

Asked by 2 years ago
Edited 2 years ago

Here's A Video Of What I Have:

https://storage.cloudconvert.com/tasks/f75a7de7-7139-4137-98a1-40c8141d75fa/2022-07-25_15-29-51%20%281%29.mp4?AWSAccessKeyId=cloudconvert-production&Expires=1658873794&Signature=zJ3rxuayzjNRWn6o6p7hSlTSUMg%3D&response-content-disposition=inline%3B%20filename%3D%222022-07-25_15-29-51%20%281%29.mp4%22&response-content-type=video%2Fmp4

And What I Need Is To Put A Part Where The Blue Spheres Hit With The Hits Correct Orientation.

wait()
--// Services:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local Debris = game:GetService("Debris")
--// Character:
local Character = script.Parent
local PrimaryPart = Character.PrimaryPart
local Humanoid = Character:WaitForChild("Humanoid")
--// Variables:
local GibModels = ReplicatedStorage:WaitForChild("Gib Models")
local PartGibs = GibModels:WaitForChild("Parts")
local HeadGibs = GibModels:WaitForChild("Head")
local ArmsGibs = GibModels:WaitForChild("Arms")
--// Functions:
local function StartBleed(Part)
    if Character:FindFirstChild(Part) then
        if Character[Part]:FindFirstChild("Stage") then
            --// Variables:
            local Limb = Character[Part]
            local Stage = Limb["Stage"]
            local Attach = Stage["Spawn"]
            local DropAmount = 5 --math.random(18,22)
            for count = 1, DropAmount do
                if Character[Part]:FindFirstChild("Stage") then
                    --// Creating Dropplet:
                    local Dropplet = PartGibs:WaitForChild("Dropplet"):Clone()
                    if game.Workspace:FindFirstChild("Debris") then
                        Dropplet.Parent = game.Workspace["Debris"]
                    else
                        Dropplet.Parent = game.Workspace
                    end
                    Dropplet.CFrame = Attach.WorldCFrame
                    --// Creating Force:
                    local ForceVector = Instance.new("VectorForce",Dropplet)
                    ForceVector.Attachment0 = Dropplet["A0"]
                    local MaxForce = 5
                    local Offset = Vector3.new(math.random(-1,1)*MaxForce,0,math.random(-1,1)*MaxForce)
                    ForceVector.Force = Offset
                    Debris:AddItem(ForceVector)
                    Debris:AddItem(Dropplet,18)
                    Dropplet.Touched:Connect(function(Model)
                        --Debris:AddItem(Dropplet,0.5)
                        --// Variables:
                        local NAME = Model.Name
                        --// IgnoreList:
                        if NAME == "Handle" or NAME == "Puddle" or NAME == "Dropplet" or NAME == "Stage" or NAME == "Inside" then return end
                        if Model.Parent:FindFirstChild("Humanoid") or Model.Parent.Parent:FindFirstChild("Humanoid") then return end
                        if Model.Parent:FindFirstChild("Handle") or Model.Parent.Parent:FindFirstChild("Handle") then return end
                        if Model.CanCollide == false or Model.Transparency == 1 or Model.Transparency == 0.99 then return end
                        --// Dropplet:
                        Dropplet.CanCollide = false
                        Dropplet.Anchored = true
                        --// Size:
                        local Size = math.random(35,60)/100
                        --// Creating Puddles:
                        local BloodPuddle = PartGibs:WaitForChild("Puddle"):Clone()
                        if game.Workspace:FindFirstChild("Debris") then
                            BloodPuddle.Parent = game.Workspace["Debris"]
                        else
                            BloodPuddle.Parent = game.Workspace
                        end
                        BloodPuddle.Size = Vector3.new(Size,0.01,Size)
                        BloodPuddle.Anchored = true
                        --// Debug
                        Dropplet.Color = Color3.new(0.309804, 0.411765, 1)
                        Dropplet.Transparency = 0
                    end)
                end
                wait(0.1)
            end
        end
    end
end
local function HideLimb(Limb)
    if Character:FindFirstChild(Limb) then
        Character[Limb].Transparency = 1
    end
end
local function DeleteStage(Limb)
    if Character:FindFirstChild(Limb) then
        if Character[Limb]:FindFirstChild("Stage") then
            Character[Limb]["Stage"]:Destroy()
        end
    end
end
local function SetupHead()
    --// Finding Face Decal:
    if Character["Head"]:FindFirstChild("Face") then
        Character["Head"]["Face"]:Destroy()
    elseif Character["Head"]:FindFirstChild("face") then
        Character["Head"]["face"]:Destroy()
    end
    --// Making Head Invisible:
    Character.Head.Transparency = 1
end
local function CreateSetup()
    --// Main Folder:
    local Settings = Instance.new("Folder",Character)
    --// Values For Gibs:
    local RightLeg = Instance.new("NumberValue",Settings)
    local RightArm = Instance.new("NumberValue",Settings)
    local LeftLeg = Instance.new("NumberValue",Settings)
    local LeftArm = Instance.new("NumberValue",Settings)
    local Torso = Instance.new("NumberValue",Settings)
    local Head = Instance.new("NumberValue",Settings)
    --// Naming:
    RightLeg.Name = "Right Leg"
    RightArm.Name = "Right Arm"
    Settings.Name = "Settings"
    LeftLeg.Name = "Left Leg"
    LeftArm.Name = "Left Arm"
    Torso.Name = "Torso"
    Head.Name = "Head"
    --// Values:
    RightLeg.Value = 4
    RightArm.Value = 4
    LeftLeg.Value = 4
    LeftArm.Value = 4
    Torso.Value = 1
    Head.Value = 3
    --// Debug:
    print(Character.Name.. ": Settings Enabled")
    --// Events:
    Head.Changed:Connect(function(Property)
        DeleteStage("Head")
        if Head.Value == 1 then
            local Clone = HeadGibs:WaitForChild("Stage 1"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Head"]
            Clone.Parent = Character["Head"]
            Clone.Name = "Stage"
            SetupHead()
        elseif Head.Value == 2 then
            local Clone = HeadGibs:WaitForChild("Stage 2"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Head"]
            Clone.Parent = Character["Head"]
            Clone.Name = "Stage"
            SetupHead()
        end
    end)
    RightLeg.Changed:Connect(function(Property)
        DeleteStage("Right Leg")
        HideLimb("Right Leg")
        if RightLeg.Value == 1 then
            local Clone = ArmsGibs:WaitForChild("Stage 1"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Right Leg"]
            Clone.Parent = Character["Right Leg"]
            Clone.Name = "Stage"
            StartBleed("Right Leg")
        elseif RightLeg.Value == 2 then
            local Clone = ArmsGibs:WaitForChild("Stage 2"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Right Leg"]
            Clone.Parent = Character["Right Leg"]
            Clone.Name = "Stage"
            StartBleed("Right Leg")
        elseif RightLeg.Value == 3 then
            local Clone = ArmsGibs:WaitForChild("Stage 3"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Right Leg"]
            Clone.Parent = Character["Right Leg"]
            Clone.Name = "Stage"
            StartBleed("Right Leg")
        end
    end)
    RightArm.Changed:Connect(function(Property)
        DeleteStage("Right Arm")
        HideLimb("Right Arm")
        if RightArm.Value == 1 then
            local Clone = ArmsGibs:WaitForChild("Stage 1"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Right Arm"]
            Clone.Parent = Character["Right Arm"]
            Clone.Name = "Stage"
            StartBleed("Right Arm")
        elseif RightArm.Value == 2 then
            local Clone = ArmsGibs:WaitForChild("Stage 2"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Right Arm"]
            Clone.Parent = Character["Right Arm"]
            Clone.Name = "Stage"
            StartBleed("Right Arm")
        elseif RightArm.Value == 3 then
            local Clone = ArmsGibs:WaitForChild("Stage 3"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Right Arm"]
            Clone.Parent = Character["Right Arm"]
            Clone.Name = "Stage"
            StartBleed("Right Arm")
        end
    end)
    LeftLeg.Changed:Connect(function(Property)
        DeleteStage("Left Leg")
        HideLimb("Left Leg")
        if LeftLeg.Value == 1 then
            local Clone = ArmsGibs:WaitForChild("Stage 1"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Left Leg"]
            Clone.Parent = Character["Left Leg"]
            Clone.Name = "Stage"
            StartBleed("Left Leg")
        elseif LeftLeg.Value == 2 then
            local Clone = ArmsGibs:WaitForChild("Stage 2"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Left Leg"]
            Clone.Parent = Character["Left Leg"]
            Clone.Name = "Stage"
            StartBleed("Left Leg")
        elseif LeftLeg.Value == 3 then
            local Clone = ArmsGibs:WaitForChild("Stage 3"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Left Leg"]
            Clone.Parent = Character["Left Leg"]
            Clone.Name = "Stage"
            StartBleed("Left Leg")
        end
    end)
    LeftArm.Changed:Connect(function(Property)
        DeleteStage("Left Arm")
        HideLimb("Left Arm")
        if LeftArm.Value == 1 then
            local Clone = ArmsGibs:WaitForChild("Stage 1"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Left Arm"]
            Clone.Parent = Character["Left Arm"]
            Clone.Name = "Stage"
            StartBleed("Left Arm")
        elseif LeftArm.Value == 2 then
            local Clone = ArmsGibs:WaitForChild("Stage 2"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Left Arm"]
            Clone.Parent = Character["Left Arm"]
            Clone.Name = "Stage"
            StartBleed("Left Arm")
        elseif LeftArm.Value == 3 then
            local Clone = ArmsGibs:WaitForChild("Stage 3"):Clone()
            Clone:WaitForChild("Weld").Part1 = Character["Left Arm"]
            Clone.Parent = Character["Left Arm"]
            Clone.Name = "Stage"
            StartBleed("Left Arm")
        end
    end)
end
--// One Time Lines:
CreateSetup()
0
The video link doesn't work! User#39832 0 — 2y

Answer this question