I'm trying to make a tool that shoots "webs" but the Rope Constraint is not appearing. The idea is that one projectile is shot out first then the second projectile is shot, the two projectiles connect with each other with the Rope Constraint making it look like a "web". The attachment property of the Rope Constraint Is the part where the problem occurs
tool = script.Parent
WebBall = Instance.new("Part")
WebBall.Size = Vector3.new(1,1,1)
WebBall.TopSurface = Enum.SurfaceType.Smooth
WebBall.BottomSurface = Enum.SurfaceType.Smooth
WebBall.Shape = "Ball"
WebBall.CanCollide = true
local stat = 0
local stats = 0
function shoot(v)
stat = stat + 1
local bullet = WebBall:Clone()
local bullet2 = WebBall:Clone()
local attach = Instance.new("Attachment")
attach.Parent = bullet
attach.Name = "HookStart"
local attach2 = Instance.new("Attachment")
attach2.Parent = bullet2
attach2.Name = "HookEnd"
if stat == 1 then
bullet.Name = " Hook1"
local Character = tool.Parent
local Head = Character:FindFirstChild("Head")
bullet.Parent = workspace
local launch = Head.Position + 10 * v
bullet.CFrame = CFrame.new( launch, launch + v)
bullet.Velocity = v * 100
local bool = false
bullet.Touched:connect(function(hit)
if hit and bool == false then
bool = true
local weld = Instance.new("Weld")
weld.Parent = bullet
weld.Part0 = bullet
weld.Part1 = hit
local bulletPos = bullet.Position
local Joint = CFrame.new(bulletPos)
local C0 = bullet.CFrame:inverse() * Joint
local C1 = hit.CFrame:inverse() * Joint
weld.C0 = C0
weld.C1 = C1
wait()
end
end)
end
if stat == 2 then
print("here")
bullet2.Name = "Hook2"
local Character = tool.Parent
local Head = Character:FindFirstChild("Head")
bullet2.Parent = workspace
local launch = Head.Position + 10 * v
bullet2.CFrame = CFrame.new( launch, launch + v)
bullet2.Velocity = v * 100
local bool = false
bullet2.Touched:connect(function(hit)
if hit and bool == false then
local rope = Instance.new("RopeConstraint")
rope.Parent = bullet2
rope.Visible = true
rope.Thickness = 0.5
rope.Color = BrickColor.White()
local dis = (bullet.Position - bullet2.Position).magnitude
rope.Length = dis - 0.3
rope.Attachment1 = bullet2:WaitForChild("HookEnd")-- This also.
wait()
rope.Attachment0 = bullet:WaitForChild("HookStart") -- This is the problem.
bool = true
local weld = Instance.new("Weld")
weld.Parent = bullet2
weld.Part0 = bullet2
weld.Part1 = hit
local bulletPos = bullet2.Position
local Joint = CFrame.new(bulletPos)
local C0 = bullet.CFrame:inverse() * Joint
local C1 = hit.CFrame:inverse() * Joint
weld.C0 = C0
weld.C1 = C1
print(dis)
wait()
stat = 0
end
end)
end
end
function fire()
local Character = tool.Parent
local Humanoid = Character:FindFirstChild("Humanoid")
local look = (Humanoid.TargetPoint - Character:FindFirstChild("Head").Position).unit
shoot(look)
end
script.Parent.Activated:connect(fire)
