-- NOD6547 Hub -- Roblox Script: Decal Changer, Skybox Changer, Sound Player local Players = game:GetService("Players") local Lighting = game:GetService("Lighting") local TweenService = game:GetService("TweenService") local CoreGui = game:GetService("CoreGui") local LocalPlayer = Players.LocalPlayer if CoreGui:FindFirstChild("NOD6547Hub") then CoreGui.NOD6547Hub:Destroy() end local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "NOD6547Hub" ScreenGui.ResetOnSpawn = false ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.Parent = CoreGui local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 400, 0, 500) MainFrame.Position = UDim2.new(0.5, -200, 0.5, -250) MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 20) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 10) local Stroke = Instance.new("UIStroke") Stroke.Color = Color3.fromRGB(80, 0, 200) Stroke.Thickness = 2 Stroke.Parent = MainFrame local TitleBar = Instance.new("Frame") TitleBar.Size = UDim2.new(1, 0, 0, 45) TitleBar.BackgroundColor3 = Color3.fromRGB(25, 0, 60) TitleBar.BorderSizePixel = 0 TitleBar.Parent = MainFrame Instance.new("UICorner", TitleBar).CornerRadius = UDim.new(0, 10) local TitleFix = Instance.new("Frame") TitleFix.Size = UDim2.new(1, 0, 0.5, 0) TitleFix.Position = UDim2.new(0, 0, 0.5, 0) TitleFix.BackgroundColor3 = Color3.fromRGB(25, 0, 60) TitleFix.BorderSizePixel = 0 TitleFix.Parent = TitleBar local TitleLabel = Instance.new("TextLabel") TitleLabel.Size = UDim2.new(1, -80, 1, 0) TitleLabel.Position = UDim2.new(0, 15, 0, 0) TitleLabel.BackgroundTransparency = 1 TitleLabel.Text = "NOD6547 HUB" TitleLabel.TextColor3 = Color3.fromRGB(180, 100, 255) TitleLabel.TextSize = 18 TitleLabel.Font = Enum.Font.SourceSansBold TitleLabel.TextXAlignment = Enum.TextXAlignment.Left TitleLabel.Parent = TitleBar local MinBtn = Instance.new("TextButton") MinBtn.Size = UDim2.new(0, 30, 0, 30) MinBtn.Position = UDim2.new(1, -72, 0, 8) MinBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 0) MinBtn.Text = "-" MinBtn.TextColor3 = Color3.fromRGB(255, 255, 255) MinBtn.TextSize = 18 MinBtn.Font = Enum.Font.SourceSansBold MinBtn.BorderSizePixel = 0 MinBtn.Parent = TitleBar Instance.new("UICorner", MinBtn).CornerRadius = UDim.new(0, 6) local CloseBtn = Instance.new("TextButton") CloseBtn.Size = UDim2.new(0, 30, 0, 30) CloseBtn.Position = UDim2.new(1, -38, 0, 8) CloseBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) CloseBtn.Text = "X" CloseBtn.TextColor3 = Color3.fromRGB(255, 255, 255) CloseBtn.TextSize = 14 CloseBtn.Font = Enum.Font.SourceSansBold CloseBtn.BorderSizePixel = 0 CloseBtn.Parent = TitleBar Instance.new("UICorner", CloseBtn).CornerRadius = UDim.new(0, 6) CloseBtn.MouseButton1Click:Connect(function() ScreenGui:Destroy() end) local minimized = false MinBtn.MouseButton1Click:Connect(function() minimized = not minimized MainFrame.Size = minimized and UDim2.new(0, 400, 0, 45) or UDim2.new(0, 400, 0, 500) end) local ScrollFrame = Instance.new("ScrollingFrame") ScrollFrame.Size = UDim2.new(1, 0, 1, -50) ScrollFrame.Position = UDim2.new(0, 0, 0, 50) ScrollFrame.BackgroundTransparency = 1 ScrollFrame.BorderSizePixel = 0 ScrollFrame.ScrollBarThickness = 4 ScrollFrame.ScrollBarImageColor3 = Color3.fromRGB(120, 0, 255) ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, 700) ScrollFrame.Parent = MainFrame local ListLayout = Instance.new("UIListLayout") ListLayout.Padding = UDim.new(0, 10) ListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center ListLayout.Parent = ScrollFrame local UIPad = Instance.new("UIPadding") UIPad.PaddingTop = UDim.new(0, 12) UIPad.PaddingLeft = UDim.new(0, 15) UIPad.PaddingRight = UDim.new(0, 15) UIPad.Parent = ScrollFrame local function SectionLabel(text) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, 0, 0, 26) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = Color3.fromRGB(160, 100, 255) lbl.TextSize = 14 lbl.Font = Enum.Font.SourceSansBold lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = ScrollFrame return lbl end local function TextInput(placeholder) local box = Instance.new("TextBox") box.Size = UDim2.new(1, 0, 0, 36) box.BackgroundColor3 = Color3.fromRGB(28, 10, 50) box.TextColor3 = Color3.fromRGB(220, 200, 255) box.PlaceholderText = placeholder box.PlaceholderColor3 = Color3.fromRGB(110, 90, 140) box.Text = "" box.TextSize = 13 box.Font = Enum.Font.SourceSans box.BorderSizePixel = 0 box.ClearTextOnFocus = false box.Parent = ScrollFrame Instance.new("UICorner", box).CornerRadius = UDim.new(0, 7) local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(70, 0, 160) stroke.Thickness = 1 stroke.Parent = box local pad = Instance.new("UIPadding") pad.PaddingLeft = UDim.new(0, 8) pad.Parent = box return box end local function CreateButton(text, color) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, 36) btn.BackgroundColor3 = color or Color3.fromRGB(80, 0, 180) btn.Text = text btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.TextSize = 13 btn.Font = Enum.Font.SourceSansBold btn.BorderSizePixel = 0 btn.Parent = ScrollFrame Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 7) local origColor = color or Color3.fromRGB(80, 0, 180) btn.MouseEnter:Connect(function() TweenService:Create(btn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(110, 40, 210)}):Play() end) btn.MouseLeave:Connect(function() TweenService:Create(btn, TweenInfo.new(0.15), {BackgroundColor3 = origColor}):Play() end) return btn end local function StatusLabel() local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, 0, 0, 20) lbl.BackgroundTransparency = 1 lbl.Text = "" lbl.TextColor3 = Color3.fromRGB(100, 255, 150) lbl.TextSize = 12 lbl.Font = Enum.Font.SourceSans lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = ScrollFrame return lbl end local function Separator() local line = Instance.new("Frame") line.Size = UDim2.new(1, 0, 0, 1) line.BackgroundColor3 = Color3.fromRGB(60, 0, 120) line.BorderSizePixel = 0 line.Parent = ScrollFrame end ListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, ListLayout.AbsoluteContentSize.Y + 24) end) -- DECAL CHANGER SectionLabel("[ DECAL CHANGER ]") local decalIdBox = TextInput("Decal Asset ID (e.g. 7780089648)") local decalStatus = StatusLabel() local decalApplyBtn = CreateButton("Apply Decal to All Parts", Color3.fromRGB(60, 0, 160)) decalApplyBtn.MouseButton1Click:Connect(function() local id = decalIdBox.Text:match("%d+") if not id then decalStatus.TextColor3 = Color3.fromRGB(255, 80, 80) decalStatus.Text = "Invalid ID — numbers only." return end local count = 0 for _, obj in ipairs(workspace:GetDescendants()) do if obj:IsA("BasePart") then for _, d in ipairs(obj:GetChildren()) do if d:IsA("Decal") or d:IsA("Texture") then d:Destroy() end end local decal = Instance.new("Decal") decal.Texture = "rbxassetid://" .. id decal.Face = Enum.NormalId.Front decal.Parent = obj count += 1 end end decalStatus.TextColor3 = Color3.fromRGB(100, 255, 150) decalStatus.Text = "Applied to " .. count .. " parts." end) local decalRemoveBtn = CreateButton("Remove All Decals", Color3.fromRGB(120, 0, 0)) decalRemoveBtn.MouseButton1Click:Connect(function() local count = 0 for _, obj in ipairs(workspace:GetDescendants()) do if obj:IsA("Decal") or obj:IsA("Texture") then obj:Destroy() count += 1 end end decalStatus.TextColor3 = Color3.fromRGB(100, 255, 150) decalStatus.Text = "Removed " .. count .. " decals." end) Separator() -- SKYBOX CHANGER SectionLabel("[ SKYBOX CHANGER ]") local skyIdBox = TextInput("Sky Asset ID (applies to all 6 faces)") local skyStatus = StatusLabel() local function applySky(id) local sky = Lighting:FindFirstChildOfClass("Sky") if not sky then sky = Instance.new("Sky") sky.Parent = Lighting end for _, face in ipairs({"SkyboxBk","SkyboxDn","SkyboxFt","SkyboxLf","SkyboxRt","SkyboxUp"}) do sky[face] = "rbxassetid://" .. id end end local skyApplyBtn = CreateButton("Apply Skybox (All Faces)", Color3.fromRGB(60, 0, 160)) skyApplyBtn.MouseButton1Click:Connect(function() local id = skyIdBox.Text:match("%d+") if not id then skyStatus.TextColor3 = Color3.fromRGB(255, 80, 80) skyStatus.Text = "Invalid ID — numbers only." return end applySky(id) skyStatus.TextColor3 = Color3.fromRGB(100, 255, 150) skyStatus.Text = "Skybox applied! ID: " .. id end) local skyRemoveBtn = CreateButton("Remove Skybox (Default Sky)", Color3.fromRGB(120, 0, 0)) skyRemoveBtn.MouseButton1Click:Connect(function() local sky = Lighting:FindFirstChildOfClass("Sky") if sky then sky:Destroy() end skyStatus.TextColor3 = Color3.fromRGB(100, 255, 150) skyStatus.Text = "Skybox removed." end) local fogBox = TextInput("Fog End value (default: 100000)") local fogBtn = CreateButton("Set Fog", Color3.fromRGB(40, 40, 100)) fogBtn.MouseButton1Click:Connect(function() local val = tonumber(fogBox.Text) if val then Lighting.FogEnd = val Lighting.FogStart = val * 0.1 skyStatus.TextColor3 = Color3.fromRGB(100, 255, 150) skyStatus.Text = "Fog set to " .. val else skyStatus.TextColor3 = Color3.fromRGB(255, 80, 80) skyStatus.Text = "Invalid value." end end) Separator() -- SOUND PLAYER SectionLabel("[ SOUND PLAYER ]") local soundIdBox = TextInput("Sound Asset ID (e.g. 1837844180)") local volumeBox = TextInput("Volume (0.0 - 10.0, default: 1)") local pitchBox = TextInput("Pitch (0.1 - 5.0, default: 1)") local soundStatus = StatusLabel() local currentSound = nil local soundPlayBtn = CreateButton("Play Sound", Color3.fromRGB(0, 110, 55)) soundPlayBtn.MouseButton1Click:Connect(function() local id = soundIdBox.Text:match("%d+") if not id then soundStatus.TextColor3 = Color3.fromRGB(255,80,80) soundStatus.Text = "Invalid Sound ID." return end if currentSound then pcall(function() currentSound:Stop() currentSound:Destroy() end) currentSound = nil end local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://" .. id sound.Volume = tonumber(volumeBox.Text) or 1 sound.PlaybackSpeed = tonumber(pitchBox.Text) or 1 sound.Looped = false sound.Parent = workspace sound:Play() currentSound = sound soundStatus.TextColor3 = Color3.fromRGB(100, 255, 150) soundStatus.Text = "Playing ID: " .. id end) local soundLoopBtn = CreateButton("Play Looped", Color3.fromRGB(0, 80, 130)) soundLoopBtn.MouseButton1Click:Connect(function() local id = soundIdBox.Text:match("%d+") if not id then soundStatus.TextColor3 = Color3.fromRGB(255,80,80) soundStatus.Text = "Invalid Sound ID." return end if currentSound then pcall(function() currentSound:Stop() currentSound:Destroy() end) currentSound = nil end local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://" .. id sound.Volume = tonumber(volumeBox.Text) or 1 sound.PlaybackSpeed = tonumber(pitchBox.Text) or 1 sound.Looped = true sound.Parent = workspace sound:Play() currentSound = sound soundStatus.TextColor3 = Color3.fromRGB(100, 255, 150) soundStatus.Text = "Looping ID: " .. id end) local soundStopBtn = CreateButton("Stop Sound", Color3.fromRGB(130, 0, 0)) soundStopBtn.MouseButton1Click:Connect(function() if currentSound then pcall(function() currentSound:Stop() currentSound:Destroy() end) currentSound = nil soundStatus.TextColor3 = Color3.fromRGB(100, 255, 150) soundStatus.Text = "Stopped." else soundStatus.TextColor3 = Color3.fromRGB(255, 80, 80) soundStatus.Text = "No sound playing." end end) print("[NOD6547 Hub] Loaded!")