local ReplicatedStorage = game:GetService("ReplicatedStorage") local HttpService = game:GetService("HttpService") local RunService = game:GetService("RunService") local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Debris = game:GetService("Debris") local GrabEvents = ReplicatedStorage:WaitForChild("GrabEvents") local MenuToys = ReplicatedStorage:WaitForChild("MenuToys") local CharacterEvents = ReplicatedStorage:WaitForChild("CharacterEvents") local SetNetworkOwner = GrabEvents:WaitForChild("SetNetworkOwner") local Struggle = CharacterEvents:WaitForChild("Struggle") local CreateLine = GrabEvents:WaitForChild("CreateGrabLine") local DestroyLine = GrabEvents:WaitForChild("DestroyGrabLine") local DestroyToy = MenuToys:WaitForChild("DestroyToy") local localPlayer = Players.LocalPlayer local playerCharacter = localPlayer.Character or localPlayer.CharacterAdded:Wait() localPlayer.CharacterAdded:Connect(function(character) playerCharacter = character end) local AutoRecoverDroppedPartsCoroutine local connectionBombReload local reloadBombCoroutine local antiExplosionConnection local poisonAuraCoroutine local deathAuraCoroutine local reloadBombCoroutine local poisonCoroutines = {} local strengthConnection local coroutineRunning = false local autoStruggleCoroutine local autoDefendCoroutine local auraCoroutine local gravityCoroutine local kickCoroutine local kickGrabCoroutine local hellSendGrabCoroutine local anchoredParts = {} local anchoredConnections = {} local compiledGroups = {} local compileConnections = {} local compileCoroutine local fireAllCoroutine local connections = {} local renderSteppedConnections = {} local ragdollAllCoroutine local crouchJumpCoroutine local crouchSpeedCoroutine local anchorGrabCoroutine local poisonGrabCoroutine local ufoGrabCoroutine local burnPart local fireGrabCoroutine local noclipGrabCoroutine local antiKickCoroutine local kickGrabConnections = {} local blobmanCoroutine local lighBitSpeedCoroutine local lightbitpos = {} local lightbitparts = {} local lightbitcon local lightbitcon2 local lightorbitcon local bodyPositions = {} local alignOrientations = {} local skolko = "" local decoyOffset = 15 local stopDistance = 5 local circleRadius = 10 local circleSpeed = 2 local auraToggle = 1 local crouchWalkSpeed = 50 local crouchJumpPower = 50 local kickMode = 1 local auraRadius = 20 local lightbit = 0.3125 local lightbitoffset = 1 local lightbitradius = 20 local usingradius = lightbitradius local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Player = game.Players.LocalPlayer local U = loadstring(game:HttpGet("https://paste.ee/r/7X7NLEPB", true))() --[[ Utilities.IsDescendantOf(child, parent) Utilities.GetDescendant(parent, name, className) Utilities.GetAncestor(child, name, className) Utilities.FindFirstAncestorOfType(child, className) Utilities.GetChildrenByType(parent, className) Utilities.GetDescendantsByType(parent, className) Utilities.HasAttribute(instance, attributeName) Utilities.GetAttributeOrDefault(instance, attributeName, defaultValue) Utilities.CloneInstance(instance, newParent) Utilities.WaitForChildOfType(parent, className, timeout) Utilities.IsPointInPart(part, point) Utilities.GetDistance(pointA, pointB) Utilities.GetAngleBetweenVectors(vectorA, vectorB) Utilities.RotateVectorY(vector, angle) Utilities.GetSurroundingVectors(target, radius, amount, offset) --]] local followMode = true local toysFolder = workspace:FindFirstChild(localPlayer.Name.."SpawnedInToys") local playerList = {} local selection local blobman local platforms = {} local ownedToys = {} local bombList = {} _G.ToyToLoad = "BombMissile" _G.MaxMissiles = 9 _G.BlobmanDelay = 0.005 local function isDescendantOf(target, other) local currentParent = target.Parent while currentParent do if currentParent == other then return true end currentParent = currentParent.Parent end return false end local function DestroyT(toy) local toy = toy or toysFolder:FindFirstChildWhichIsA("Model") DestroyToy:FireServer(toy) end local function getDescendantParts(descendantName) local parts = {} for _, descendant in ipairs(workspace.Map:GetDescendants()) do if descendant:IsA("Part") and descendant.Name == descendantName then table.insert(parts, descendant) end end return parts end local poisonHurtParts = getDescendantParts("PoisonHurtPart") local paintPlayerParts = getDescendantParts("PaintPlayerPart") local function updatePlayerList() playerList = {} for _, player in ipairs(Players:GetPlayers()) do table.insert(playerList, player.Name) end end local function onPlayerAdded(player) table.insert(playerList, player.Name) end local function onPlayerRemoving(player) for i, name in ipairs(playerList) do if name == player.Name then table.remove(playerList, i) break end end end Players.PlayerAdded:Connect(onPlayerAdded) Players.PlayerRemoving:Connect(onPlayerRemoving) for i, v in pairs(localPlayer:WaitForChild("PlayerGui"):WaitForChild("MenuGui"):WaitForChild("Menu"):WaitForChild("TabContents"):WaitForChild("Toys"):WaitForChild("Contents"):GetChildren()) do if v.Name ~= "UIGridLayout" then ownedToys[v.Name] = true end end local function getNearestPlayer() local nearestPlayer local nearestDistance = math.huge for _, player in pairs(Players:GetPlayers()) do if player ~= localPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local distance = (playerCharacter.HumanoidRootPart.Position - player.Character.HumanoidRootPart.Position).Magnitude if distance < nearestDistance then nearestDistance = distance nearestPlayer = player end end end return nearestPlayer end local function cleanupConnections(connectionTable) for _, connection in ipairs(connectionTable) do connection:Disconnect() end connectionTable = {} end local function getVersion() local url = "https://raw.githubusercontent.com/Undebolted/FTAP/main/VERSION.json" local success, response = pcall(function() return game:HttpGet(url) end) if success then local data = HttpService:JSONDecode(response) return data.version else warn("Failed to get version: " .. response) return "Unknown" end end local function spawnItem(itemName, position, orientation) task.spawn(function() local cframe = CFrame.new(position) local rotation = Vector3.new(0, 90, 0) ReplicatedStorage.MenuToys.SpawnToyRemoteFunction:InvokeServer(itemName, cframe, rotation) end) end local function arson(part) if not toysFolder:FindFirstChild("Campfire") then spawnItem("Campfire", Vector3.new(-72.9304581, -5.96906614, -265.543732)) end local campfire = toysFolder:FindFirstChild("Campfire") burnPart = campfire:FindFirstChild("FirePlayerPart") or campfire.FirePlayerPart burnPart.Size = Vector3.new(7, 7, 7) burnPart.Position = part.Position task.wait(0.3) burnPart.Position = Vector3.new(0, -50, 0) end local function handleCharacterAdded(player) local characterAddedConnection = player.CharacterAdded:Connect(function(character) local hrp = character:WaitForChild("HumanoidRootPart") local fpp = hrp:WaitForChild("FirePlayerPart") fpp.Size = Vector3.new(4.5, 5, 4.5) fpp.CollisionGroup = "1" fpp.CanQuery = true end) table.insert(kickGrabConnections, characterAddedConnection) end local function kickGrab() for _, player in pairs(Players:GetPlayers()) do if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local hrp = player.Character.HumanoidRootPart if hrp:FindFirstChild("FirePlayerPart") then local fpp = hrp.FirePlayerPart fpp.Size = Vector3.new(4.5, 5.5, 4.5) fpp.CollisionGroup = "1" fpp.CanQuery = true end end handleCharacterAdded(player) end local playerAddedConnection = Players.PlayerAdded:Connect(handleCharacterAdded) table.insert(kickGrabConnections, playerAddedConnection) end local function grabHandler(grabType) while true do local success, err = pcall(function() local child = workspace:FindFirstChild("GrabParts") if child and child.Name == "GrabParts" then local grabPart = child:FindFirstChild("GrabPart") local grabbedPart = grabPart:FindFirstChild("WeldConstraint").Part1 local head = grabbedPart.Parent:FindFirstChild("Head") if head then while workspace:FindFirstChild("GrabParts") do local partsTable = grabType == "poison" and poisonHurtParts or paintPlayerParts for _, part in pairs(partsTable) do part.Size = Vector3.new(2, 2, 2) part.Transparency = 1 part.Position = head.Position end wait() for _, part in pairs(partsTable) do part.Position = Vector3.new(0, -200, 0) end end for _, part in pairs(partsTable) do part.Position = Vector3.new(0, -200, 0) end end end end) wait() end end local function fireGrab() while true do local success, err = pcall(function() local child = workspace:FindFirstChild("GrabParts") if child and child.Name == "GrabParts" then local grabPart = child:FindFirstChild("GrabPart") local grabbedPart = grabPart:FindFirstChild("WeldConstraint").Part1 local head = grabbedPart.Parent:FindFirstChild("Head") if head then arson(head) end end end) wait() end end local function noclipGrab() while true do local success, err = pcall(function() local child = workspace:FindFirstChild("GrabParts") if child and child.Name == "GrabParts" then local grabPart = child:FindFirstChild("GrabPart") local grabbedPart = grabPart:FindFirstChild("WeldConstraint").Part1 local character = grabbedPart.Parent if character.HumanoidRootPart then while workspace:FindFirstChild("GrabParts") do for _, part in pairs(character:GetChildren()) do if part:IsA("BasePart") then part.CanCollide = false end end wait() end for _, part in pairs(character:GetChildren()) do if part:IsA("BasePart") then part.CanCollide = true end end end end end) wait() end end local function spawnItemCf(itemName, cframe) task.spawn(function() local rotation = Vector3.new(0, 0, 0) ReplicatedStorage.MenuToys.SpawnToyRemoteFunction:InvokeServer(itemName, cframe, rotation) end) end local function fireAll() while true do local success, err = pcall(function() if toysFolder:FindFirstChild("Campfire") then DestroyT(toysFolder:FindFirstChild("Campfire")) wait(0.5) end spawnItemCf("Campfire", playerCharacter.Head.CFrame) local campfire = toysFolder:WaitForChild("Campfire") local firePlayerPart for _, part in pairs(campfire:GetChildren()) do if part.Name == "FirePlayerPart" then part.Size = Vector3.new(10, 10, 10) firePlayerPart = part break end end local originalPosition = playerCharacter.Torso.Position SetNetworkOwner:FireServer(firePlayerPart, firePlayerPart.CFrame) playerCharacter:MoveTo(firePlayerPart.Position) wait(0.3) playerCharacter:MoveTo(originalPosition) local bodyPosition = Instance.new("BodyPosition") bodyPosition.P = 20000 bodyPosition.Position = playerCharacter.Head.Position + Vector3.new(0, 600, 0) bodyPosition.Parent = campfire.Main while true do for _, player in pairs(Players:GetChildren()) do pcall(function() bodyPosition.Position = playerCharacter.Head.Position + Vector3.new(0, 600, 0) if player.Character and player.Character.HumanoidRootPart and player.Character ~= playerCharacter then firePlayerPart.Position = player.Character.HumanoidRootPart.Position or player.Character.Head.Position wait() end end) end wait() end end) if not success then warn("Error in fireAll: " .. tostring(err)) end wait() end end local function createHighlight(parent) local highlight = Instance.new("Highlight") highlight.DepthMode = Enum.HighlightDepthMode.Occluded highlight.FillTransparency = 1 highlight.Name = "Highlight" highlight.OutlineColor = Color3.new(0, 0, 1) highlight.OutlineTransparency = 0.5 highlight.Parent = parent print("created highlight and set on "..parent.Name) return highlight end local function onPartOwnerAdded(descendant, primaryPart) if descendant.Name == "PartOwner" and descendant.Value ~= localPlayer.Name then local highlight = primaryPart:FindFirstChild("Highlight") or U.GetDescendant(U.FindFirstAncestorOfType(primaryPart, "Model"), "Highlight", "Highlight") if highlight then if descendant.Value ~= localPlayer.Name then highlight.OutlineColor = Color3.new(1, 0, 0) else highlight.OutlineColor = Color3.new(0, 0, 1) end end end end local function createBodyMovers(part, position, rotation) local bodyPosition = Instance.new("BodyPosition") local bodyGyro = Instance.new("BodyGyro") bodyPosition.P = 15000 bodyPosition.D = 200 bodyPosition.MaxForce = Vector3.new(5000000, 5000000, 5000000) bodyPosition.Position = position bodyPosition.Parent = part bodyGyro.P = 15000 bodyGyro.D = 200 bodyGyro.MaxTorque = Vector3.new(5000000, 5000000, 5000000) bodyGyro.CFrame = rotation bodyGyro.Parent = part end local function anchorGrab() while true do pcall(function() local grabParts = workspace:FindFirstChild("GrabParts") if not grabParts then return end local grabPart = grabParts:FindFirstChild("GrabPart") if not grabPart then return end local weldConstraint = grabPart:FindFirstChild("WeldConstraint") if not weldConstraint or not weldConstraint.Part1 then return end local primaryPart = weldConstraint.Part1.Name == "SoundPart" and weldConstraint.Part1 or weldConstraint.Part1.Parent.SoundPart or weldConstraint.Part1.Parent.PrimaryPart or weldConstraint.Part1 if not primaryPart then return end if primaryPart.Anchored then return end if isDescendantOf(primaryPart, workspace.Map) then return end for _, player in pairs(Players:GetChildren()) do if isDescendantOf(primaryPart, player.Character) then return end end local t = true for _, v in pairs(primaryPart:GetDescendants()) do if table.find(anchoredParts, v) then t = false end end if t and not table.find(anchoredParts, primaryPart) then local target if U.FindFirstAncestorOfType(primaryPart, "Model") and U.FindFirstAncestorOfType(primaryPart, "Model") ~= workspace then target = U.FindFirstAncestorOfType(primaryPart, "Model") else target = primaryPart end local highlight = createHighlight(target) table.insert(anchoredParts, primaryPart) print(target) local connection = target.DescendantAdded:Connect(function(descendant) onPartOwnerAdded(descendant, primaryPart) end) table.insert(anchoredConnections, connection) end if U.FindFirstAncestorOfType(primaryPart, "Model") and U.FindFirstAncestorOfType(primaryPart, "Model") ~= workspace then for _, child in ipairs(U.FindFirstAncestorOfType(primaryPart, "Model"):GetDescendants()) do if child:IsA("BodyPosition") or child:IsA("BodyGyro") then child:Destroy() end end else for _, child in ipairs(primaryPart:GetChildren()) do if child:IsA("BodyPosition") or child:IsA("BodyGyro") then child:Destroy() end end end while workspace:FindFirstChild("GrabParts") do wait() end createBodyMovers(primaryPart, primaryPart.Position, primaryPart.CFrame) end) wait() end end local function anchorKickGrab() while true do pcall(function() local grabParts = workspace:FindFirstChild("GrabParts") if not grabParts then return end local grabPart = grabParts:FindFirstChild("GrabPart") if not grabPart then return end local weldConstraint = grabPart:FindFirstChild("WeldConstraint") if not weldConstraint or not weldConstraint.Part1 then return end local primaryPart = weldConstraint.Part1 if not primaryPart then return end if isDescendantOf(primaryPart, workspace.Map) then return end if primaryPart.Name ~= "FirePlayerPart" then return end for _, child in ipairs(primaryPart:GetChildren()) do if child:IsA("BodyPosition") or child:IsA("BodyGyro") then child:Destroy() end end while workspace:FindFirstChild("GrabParts") do wait() end createBodyMovers(primaryPart, primaryPart.Position, primaryPart.CFrame) end) wait() end end local function cleanupAnchoredParts() for _, part in ipairs(anchoredParts) do if part then if part:FindFirstChild("BodyPosition") then part.BodyPosition:Destroy() end if part:FindFirstChild("BodyGyro") then part.BodyGyro:Destroy() end local highlight = part:FindFirstChild("Highlight") or part.Parent and part.Parent:FindFirstChild("Highlight") if highlight then highlight:Destroy() end end end cleanupConnections(anchoredConnections) anchoredParts = {} end local function updateBodyMovers(primaryPart) for _, group in ipairs(compiledGroups) do if group.primaryPart and group.primaryPart == primaryPart then for _, data in ipairs(group.group) do local bodyPosition = data.part:FindFirstChild("BodyPosition") local bodyGyro = data.part:FindFirstChild("BodyGyro") if bodyPosition then bodyPosition.Position = (primaryPart.CFrame * data.offset).Position end if bodyGyro then bodyGyro.CFrame = primaryPart.CFrame * data.offset end end end end end local function compileGroup() if #anchoredParts == 0 then Rayfield:Notify({Title = "Error",Content = "No anchored parts found",Duration = 5,Image = 4483362458,}) else Rayfield:Notify({Title = "Success",Content = "Compiled "..#anchoredParts.." Toys together",Duration = 5,Image = 4483362458,}) end local primaryPart = anchoredParts[1] if not primaryPart then return end local highlight = primaryPart:FindFirstChild("Highlight") or primaryPart.Parent:FindFirstChild("Highlight") if not highlight then highlight = createHighlight(primaryPart.Parent:IsA("Model") and primaryPart.Parent or primaryPart) end highlight.OutlineColor = Color3.new(0, 1, 0) local group = {} for _, part in ipairs(anchoredParts) do if part ~= primaryPart then local offset = primaryPart.CFrame:toObjectSpace(part.CFrame) table.insert(group, {part = part, offset = offset}) end end table.insert(compiledGroups, {primaryPart = primaryPart, group = group}) local connection = primaryPart:GetPropertyChangedSignal("CFrame"):Connect(function() updateBodyMovers(primaryPart) end) table.insert(compileConnections, connection) local renderSteppedConnection = RunService.Heartbeat:Connect(function() updateBodyMovers(primaryPart) end) table.insert(renderSteppedConnections, renderSteppedConnection) end local function cleanupCompiledGroups() for _, groupData in ipairs(compiledGroups) do for _, data in ipairs(groupData.group) do if data.part then if data.part:FindFirstChild("BodyPosition") then data.part.BodyPosition:Destroy() end if data.part:FindFirstChild("BodyGyro") then data.part.BodyGyro:Destroy() end end end if groupData.primaryPart and groupData.primaryPart.Parent then local highlight = groupData.primaryPart:FindFirstChild("Highlight") or groupData.primaryPart.Parent:FindFirstChild("Highlight") if highlight then highlight:Destroy() end end end cleanupConnections(compileConnections) cleanupConnections(renderSteppedConnections) compiledGroups = {} end local function compileCoroutineFunc() while true do pcall(function() for _, groupData in ipairs(compiledGroups) do updateBodyMovers(groupData.primaryPart) end end) wait() end end local function unanchorPrimaryPart() local primaryPart = anchoredParts[1] if not primaryPart then return end if primaryPart:FindFirstChild("BodyPosition") then primaryPart.BodyPosition:Destroy() end if primaryPart:FindFirstChild("BodyGyro") then primaryPart.BodyGyro:Destroy() end local highlight = primaryPart.Parent:FindFirstChild("Highlight") or primaryPart:FindFirstChild("Highlight") if highlight then highlight:Destroy() end end local function recoverParts() while true do local success, err = pcall(function() local character = localPlayer.Character if character and character:FindFirstChild("Head") and character:FindFirstChild("HumanoidRootPart") then local head = character.Head local humanoidRootPart = character.HumanoidRootPart for _, partModel in pairs(anchoredParts) do coroutine.wrap(function() if partModel then local distance = (partModel.Position - humanoidRootPart.Position).Magnitude if distance <= 30 then local highlight = partModel:FindFirstChild("Highlight") or partModel.Parent:FindFirstChild("Highlight") if highlight and highlight.OutlineColor == Color3.new(1, 0, 0) then SetNetworkOwner:FireServer(partModel, partModel.CFrame) if partModel:WaitForChild("PartOwner") and partModel.PartOwner.Value == localPlayer.Name then highlight.OutlineColor = Color3.new(0, 0, 1) print("yoyoyo set and r eady") end end end end end)() end end end) wait(0.02) end end local function ragdollAll() while true do local success, err = pcall(function() if not toysFolder:FindFirstChild("FoodBanana") then spawnItem("FoodBanana", Vector3.new(-72.9304581, -5.96906614, -265.543732)) end local banana = toysFolder:WaitForChild("FoodBanana") local bananaPeel for _, part in pairs(banana:GetChildren()) do if part.Name == "BananaPeel" and part:FindFirstChild("TouchInterest") then part.Size = Vector3.new(10, 10, 10) part.Transparency = 1 bananaPeel = part break end end local bodyPosition = Instance.new("BodyPosition") bodyPosition.P = 20000 bodyPosition.Parent = banana.Main while true do for _, player in pairs(Players:GetChildren()) do pcall(function() if player.Character and player.Character ~= playerCharacter then bananaPeel.Position = player.Character.HumanoidRootPart.Position or player.Character.Head.Position bodyPosition.Position = playerCharacter.Head.Position + Vector3.new(0, 600, 0) wait() end end) end wait() end end) if not success then warn("Error in ragdollAll: " .. tostring(err)) end wait() end end local function reloadMissile(bool) if bool then if not ownedToys[_G.ToyToLoad] then Rayfield:Notify({ Title = "Missing toy", Content = "You do not own the ".._G.ToyToLoad.." toy.", Duration = 3, Image = 4483362458, }) return end if not reloadBombCoroutine then reloadBombCoroutine = coroutine.create(function() connectionBombReload = toysFolder.ChildAdded:Connect(function(child) if child.Name == _G.ToyToLoad and child:WaitForChild("ThisToysNumber", 1) then if child.ThisToysNumber.Value == (toysFolder.ToyNumber.Value - 1) then local connection2 connection2 = toysFolder.ChildRemoved:Connect(function(child2) if child2 == child then connection2:Disconnect() end end) SetNetworkOwner:FireServer(child.Body, child.Body.CFrame) local waiting = child.Body:WaitForChild("PartOwner", 0.5) local connection = child.DescendantAdded:Connect(function(descendant) if descendant.Name == "PartOwner" then if descendant.Value ~= localPlayer.Name then DestroyT(child) connection:Disconnect() end end end) Debris:AddItem(connectio, 60) if waiting and waiting.Value == localPlayer.Name then for _, v in pairs(child:GetChildren()) do if v:IsA("BasePart") then v.CanCollide = false end end child:SetPrimaryPartCFrame(CFrame.new(-72.9304581, -3.96906614, -265.543732)) wait(0.2) for _, v in pairs(child:GetChildren()) do if v:IsA("BasePart") then v.Anchored = true end end table.insert(bombList, child) child.AncestryChanged:Connect(function() if not child.Parent then for i, bomb in ipairs(bombList) do if bomb == child then table.remove(bombList, i) break end end end end) connection2:Disconnect() else DestroyT(child) end end end end) while true do if localPlayer.CanSpawnToy and localPlayer.CanSpawnToy.Value and #bombList < _G.MaxMissiles and playerCharacter:FindFirstChild("Head") then spawnItemCf(_G.ToyToLoad, playerCharacter.Head.CFrame or playerCharacter.HumanoidRootPart.CFrame) end RunService.Heartbeat:Wait() end end) coroutine.resume(reloadBombCoroutine) end else if reloadBombCoroutine then coroutine.close(reloadBombCoroutine) reloadBombCoroutine = nil end if connectionBombReload then connectionBombReload:Disconnect() end end end local function setupAntiExplosion(character) local partOwner = character:WaitForChild("Humanoid"):FindFirstChild("Ragdolled") if partOwner then local partOwnerChangedConn partOwnerChangedConn = partOwner:GetPropertyChangedSignal("Value"):Connect(function() if partOwner.Value then for _, part in ipairs(character:GetChildren()) do if part:IsA("BasePart") then part.Anchored = true end end else for _, part in ipairs(character:GetChildren()) do if part:IsA("BasePart") then part.Anchored = false end end end end) antiExplosionConnection = partOwnerChangedConn end end local blobalter = 1 local function blobGrabPlayer(player, blobman) if blobalter == 1 then if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local args = { [1] = blobman:FindFirstChild("LeftDetector"), [2] = player.Character:FindFirstChild("HumanoidRootPart"), [3] = blobman:FindFirstChild("LeftDetector"):FindFirstChild("LeftWeld") } blobman:WaitForChild("BlobmanSeatAndOwnerScript"):WaitForChild("CreatureGrab"):FireServer(unpack(args)) blobalter = 2 end else if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local args = { [1] = blobman:FindFirstChild("RightDetector"), [2] = player.Character:FindFirstChild("HumanoidRootPart"), [3] = blobman:FindFirstChild("RightDetector"):FindFirstChild("RightWeld") } blobman:WaitForChild("BlobmanSeatAndOwnerScript"):WaitForChild("CreatureGrab"):FireServer(unpack(args)) blobalter = 1 end end end local version = getVersion() local whitelistIdsStr = game:HttpGet("https://raw.githubusercontent.com/Undebolted/FTAP/main/WhitelistedUserId.txt") local whitelistIdsTbl = HttpService:JSONDecode(whitelistIdsStr) local whitelistIds = {} for id, _ in pairs(whitelistIdsTbl) do if tonumber(id) then table.insert(whitelistIds, tonumber(id)) print(id) end end local isWhitelisted = false for _, v in pairs(whitelistIds) do if v == localPlayer.UserId then isWhitelisted = true break end end local localVersion = "8.2-stable" if localVersion ~= version then Rayfield:Notify({Title = "Venom X",Content = "Script.Ftap",Duration = 6.5,Image = 4483362458,}) setclipboard('loadstring(game:HttpGet("https://raw.githubusercontent.com/Undebolted/FTAP/main/Script.lua",true))()') wait(12) Rayfield:Destroy() wait(9e9) end local Window = Rayfield:CreateWindow({ Name = "Venom X", Icon = 0, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default). LoadingTitle = "Venom X Loaded", LoadingSubtitle = "by Chill and NovaX", Theme = "Default", -- Check https://docs.sirius.menu/rayfield/configuration/themes DisableRayfieldPrompts = false, DisableBuildWarnings = false, -- Prevents Rayfield from warning when the script has a version mismatch with the interface ConfigurationSaving = { Enabled = true, FolderName = nil, -- Create a custom folder for your hub/game FileName = "VenomX" }, Discord = { Enabled = false, -- Prompt the user to join your Discord server if their executor supports it Invite = "noinvitelink", -- The Discord invite code, do not include discord.gg/. E.g. discord.gg/ ABCD would be ABCD RememberJoins = true -- Set this to false to make them join the discord every time they load it up }, KeySystem = false, -- Set this to true to use our key system KeySettings = { Title = "Untitled", Subtitle = "Key System", Note = "No method of obtaining the key is provided", -- Use this to tell the user how to get a key FileName = "Key", -- It is recommended to use something unique as other scripts using Rayfield may overwrite your key file SaveKey = true, -- The user's key will be saved, but if you change the key, they will be unable to use your script GrabKeyFromSite = false, -- If this is true, set Key below to the RAW site you would like Rayfield to get the key from Key = {"Hello"} -- List of keys that will be accepted by the system, can be RAW file links (pastebin, github etc) or simple strings ("hello","key22") } }) local homeTab = Window:CreateTab("Home", 10723407389) local GrabTab = Window:CreateTab("Combat", 10723404472) local PlayerTab = Window:CreateTab("Local Player", 10747373176) local ObjectGrabTab = Window:CreateTab("Object Grab", 10709782497) local DefanseTab = Window:CreateTab("Anti Grab", 10734951847) local BlobmanTab = Window:CreateTab("Blob Man", 10709782230) local FunTab = Window:CreateTab("Fun / Troll", 10734964441) local ScriptTab = Window:CreateTab("Script", 10734943448) local AuraTab = Window:CreateTab("Auras", 10723396107) local ExplosionTab = Window:CreateTab("Explosions", 10709818996) local KeybindsTab = Window:CreateTab("Keybinds", 10723416765) local Paragraph = homeTab:CreateParagraph({Title = "UI / Rayfield", Content = "Rayfield library by sirius"}) local Divider = homeTab:CreateDivider() local Paragraph = homeTab:CreateParagraph({Title = "Home!", Content = "Welcome to Venom X! "..Player.Name.." Thanks for useing script!"}) local Label = homeTab:CreateLabel("Chill Server / Discord", 10709797725, Color3.fromRGB(10, 10, 10), false) -- Title, Icon, Color, IgnoreTheme local Button = homeTab:CreateButton({ Name = "Chill Server", Callback = function() setclipboard("discord.gg/BKU2WH7evF") end, }) local Paragraph = homeTab:CreateParagraph({Title = "Info Log", Content = "Script Update log and Discord Update log"}) local Divider = homeTab:CreateDivider() local Paragraph = homeTab:CreateParagraph({Title = "[Script Update]", Content = "[2025/02/19] | Added Get Coin"}) local Paragraph = homeTab:CreateParagraph({Title = "[Script Update]", Content = "[2025/02/20] | Added Key System"}) _G.strength = 400 local Paragraph = GrabTab:CreateParagraph({Title = "Combat Tab", Content = "Adjust the throwing force along the slider"}) local Slider = GrabTab:CreateSlider({ Name = "Strength Power", Range = {300, 10000}, Increment = 1, Suffix = "", CurrentValue = 300, Flag = "StrengthSlider", Callback = function(Value) _G.strength = Value end, }) local Toggle = GrabTab:CreateToggle({ Name = "Strength", CurrentValue = false, Flag = "StrengthToggle", Callback = function(enabled) if enabled then strengthConnection = workspace.ChildAdded:Connect(function(model) if model.Name == "GrabParts" then local partToImpulse = model.GrabPart.WeldConstraint.Part1 if partToImpulse then local velocityObj = Instance.new("BodyVelocity", partToImpulse) model:GetPropertyChangedSignal("Parent"):Connect(function() if not model.Parent then if UserInputService:GetLastInputType() == Enum.UserInputType.MouseButton2 then velocityObj.MaxForce = Vector3.new(math.huge, math.huge, math.huge) velocityObj.Velocity = workspace.CurrentCamera.CFrame.LookVector * _G.strength Debris:AddItem(velocityObj, 1) else velocityObj:Destroy() end end end) end end end) elseif strengthConnection then strengthConnection:Disconnect() end end }) local Paragraph = GrabTab:CreateParagraph({Title = "Grab stuff", Content = "These effects apply when you grab someone"}) local Toggle = GrabTab:CreateToggle({ Name = "Poison Grab", CurrentValue = false, Flag = "", Callback = function(enabled) if enabled then poisonGrabCoroutine = coroutine.create(function() grabHandler("poison") end) coroutine.resume(poisonGrabCoroutine) else if poisonGrabCoroutine then coroutine.close(poisonGrabCoroutine) poisonGrabCoroutine = nil for _, part in pairs(poisonHurtParts) do part.Position = Vector3.new(0, -200, 0) end end end end }) local Toggle = GrabTab:CreateToggle({ Name = "Radioactive Grab", CurrentValue = false, Flag = "RadioactiveGrab", Callback = function(enabled) if enabled then ufoGrabCoroutine = coroutine.create(function() grabHandler("radioactive") end) coroutine.resume(ufoGrabCoroutine) else if ufoGrabCoroutine then coroutine.close(ufoGrabCoroutine) ufoGrabCoroutine = nil for _, part in pairs(paintPlayerParts) do part.Position = Vector3.new(0, -200, 0) end end end end }) local Toggle = GrabTab:CreateToggle({ Name = "Fire Grab", CurrentValue = false, Flag = "FireGrab", Callback = function(enabled) if enabled then fireGrabCoroutine = coroutine.create(fireGrab) coroutine.resume(fireGrabCoroutine) else if fireGrabCoroutine then coroutine.close(fireGrabCoroutine) fireGrabCoroutine = nil end end end }) local Toggle = GrabTab:CreateToggle({ Name = "Noclip Grab", CurrentValue = false, Flag = "NoclipGrab", Callback = function(enabled) if enabled then noclipGrabCoroutine = coroutine.create(noclipGrab) coroutine.resume(noclipGrabCoroutine) else if noclipGrabCoroutine then coroutine.close(noclipGrabCoroutine) noclipGrabCoroutine = nil end end end }) local Toggle = GrabTab:CreateToggle({ Name = "Kick Grab", CurrentValue = false, Flag = "KickGrab", Callback = function(enabled) if enabled then kickGrab() else for _, connection in pairs(kickGrabConnections) do connection:Disconnect() end for _, player in pairs(Players:GetPlayers()) do if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local hrp = player.Character.HumanoidRootPart if hrp:FindFirstChild("FirePlayerPart") then local fpp = hrp.FirePlayerPart fpp.Size = Vector3.new(2.5, 5.5, 2.5) fpp.CollisionGroup = "Default" fpp.CanQuery = false end end end kickGrabConnections = {} end end }) local Toggle = GrabTab:CreateToggle({ Name = "Kick Grab Anchor", CurrentValue = false, Flag = "AnchorKickGrab", Callback = function(enabled) if enabled then if not anchorKickCoroutine or coroutine.status(anchorKickCoroutine) == "dead" then anchorKickCoroutine = coroutine.create(anchorKickGrab) coroutine.resume(anchorKickCoroutine) end else if anchorKickCoroutine and coroutine.status(anchorKickCoroutine) ~= "dead" then coroutine.close(anchorKickCoroutine) anchorKickCoroutine = nil end end end }) local Paragraph = GrabTab:CreateParagraph({Title = "All-Features", Content = "Make sure there are no campfires spawned by you BEFORE using this"}) local Toggle = GrabTab:CreateToggle({ Name = "Fire All", CurrentValue = false, Flag = "FireAll", Callback = function(enabled) if enabled then fireAllCoroutine = coroutine.create(fireAll) coroutine.resume(fireAllCoroutine) else if fireAllCoroutine then coroutine.close(fireAllCoroutine) fireAllCoroutine = nil end end end }) local Paragraph = PlayerTab:CreateParagraph({Title = "Local Player Tab", Content = "Player Setting"}) local Toggle = PlayerTab:CreateToggle({ Name = "Crouch Speed", CurrentValue = false, Flag = "CrouchSpeed", Callback = function(enabled) if enabled then crouchSpeedCoroutine = coroutine.create(function() while true do pcall(function() if not playerCharacter.Humanoid then return end if playerCharacter.Humanoid.WalkSpeed == 5 then playerCharacter.Humanoid.WalkSpeed = crouchWalkSpeed end end) wait() end end) coroutine.resume(crouchSpeedCoroutine) elseif crouchSpeedCoroutine then coroutine.close(crouchSpeedCoroutine) crouchSpeedCoroutine = nil if playerCharacter.Humanoid then playerCharacter.Humanoid.WalkSpeed = 16 end end end }) local Slider = PlayerTab:CreateSlider({ Name = "Set Crouch Speed", Range = {6, 1000}, Increment = 1, Suffix = "SetCrouchSpeed", CurrentValue = 300, Flag = "StrengthSlider", Callback = function(Value) crouchWalkSpeed = Value end }) local Toggle = PlayerTab:CreateToggle({ Name = "Crouch Jump Power", CurrentValue = false, Flag = "CrouchJumpPower", Callback = function(enabled) if enabled then crouchJumpCoroutine = coroutine.create(function() while true do pcall(function() if not playerCharacter.Humanoid then return end if playerCharacter.Humanoid.JumpPower == 12 then playerCharacter.Humanoid.JumpPower = crouchJumpPower end end) wait() end end) coroutine.resume(crouchJumpCoroutine) elseif crouchJumpCoroutine then coroutine.close(crouchJumpCoroutine) crouchJumpCoroutine = nil if playerCharacter.Humanoid then playerCharacter.Humanoid.JumpPower = 24 end end end }) local Slider = PlayerTab:CreateSlider({ Name = "Set Crouch Jump Power", Range = {6, 1000}, Increment = 1, Suffix = "SetCrouchJumpPower", CurrentValue = 300, Flag = "StrengthSlider", Callback = function(Value) crouchJumpPower = Value end }) local Paragraph = ObjectGrabTab:CreateParagraph({Title = "ObjectGrab Tab", Content = "Function when grabbing an object"}) local Toggle = ObjectGrabTab:CreateToggle({ Name = "Anchor Grab", CurrentValue = false, Flag = "AnchorGrab", Callback = function(enabled) if enabled then if not anchorGrabCoroutine or coroutine.status(anchorGrabCoroutine) == "dead" then anchorGrabCoroutine = coroutine.create(anchorGrab) coroutine.resume(anchorGrabCoroutine) end else if anchorGrabCoroutine and coroutine.status(anchorGrabCoroutine) ~= "dead" then coroutine.close(anchorGrabCoroutine) anchorGrabCoroutine = nil end end end }) local Paragraph = ObjectGrabTab:CreateParagraph({Title = "Anchor Grab Info", Content = "If someone grabs your anchored parts, they will fall and you will need to position them again!"}) local Button = ObjectGrabTab:CreateButton({ Name = "Unanchor parts", Callback = cleanupAnchoredParts }) local Button = ObjectGrabTab:CreateButton({ Name = "Disassemble Parts", Callback = function() cleanupCompiledGroups() cleanupAnchoredParts() if compileCoroutine and coroutine.status(compileCoroutine) ~= "dead" then coroutine.close(compileCoroutine) compileCoroutine = nil end end }) local Toggle = ObjectGrabTab:CreateToggle({ Name = "Auto Recover Dropped Parts", CurrentValue = false, Flag = "AutoRecoverDroppedParts", Callback = function(enabled) if enabled then if not AutoRecoverDroppedPartsCoroutine or coroutine.status(AutoRecoverDroppedPartsCoroutine) == "dead" then AutoRecoverDroppedPartsCoroutine = coroutine.create(recoverParts) coroutine.resume(AutoRecoverDroppedPartsCoroutine) end else if AutoRecoverDroppedPartsCoroutine and coroutine.status(AutoRecoverDroppedPartsCoroutine) ~= "dead" then coroutine.close(AutoRecoverDroppedPartsCoroutine) AutoRecoverDroppedPartsCoroutine = nil end end end }) local Button = ObjectGrabTab:CreateButton({ Name = "Unanchor Header Part", Callback = unanchorPrimaryPart }) local Paragraph = DefanseTab:CreateParagraph({Title = "Defense Tab", Content = "Anti System"}) local Toggle = DefanseTab:CreateToggle({ Name = "Anti Grab", CurrentValue = false, Flag = "AutoStruggle", Callback = function(enabled) if enabled then autoStruggleCoroutine = RunService.Heartbeat:Connect(function() local character = localPlayer.Character if character and character:FindFirstChild("Head") then local head = character.Head local partOwner = head:FindFirstChild("PartOwner") if partOwner then Struggle:FireServer() ReplicatedStorage.GameCorrectionEvents.StopAllVelocity:FireServer() for _, part in pairs(character:GetChildren()) do if part:IsA("BasePart") then part.Anchored = true end end while localPlayer.IsHeld.Value do wait() end for _, part in pairs(character:GetChildren()) do if part:IsA("BasePart") then part.Anchored = false end end end end end) else if autoStruggleCoroutine then autoStruggleCoroutine:Disconnect() autoStruggleCoroutine = nil end end end }) local Toggle = DefanseTab:CreateToggle({ Name = "Anti Kick Grab", CurrentValue = false, Flag = "AntiKickGrab", Callback = function(enabled) if enabled then local character = localPlayer.Character antiKickCoroutine = RunService.Heartbeat:Connect(function() local character = localPlayer.Character if character and character:FindFirstChild("HumanoidRootPart") and character:FindFirstChild("HumanoidRootPart"):FindFirstChild("FirePlayerPart") then local partOwner = character:FindFirstChild("HumanoidRootPart"):FindFirstChild("FirePlayerPart"):FindFirstChild("PartOwner") if partOwner and partOwner.Value ~= localPlayer.Name then local args = {[1] = character:WaitForChild("HumanoidRootPart"), [2] = 0} game:GetService("ReplicatedStorage"):WaitForChild("CharacterEvents"):WaitForChild("RagdollRemote"):FireServer(unpack(args)) print("grabbity shap!") wait(0.1) Struggle:FireServer() end end end) else if antiKickCoroutine then antiKickCoroutine:Disconnect() antiKickCoroutine = nil end end end }) local Toggle = DefanseTab:CreateToggle({ Name = "Anti Explosion", CurrentValue = false, Flag = "AntiExplosion", Callback = function(enabled) local localPlayer = game.Players.LocalPlayer if enabled then if localPlayer.Character then setupAntiExplosion(localPlayer.Character) end characterAddedConn = localPlayer.CharacterAdded:Connect(function(character) if antiExplosionConnection then antiExplosionConnection:Disconnect() end setupAntiExplosion(character) end) else if antiExplosionConnection then antiExplosionConnection:Disconnect() antiExplosionConnection = nil end if characterAddedConn then characterAddedConn:Disconnect() characterAddedConn = nil end end end }) local Section = DefanseTab:CreateSection("Self Defense") local Toggle = DefanseTab:CreateToggle({ Name = "Self Defense / Air Suspend", CurrentValue = false, Flag = "SelfDefenseAirSuspend", Callback = function(enabled) if enabled then autoDefendCoroutine = coroutine.create(function() while wait(0.02) do local character = localPlayer.Character if character and character:FindFirstChild("Head") then local head = character.Head local partOwner = head:FindFirstChild("PartOwner") if partOwner then local attacker = Players:FindFirstChild(partOwner.Value) if attacker and attacker.Character then Struggle:FireServer() SetNetworkOwner:FireServer(attacker.Character.Head or attacker.Character.Torso, attacker.Character.HumanoidRootPart.FirePlayerPart.CFrame) task.wait(0.1) local target = attacker.Character:FindFirstChild("Torso") if target then local velocity = target:FindFirstChild("l") or Instance.new("BodyVelocity") velocity.Name = "l" velocity.Parent = target velocity.Velocity = Vector3.new(0, 50, 0) velocity.MaxForce = Vector3.new(0, math.huge, 0) Debris:AddItem(velocity, 100) end end end end end end) coroutine.resume(autoDefendCoroutine) else if autoDefendCoroutine then coroutine.close(autoDefendCoroutine) autoDefendCoroutine = nil end end end }) local Toggle = DefanseTab:CreateToggle({ Name = "Self Defense / Kick Silent", CurrentValue = false, Flag = "", Callback = function(enabled) end }) local Paragraph = BlobmanTab:CreateParagraph({Title = "Blobman Tab", Content = "Destroy server More added? Send DM For My acc"}) local blobman1 blobman1 = BlobmanTab:CreateToggle({ Name = "Destroy server", CurrentValue = false, Flag = "", Callback = function(enabled) if enabled then print("Toggle enabled") blobmanCoroutine = coroutine.create(function() local foundBlobman = false for i, v in pairs(game.Workspace:GetDescendants()) do if v.Name == "CreatureBlobman" then print("Found CreatureBlobman") if v:FindFirstChild("VehicleSeat") and v.VehicleSeat:FindFirstChild("SeatWeld") and isDescendantOf(v.VehicleSeat.SeatWeld.Part1, localPlayer.Character) then print("Mounted on blobman") blobman = v foundBlobman = true break end end end print("Out of the loop!") if not foundBlobman then print("No mount found") Rayfield:Notify({ Title = "Error", Content = "You must be mounted upon a blobman to begin this process. Please mount one and toggle this again!", Duration = 3, Image = 4483362458, }) blobman1:Set(false) blobman = nil coroutine.close(blobmanCoroutine) blobmanCoroutine = nil return end while true do pcall(function() while wait() do for i, v in pairs(Players:GetChildren()) do if blobman and v ~= localPlayer then blobGrabPlayer(v, blobman) print(v.Name) wait(_G.BlobmanDelay) end end end end) wait(0.02) end end) coroutine.resume(blobmanCoroutine) else if blobmanCoroutine then coroutine.close(blobmanCoroutine) blobmanCoroutine = nil blobman = nil end end end }) local Slider = BlobmanTab:CreateSlider({ Name = "Destroy server Speed", Range = {0.05, 1}, Increment = 0.01, Suffix = "", CurrentValue = 0.5, Flag = "Slider1", Callback = function(Value) _G.BlobmanDelay = Value end, }) local Paragraph = FunTab:CreateParagraph({Title = "Fun Tab", Content = "Troll and Fun!"}) local Section = FunTab:CreateSection("Troll") local Input = FunTab:CreateInput({ Name = "Number of coins", CurrentValue = "", PlaceholderText = "Number", RemoveTextAfterFocusLost = false, Flag = "Coin", Callback = function(Text) skolko = Text end, }) local Button = FunTab:CreateButton({ Name = "Get Coin", Callback = function() local coinAmount = tonumber(skolko) or 0 game.Players.LocalPlayer.PlayerGui.MenuGui.TopRight.CoinsFrame.CoinsDisplay.Coins.Text = tostring(coinAmount) end, }) local Section = FunTab:CreateSection("Fun") local Slider = FunTab:CreateSlider({ Name = "Offset", Range = {1, 10}, Increment = 5, Suffix = "", CurrentValue = 10, Flag = "", Callback = function(Value) decoyOffset = Value end }) local Input = FunTab:CreateInput({ Name = "Circle Radius", CurrentValue = "", PlaceholderText = "Radius for Surround Mode (Adjust based on clones)", RemoveTextAfterFocusLost = false, Flag = "", Callback = function(Value) circleRadius = tonumber(Value) or 10 end, }) local Button = FunTab:CreateButton({ Name = "Decoy Follow", Callback = function() local decoys = {} for _, descendant in pairs(workspace:GetDescendants()) do if descendant:IsA("Model") and descendant.Name == "YouDecoy" then table.insert(decoys, descendant) end end local numDecoys = #decoys local midPoint = math.ceil(numDecoys / 2) local function updateDecoyPositions() for index, decoy in pairs(decoys) do local torso = decoy:FindFirstChild("Torso") if torso then local bodyPosition = torso:FindFirstChild("BodyPosition") local bodyGyro = torso:FindFirstChild("BodyGyro") if bodyPosition and bodyGyro then local targetPosition if followMode then if playerCharacter and playerCharacter:FindFirstChild("HumanoidRootPart") then targetPosition = playerCharacter.HumanoidRootPart.Position local offset = (index - midPoint) * decoyOffset local forward = playerCharacter.HumanoidRootPart.CFrame.LookVector local right = playerCharacter.HumanoidRootPart.CFrame.RightVector targetPosition = targetPosition - forward * decoyOffset + right * offset end else local nearestPlayer = getNearestPlayer() if nearestPlayer and nearestPlayer.Character and nearestPlayer.Character:FindFirstChild("HumanoidRootPart") then local angle = math.rad((index - 1) * (360 / numDecoys)) targetPosition = nearestPlayer.Character.HumanoidRootPart.Position + Vector3.new(math.cos(angle) * circleRadius, 0, math.sin(angle) * circleRadius) bodyGyro.CFrame = CFrame.new(torso.Position, nearestPlayer.Character.HumanoidRootPart.Position) end end if targetPosition then local distance = (targetPosition - torso.Position).Magnitude if distance > stopDistance then bodyPosition.Position = targetPosition if followMode then bodyGyro.CFrame = CFrame.new(torso.Position, targetPosition) end else bodyPosition.Position = torso.Position bodyGyro.CFrame = torso.CFrame end end end end end end local function setupDecoy(decoy) local torso = decoy:FindFirstChild("Torso") if torso then local bodyPosition = Instance.new("BodyPosition") local bodyGyro = Instance.new("BodyGyro") bodyPosition.Parent = torso bodyGyro.Parent = torso bodyPosition.MaxForce = Vector3.new(40000, 40000, 40000) bodyPosition.D = 100 bodyPosition.P = 100 bodyGyro.MaxTorque = Vector3.new(40000, 40000, 40000) bodyGyro.D = 100 bodyGyro.P = 20000 local connection = RunService.Heartbeat:Connect(function() updateDecoyPositions() end) table.insert(connections, connection) SetNetworkOwner:FireServer(torso, playerCharacter.Head.CFrame) end end for _, decoy in pairs(decoys) do setupDecoy(decoy) end Rayfield:Notify({Title = "Notification",Content = "Got "..numDecoys.." units. Manually click each unit if they don't move", Duration = 6.5,Image = 4483362458,}) end }) local Button = FunTab:CreateButton({ Name = "Toggle Mode", Callback = function() followMode = not followMode end, }) FunTab:AddButton({ Name = "Disconnect Clones", Callback = cleanupConnections(connections) })