--================================================== -- πŸ•·οΈ Spider Web FINAL (STABLE) -- Mobile / R15 / Center Reticle --================================================== -- Services local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") -- Player local player = Players.LocalPlayer if not UIS.TouchEnabled then return end local camera = workspace.CurrentCamera -- Character local char = player.Character or player.CharacterAdded:Wait() local hum = char:WaitForChild("Humanoid") if hum.RigType ~= Enum.HumanoidRigType.R15 then return end local root = char:WaitForChild("HumanoidRootPart") player.CharacterAdded:Connect(function(c) char = c hum = c:WaitForChild("Humanoid") root = c:WaitForChild("HumanoidRootPart") clearWeb() end) --================ UI ================= local gui = Instance.new("ScreenGui", player.PlayerGui) gui.ResetOnSpawn = false -- 血⭕レティクル local reticle = Instance.new("Frame", gui) reticle.Size = UDim2.fromScale(0.025,0.025) reticle.Position = UDim2.fromScale(0.5,0.5) reticle.AnchorPoint = Vector2.new(0.5,0.5) reticle.BackgroundColor3 = Color3.fromRGB(255,0,0) Instance.new("UICorner", reticle).CornerRadius = UDim.new(1,0) -- γƒœγ‚Ώγƒ³ local function makeBtn(text, y) local b = Instance.new("TextButton", gui) b.Size = UDim2.fromScale(0.25,0.055) b.Position = UDim2.fromScale(0.05,y) b.Text = text b.BackgroundColor3 = Color3.fromRGB(35,35,35) b.TextColor3 = Color3.new(1,1,1) Instance.new("UICorner", b).CornerRadius = UDim.new(0.3,0) return b end local btnSticky = makeBtn("STICKY: OFF", 0.75) local btnLock = makeBtn("LOCK: OFF", 0.68) local btnNoPull = makeBtn("NO-PULL: OFF",0.61) local btnClear = makeBtn("CLEAR", 0.54) --================ ηŠΆζ…‹ ================= local stickyMode = false local lockMode = false local noPullMode = false local pulling = false local targetPos = nil local speed = 0 --================ Raycast ================= local params = RaycastParams.new() params.FilterDescendantsInstances = {char} params.FilterType = Enum.RaycastFilterType.Blacklist --================ UI処理 ================= btnSticky.MouseButton1Click:Connect(function() stickyMode = not stickyMode btnSticky.Text = stickyMode and "STICKY: ON" or "STICKY: OFF" end) btnLock.MouseButton1Click:Connect(function() lockMode = not lockMode btnLock.Text = lockMode and "LOCK: ON" or "LOCK: OFF" end) btnNoPull.MouseButton1Click:Connect(function() noPullMode = not noPullMode btnNoPull.Text = noPullMode and "NO-PULL: ON" or "NO-PULL: OFF" end) local function clearWeb() pulling = false targetPos = nil speed = 0 end btnClear.MouseButton1Click:Connect(clearWeb) --================ タップ ================= UIS.InputEnded:Connect(function(input, gp) if gp then return end if input.UserInputType ~= Enum.UserInputType.Touch then return end -- 🧡 NO-PULL ζœ€ε„ͺε…ˆ if noPullMode then return end -- πŸ”’ LOCK if lockMode and pulling then return end -- STICKY OFFγͺら解陀 if pulling and not stickyMode then clearWeb() end local center = camera.ViewportSize / 2 local ray = camera:ViewportPointToRay(center.X, center.Y) local hit = workspace:Raycast(ray.Origin, ray.Direction * 1e6, params) if not hit then return end targetPos = hit.Position speed = 0 pulling = true end) --================ η§»ε‹• ================= RunService.Heartbeat:Connect(function(dt) if not pulling or not targetPos then return end local vec = targetPos - root.Position local dist = vec.Magnitude if dist < 2 then clearWeb() return end speed = math.clamp(speed + dt * 90, 0, 140) -- ζ˜ η”»η‰ˆγ£γ½γ„εŠ ι€Ÿ + ε£η™»γ‚Šθ£œζ­£ root.AssemblyLinearVelocity = vec.Unit * speed + Vector3.new(0, 14, 0) end)