-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] -- ========================================== -- SCRIPT DE CHAT COM GRAMÁTICA INTELIGENTE E INVISÍVEL REDUZIDO -- ========================================== local Players = game:GetService("Players") local TextChatService = game:GetService("TextChatService") local player = Players.LocalPlayer local HttpService = game:GetService("HttpService") local CHAR_FILE = "CustomChat_CharData.json" local CMD_FILE = "CustomChat_CmdData.json" local function carregarDados(filename) if readfile and isfile and isfile(filename) then local success, result = pcall(function() return HttpService:JSONDecode(readfile(filename)) end) if success and type(result) == "table" then return result end end local tabelaVazia = {} for i = 1, 10 do tabelaVazia[i] = "" end return tabelaVazia end local function salvarDados(filename, dataTable) if writefile then pcall(function() writefile(filename, HttpService:JSONEncode(dataTable)) end) end end local charSavedData = carregarDados(CHAR_FILE) local cmdSavedData = carregarDados(CMD_FILE) local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "CustomChatClean" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = player:WaitForChild("PlayerGui") local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 320, 0, 35) MainFrame.Position = UDim2.new(0, 10, 1, -380) MainFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) MainFrame.BackgroundTransparency = 0.5 MainFrame.BorderSizePixel = 0 MainFrame.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 8) UICorner.Parent = MainFrame local TextBox = Instance.new("TextBox") TextBox.Size = UDim2.new(0, 250, 0, 25) TextBox.Position = UDim2.new(0, 5, 0, 5) TextBox.BackgroundTransparency = 1 TextBox.TextColor3 = Color3.fromRGB(255, 255, 255) TextBox.TextSize = 13 TextBox.Font = Enum.Font.SourceSans TextBox.TextXAlignment = Enum.TextXAlignment.Left TextBox.PlaceholderText = "Para conversar, clique aqui ou pressione /" TextBox.Text = "" TextBox.Parent = MainFrame local SendButton = Instance.new("TextButton") SendButton.Size = UDim2.new(0, 55, 0, 25) SendButton.Position = UDim2.new(0, 260, 0, 5) SendButton.BackgroundColor3 = Color3.fromRGB(30, 144, 255) SendButton.TextColor3 = Color3.fromRGB(255, 255, 255) SendButton.TextSize = 13 SendButton.Font = Enum.Font.SourceSansBold SendButton.Text = "Enviar" SendButton.Parent = MainFrame local ButtonCorner = Instance.new("UICorner") ButtonCorner.CornerRadius = UDim.new(0, 6) ButtonCorner.Parent = SendButton -- ========================================== -- BOTÃO E LISTA DE JOGADORES -- ========================================== local PlayerListButton = Instance.new("TextButton") PlayerListButton.Size = UDim2.new(0, 95, 0, 22) PlayerListButton.Position = UDim2.new(0, 115, 1, -342) PlayerListButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40) PlayerListButton.TextColor3 = Color3.fromRGB(255, 255, 255) PlayerListButton.TextSize = 10 PlayerListButton.Font = Enum.Font.SourceSansBold PlayerListButton.Text = "📋 Copiar Nomes" PlayerListButton.Parent = ScreenGui local ListCorner = Instance.new("UICorner") ListCorner.CornerRadius = UDim.new(0, 6) ListCorner.Parent = PlayerListButton local ScrollingFrame = Instance.new("ScrollingFrame") ScrollingFrame.Size = UDim2.new(0, 145, 0, 95) ScrollingFrame.Position = UDim2.new(0, 115, 1, -316) ScrollingFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) ScrollingFrame.BackgroundTransparency = 0.3 ScrollingFrame.BorderSizePixel = 0 ScrollingFrame.Visible = false ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0) ScrollingFrame.ScrollBarThickness = 3 ScrollingFrame.Parent = ScreenGui local ScrollCorner = Instance.new("UICorner") ScrollCorner.CornerRadius = UDim.new(0, 6) ScrollCorner.Parent = ScrollingFrame local UIListLayout = Instance.new("UIListLayout") UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.Padding = UDim.new(0, 2) UIListLayout.Parent = ScrollingFrame local function atualizarLista() for _, child in ipairs(ScrollingFrame:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end local count = 0 for _, p in ipairs(Players:GetPlayers()) do count = count + 1 local pButton = Instance.new("TextButton") pButton.Size = UDim2.new(1, -4, 0, 20) pButton.BackgroundColor3 = Color3.fromRGB(50, 50, 50) pButton.TextColor3 = Color3.fromRGB(255, 255, 255) pButton.TextSize = 10 pButton.Font = Enum.Font.SourceSans pButton.Text = p.Name pButton.Parent = ScrollingFrame local pBtnCorner = Instance.new("UICorner") pBtnCorner.CornerRadius = UDim.new(0, 4) pBtnCorner.Parent = pButton pButton.MouseButton1Click:Connect(function() if setclipboard then setclipboard(p.Name) pButton.Text = "Copiado!" task.wait(1) pButton.Text = p.Name end end) end ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, count * 22) end PlayerListButton.MouseButton1Click:Connect(function() ScrollingFrame.Visible = not ScrollingFrame.Visible if ScrollingFrame.Visible then atualizarLista() end end) Players.PlayerAdded:Connect(function() if ScrollingFrame.Visible then atualizarLista() end end) Players.PlayerRemoving:Connect(function() if ScrollingFrame.Visible then atualizarLista() end end) local function enviarTextoDireto(textoPronto) local success = pcall(function() if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then local channel = TextChatService.TextChannels:FindFirstChild("RBXGeneral") if channel then channel:SendAsync(textoPronto) end end end) if not success then local ReplicatedStorage = game:GetService("ReplicatedStorage") local defaultChatSystemChatEvents = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") if defaultChatSystemChatEvents then local sayMessageRequest = defaultChatSystemChatEvents:FindFirstChild("SayMessageRequest") if sayMessageRequest then sayMessageRequest:FireServer(textoPronto, "All") end end end end -- ========================================== -- PROCESSADOR DE GRAMÁTICA CORRIGIDO -- ========================================== local function processarMensagem(texto) if string.sub(texto, 1, 1) == ";" then return texto end local termosProtegidos = { ["ebdelta"] = "###EBDELTA###", ["cdp"] = "###CDP###", ["sts"] = "###STS###", ["central"] = "###CENTRAL###" } for termo, marcador in pairs(termosProtegidos) do texto = texto:gsub(termo, marcador) texto = texto:gsub(termo:gsub("^%l", string.upper), marcador) end texto = texto:gsub("vc", "você"):gsub("Vc", "Você") texto = texto:gsub("tmb", "também"):gsub("Tmb", "Também") texto = texto:gsub("blz", "beleza"):gsub("Blz", "Beleza") texto = texto:gsub("q", "que"):gsub("Q", "Que") texto = texto:gsub("pff", "por favor"):gsub("Pff", "Por favor") texto = texto:gsub("pfv", "por favor"):gsub("Pfv", "Por favor") texto = texto:gsub("obg", "obrigado"):gsub("Obg", "Obrigado") texto = texto:gsub("senhors", "senhores"):gsub("Senhors", "Senhores") texto = texto:gsub("eae", "olá"):gsub("Eae", "Olá") texto = texto:gsub("eai", "olá"):gsub("Eai", "Olá") texto = texto:gsub("mano", "senhor"):gsub("Mano", "Senhor") if texto:lower():match("^ola") and not texto:match("olá") then texto = texto:gsub("ola", "Olá"):gsub("Ola", "Olá") end texto = texto:gsub('"', "“") texto = texto:gsub("'", "‘") for termo, marcador in pairs(termosProtegidos) do texto = texto:gsub(marcador, termo) texto = texto:gsub(marcador:gsub("###(%w+)###", function(v) return v:lower() end), termo) end texto = texto:gsub("^%l", string.upper) local ultimaLetra = string.sub(texto, -1) if ultimaLetra ~= "." and ultimaLetra ~= "!" and ultimaLetra ~= "?" and ultimaLetra ~= "”" and ultimaLetra ~= "’" then texto = texto .. "." end return texto end local function enviarMensagem() local textoDigitado = TextBox.Text if textoDigitado == "" then return end local textoTratado = processarMensagem(textoDigitado) enviarTextoDireto(textoTratado) TextBox.Text = "" end SendButton.MouseButton1Click:Connect(enviarMensagem) TextBox.FocusLost:Connect(function(enterPressed) if enterPressed then enviarMensagem() end end) -- ========================================== -- INTERFACE LATERAL (ABAS CHAR / COMANDO) -- ========================================== local SideButton = Instance.new("TextButton") SideButton.Size = UDim2.new(0, 95, 0, 22) SideButton.Position = UDim2.new(0, 215, 1, -342) SideButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40) SideButton.TextColor3 = Color3.fromRGB(255, 255, 255) SideButton.TextSize = 10 SideButton.Font = Enum.Font.SourceSansBold SideButton.Text = "💬 Salvos" SideButton.Parent = ScreenGui local SideCorner = Instance.new("UICorner") SideCorner.CornerRadius = UDim.new(0, 6) SideCorner.Parent = SideButton local SideMainFrame = Instance.new("Frame") SideMainFrame.Size = UDim2.new(0, 220, 0, 200) SideMainFrame.Position = UDim2.new(0, 215, 1, -316) SideMainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) SideMainFrame.BackgroundTransparency = 0.2 SideMainFrame.BorderSizePixel = 0 SideMainFrame.Visible = false SideMainFrame.Parent = ScreenGui local SideMainCorner = Instance.new("UICorner") SideMainCorner.CornerRadius = UDim.new(0, 8) SideMainCorner.Parent = SideMainFrame local TabChar = Instance.new("TextButton") TabChar.Size = UDim2.new(0, 103, 0, 22) TabChar.Position = UDim2.new(0, 5, 0, 5) TabChar.BackgroundColor3 = Color3.fromRGB(50, 50, 50) TabChar.TextColor3 = Color3.fromRGB(255, 255, 255) TabChar.TextSize = 11 TabChar.Font = Enum.Font.SourceSansBold TabChar.Text = "char" TabChar.Parent = SideMainFrame local TabCharCorner = Instance.new("UICorner") TabCharCorner.CornerRadius = UDim.new(0, 5) TabCharCorner.Parent = TabChar local TabComando = Instance.new("TextButton") TabComando.Size = UDim2.new(0, 103, 0, 22) TabComando.Position = UDim2.new(0, 112, 0, 5) TabComando.BackgroundColor3 = Color3.fromRGB(30, 30, 30) TabComando.TextColor3 = Color3.fromRGB(200, 200, 200) TabComando.TextSize = 11 TabComando.Font = Enum.Font.SourceSansBold TabComando.Text = "comando" TabComando.Parent = SideMainFrame local TabCmdCorner = Instance.new("UICorner") TabCmdCorner.CornerRadius = UDim.new(0, 5) TabCmdCorner.Parent = TabComando local function criarSecaoDeCampos(parentGui, dataTable, fileName) local Scroll = Instance.new("ScrollingFrame") Scroll.Size = UDim2.new(0, 210, 0, 160) Scroll.Position = UDim2.new(0, 5, 0, 32) Scroll.BackgroundTransparency = 1 Scroll.BorderSizePixel = 0 Scroll.CanvasSize = UDim2.new(0, 0, 0, 10 * 55) Scroll.ScrollBarThickness = 3 Scroll.Parent = parentGui local Layout = Instance.new("UIListLayout") Layout.SortOrder = Enum.SortOrder.LayoutOrder Layout.Padding = UDim.new(0, 5) Layout.Parent = Scroll for i = 1, 10 do local RowFrame = Instance.new("Frame") RowFrame.Size = UDim2.new(1, -6, 0, 50) RowFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) RowFrame.BackgroundTransparency = 0.5 RowFrame.BorderSizePixel = 0 RowFrame.Parent = Scroll local RowCorner = Instance.new("UICorner") RowCorner.CornerRadius = UDim.new(0, 6) RowCorner.Parent = RowFrame local InputBox = Instance.new("TextBox") InputBox.Size = UDim2.new(1, -8, 0, 22) InputBox.Position = UDim2.new(0, 4, 0, 2) InputBox.BackgroundTransparency = 1 InputBox.TextColor3 = Color3.fromRGB(255, 255, 255) InputBox.TextSize = 11 InputBox.Font = Enum.Font.SourceSans InputBox.TextXAlignment = Enum.TextXAlignment.Left InputBox.PlaceholderText = "Escreva aqui..." InputBox.Text = dataTable[i] or "" InputBox.Parent = RowFrame InputBox.FocusLost:Connect(function() dataTable[i] = InputBox.Text salvarDados(fileName, dataTable) end) local SendChatBtn = Instance.new("TextButton") SendChatBtn.Size = UDim2.new(0, 60, 0, 18) SendChatBtn.Position = UDim2.new(0, 4, 0, 26) SendChatBtn.BackgroundColor3 = Color3.fromRGB(30, 144, 255) SendChatBtn.TextColor3 = Color3.fromRGB(255, 255, 255) SendChatBtn.TextSize = 9 SendChatBtn.Font = Enum.Font.SourceSansBold SendChatBtn.Text = "Mandar" SendChatBtn.Parent = RowFrame local SBtnCorner = Instance.new("UICorner") SBtnCorner.CornerRadius = UDim.new(0, 4) SBtnCorner.Parent = SendChatBtn SendChatBtn.MouseButton1Click:Connect(function() if InputBox.Text ~= "" then enviarTextoDireto(processarMensagem(InputBox.Text)) end end) local CopyBtn = Instance.new("TextButton") CopyBtn.Size = UDim2.new(0, 60, 0, 18) CopyBtn.Position = UDim2.new(0, 68, 0, 26) CopyBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 50) CopyBtn.TextColor3 = Color3.fromRGB(255, 255, 255) CopyBtn.TextSize = 9 CopyBtn.Font = Enum.Font.SourceSansBold CopyBtn.Text = "Copiar" CopyBtn.Parent = RowFrame local CBtnCorner = Instance.new("UICorner") CBtnCorner.CornerRadius = UDim.new(0, 4) CBtnCorner.Parent = CopyBtn CopyBtn.MouseButton1Click:Connect(function() if setclipboard and InputBox.Text ~= "" then setclipboard(InputBox.Text) CopyBtn.Text = "Copiado!" task.wait(1) CopyBtn.Text = "Copiar" end end) local DeleteBtn = Instance.new("TextButton") DeleteBtn.Size = UDim2.new(0, 60, 0, 18) DeleteBtn.Position = UDim2.new(0, 132, 0, 26) DeleteBtn.BackgroundColor3 = Color3.fromRGB(180, 40, 40) DeleteBtn.TextColor3 = Color3.fromRGB(255, 255, 255) DeleteBtn.TextSize = 9 DeleteBtn.Font = Enum.Font.SourceSansBold DeleteBtn.Text = "Deletar" DeleteBtn.Parent = RowFrame local DBtnCorner = Instance.new("UICorner") DBtnCorner.CornerRadius = UDim.new(0, 4) DBtnCorner.Parent = DeleteBtn local ConfirmOverlay = Instance.new("Frame") ConfirmOverlay.Size = UDim2.new(1, 0, 1, 0) ConfirmOverlay.BackgroundColor3 = Color3.fromRGB(20, 40, 80) ConfirmOverlay.BackgroundTransparency = 0.3 ConfirmOverlay.Visible = false ConfirmOverlay.ZIndex = 5 ConfirmOverlay.Parent = RowFrame local ConfirmCorner = Instance.new("UICorner") ConfirmCorner.CornerRadius = UDim.new(0, 6) ConfirmCorner.Parent = ConfirmOverlay local ConfirmText = Instance.new("TextLabel") ConfirmText.Size = UDim2.new(1, 0, 0, 22) ConfirmText.BackgroundTransparency = 1 ConfirmText.TextColor3 = Color3.fromRGB(255, 255, 255) ConfirmText.TextSize = 10 ConfirmText.Font = Enum.Font.SourceSansBold ConfirmText.Text = "Tem certeza que quer deletar?" ConfirmText.ZIndex = 6 ConfirmText.Parent = ConfirmOverlay local YesBtn = Instance.new("TextButton") YesBtn.Size = UDim2.new(0, 45, 0, 18) YesBtn.Position = UDim2.new(0, 30, 0, 25) YesBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 200) YesBtn.TextColor3 = Color3.fromRGB(255, 255, 255) YesBtn.TextSize = 9 YesBtn.Font = Enum.Font.SourceSansBold YesBtn.Text = "Sim" YesBtn.ZIndex = 6 YesBtn.Parent = ConfirmOverlay local YesCorner = Instance.new("UICorner") YesCorner.CornerRadius = UDim.new(0, 4) YesCorner.Parent = YesBtn local NoBtn = Instance.new("TextButton") NoBtn.Size = UDim2.new(0, 45, 0, 18) NoBtn.Position = UDim2.new(0, 105, 0, 25) NoBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) NoBtn.TextColor3 = Color3.fromRGB(255, 255, 255) NoBtn.TextSize = 9 NoBtn.Font = Enum.Font.SourceSansBold NoBtn.Text = "Não" NoBtn.ZIndex = 6 NoBtn.Parent = ConfirmOverlay local NoCorner = Instance.new("UICorner") NoCorner.CornerRadius = UDim.new(0, 4) NoCorner.Parent = NoBtn DeleteBtn.MouseButton1Click:Connect(function() ConfirmOverlay.Visible = true end) NoBtn.MouseButton1Click:Connect(function() ConfirmOverlay.Visible = false end) YesBtn.MouseButton1Click:Connect(function() InputBox.Text = "" dataTable[i] = "" salvarDados(fileName, dataTable) ConfirmOverlay.Visible = false end) end return Scroll end local ScrollChar = criarSecaoDeCampos(SideMainFrame, charSavedData, CHAR_FILE) local ScrollComando = criarSecaoDeCampos(SideMainFrame, cmdSavedData, CMD_FILE) ScrollComando.Visible = false TabChar.MouseButton1Click:Connect(function() ScrollChar.Visible = true ScrollComando.Visible = false TabChar.BackgroundColor3 = Color3.fromRGB(50, 50, 50) TabChar.TextColor3 = Color3.fromRGB(255, 255, 255) TabComando.BackgroundColor3 = Color3.fromRGB(30, 30, 30) TabComando.TextColor3 = Color3.fromRGB(200, 200, 200) end) TabComando.MouseButton1Click:Connect(function() ScrollChar.Visible = false ScrollComando.Visible = true TabComando.BackgroundColor3 = Color3.fromRGB(50, 50, 50) TabComando.TextColor3 = Color3.fromRGB(255, 255, 255) TabChar.BackgroundColor3 = Color3.fromRGB(30, 30, 30) TabChar.TextColor3 = Color3.fromRGB(200, 200, 200) end) SideButton.MouseButton1Click:Connect(function() SideMainFrame.Visible = not SideMainFrame.Visible end) -- ========================================== -- SCRIPT DE INVISÍVEL COM INTERFACE REDUZIDA -- ========================================== pcall(function() local success, scriptInvisivel = pcall(function() return game:HttpGet("https://rawscripts.net/raw/Universal-Script-Awesome-Invisible-man-133400") end) if success and scriptInvisivel then -- Pequeno ajuste para diminuir qualquer GUI antiga criada pelo script externo se visível task.spawn(function() loadstring(scriptInvisivel)() task.wait(1) for _, gui in ipairs(player.PlayerGui:GetChildren()) do if gui:IsA("ScreenGui") and gui.Name ~= "CustomChatClean" then for _, frame in ipairs(gui:GetDescendants()) do if frame:IsA("Frame") and frame.Size.X.Offset > 150 then frame.Size = UDim2.new(0, 140, 0, 90) end end end end end) end end)