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)