-- IMÃ V7: EXCLUSÃO DE JOGADORES + ESTÁVEL game:GetService("StarterGui"):SetCore("SendNotification", { Title = "Imã V7: Filtro Ativado", Text = "Gruda apenas em objetos. Jogadores ignorados.", Duration = 5 }) local Player = game.Players.LocalPlayer local Character = Player.Character or Player.CharacterAdded:Wait() local Root = Character:WaitForChild("HumanoidRootPart") local Hum = Character:WaitForChild("Humanoid") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Players = game:GetService("Players") local AttachmentChar = Instance.new("Attachment", Root) local AttachmentObj = nil local AlignPos = nil local AlignOri = nil local CanGlue = true local IsGlued = false -- Função de Desconexão Instantânea local function DestroyMagia() IsGlued = false if AlignPos then AlignPos:Destroy(); AlignPos = nil end if AlignOri then AlignOri:Destroy(); AlignOri = nil end if AttachmentObj then AttachmentObj:Destroy(); AttachmentObj = nil end Hum:ChangeState(Enum.HumanoidStateType.GettingUp) end -- Pulo para desgrudar UserInputService.JumpRequest:Connect(function() if IsGlued then DestroyMagia() CanGlue = false task.wait(1) -- Espera 1 segundo para poder grudar de novo CanGlue = true end end) RunService.Stepped:Connect(function() if not CanGlue then return end if not IsGlued then local Params = RaycastParams.new() Params.FilterType = Enum.RaycastFilterType.Exclude Params.FilterDescendantsInstances = {Character} local Cast = workspace:Raycast(Root.Position, Vector3.new(0, -10, 0), Params) if Cast and Cast.Instance and not Cast.Instance.Anchored then -- VERIFICAÇÃO DE JOGADOR: Se a parte for de um jogador, ignora. local IsAPlayer = false if Cast.Instance.Parent:FindFirstChild("Humanoid") or Cast.Instance.Parent.Parent:FindFirstChild("Humanoid") then IsAPlayer = true end if not IsAPlayer then IsGlued = true -- Ponto de fixação com Offset para ficar EM CIMA AttachmentObj = Instance.new("Attachment", Cast.Instance) AttachmentObj.WorldPosition = Cast.Position + Vector3.new(0, Character:GetExtentsSize().Y / 2, 0) -- Alinhamento de Posição AlignPos = Instance.new("AlignPosition", Root) AlignPos.Attachment0 = AttachmentChar AlignPos.Attachment1 = AttachmentObj AlignPos.MaxForce = 10000000 AlignPos.Responsiveness = 200 -- Alinhamento de Rotação AlignOri = Instance.new("AlignOrientation", Root) AlignOri.Attachment0 = AttachmentChar AlignOri.Attachment1 = AttachmentObj AlignOri.MaxTorque = 10000000 AlignOri.Responsiveness = 200 Hum:ChangeState(Enum.HumanoidStateType.Running) end end else if AttachmentObj and AttachmentObj.Parent then Hum:ChangeState(Enum.HumanoidStateType.Running) else DestroyMagia() end end end) -- Anti-Ragdoll Hum:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false) Hum:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)