shaders for roblox
Key RequiredUniversal

shaders for roblox

Universal Scriptgnevm123gnevm123 1.4K views 259 executesUpdated Mar 24, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•237 lines (5480 chars)
local player = game.Players.LocalPlayer
local lighting = game:GetService("Lighting")
local playerGui = player:WaitForChild("PlayerGui")


for _, v in pairs(playerGui:GetChildren()) do
	if v.Name == "MoonGUI" then
		v:Destroy()
	end
end


local gui = Instance.new("ScreenGui", playerGui)
gui.Name = "MoonGUI"

local frame = Instance.new("Frame", gui)
frame.Size = UDim2.new(0,250,0,520)
frame.Position = UDim2.new(0,20,0.5,-260)
frame.BackgroundColor3 = Color3.fromRGB(25,25,25)
frame.Active = true
frame.Draggable = true

local toggleButton = Instance.new("TextButton", frame)
toggleButton.Size = UDim2.new(1,0,0,30)
toggleButton.Text = "☰ Moon GUI"
toggleButton.BackgroundColor3 = Color3.fromRGB(45,45,45)
toggleButton.TextColor3 = Color3.new(1,1,1)

local contentFrame = Instance.new("Frame", frame)
contentFrame.Size = UDim2.new(1,0,1,-30)
contentFrame.Position = UDim2.new(0,0,0,30)
contentFrame.BackgroundTransparency = 1

toggleButton.MouseButton1Click:Connect(function()
	contentFrame.Visible = not contentFrame.Visible
end)

local layout = Instance.new("UIListLayout", contentFrame)
layout.Padding = UDim.new(0,5)

local function btn(text)
	local b = Instance.new("TextButton", contentFrame)
	b.Size = UDim2.new(1,0,0,35)
	b.Text = text
	b.BackgroundColor3 = Color3.fromRGB(45,45,45)
	b.TextColor3 = Color3.new(1,1,1)
	return b
end


local dayBtn = btn("☀️ Day")
local morningBtn = btn("🌅 Morning")
local nightBtn = btn("🌙 Night")
local sunsetBtn = btn("🌇 Sunset")
local moonBtn = btn("🌕 Toggle Moon")
local raysBtn = btn("🌟 Toggle Sun Rays")

local orangeMoonBtn = btn("🟠 Orange Moon")
local blueMoonBtn = btn("🔵 Blue Moon")
local purpleMoonBtn = btn("🟣 Purple Moon")
local bloodMoonBtn = btn("🔥 Blood Moon")


local sky = lighting:FindFirstChildOfClass("Sky") or Instance.new("Sky", lighting)
sky.MoonTextureId = "rbxassetid://140416831535614"
sky.MoonAngularSize = 50


local color = lighting:FindFirstChildOfClass("ColorCorrectionEffect") or Instance.new("ColorCorrectionEffect", lighting)
color.TintColor = Color3.new(1,1,1)

local atmosphere = lighting:FindFirstChildOfClass("Atmosphere") or Instance.new("Atmosphere", lighting)

local rays = lighting:FindFirstChildOfClass("SunRaysEffect") or Instance.new("SunRaysEffect", lighting)
rays.Intensity = 0.25


local moonOn = true
local raysOn = true

local fogTarget = Color3.fromRGB(120,100,80)

local currentMoon = {
	texture = "rbxassetid://140416831535614",
	light = Color3.fromRGB(255,170,100),
	tint = Color3.fromRGB(240,170,110),
	rays = Color3.fromRGB(255,200,150)
}


local function resetFog()
	fogTarget = Color3.fromRGB(120,100,80)
	lighting.FogStart = 60
	lighting.FogEnd = 300
	atmosphere.Density = 0.4
	atmosphere.Haze = 2
end


local function smoothTransition(targetClock, duration)
	duration = duration or 2
	local startClock = lighting.ClockTime
	local steps = duration / 0.05
	local delta = (targetClock - startClock) / steps
	for i = 1, steps do
		lighting.ClockTime = lighting.ClockTime + delta
		wait(0.05)
	end
end


local function applyMoon()
	if moonOn and (lighting.ClockTime < 6 or lighting.ClockTime >= 18) then
		sky.MoonTextureId = currentMoon.texture
		color.TintColor = currentMoon.tint
		rays.Enabled = true
		rays.Intensity = 0.15
		rays.Color = currentMoon.rays
	else
		color.TintColor = Color3.new(1,1,1)
		rays.Enabled = raysOn
	end
end


spawn(function()
	while true do
		wait(0.1)
		lighting.FogColor = lighting.FogColor:Lerp(fogTarget,0.02)
		atmosphere.Color = atmosphere.Color:Lerp(fogTarget,0.02)
	end
end)


dayBtn.MouseButton1Click:Connect(function()
	smoothTransition(14,3)
	resetFog()
	applyMoon()
end)

morningBtn.MouseButton1Click:Connect(function()
	smoothTransition(6,3)
	resetFog()
	applyMoon()
end)

nightBtn.MouseButton1Click:Connect(function()
	smoothTransition(0,3)
	applyMoon()
end)

sunsetBtn.MouseButton1Click:Connect(function()
	smoothTransition(17,3)
	applyMoon()
end)


moonBtn.MouseButton1Click:Connect(function()
	moonOn = not moonOn
	if not moonOn then
		sky.MoonTextureId = ""
	end
	applyMoon()
end)


raysBtn.MouseButton1Click:Connect(function()
	raysOn = not raysOn
	applyMoon()
end)


orangeMoonBtn.MouseButton1Click:Connect(function()
	resetFog()
	fogTarget = Color3.fromRGB(180,120,80)
	currentMoon = {
		texture = "rbxassetid://140416831535614",
		tint = Color3.fromRGB(240,170,110),
		rays = Color3.fromRGB(255,200,150)
	}
	applyMoon()
end)


blueMoonBtn.MouseButton1Click:Connect(function()
	resetFog()
	fogTarget = Color3.fromRGB(80,120,180)
	currentMoon = {
		texture = "rbxassetid://15799505266",
		tint = Color3.fromRGB(150,200,255),
		rays = Color3.fromRGB(150,200,255)
	}
	applyMoon()
end)


purpleMoonBtn.MouseButton1Click:Connect(function()
	resetFog()
	fogTarget = Color3.fromRGB(120,80,150)
	currentMoon = {
		texture = "rbxassetid://95527391479266",
		tint = Color3.fromRGB(220,150,255),
		rays = Color3.fromRGB(220,150,255)
	}
	applyMoon()
end)


bloodMoonBtn.MouseButton1Click:Connect(function()
	resetFog()
	fogTarget = Color3.fromRGB(120,0,0)
	atmosphere.Density = 0.6
	atmosphere.Haze = 4

	currentMoon = {
		texture = "rbxassetid://6694062571",
		tint = Color3.fromRGB(255,80,80),
		rays = Color3.fromRGB(255,50,50)
	}

	
	smoothTransition(0, 2)

	
	spawn(function()
		local startClock = lighting.ClockTime
		local targetClock = 3 
		local steps = 60
		local delta = (targetClock - startClock) / steps
		for i = 1, steps do
			lighting.ClockTime = lighting.ClockTime + delta
			wait(0.05)
		end
	end)

	applyMoon()
end)

Features & Information

xd. my official work. PLEASE FOLLOW ME ON ROBLO-

Community Comments (2)

gnevm123gnevm123Mar 24, 2026

Yo, anyone tried the shaders? Thoughts?

Robocubub24Robocubub24Mar 24, 2026

is nice

More Scripts for Universal Scripts