--// StarterPlayerScripts LocalScript local Players = game:GetService("Players") local Lighting = game:GetService("Lighting") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") --// Create ScreenGui local screenGui = Instance.new("ScreenGui") screenGui.Name = "CustomSkyMenu" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui --// Open Button local toggleFrame = Instance.new("Frame") toggleFrame.Size = UDim2.new(0, 50, 0, 50) toggleFrame.Position = UDim2.new(0, 10, 0, 10) toggleFrame.BackgroundColor3 = Color3.fromRGB(50,50,50) toggleFrame.BorderSizePixel = 0 toggleFrame.ClipsDescendants = true toggleFrame.Parent = screenGui local toggleUICorner = Instance.new("UICorner") toggleUICorner.CornerRadius = UDim.new(0.5, 0) toggleUICorner.Parent = toggleFrame local toggleBtn = Instance.new("ImageButton") toggleBtn.Size = UDim2.new(1,0,1,0) toggleBtn.BackgroundTransparency = 1 toggleBtn.Image = "rbxassetid://78494414238159" toggleBtn.Parent = toggleFrame --// Main Frame local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0,360,0,340) mainFrame.Position = UDim2.new(0.5,0,0.5,0) mainFrame.AnchorPoint = Vector2.new(0.5,0.5) mainFrame.BackgroundColor3 = Color3.fromRGB(30,30,30) mainFrame.BorderSizePixel = 0 mainFrame.Visible = false mainFrame.ClipsDescendants = true mainFrame.Parent = screenGui local mainUICorner = Instance.new("UICorner") mainUICorner.CornerRadius = UDim.new(0,12) mainUICorner.Parent = mainFrame --// Close Button local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0,30,0,30) closeBtn.Position = UDim2.new(1,-35,0,5) closeBtn.Text = "X" closeBtn.TextColor3 = Color3.fromRGB(255,255,255) closeBtn.BackgroundColor3 = Color3.fromRGB(180,0,0) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 18 closeBtn.Parent = mainFrame local closeUICorner = Instance.new("UICorner") closeUICorner.CornerRadius = UDim.new(0,5) closeUICorner.Parent = closeBtn closeBtn.MouseButton1Click:Connect(function() mainFrame.Visible = false end) --// Title local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1,-20,0,30) titleLabel.Position = UDim2.new(0,10,0,10) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "Sky Settings" titleLabel.TextColor3 = Color3.fromRGB(255,255,255) titleLabel.Font = Enum.Font.GothamBold titleLabel.TextSize = 24 titleLabel.TextXAlignment = Enum.TextXAlignment.Center titleLabel.TextYAlignment = Enum.TextYAlignment.Center titleLabel.Parent = mainFrame --// Credits local creditsLabel = Instance.new("TextLabel") creditsLabel.Size = UDim2.new(1,-20,0,20) creditsLabel.Position = UDim2.new(0,10,0,40) creditsLabel.BackgroundTransparency = 1 creditsLabel.Text = "By @SukitoV1" creditsLabel.TextColor3 = Color3.fromRGB(180,180,180) creditsLabel.Font = Enum.Font.Gotham creditsLabel.TextSize = 14 creditsLabel.TextXAlignment = Enum.TextXAlignment.Center creditsLabel.TextYAlignment = Enum.TextYAlignment.Center creditsLabel.Parent = mainFrame --// Divider bawah Credits local creditsDivider = Instance.new("Frame") creditsDivider.Size = UDim2.new(1,0,0,1) creditsDivider.Position = UDim2.new(0,0,0,60) creditsDivider.BackgroundColor3 = Color3.fromRGB(200,200,200) creditsDivider.BorderSizePixel = 0 creditsDivider.Parent = mainFrame --// Scrolling Frame local scrollingFrame = Instance.new("ScrollingFrame") scrollingFrame.Size = UDim2.new(1,-20,0,160) scrollingFrame.Position = UDim2.new(0,10,0,70) scrollingFrame.BackgroundTransparency = 1 scrollingFrame.BorderSizePixel = 0 scrollingFrame.ScrollBarThickness = 6 scrollingFrame.Active = true scrollingFrame.Selectable = false scrollingFrame.Parent = mainFrame local listLayout = Instance.new("UIListLayout") listLayout.Padding = UDim.new(0,10) listLayout.FillDirection = Enum.FillDirection.Horizontal listLayout.HorizontalAlignment = Enum.HorizontalAlignment.Left listLayout.VerticalAlignment = Enum.VerticalAlignment.Center listLayout.Parent = scrollingFrame --// Drag Scroll local dragging = false local dragStart = nil local startPos = nil scrollingFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = scrollingFrame.CanvasPosition input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) scrollingFrame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement and dragging then local delta = input.Position - dragStart scrollingFrame.CanvasPosition = Vector2.new( math.clamp(startPos.X - delta.X,0,scrollingFrame.CanvasSize.X.Offset - scrollingFrame.AbsoluteSize.X), 0 ) end end) --// Apply Button local applyBtn = Instance.new("TextButton") applyBtn.Size = UDim2.new(0,160,0,36) applyBtn.Position = UDim2.new(0.5,-80,1,-40) applyBtn.Text = "Apply Selected" applyBtn.Font = Enum.Font.GothamBold applyBtn.TextSize = 18 applyBtn.TextColor3 = Color3.fromRGB(255,255,255) applyBtn.BackgroundColor3 = Color3.fromRGB(0,150,255) applyBtn.Parent = mainFrame local applyUICorner = Instance.new("UICorner") applyUICorner.CornerRadius = UDim.new(0,6) applyUICorner.Parent = applyBtn -- Hover animasi Apply applyBtn.MouseEnter:Connect(function() TweenService:Create(applyBtn,TweenInfo.new(0.2,Enum.EasingStyle.Quad),{BackgroundColor3=Color3.fromRGB(0,180,255)}):Play() end) applyBtn.MouseLeave:Connect(function() TweenService:Create(applyBtn,TweenInfo.new(0.2,Enum.EasingStyle.Quad),{BackgroundColor3=Color3.fromRGB(0,150,255)}):Play() end) --// Shadow Toggle modern pill style local shadowToggle = Instance.new("TextButton") shadowToggle.Size = UDim2.new(0,160,0,36) shadowToggle.Position = UDim2.new(0.5,-80,1,-80) shadowToggle.BackgroundColor3 = Color3.fromRGB(80,80,80) shadowToggle.Font = Enum.Font.GothamBold shadowToggle.Text = "Shadow: On" shadowToggle.TextSize = 16 shadowToggle.TextColor3 = Color3.fromRGB(255,255,255) shadowToggle.Parent = mainFrame local shadowUICorner = Instance.new("UICorner") shadowUICorner.CornerRadius = UDim.new(0,18) shadowUICorner.Parent = shadowToggle -- Divider di atas Shadow local shadowDivider = Instance.new("Frame") shadowDivider.Size = UDim2.new(1,0,0,1) shadowDivider.Position = UDim2.new(0,0,1,-90) shadowDivider.BackgroundColor3 = Color3.fromRGB(200,200,200) shadowDivider.BorderSizePixel = 0 shadowDivider.Parent = mainFrame local shadowOn = true local shadowTweenInfo = TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local shadowOnTween = TweenService:Create(shadowToggle, shadowTweenInfo, {BackgroundColor3 = Color3.fromRGB(0,150,255)}) local shadowOffTween = TweenService:Create(shadowToggle, shadowTweenInfo, {BackgroundColor3 = Color3.fromRGB(80,80,80)}) shadowToggle.MouseButton1Click:Connect(function() shadowOn = not shadowOn shadowToggle.Text = "Shadow: "..(shadowOn and "On" or "Off") if shadowOn then shadowOnTween:Play() else shadowOffTween:Play() end end) -- Hover animasi Shadow shadowToggle.MouseEnter:Connect(function() TweenService:Create(shadowToggle,TweenInfo.new(0.2,Enum.EasingStyle.Quad),{BackgroundColor3=Color3.fromRGB(100,100,255)}):Play() end) shadowToggle.MouseLeave:Connect(function() if shadowOn then TweenService:Create(shadowToggle,TweenInfo.new(0.2,Enum.EasingStyle.Quad),{BackgroundColor3=Color3.fromRGB(0,150,255)}):Play() else TweenService:Create(shadowToggle,TweenInfo.new(0.2,Enum.EasingStyle.Quad),{BackgroundColor3=Color3.fromRGB(80,80,80)}):Play() end end) --// Sky Data local selectedSky = nil --// Get all Sky objects local function getAllSkies() local skies = {} for _, obj in pairs(Lighting:GetChildren()) do if obj:IsA("Sky") then table.insert(skies, obj) end end return skies end --// Create Sky Button local function createSkyButton(skyObj) local btn = Instance.new("Frame") btn.Size = UDim2.new(0,130,0,150) btn.BackgroundColor3 = Color3.fromRGB(50,50,50) btn.BorderSizePixel = 0 btn.Parent = scrollingFrame local btnUICorner = Instance.new("UICorner") btnUICorner.CornerRadius = UDim.new(0,10) btnUICorner.Parent = btn -- Preview Image lebih kecil dari frame local img = Instance.new("ImageLabel") img.Size = UDim2.new(1,-20,0,100) img.Position = UDim2.new(0,10,0,10) img.BackgroundTransparency = 1 img.Image = skyObj.SkyboxBk or "" img.Parent = btn -- Sky Name local nameLabel = Instance.new("TextLabel") nameLabel.Size = UDim2.new(1,-20,0,20) nameLabel.Position = UDim2.new(0,10,0,115) nameLabel.BackgroundTransparency = 1 nameLabel.Text = skyObj.Name nameLabel.TextColor3 = Color3.fromRGB(255,255,255) nameLabel.Font = Enum.Font.Gotham nameLabel.TextSize = 16 nameLabel.TextXAlignment = Enum.TextXAlignment.Center nameLabel.Parent = btn -- Selected sky glow local glow = Instance.new("UIStroke") glow.Thickness = 3 glow.Color = Color3.fromRGB(50,150,255) glow.Transparency = 1 glow.Parent = btn -- Hover effect local hoverTween = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local hoverUp = TweenService:Create(img, hoverTween, {Size=UDim2.new(1,-20,0,110)}) local hoverDown = TweenService:Create(img, hoverTween, {Size=UDim2.new(1,-20,0,100)}) local clickBtn = Instance.new("TextButton") clickBtn.Size = UDim2.new(1,0,1,0) clickBtn.BackgroundTransparency = 1 clickBtn.Text = "" clickBtn.Parent = btn clickBtn.MouseEnter:Connect(function() hoverUp:Play() end) clickBtn.MouseLeave:Connect(function() hoverDown:Play() end) clickBtn.MouseButton1Click:Connect(function() -- Reset semua glow for _, b in pairs(scrollingFrame:GetChildren()) do if b:IsA("Frame") and b:FindFirstChild("UIStroke") then b.UIStroke.Transparency = 1 end end glow.Transparency = 0 selectedSky = skyObj end) end -- Buat semua tombol Sky for _, sky in pairs(getAllSkies()) do createSkyButton(sky) end -- Update CanvasSize local function updateCanvasSize() scrollingFrame.CanvasSize = UDim2.new(0, listLayout.AbsoluteContentSize.X,0,0) end updateCanvasSize() listLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(updateCanvasSize) -- Apply Button applyBtn.MouseButton1Click:Connect(function() if selectedSky then for _, obj in pairs(Lighting:GetChildren()) do if obj:IsA("Sky") then obj:Destroy() end end local newSky = selectedSky:Clone() newSky.Parent = Lighting newSky.Name = selectedSky.Name end end) -- Toggle Menu toggleBtn.MouseButton1Click:Connect(function() mainFrame.Visible = not mainFrame.Visible end)