local player = game.Players.LocalPlayer local char = player.Character or player.CharacterAdded:Wait() local hrp = char:WaitForChild("HumanoidRootPart") local tool for _, v in player:GetDescendants() do if v.Name == "SyncAPI" then tool = v.Parent break end end for _, v in game.ReplicatedStorage:GetDescendants() do if v.Name == "SyncAPI" then tool = v.Parent break end end local remote = tool.SyncAPI.ServerEndpoint local function Send(args) remote:InvokeServer(unpack(args)) end local function CreatePart(cf, parent) Send({"CreatePart", "Normal", cf, parent}) end local function MovePart(part, cf) Send({"SyncMove", {{Part = part, CFrame = cf}}}) end local function SetAnchor(bool, part) Send({"SyncAnchor", {{Part = part, Anchored = bool}}}) end local function SetLocked(part, bool) Send({"SetLocked", {part}, bool}) end local function AddMesh(part) Send({"CreateMeshes", {{Part = part}}}) end local function Resize(part, size, cf) Send({"SyncResize", {{Part = part, Size = size, CFrame = cf}}}) end local function SetColor(part, color) Send({"SyncColor", {{Part = part, Color = color, UnionColoring = false}}}) end local function SetCylinderMesh(part) local args = { "CreateMeshes", { { Part = part } } } Send(args) -- Resize mesh Send({ "SyncMesh", { { Part = part, Scale = Vector3.new(1, 0.5, 1) } } }) end local padCF = CFrame.new(hrp.Position.X, hrp.Position.Y - 4, hrp.Position.Z) CreatePart(padCF, workspace) local pad for _, v in workspace:GetDescendants() do if v:IsA("BasePart") and (v.Position - Vector3.new(hrp.Position.X, hrp.Position.Y - 4, hrp.Position.Z)).Magnitude < 0.1 then pad = v break end end if pad then SetAnchor(true, pad) SetLocked(pad, true) Resize(pad, Vector3.new(8, 1.2, 8), pad.CFrame) SetColor(pad, Color3.fromRGB(0,0,0)) SetCylinderMesh(pad) while true do local targetCF = CFrame.new(hrp.Position.X, hrp.Position.Y - 4, hrp.Position.Z) MovePart(pad, targetCF) wait() end end