Here's A Video Of What I Have:
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()

1 comment
The video link doesn't work!