--[=[ d888b db db d888888b .d888b. db db db .d8b. 88' Y8b 88 88 `88' VP `8D 88 88 88 d8' `8b 88 88 88 88 odD' 88 88 88 88ooo88 88 ooo 88 88 88 .88' 88 88 88 88~~~88 88. ~8~ 88b d88 .88. j88. 88booo. 88b d88 88 88 @uniquadev Y888P ~Y8888P' Y888888P 888888D Y88888P ~Y8888P' YP YP CONVERTER designed using GuiBuilderTool - Enhanced Gui2Lua style ]=] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local IMAGE_ID = "102621070574871" local function getF3XRemote() local tool if LocalPlayer.Character then tool = LocalPlayer.Character:FindFirstChild("Building Tools+") end if not tool and LocalPlayer:FindFirstChild("Backpack") then tool = LocalPlayer.Backpack:FindFirstChild("Building Tools+") end if not tool then for _, v in ipairs(LocalPlayer:GetDescendants()) do if v.Name == "SyncAPI" then tool = v.Parent break end end end if not tool then for _, v in ipairs(game.ReplicatedStorage:GetDescendants()) do if v.Name == "SyncAPI" then tool = v.Parent break end end end if tool then return tool:FindFirstChild("SyncAPI") and tool.SyncAPI:FindFirstChild("ServerEndpoint") end return nil end local remote = getF3XRemote() if not remote then return end local function _(args) pcall(function() remote:InvokeServer(unpack(args)) end) end local function CreatePart(cf) _({"CreatePart", "Normal", cf, workspace}) end local function SetName(part, name) _({"SetName", {[1] = part}, name}) end local function SetTransparency(part, v) _({"SyncMaterial", {{["Part"] = part, ["Transparency"] = v}}}) end local function SetColor(part, c) _({"SyncColor", {{["Part"] = part, ["Color"] = c, ["UnionColoring"] = false}}}) end local function Resize(part, size, cf) _({"SyncResize", {{["Part"] = part, ["CFrame"] = cf, ["Size"] = size}}}) end local function SetAnchor(b, part) _({"SyncAnchor", {{["Part"] = part, ["Anchored"] = b}}}) end local function SetCollision(part, b) _({"SyncCollision", {{["Part"] = part, ["CanCollide"] = b}}}) end local function SyncMove(part, cf) _({"SyncMove", {{["Part"] = part, ["CFrame"] = cf}}}) end local function SpawnDecal(part, side) _({"CreateTextures", {{["Part"] = part, ["Face"] = side, ["TextureType"] = "Decal"}}}) end local function AddDecal(part, asset, side) _({"SyncTexture", {{["Part"] = part, ["Face"] = side, ["TextureType"] = "Decal", ["Texture"] = "rbxassetid://" .. asset}}}) end local function SetLocked(part, locked) _({"SetLocked", {[1] = part}, locked}) end local function findNewPart(pos) task.wait(0.05) local closest, closestDist = nil, math.huge for _, v in ipairs(workspace:GetChildren()) do if v:IsA("BasePart") and v.Name == "Part" then local d = (v.Position - pos).Magnitude if d < closestDist and d < 5 then closestDist = d; closest = v end end end return closest end local activeBoards = {} local function createBoard(plr) if activeBoards[plr] then pcall(function() _({"Remove", {activeBoards[plr]}}) end) activeBoards[plr] = nil end local char = plr.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if not hrp then return end for _, v in ipairs(char:GetDescendants()) do if v:IsA("BasePart") then v.Transparency = 1 elseif v:IsA("Decal") then v.Transparency = 1 elseif v:IsA("Accessory") then local handle = v:FindFirstChild("Handle") if handle then handle.Transparency = 1 end end end local spawnPos = hrp.Position + Vector3.new(0, 3, 0) CreatePart(CFrame.new(spawnPos)) local p = findNewPart(spawnPos) if p then pcall(function() SetName(p, "zl0ew_Ghost_" .. plr.Name) Resize(p, Vector3.new(15, 15, 0.2), CFrame.new(spawnPos)) SetTransparency(p, 1) SetColor(p, Color3.fromRGB(255, 255, 255)) SetAnchor(true, p) SetCollision(p, false) SetLocked(p, true) SpawnDecal(p, Enum.NormalId.Front) AddDecal(p, IMAGE_ID, Enum.NormalId.Front) SpawnDecal(p, Enum.NormalId.Back) AddDecal(p, IMAGE_ID, Enum.NormalId.Back) end) activeBoards[plr] = p end end local function trackPlayer(plr) if plr.Character then createBoard(plr) end plr.CharacterAdded:Connect(function() task.wait(1.5) createBoard(plr) end) plr.CharacterRemoving:Connect(function() if activeBoards[plr] then pcall(function() _({"Remove", {activeBoards[plr]}}) end) activeBoards[plr] = nil end end) end for _, plr in ipairs(Players:GetPlayers()) do trackPlayer(plr) end Players.PlayerAdded:Connect(trackPlayer) Players.PlayerRemoving:Connect(function(plr) if activeBoards[plr] then pcall(function() _({"Remove", {activeBoards[plr]}}) end) activeBoards[plr] = nil end end) RunService.RenderStepped:Connect(function() for plr, board in pairs(activeBoards) do local char = plr.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if hrp and board and board.Parent then for _, v in ipairs(char:GetDescendants()) do if v:IsA("BasePart") and v.Transparency ~= 1 then v.Transparency = 1 end if v:IsA("Decal") and v.Transparency ~= 1 then v.Transparency = 1 end if v:IsA("Accessory") then local h = v:FindFirstChild("Handle") if h and h.Transparency ~= 1 then h.Transparency = 1 end end end local newPos = hrp.Position + Vector3.new(0, 3, 0) pcall(function() SyncMove(board, CFrame.new(newPos, newPos + workspace.CurrentCamera.CFrame.LookVector * 5)) end) end end end)