how to f3x gui
Key RequiredUniversal

how to f3x gui

Universal Scriptd3crypted9d3crypted9 2K views 525 executesUpdated Apr 14, 2026
0.0/ 5(2 votes)
020% Positive
Lua Script•271 lines (7864 chars)
--[[
    d3crypted9 F3X Tutorial
    made by d3crypted9
    all credits to d3crypted9
since me nice guy i make this yaya 
only for people who need help ig
]]

-- service

local Players = game:GetService("Players")
local RS = game:GetService("ReplicatedStorage")
local RUN = game:GetService("RunService")
local plr = Players.LocalPlayer

-- gets the f3x endpoint, you need f3x equipped for this to work
local function getF3X()
    for _, v in pairs(plr:GetDescendants()) do
        if v.Name == "SyncAPI" then return v.ServerEndpoint end
    end
    for _, v in pairs(RS:GetDescendants()) do
        if v.Name == "SyncAPI" then return v.ServerEndpoint end
    end
    return nil
end

-- fires an f3x command
local function f3x(ep, args)
    pcall(function() ep:InvokeServer(table.unpack(args)) end)
end

-- fires an hd admin command silently
local function cmd(c)
    pcall(function()
        RS:WaitForChild("HDAdminHDClient")
            :WaitForChild("Signals")
            :WaitForChild("RequestCommandSilent")
            :InvokeServer(c)
    end)
end

-- help

local remote -- set this before using any of these

local function SetCollision(part, boolean)
    f3x(remote, {"SyncCollision", {{Part=part, CanCollide=boolean}}})
end

local function SetAnchor(part, boolean)
    f3x(remote, {"SyncAnchor", {{Part=part, Anchored=boolean}}})
end

local function CreatePart(cf, parent)
    return remote:InvokeServer("CreatePart", "Normal", cf, parent)
end

local function DestroyPart(part)
    f3x(remote, {"Remove", {part}})
end

local function MovePart(part, cf)
    f3x(remote, {"SyncMove", {{Part=part, CFrame=cf}}})
end

local function Resize(part, size, cf)
    f3x(remote, {"SyncResize", {{Part=part, CFrame=cf, Size=size}}})
end

local function AddMesh(part)
    f3x(remote, {"CreateMeshes", {{Part=part}}})
end

local function SetMesh(part, meshid)
    f3x(remote, {"SyncMesh", {{Part=part, MeshId="rbxassetid://"..meshid}}})
end

local function SetTexture(part, texid)
    f3x(remote, {"SyncMesh", {{Part=part, TextureId="rbxassetid://"..texid}}})
end

local function SetName(part, str)
    f3x(remote, {"SetName", {part}, str})
end

local function MeshResize(part, size)
    f3x(remote, {"SyncMesh", {{Part=part, Scale=size}}})
end

local function SetLocked(part, boolean)
    f3x(remote, {"SetLocked", {part}, boolean})
end

local function SetTrans(part, int)
    f3x(remote, {"SyncMaterial", {{Part=part, Transparency=int}}})
end

local function Color(part, color)
    f3x(remote, {"SyncColor", {{Part=part, Color=color, UnionColoring=false}}})
end

local function SpawnDecal(part, side)
    f3x(remote, {"CreateTextures", {{Part=part, Face=side, TextureType="Decal"}}})
end

local function AddDecal(part, asset, side)
    f3x(remote, {"SyncTexture", {{Part=part, Face=side, TextureType="Decal", Texture="rbxassetid://"..asset}}})
end

local function CreateSpotlight(part)
    f3x(remote, {"CreateLights", {{Part=part, LightType="SpotLight"}}})
end

local function SyncLighting(part, brightness)
    f3x(remote, {"SyncLighting", {{Part=part, LightType="SpotLight", Brightness=brightness}}})
end

local function Weld(part1, part2, lead)
    f3x(remote, {"CreateWelds", {part1, part2}, lead})
end

-- gui

local gui = Instance.new("ScreenGui")
gui.Name = "d3crypted9_tutorial"
gui.Parent = plr:WaitForChild("PlayerGui")
gui.ResetOnSpawn = false
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 600, 0, 750)
mainFrame.Position = UDim2.new(0.5, -300, 0.5, -375)
mainFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
mainFrame.BorderSizePixel = 3
mainFrame.BorderColor3 = Color3.fromRGB(255, 0, 0)
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Parent = gui

-- title
local title = Instance.new("TextLabel")
title.Parent = mainFrame
title.Size = UDim2.new(1, 0, 0, 50)
title.Position = UDim2.new(0, 0, 0, 0)
title.BackgroundTransparency = 1
title.Text = "d3crypted9 f3x tutorial gui"
title.TextColor3 = Color3.fromRGB(255, 0, 0)
title.TextScaled = true
title.Font = Enum.Font.Fantasy

-- helper to make buttons
local function makeBtn(name, text, pos, size)
    local b = Instance.new("TextButton")
    b.Name = name
    b.Parent = mainFrame
    b.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    b.BorderColor3 = Color3.fromRGB(255, 0, 0)
    b.BorderSizePixel = 3
    b.Position = pos
    b.Size = size
    b.Text = text
    b.TextColor3 = Color3.fromRGB(255, 0, 0)
    b.TextScaled = true
    b.Font = Enum.Font.Arial
    return b
end

local btoolsBtn  = makeBtn("btools",   "get f3x",        UDim2.new(0,10,0,60),  UDim2.new(0,180,0,50))
local skyboxBtn  = makeBtn("skybox",   "skybox",         UDim2.new(0,200,0,60), UDim2.new(0,180,0,50))
local decalBtn   = makeBtn("decal",    "decal spam",     UDim2.new(0,390,0,60), UDim2.new(0,180,0,50))

-- decal id textbox
local decalBox = Instance.new("TextBox")
decalBox.Parent = mainFrame
decalBox.Size = UDim2.new(0, 380, 0, 45)
decalBox.Position = UDim2.new(0, 10, 0, 120)
decalBox.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
decalBox.BorderColor3 = Color3.fromRGB(255, 0, 0)
decalBox.BorderSizePixel = 3
decalBox.PlaceholderText = "enter decal or skybox id here"
decalBox.PlaceholderColor3 = Color3.fromRGB(255, 0, 0)
decalBox.Text = ""
decalBox.TextColor3 = Color3.fromRGB(255, 0, 0)
decalBox.TextScaled = true
decalBox.Font = Enum.Font.Arial

local function getDecalId()
    return decalBox.Text:match("%d+")
end

-btools

btoolsBtn.MouseButton1Click:Connect(function()
    cmd(";btools me")
end)

--skyboxxdx

skyboxBtn.MouseButton1Click:Connect(function()
    remote = getF3X()
    if not remote then print("equip f3x first bro") return end

    local id = getDecalId()
    if not id then print("enter an id in the box") return end

    local char = plr.Character
    local hrp = char and char:FindFirstChild("HumanoidRootPart")
    if not hrp then return end

    local cf = hrp.CFrame
    local part = CreatePart(cf, workspace)
    task.wait(0.3)

    -- find the new part
    local skyPart = nil
    for _, v in pairs(workspace:GetDescendants()) do
        if v:IsA("BasePart") and v.Name == "Part" then
            if math.abs(v.Position.X - math.floor(hrp.Position.X)) < 2 then
                skyPart = v
                break
            end
        end
    end

    if not skyPart then print("part not found") return end

    SetName(skyPart, "d3crypted9_skybox")
    AddMesh(skyPart)
    SetMesh(skyPart, "111891702759441")
    SetTexture(skyPart, id)
    MeshResize(skyPart, Vector3.new(7200, 7200, 7200))
    SetAnchor(skyPart, true)
    SetCollision(skyPart, false)
    SetLocked(skyPart, true)

    print("skybox done - made by d3crypted9")
end)

-- decal spam button

decalBtn.MouseButton1Click:Connect(function()
    remote = getF3X()
    if not remote then print("equip f3x first bro") return end

    local id = getDecalId()
    if not id then print("enter an id in the box") return end

    for _, v in pairs(workspace:GetDescendants()) do
        if v:IsA("BasePart") then
            task.spawn(function()
                SetLocked(v, false)
                SpawnDecal(v, Enum.NormalId.Front)
                AddDecal(v, id, Enum.NormalId.Front)
                SpawnDecal(v, Enum.NormalId.Back)
                AddDecal(v, id, Enum.NormalId.Back)
                SpawnDecal(v, Enum.NormalId.Right)
                AddDecal(v, id, Enum.NormalId.Right)
                SpawnDecal(v, Enum.NormalId.Left)
                AddDecal(v, id, Enum.NormalId.Left)
                SpawnDecal(v, Enum.NormalId.Bottom)
                AddDecal(v, id, Enum.NormalId.Bottom)
                SpawnDecal(v, Enum.NormalId.Top)
                AddDecal(v, id, Enum.NormalId.Top)
            end)
        end
    end

    print("decal spam done - made by d3crypted9")
end)

print("d3crypted9 tutorial gui is doneeeeeeee")

Features & Information

fixed stuff for lnicky tut reove button shi+ corrcect code logic so aaa

Community Comments (21)

d3crypted9d3crypted9Apr 14, 2026

kinda took long but eh its whatev

jtamar775jtamar775Apr 14, 2026

Is it keyless

Replying to @jtamar775
d3crypted9d3crypted9Apr 16, 2026

@jtamar775 im not gonna respond to ts ur js stupid atp

raping_elv4r0xraping_elv4r0xApr 15, 2026

Chatgpt hacker

Replying to @raping_elv4r0x
d3crypted9d3crypted9Apr 15, 2026

@raping_elv4r0x its a tutorial?

Replying to @raping_elv4r0x
Mythic_BuilderMythic_BuilderMay 18, 2026

@raping_elv4r0x omfg bro

Replying to @raping_elv4r0x
d3crypted9d3crypted9May 27, 2026

@raping_elv4r0x see now i get it, if ur not famous in the f3x gui community or smth and then u add ONE helpful comment or smth like that they add "skid" or smth thats sad yall go based off popularity bruv thats why i might leave f3x exploting and go to serversiding because of this

8x8x6x6x0_8x8x6x6x0_Apr 15, 2026

Gptskid

Replying to @8x8x6x6x0_
d3crypted9d3crypted9Apr 15, 2026

@8x8x6x6x0_ u use chatgpt and gemini and grok stsu

skidIordskidIordApr 15, 2026

lovin' it when these guys comment "skid skid chatgpt skid" acting as if they don't use chatgpt to make their guis

Replying to @skidIord
d3crypted9d3crypted9Apr 15, 2026

@skidIord thank u man am just tryna make a tutorial thats why there is comments

1_wxaa1_wxaaApr 15, 2026

its already do i think?

Replying to @1_wxaa
d3crypted9d3crypted9Apr 16, 2026

@1_wxaa hm? wdym

Replying to @d3crypted9
1_wxaa1_wxaaApr 16, 2026

@d3crypted9 meen tutorial

g0ldsayskysg0ldsayskysApr 15, 2026

swagger gui

Replying to @g0ldsayskys
g0ldsayskysg0ldsayskysApr 15, 2026

tut

D00mkiddD00mkiddApr 19, 2026

yo this is good i am going to use this

Replying to @D00mkidd
d3crypted9d3crypted9Apr 21, 2026

@D00mkidd a

peakopeakoApr 23, 2026

chatgpt hacker

Replying to @peako
d3crypted9d3crypted9Apr 25, 2026

@peako i hate that we cant make tutorials anymore because people call it chatgpt

z000rzkidd_altz000rzkidd_altMay 12, 2026

Such a cool tutorial for beginners !

More Scripts for Universal Scripts