-- purpl3gu1 v4 - Panel de Kick Global (Título Normal y Fix de Visibilidad) local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local ReplicatedStorage = game:GetService("ReplicatedStorage") -- Limpiar interfaz previa si existe if LocalPlayer:WaitForChild("PlayerGui"):FindFirstChild("Purpl3KickPanel") then LocalPlayer.PlayerGui.Purpl3KickPanel:Destroy() end -- ======================================================== -- SISTEMA DE ESCANEO DE BACKDOOR -- ======================================================== local BackdoorRemote = nil local posibles_nombres = {"RemoteEvent", "Remote", "Execute", "ServerEvent", "MainRemote", "HDAdmin", "HandToRemote", "vibe", "Freeze"} for _, name in pairs(posibles_nombres) do local found = ReplicatedStorage:FindFirstChild(name, true) if found and found:IsA("RemoteEvent") then BackdoorRemote = found break end end if not BackdoorRemote then for _, obj in pairs(ReplicatedStorage:GetDescendants()) do if obj:IsA("RemoteEvent") then BackdoorRemote = obj break end end end -- ======================================================== -- INTERFAZ GRÁFICA (GUI) NEGRA Y PÚRPURA -- ======================================================== local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "Purpl3KickPanel" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") -- Panel Principal Arrastrable local MainPanel = Instance.new("Frame") MainPanel.Name = "MainPanel" MainPanel.Size = UDim2.new(0, 200, 0, 155) MainPanel.Position = UDim2.new(0.5, -100, 0.5, -77) MainPanel.BackgroundColor3 = Color3.fromRGB(12, 2, 20) MainPanel.BorderSizePixel = 2 MainPanel.BorderColor3 = Color3.fromRGB(145, 0, 200) MainPanel.Active = true MainPanel.Draggable = true MainPanel.Parent = ScreenGui -- Fondo con textura rbxthumb local BackgroundImage = Instance.new("ImageLabel") BackgroundImage.Size = UDim2.new(1, 0, 1, 0) BackgroundImage.Image = "rbxthumb://type=Asset&id=132111176044358&w=420&h=420" BackgroundImage.ImageTransparency = 0.85 BackgroundImage.BackgroundTransparency = 1 BackgroundImage.Parent = MainPanel -- TÍTULO MODIFICADO: TAMAÑO COMPLETAMENTE NORMAL local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 25) Title.BackgroundTransparency = 1 Title.Text = "PURPL3'S KICK" Title.TextColor3 = Color3.fromRGB(210, 0, 255) -- Púrpura brillante Title.TextSize = 14 -- Regresó al tamaño normal y seguro Title.Font = Enum.Font.SourceSans Title.Parent = MainPanel -- Campo de Texto: Nombre del Usuario local UserInput = Instance.new("TextBox") UserInput.Size = UDim2.new(1, -16, 0, 25) UserInput.Position = UDim2.new(0, 8, 0, 35) UserInput.PlaceholderText = "Nombre del Usuario..." UserInput.Text = "" UserInput.TextColor3 = Color3.fromRGB(255, 255, 255) UserInput.BackgroundColor3 = Color3.fromRGB(5, 5, 5) UserInput.BorderColor3 = Color3.fromRGB(80, 10, 120) UserInput.TextSize = 12 UserInput.Font = Enum.Font.SourceSans UserInput.Parent = MainPanel -- Campo de Texto: Razón del Kick local ReasonInput = Instance.new("TextBox") ReasonInput.Size = UDim2.new(1, -16, 0, 35) ReasonInput.Position = UDim2.new(0, 8, 0, 68) ReasonInput.PlaceholderText = "Razón del Kick..." ReasonInput.Text = "" ReasonInput.TextColor3 = Color3.fromRGB(255, 255, 255) ReasonInput.BackgroundColor3 = Color3.fromRGB(5, 5, 5) ReasonInput.BorderColor3 = Color3.fromRGB(80, 10, 120) ReasonInput.TextSize = 12 ReasonInput.Font = Enum.Font.SourceSans ReasonInput.Parent = MainPanel -- Botón de Confirmación local ConfirmKickBtn = Instance.new("TextButton") ConfirmKickBtn.Size = UDim2.new(1, -16, 0, 30) ConfirmKickBtn.Position = UDim2.new(0, 8, 0, 112) ConfirmKickBtn.BackgroundColor3 = Color3.fromRGB(130, 0, 40) ConfirmKickBtn.BorderColor3 = Color3.fromRGB(200, 0, 50) ConfirmKickBtn.TextColor3 = Color3.fromRGB(255, 255, 255) ConfirmKickBtn.Text = "KICK VIA BACKDOOR" ConfirmKickBtn.TextSize = 12 ConfirmKickBtn.Font = Enum.Font.SourceSansBold ConfirmKickBtn.Parent = MainPanel -- ======================================================== -- LÓGICA DE EXPULSIÓN DE JUGADORES -- ======================================================== ConfirmKickBtn.MouseButton1Click:Connect(function() local targetName = UserInput.Text local reason = ReasonInput.Text ~= "" and ReasonInput.Text or "Expulsado por PURPL3'S KICK" local targetPlayer = nil for _, p in pairs(Players:GetPlayers()) do if p.Name:lower():sub(1, #targetName) == targetName:lower() then targetPlayer = p break end end if targetPlayer then if BackdoorRemote then BackdoorRemote:FireServer("Kick", targetPlayer, reason) BackdoorRemote:FireServer(string.format("game.Players['%s']:Kick('%s')", targetPlayer.Name, reason)) BackdoorRemote:FireServer(targetPlayer, "Kick", reason) end if targetPlayer == LocalPlayer then LocalPlayer:Kick(reason) end else ConfirmKickBtn.Text = "USUARIO NO ENCONTRADO" task.wait(1.5) ConfirmKickBtn.Text = "KICK VIA BACKDOOR" end end)