Tcagui
Key RequiredUniversal

Tcagui

Universal Scriptagcy58agcy58 271 views 3 executesUpdated Dec 20, 2025
Unrated
00
Lua Script•255 lines (8874 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local Lighting = game:GetService("Lighting")
local Workspace = game:GetService("Workspace")
local SoundService = game:GetService("SoundService")
local PlayerGui = Players.LocalPlayer:WaitForChild("PlayerGui")

local TRFF_SKYBOX_ID = "rbxassetid://92804768734647"
local TCA_THEME_ID = "rbxassetid://139488665764275"
local TCA_SKYBOX_ID = "rbxassetid://132023135111594"
local FACE_CHANGE_ID_1 = "rbxassetid://91318912865258"
local FACE_CHANGE_ID_2 = "rbxassetid://92804768734647"
local GUI_NAME = "Trffgui"
local GUI_AUTHOR = "免游"

local MainGui = Instance.new("ScreenGui")
MainGui.Name = GUI_NAME
MainGui.Parent = PlayerGui

local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 420, 0, 260)
MainFrame.Position = UDim2.new(0.1, 0, 0.1, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
MainFrame.BorderColor3 = Color3.fromRGB(80, 80, 80)
MainFrame.BorderSizePixel = 2
MainFrame.Active = true
MainFrame.Parent = MainGui

local HeaderFrame = Instance.new("Frame")
HeaderFrame.Name = "HeaderFrame"
HeaderFrame.Size = UDim2.new(1, 0, 0, 40)
HeaderFrame.Position = UDim2.new(0, 0, 0, 0)
HeaderFrame.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
HeaderFrame.Parent = MainFrame

local TitleLabel = Instance.new("TextLabel")
TitleLabel.Name = "TitleLabel"
TitleLabel.Size = UDim2.new(0.6, 0, 1, 0)
TitleLabel.Position = UDim2.new(0, 10, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = GUI_NAME
TitleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
TitleLabel.TextSize = 20
TitleLabel.Font = Enum.Font.SourceSansBold
TitleLabel.Parent = HeaderFrame

local AuthorLabel = Instance.new("TextLabel")
AuthorLabel.Name = "AuthorLabel"
AuthorLabel.Size = UDim2.new(0.4, 0, 1, 0)
AuthorLabel.Position = UDim2.new(0.6, 0, 0, 0)
AuthorLabel.BackgroundTransparency = 1
AuthorLabel.Text = "Author: " .. GUI_AUTHOR
AuthorLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
AuthorLabel.TextSize = 14
AuthorLabel.Font = Enum.Font.SourceSans
AuthorLabel.TextXAlignment = Enum.TextXAlignment.Right
AuthorLabel.Parent = HeaderFrame

local TrffSkyboxBtn = Instance.new("TextButton")
TrffSkyboxBtn.Name = "TrffSkyboxBtn"
TrffSkyboxBtn.Size = UDim2.new(0, 190, 0, 55)
TrffSkyboxBtn.Position = UDim2.new(0, 15, 0, 50)
TrffSkyboxBtn.BackgroundColor3 = Color3.fromRGB(200, 200, 200)
TrffSkyboxBtn.BorderColor3 = Color3.fromRGB(50, 50, 50)
TrffSkyboxBtn.BorderSizePixel = 1
TrffSkyboxBtn.Text = "TrffiacoHax Skybox"
TrffSkyboxBtn.TextSize = 16
TrffSkyboxBtn.Font = Enum.Font.SourceSans
TrffSkyboxBtn.Parent = MainFrame

local PlayThemeBtn = Instance.new("TextButton")
PlayThemeBtn.Name = "PlayThemeBtn"
PlayThemeBtn.Size = UDim2.new(0, 190, 0, 55)
PlayThemeBtn.Position = UDim2.new(0, 215, 0, 50)
PlayThemeBtn.BackgroundColor3 = Color3.fromRGB(200, 200, 200)
PlayThemeBtn.BorderColor3 = Color3.fromRGB(50, 50, 50)
PlayThemeBtn.BorderSizePixel = 1
PlayThemeBtn.Text = "Play Tca Theme"
PlayThemeBtn.TextSize = 16
PlayThemeBtn.Font = Enum.Font.SourceSans
PlayThemeBtn.Parent = MainFrame

local TcaSkyboxBtn = Instance.new("TextButton")
TcaSkyboxBtn.Name = "TcaSkyboxBtn"
TcaSkyboxBtn.Size = UDim2.new(0, 190, 0, 55)
TcaSkyboxBtn.Position = UDim2.new(0, 15, 0, 115)
TcaSkyboxBtn.BackgroundColor3 = Color3.fromRGB(200, 200, 200)
TcaSkyboxBtn.BorderColor3 = Color3.fromRGB(50, 50, 50)
TcaSkyboxBtn.BorderSizePixel = 1
TcaSkyboxBtn.Text = "Tca Skybox"
TcaSkyboxBtn.TextSize = 16
TcaSkyboxBtn.Font = Enum.Font.SourceSans
TcaSkyboxBtn.Parent = MainFrame

local FaceChangeBtn1 = Instance.new("TextButton")
FaceChangeBtn1.Name = "FaceChangeBtn1"
FaceChangeBtn1.Size = UDim2.new(0, 190, 0, 55)
FaceChangeBtn1.Position = UDim2.new(0, 215, 0, 115)
FaceChangeBtn1.BackgroundColor3 = Color3.fromRGB(200, 200, 200)
FaceChangeBtn1.BorderColor3 = Color3.fromRGB(50, 50, 50)
FaceChangeBtn1.BorderSizePixel = 1
FaceChangeBtn1.Text = "Face Change (Style 1)"
FaceChangeBtn1.TextSize = 16
FaceChangeBtn1.Font = Enum.Font.SourceSans
FaceChangeBtn1.Parent = MainFrame

local FaceChangeBtn2 = Instance.new("TextButton")
FaceChangeBtn2.Name = "FaceChangeBtn2"
FaceChangeBtn2.Size = UDim2.new(0, 390, 0, 55)
FaceChangeBtn2.Position = UDim2.new(0, 15, 0, 180)
FaceChangeBtn2.BackgroundColor3 = Color3.fromRGB(200, 200, 200)
FaceChangeBtn2.BorderColor3 = Color3.fromRGB(50, 50, 50)
FaceChangeBtn2.BorderSizePixel = 1
FaceChangeBtn2.Text = "Face Change (Style 2)"
FaceChangeBtn2.TextSize = 16
FaceChangeBtn2.Font = Enum.Font.SourceSans
FaceChangeBtn2.Parent = MainFrame

-- GUI Drag Functionality
local isDragging = false
local dragStartPos
local frameStartPos

MainFrame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        isDragging = true
        dragStartPos = input.Position
        frameStartPos = MainFrame.Position
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if isDragging and input.UserInputType == Enum.UserInputType.MouseMovement then
        local dragOffset = input.Position - dragStartPos
        local viewportSize = Workspace.CurrentCamera.ViewportSize
        
        local newX = math.clamp(frameStartPos.X.Offset + dragOffset.X, 0, viewportSize.X - MainFrame.AbsoluteSize.X)
        local newY = math.clamp(frameStartPos.Y.Offset + dragOffset.Y, 0, viewportSize.Y - MainFrame.AbsoluteSize.Y)
        
        MainFrame.Position = UDim2.new(0, newX, 0, newY)
    end
end)

UserInputService.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        isDragging = false
    end
end)

local function updateSkybox(skyboxId)
    local Sky = Lighting:FindFirstChildOfClass("Sky") or Instance.new("Sky")
    Sky.Parent = Lighting
    Sky.SkyboxBk = skyboxId
    Sky.SkyboxDn = skyboxId
    Sky.SkyboxFt = skyboxId
    Sky.SkyboxLf = skyboxId
    Sky.SkyboxRt = skyboxId
    Sky.SkyboxUp = skyboxId
end

local function playTcaTheme()
    local existingSound = SoundService:FindFirstChild("TCATrffTheme")
    if existingSound then existingSound:Destroy() end

    local themeSound = Instance.new("Sound")
    themeSound.Name = "TCATrffTheme"
    themeSound.SoundId = TCA_THEME_ID
    themeSound.Volume = 0.8
    themeSound.Looped = true
    themeSound.Parent = SoundService
    themeSound:Play()
end

local faceChangeTasks = {}
local function spawnPlayerFaceChange(faceId)
    for _, taskId in ipairs(faceChangeTasks) do
        if taskId then task.cancel(taskId) end
    end
    table.clear(faceChangeTasks)

    local function spawnForPlayer(player)
        local character = player.Character or player.CharacterAdded:Wait()
        local head = character:WaitForChild("Head")

        local loopTask = task.spawn(function()
            while task.wait(0.6) do
                if not head or not head.Parent then break end

                local billboardGui = Instance.new("BillboardGui")
                billboardGui.Name = "TrffFaceChangeGui"
                billboardGui.Size = UDim2.new(0, 80, 0, 80)
                billboardGui.StudsOffset = Vector3.new(0, 0.5, 0)
                billboardGui.AlwaysOnTop = true
                billboardGui.Parent = head

                local faceImage = Instance.new("ImageLabel")
                faceImage.Name = "FaceImage"
                faceImage.Size = UDim2.new(1, 0, 1, 0)
                faceImage.BackgroundTransparency = 1
                faceImage.Image = faceId
                faceImage.Parent = billboardGui

                task.delay(2.5, function()
                    if billboardGui then billboardGui:Destroy() end
                end)
            end
        end)
        table.insert(faceChangeTasks, loopTask)

        player.CharacterAdded:Connect(function(newChar)
            task.wait(1.2)
            spawnForPlayer(player)
        end)
    end

    for _, player in ipairs(Players:GetPlayers()) do
        spawnForPlayer(player)
    end

    Players.PlayerAdded:Connect(spawnForPlayer)
end

TrffSkyboxBtn.MouseButton1Click:Connect(function()
    updateSkybox(TRFF_SKYBOX_ID)
end)

PlayThemeBtn.MouseButton1Click:Connect(playTcaTheme)

TcaSkyboxBtn.MouseButton1Click:Connect(function()
    updateSkybox(TCA_SKYBOX_ID)
end)

FaceChangeBtn1.MouseButton1Click:Connect(function()
    spawnPlayerFaceChange(FACE_CHANGE_ID_1)
end)

FaceChangeBtn2.MouseButton1Click:Connect(function()
    spawnPlayerFaceChange(FACE_CHANGE_ID_2)
end)

local function addHoverEffect(button)
    button.MouseEnter:Connect(function()
        button.BackgroundColor3 = Color3.fromRGB(150, 150, 150)
    end)
    button.MouseLeave:Connect(function()
        button.BackgroundColor3 = Color3.fromRGB(200, 200, 200)
    end)
end

addHoverEffect(TrffSkyboxBtn)
addHoverEffect(PlayThemeBtn)
addHoverEffect(TcaSkyboxBtn)
addHoverEffect(FaceChangeBtn1)
addHoverEffect(FaceChangeBtn2)

Features & Information

TcaGui
#script

Community Comments (1)

y*inzoobay*inzoobaDec 20, 2025

I didn't understand his point at all.

More Scripts for Universal Scripts