-- KHJ Script Executor v1.0 -- Executor moderno de scripts Lua para Roblox -- Suporte para PC e Mobile local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local CoreGui = game:GetService("CoreGui") local RunService = game:GetService("RunService") local Player = Players.LocalPlayer local PlayerGui = Player:WaitForChild("PlayerGui") -- Verifica se já existe uma instância do executor if PlayerGui:FindFirstChild("KHJExecutor") then PlayerGui.KHJExecutor:Destroy() end -- Criar a GUI principal local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "KHJExecutor" ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.ResetOnSpawn = false ScreenGui.Parent = PlayerGui -- Frame principal local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 500, 0, 350) MainFrame.Position = UDim2.new(0.5, -250, 0.5, -175) MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui -- Sombra do frame principal local Shadow = Instance.new("Frame") Shadow.Name = "Shadow" Shadow.Size = UDim2.new(1, 10, 1, 10) Shadow.Position = UDim2.new(0, -5, 0, -5) Shadow.BackgroundColor3 = Color3.fromRGB(0, 0, 0) Shadow.BackgroundTransparency = 0.7 Shadow.BorderSizePixel = 0 Shadow.ZIndex = MainFrame.ZIndex - 1 Shadow.Parent = MainFrame -- Cantos arredondados para o frame principal local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 12) MainCorner.Parent = MainFrame local ShadowCorner = Instance.new("UICorner") ShadowCorner.CornerRadius = UDim.new(0, 12) ShadowCorner.Parent = Shadow -- Barra de título local TitleBar = Instance.new("Frame") TitleBar.Name = "TitleBar" TitleBar.Size = UDim2.new(1, 0, 0, 40) TitleBar.Position = UDim2.new(0, 0, 0, 0) TitleBar.BackgroundColor3 = Color3.fromRGB(35, 35, 50) TitleBar.BorderSizePixel = 0 TitleBar.Parent = MainFrame local TitleCorner = Instance.new("UICorner") TitleCorner.CornerRadius = UDim.new(0, 12) TitleCorner.Parent = TitleBar -- Título local Title = Instance.new("TextLabel") Title.Name = "Title" Title.Size = UDim2.new(1, -100, 1, 0) Title.Position = UDim2.new(0, 15, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "KHJ Script Executor" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextScaled = true Title.TextXAlignment = Enum.TextXAlignment.Left Title.Font = Enum.Font.GothamBold Title.Parent = TitleBar -- Botão de fechar local CloseButton = Instance.new("TextButton") CloseButton.Name = "CloseButton" CloseButton.Size = UDim2.new(0, 30, 0, 30) CloseButton.Position = UDim2.new(1, -35, 0, 5) CloseButton.BackgroundColor3 = Color3.fromRGB(255, 85, 85) CloseButton.BorderSizePixel = 0 CloseButton.Text = "×" CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255) CloseButton.TextScaled = true CloseButton.Font = Enum.Font.GothamBold CloseButton.Parent = TitleBar local CloseCorner = Instance.new("UICorner") CloseCorner.CornerRadius = UDim.new(0, 6) CloseCorner.Parent = CloseButton -- Botão de minimizar local MinimizeButton = Instance.new("TextButton") MinimizeButton.Name = "MinimizeButton" MinimizeButton.Size = UDim2.new(0, 30, 0, 30) MinimizeButton.Position = UDim2.new(1, -70, 0, 5) MinimizeButton.BackgroundColor3 = Color3.fromRGB(255, 185, 85) MinimizeButton.BorderSizePixel = 0 MinimizeButton.Text = "_" MinimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255) MinimizeButton.TextScaled = true MinimizeButton.Font = Enum.Font.GothamBold MinimizeButton.Parent = TitleBar local MinimizeCorner = Instance.new("UICorner") MinimizeCorner.CornerRadius = UDim.new(0, 6) MinimizeCorner.Parent = MinimizeButton -- Área do editor de texto local EditorFrame = Instance.new("Frame") EditorFrame.Name = "EditorFrame" EditorFrame.Size = UDim2.new(1, -20, 1, -100) EditorFrame.Position = UDim2.new(0, 10, 0, 50) EditorFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 25) EditorFrame.BorderSizePixel = 0 EditorFrame.Parent = MainFrame local EditorCorner = Instance.new("UICorner") EditorCorner.CornerRadius = UDim.new(0, 8) EditorCorner.Parent = EditorFrame -- TextBox para o código local CodeBox = Instance.new("TextBox") CodeBox.Name = "CodeBox" CodeBox.Size = UDim2.new(1, -10, 1, -10) CodeBox.Position = UDim2.new(0, 5, 0, 5) CodeBox.BackgroundTransparency = 1 CodeBox.Text = "-- KHJ Script Executor\n-- Cole seu script aqui ou digite diretamente\n\nprint('Olá do KHJ Executor!')" CodeBox.TextColor3 = Color3.fromRGB(255, 255, 255) CodeBox.TextXAlignment = Enum.TextXAlignment.Left CodeBox.TextYAlignment = Enum.TextYAlignment.Top CodeBox.TextWrapped = true CodeBox.Font = Enum.Font.Code CodeBox.TextSize = 14 CodeBox.MultiLine = true CodeBox.ClearTextOnFocus = false CodeBox.Parent = EditorFrame -- Frame para botões local ButtonFrame = Instance.new("Frame") ButtonFrame.Name = "ButtonFrame" ButtonFrame.Size = UDim2.new(1, -20, 0, 40) ButtonFrame.Position = UDim2.new(0, 10, 1, -50) ButtonFrame.BackgroundTransparency = 1 ButtonFrame.Parent = MainFrame -- Botão Executar local ExecuteButton = Instance.new("TextButton") ExecuteButton.Name = "ExecuteButton" ExecuteButton.Size = UDim2.new(0.3, -5, 1, 0) ExecuteButton.Position = UDim2.new(0, 0, 0, 0) ExecuteButton.BackgroundColor3 = Color3.fromRGB(85, 255, 127) ExecuteButton.BorderSizePixel = 0 ExecuteButton.Text = "▶ Executar" ExecuteButton.TextColor3 = Color3.fromRGB(0, 0, 0) ExecuteButton.TextScaled = true ExecuteButton.Font = Enum.Font.GothamBold ExecuteButton.Parent = ButtonFrame local ExecuteCorner = Instance.new("UICorner") ExecuteCorner.CornerRadius = UDim.new(0, 8) ExecuteCorner.Parent = ExecuteButton -- Botão Limpar local ClearButton = Instance.new("TextButton") ClearButton.Name = "ClearButton" ClearButton.Size = UDim2.new(0.3, -5, 1, 0) ClearButton.Position = UDim2.new(0.35, 0, 0, 0) ClearButton.BackgroundColor3 = Color3.fromRGB(255, 127, 85) ClearButton.BorderSizePixel = 0 ClearButton.Text = "🗑 Limpar" ClearButton.TextColor3 = Color3.fromRGB(0, 0, 0) ClearButton.TextScaled = true ClearButton.Font = Enum.Font.GothamBold ClearButton.Parent = ButtonFrame local ClearCorner = Instance.new("UICorner") ClearCorner.CornerRadius = UDim.new(0, 8) ClearCorner.Parent = ClearButton -- Botão Colar local PasteButton = Instance.new("TextButton") PasteButton.Name = "PasteButton" PasteButton.Size = UDim2.new(0.3, -5, 1, 0) PasteButton.Position = UDim2.new(0.7, 0, 0, 0) PasteButton.BackgroundColor3 = Color3.fromRGB(127, 85, 255) PasteButton.BorderSizePixel = 0 PasteButton.Text = "📋 Colar" PasteButton.TextColor3 = Color3.fromRGB(255, 255, 255) PasteButton.TextScaled = true PasteButton.Font = Enum.Font.GothamBold PasteButton.Parent = ButtonFrame local PasteCorner = Instance.new("UICorner") PasteCorner.CornerRadius = UDim.new(0, 8) PasteCorner.Parent = PasteButton -- Linha de status local StatusLine = Instance.new("TextLabel") StatusLine.Name = "StatusLine" StatusLine.Size = UDim2.new(1, -20, 0, 15) StatusLine.Position = UDim2.new(0, 10, 1, -20) StatusLine.BackgroundTransparency = 1 StatusLine.Text = "Pronto para executar scripts" StatusLine.TextColor3 = Color3.fromRGB(150, 150, 150) StatusLine.TextXAlignment = Enum.TextXAlignment.Left StatusLine.Font = Enum.Font.Gotham StatusLine.TextSize = 10 StatusLine.Parent = MainFrame -- Variáveis para animações local isMinimized = false local originalSize = MainFrame.Size -- Função para animações suaves local function tweenObject(object, properties, duration) local tween = TweenService:Create( object, TweenInfo.new(duration or 0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), properties ) tween:Play() return tween end -- Função para atualizar status local function updateStatus(message, color) StatusLine.Text = message StatusLine.TextColor3 = color or Color3.fromRGB(150, 150, 150) -- Fade effect tweenObject(StatusLine, {TextTransparency = 0}) wait(0.1) tweenObject(StatusLine, {TextTransparency = 0.3}) end -- Função para executar script local function executeScript() local code = CodeBox.Text if code == "" or code:match("^%s*$") then updateStatus("❌ Nenhum código para executar", Color3.fromRGB(255, 85, 85)) return end updateStatus("⚡ Executando script...", Color3.fromRGB(255, 255, 85)) local success, error = pcall(function() local func, loadError = loadstring(code) if func then func() updateStatus("✅ Script executado com sucesso", Color3.fromRGB(85, 255, 127)) else updateStatus("❌ Erro de sintaxe: " .. tostring(loadError), Color3.fromRGB(255, 85, 85)) end end) if not success then updateStatus("❌ Erro na execução: " .. tostring(error), Color3.fromRGB(255, 85, 85)) end end -- Função para limpar código local function clearCode() CodeBox.Text = "" updateStatus("🗑 Editor limpo", Color3.fromRGB(127, 127, 127)) end -- Função para colar código (simulada) local function pasteCode() -- No Roblox, não podemos acessar diretamente o clipboard -- Esta função serve como placeholder para funcionalidade de colar updateStatus("📋 Use Ctrl+V para colar código", Color3.fromRGB(127, 85, 255)) CodeBox:CaptureFocus() end -- Função para minimizar/maximizar local function toggleMinimize() isMinimized = not isMinimized if isMinimized then tweenObject(MainFrame, {Size = UDim2.new(0, 500, 0, 40)}) EditorFrame.Visible = false ButtonFrame.Visible = false StatusLine.Visible = false MinimizeButton.Text = "+" else tweenObject(MainFrame, {Size = originalSize}) EditorFrame.Visible = true ButtonFrame.Visible = true StatusLine.Visible = true MinimizeButton.Text = "_" end end -- Conectar eventos dos botões ExecuteButton.MouseButton1Click:Connect(executeScript) ClearButton.MouseButton1Click:Connect(clearCode) PasteButton.MouseButton1Click:Connect(pasteCode) CloseButton.MouseButton1Click:Connect(function() ScreenGui:Destroy() end) MinimizeButton.MouseButton1Click:Connect(toggleMinimize) -- Efeitos hover para botões local function addHoverEffect(button, hoverColor, originalColor) button.MouseEnter:Connect(function() tweenObject(button, {BackgroundColor3 = hoverColor}, 0.2) end) button.MouseLeave:Connect(function() tweenObject(button, {BackgroundColor3 = originalColor}, 0.2) end) end -- Aplicar efeitos hover addHoverEffect(ExecuteButton, Color3.fromRGB(75, 225, 117), Color3.fromRGB(85, 255, 127)) addHoverEffect(ClearButton, Color3.fromRGB(225, 117, 75), Color3.fromRGB(255, 127, 85)) addHoverEffect(PasteButton, Color3.fromRGB(117, 75, 225), Color3.fromRGB(127, 85, 255)) addHoverEffect(CloseButton, Color3.fromRGB(225, 75, 75), Color3.fromRGB(255, 85, 85)) addHoverEffect(MinimizeButton, Color3.fromRGB(225, 165, 75), Color3.fromRGB(255, 185, 85)) -- Atalhos de teclado UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.F9 then ScreenGui.Enabled = not ScreenGui.Enabled elseif input.KeyCode == Enum.KeyCode.Return and UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then executeScript() end end) -- Animação de entrada MainFrame.Size = UDim2.new(0, 0, 0, 0) tweenObject(MainFrame, {Size = originalSize}, 0.5) -- Efeito de digitação no título spawn(function() local originalText = Title.Text Title.Text = "" for i = 1, #originalText do Title.Text = originalText:sub(1, i) wait(0.05) end end) print("KHJ Script Executor carregado com sucesso!") print("Pressione F9 para mostrar/ocultar o executor") print("Use Ctrl+Enter para executar o script rapidamente")