-- language: Lua 5.1 (Roblox) | file: omniman_tool.lua | runtime: executor | target: Tool "Omni Man" — Physics Control (float+launch), Absorb (global pull+target collide), Clap (forward throw), loud sounds local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local mouse = LocalPlayer:GetMouse() local SOUND_PHYSICS = "rbxassetid://134561345005871" local SOUND_ABSORB = "rbxassetid://86642332394224" local SOUND_CLAP = "rbxassetid://134497759087881" local LOUD_VOLUME = 10 local LOUD_ROLLOFF = 150 local PHYSICS_RANGE = 60000 local CLAP_RANGE = 500000 local FLY_FORCE = 10000 local ABSORB_PULL_SPEED = 80 local ABSORB_COLLIDE_SPEED = 9999999 local CLAP_FORCE = 2000 -- === tool + gui shell === local tool = Instance.new("Tool") tool.Name = "Omni Man" tool.RequiresHandle = false tool.Parent = LocalPlayer:WaitForChild("Backpack") local gui = Instance.new("ScreenGui") gui.Name = "OmniManGui" gui.ResetOnSpawn = false gui.Enabled = false gui.Parent = LocalPlayer:WaitForChild("PlayerGui") local main = Instance.new("Frame") main.Size = UDim2.new(0, 240, 0, 260) main.Position = UDim2.new(0.5, -120, 0.5, -130) main.BackgroundColor3 = Color3.fromRGB(25, 25, 25) main.BorderSizePixel = 0 main.Active = true main.Draggable = true main.Parent = gui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 10) corner.Parent = main local red_button = Instance.new("TextButton") red_button.Size = UDim2.new(1, -20, 0, 44) red_button.Position = UDim2.new(0, 10, 0, 10) red_button.BackgroundColor3 = Color3.fromRGB(180, 20, 20) red_button.Text = "Telekinesis and more" red_button.TextColor3 = Color3.fromRGB(255, 255, 255) red_button.Font = Enum.Font.GothamBold red_button.TextSize = 16 red_button.Parent = main local red_corner = Instance.new("UICorner") red_corner.CornerRadius = UDim.new(0, 8) red_corner.Parent = red_button local status_label = Instance.new("TextLabel") status_label.Size = UDim2.new(1, -20, 0, 20) status_label.Position = UDim2.new(0, 10, 0, 228) status_label.BackgroundTransparency = 1 status_label.Text = "" status_label.TextColor3 = Color3.fromRGB(255, 220, 120) status_label.Font = Enum.Font.Gotham status_label.TextSize = 13 status_label.Parent = main local function make_button(text, y_pos, color) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -20, 0, 44) btn.Position = UDim2.new(0, 10, 0, y_pos) btn.BackgroundColor3 = color btn.Text = text btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.Font = Enum.Font.GothamBold btn.TextSize = 16 btn.Parent = main local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 8) c.Parent = btn return btn end local physics_btn = make_button("Physics Control", 64, Color3.fromRGB(40, 100, 200)) local absorb_btn = make_button("Absorb", 118, Color3.fromRGB(150, 40, 200)) local clap_btn = make_button("Clap", 172, Color3.fromRGB(200, 140, 20)) local function play_loud_sound(sound_id, parent) local sound = Instance.new("Sound") sound.SoundId = sound_id sound.Volume = LOUD_VOLUME sound.RollOffMaxDistance = LOUD_ROLLOFF sound.RollOffMode = Enum.RollOffMode.Linear sound.Parent = parent sound:Play() game:GetService("Debris"):AddItem(sound, 10) return sound end local function get_targets_in_range(range, include_npcs, include_parts) local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if not root then return {} end local targets = {} if include_npcs then for _, model in ipairs(workspace:GetDescendants()) do if model:IsA("Model") then local humanoid = model:FindFirstChildOfClass("Humanoid") local hrp = model:FindFirstChild("HumanoidRootPart") or model.PrimaryPart if humanoid and hrp and humanoid.Health > 0 and not Players:GetPlayerFromCharacter(model) then if (hrp.Position - root.Position).Magnitude <= range then table.insert(targets, {kind = "npc", model = model, hrp = hrp, humanoid = humanoid}) end end end end end if include_parts then for _, part in ipairs(workspace:GetDescendants()) do if part:IsA("BasePart") and part.Anchored == false then local ancestor_model = part:FindFirstAncestorOfClass("Model") if not ancestor_model or not ancestor_model:FindFirstChildOfClass("Humanoid") then if (part.Position - root.Position).Magnitude <= range then table.insert(targets, {kind = "part", part = part}) end end end end end return targets end local function get_all_loose_parts() local parts = {} for _, part in ipairs(workspace:GetDescendants()) do if part:IsA("BasePart") and part.Anchored == false then local ancestor_model = part:FindFirstAncestorOfClass("Model") if not ancestor_model or not ancestor_model:FindFirstChildOfClass("Humanoid") then table.insert(parts, part) end end end return parts end -- ============================================================ -- Physics Control: float 1s, then launch outward + upward, hard -- ============================================================ physics_btn.MouseButton1Click:Connect(function() local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if not root then return end play_loud_sound(SOUND_PHYSICS, root) local targets = get_targets_in_range(PHYSICS_RANGE, true, true) local float_conns = {} for _, t in ipairs(targets) do if t.kind == "npc" then pcall(function() for _, part in ipairs(t.model:GetDescendants()) do if part:IsA("BasePart") then part.Anchored = false end end t.humanoid.PlatformStand = true local bv = Instance.new("BodyVelocity") bv.MaxForce = Vector3.new(1e5, 1e5, 1e5) bv.Velocity = Vector3.new(0, 2, 0) bv.Parent = t.hrp table.insert(float_conns, bv) end) elseif t.kind == "part" then pcall(function() local bv = Instance.new("BodyVelocity") bv.MaxForce = Vector3.new(1e5, 1e5, 1e5) bv.Velocity = Vector3.new(0, 2, 0) bv.Parent = t.part table.insert(float_conns, bv) end) end end task.delay(1, function() for _, bv in ipairs(float_conns) do pcall(function() bv:Destroy() end) end for _, t in ipairs(targets) do if t.kind == "npc" and t.hrp.Parent then pcall(function() local dir = (t.hrp.Position - root.Position) local away = (dir.Magnitude > 0 and dir.Unit or Vector3.new(0,1,0)) t.hrp.AssemblyLinearVelocity = away * FLY_FORCE + Vector3.new(0, FLY_FORCE * 0.4, 0) end) elseif t.kind == "part" and t.part.Parent then pcall(function() local dir = (t.part.Position - root.Position) local away = (dir.Magnitude > 0 and dir.Unit or Vector3.new(0,1,0)) t.part.AssemblyLinearVelocity = away * FLY_FORCE + Vector3.new(0, FLY_FORCE * 0.4, 0) end) end end end) end) -- ============================================================ -- Absorb: pull EVERY loose part in the game, then click a player/NPC to collide them in -- ============================================================ local absorbed_parts = {} local waiting_for_target = false local function resolve_target_from_part(part) if not part then return nil end local model = part:FindFirstAncestorOfClass("Model") if not model then return nil end local humanoid = model:FindFirstChildOfClass("Humanoid") local hrp = model:FindFirstChild("HumanoidRootPart") or model.PrimaryPart if humanoid and hrp and humanoid.Health > 0 then return hrp end return nil end absorb_btn.MouseButton1Click:Connect(function() local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if not root then return end play_loud_sound(SOUND_ABSORB, root) local targets = get_all_loose_parts() absorbed_parts = targets local conns = {} for _, part in ipairs(targets) do local conn conn = RunService.Heartbeat:Connect(function() if not part.Parent or not root.Parent or waiting_for_target then return end local dir = (root.Position - part.Position) if dir.Magnitude < 2 then return end part.AssemblyLinearVelocity = dir.Unit * ABSORB_PULL_SPEED end) table.insert(conns, conn) end task.delay(1.5, function() for _, c in ipairs(conns) do pcall(function() c:Disconnect() end) end end) waiting_for_target = true status_label.Text = "Click a player/NPC to collide absorbed parts..." local click_conn click_conn = mouse.Button1Down:Connect(function() local target_hrp = resolve_target_from_part(mouse.Target) if not target_hrp then return end waiting_for_target = false status_label.Text = "" click_conn:Disconnect() local hit_conns = {} for _, part in ipairs(absorbed_parts) do if part.Parent then local hc hc = RunService.Heartbeat:Connect(function() if not part.Parent or not target_hrp.Parent then if hc then hc:Disconnect() end return end local dir = (target_hrp.Position - part.Position) if dir.Magnitude < 2 then if hc then hc:Disconnect() end return end part.AssemblyLinearVelocity = dir.Unit * ABSORB_COLLIDE_SPEED end) table.insert(hit_conns, hc) end end task.delay(2, function() for _, hc in ipairs(hit_conns) do pcall(function() hc:Disconnect() end) end end) end) task.delay(6, function() if waiting_for_target then waiting_for_target = false status_label.Text = "" if click_conn then click_conn:Disconnect() end end end) end) -- ============================================================ -- Clap: forward-only hard throw, no upward arc -- ============================================================ clap_btn.MouseButton1Click:Connect(function() local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if not root then return end play_loud_sound(SOUND_CLAP, root) local forward = root.CFrame.LookVector local targets = get_targets_in_range(CLAP_RANGE, true, true) for _, t in ipairs(targets) do if t.kind == "npc" then pcall(function() for _, part in ipairs(t.model:GetDescendants()) do if part:IsA("BasePart") then part.Anchored = false end end t.humanoid.PlatformStand = true t.hrp.AssemblyLinearVelocity = forward * CLAP_FORCE end) elseif t.kind == "part" then pcall(function() t.part.AssemblyLinearVelocity = forward * CLAP_FORCE end) end end end) tool.Equipped:Connect(function() gui.Enabled = true end) tool.Unequipped:Connect(function() gui.Enabled = false end) print("[omniman_tool] Omni Man fully equipped — Physics Control, Absorb (global), Clap, all wired")