local player = game.Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local screen = Instance.new("ScreenGui") screen.ResetOnSpawn = false screen.Parent = playerGui local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 175, 0, 90) frame.Position = UDim2.new(0.45, 0, 0.3, 0) frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) frame.BorderColor3 = Color3.fromRGB(255, 0, 4) frame.BorderSizePixel = 1 frame.Active = true frame.Draggable = true frame.Parent = screen local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 16) title.BackgroundColor3 = Color3.fromRGB(0, 0, 0) title.BorderColor3 = Color3.fromRGB(255, 0, 4) title.BorderSizePixel = 1 title.Text = "F3x skybox" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.TextScaled = true title.Font = Enum.Font.TitilliumWeb title.Parent = frame local idBox = Instance.new("TextBox") idBox.Size = UDim2.new(1, -8, 0, 24) idBox.Position = UDim2.new(0, 4, 0, 22) idBox.BackgroundColor3 = Color3.fromRGB(255, 255, 255) idBox.BorderColor3 = Color3.fromRGB(255, 0, 4) idBox.BorderSizePixel = 1 idBox.Text = "" idBox.PlaceholderText = "paste ur texture id here" idBox.PlaceholderColor3 = Color3.fromRGB(150, 150, 150) idBox.TextColor3 = Color3.fromRGB(0, 0, 0) idBox.TextScaled = true idBox.Font = Enum.Font.TitilliumWeb idBox.ClearTextOnFocus = false idBox.Parent = frame local setBtn = Instance.new("TextButton") setBtn.Size = UDim2.new(1, -8, 0, 28) setBtn.Position = UDim2.new(0, 4, 0, 52) setBtn.BackgroundColor3 = Color3.fromRGB(0, 0, 0) setBtn.BorderColor3 = Color3.fromRGB(255, 0, 4) setBtn.BorderSizePixel = 1 setBtn.Text = "Set" setBtn.TextColor3 = Color3.fromRGB(255, 255, 255) setBtn.TextScaled = true setBtn.Font = Enum.Font.TitilliumWeb setBtn.Parent = frame setBtn.MouseEnter:Connect(function() setBtn.BackgroundColor3 = Color3.fromRGB(40, 0, 0) end) setBtn.MouseLeave:Connect(function() setBtn.BackgroundColor3 = Color3.fromRGB(0, 0, 0) end) local function findSyncAPI() for _, obj in ipairs(player:GetDescendants()) do if obj.Name == "SyncAPI" then return obj end end for _, obj in ipairs(game.ReplicatedStorage:GetDescendants()) do if obj.Name == "SyncAPI" then return obj end end return nil end setBtn.MouseButton1Click:Connect(function() local sync = findSyncAPI() if not sync then warn("No F3X tool equipped.") return end local endpoint = sync.ServerEndpoint local texture = idBox.Text if texture == "" then warn("Put a texture id first.") return end local char = player.Character if not char then return end local root = char:FindFirstChild("HumanoidRootPart") if not root then return end local spawnCF = root.CFrame + Vector3.new(0, 6, 0) endpoint:InvokeServer("CreatePart", "Normal", spawnCF, workspace) task.wait(0.2) for _, part in ipairs(workspace:GetChildren()) do if part:IsA("BasePart") and (part.Position - spawnCF.Position).Magnitude < 1 then endpoint:InvokeServer("SetName", {part}, "Sky") endpoint:InvokeServer("CreateMeshes", {{["Part"] = part}}) endpoint:InvokeServer("SyncMesh", {{["Part"] = part, ["MeshId"] = "rbxassetid://111891702759441"}}) endpoint:InvokeServer("SyncMesh", {{["Part"] = part, ["TextureId"] = "rbxassetid://" .. texture}}) endpoint:InvokeServer("SyncMesh", {{["Part"] = part, ["Scale"] = Vector3.new(1000, 1000, 1000)}}) endpoint:InvokeServer("SetLocked", {part}, true) endpoint:InvokeServer("SyncAnchor", {{["Part"] = part, ["Anchored"] = true}}) break end end end)