
Key RequiredUniversal

-- FULL Shader System with Quality Slider
-- Day / Sunset / Midnight | Toggleable | FPS Optimized | Draggable UI
local Players = game:GetService("Players")
local Lighting = game:GetService("Lighting")
local UserInputService = game:GetService("UserInputService")
local lp = Players.LocalPlayer
-- ===== CLEAR OLD EFFECTS =====
for _,v in ipairs(Lighting:GetChildren()) do
if v:IsA("PostEffect") or v:IsA("Atmosphere") then
v:Destroy()
end
end
-- ===== EFFECTS =====
local Atmosphere = Instance.new("Atmosphere", Lighting)
local Bloom = Instance.new("BloomEffect", Lighting)
local ColorCorrection = Instance.new("ColorCorrectionEffect", Lighting)
local SunRays = Instance.new("SunRaysEffect", Lighting)
local DoF = Instance.new("DepthOfFieldEffect", Lighting)
Atmosphere.Enabled = false
Bloom.Enabled = false
ColorCorrection.Enabled = false
SunRays.Enabled = false
DoF.Enabled = false
-- ===== QUALITY SETTINGS =====
local function SetQuality(mode)
if mode == "Low" then
Bloom.Enabled = false
SunRays.Enabled = false
DoF.Enabled = false
Atmosphere.Density = 0.15
elseif mode == "Medium" then
Bloom.Intensity = 0.8
Bloom.Size = 32
SunRays.Intensity = 0.03
Atmosphere.Density = 0.25
DoF.Enabled = false
elseif mode == "High" then
Bloom.Intensity = 1.3
Bloom.Size = 48
SunRays.Intensity = 0.06
Atmosphere.Density = 0.35
DoF.Enabled = true
DoF.FocusDistance = 60
DoF.InFocusRadius = 30
end
end
-- ===== TIME MODES =====
local function Day()
Lighting.ClockTime = 14
Lighting.Brightness = 3
Lighting.OutdoorAmbient = Color3.fromRGB(140,140,140)
ColorCorrection.TintColor = Color3.fromRGB(255,255,255)
end
local function Sunset()
Lighting.ClockTime = 18.5
Lighting.Brightness = 2.5
Lighting.OutdoorAmbient = Color3.fromRGB(180,120,80)
ColorCorrection.TintColor = Color3.fromRGB(255,200,160)
end
local function Midnight()
Lighting.ClockTime = 0
Lighting.Brightness = 1.5
Lighting.OutdoorAmbient = Color3.fromRGB(25,25,45)
ColorCorrection.TintColor = Color3.fromRGB(180,200,255)
end
-- ===== UI =====
local gui = Instance.new("ScreenGui", lp.PlayerGui)
gui.ResetOnSpawn = false
-- Open / Hide Button
local openBtn = Instance.new("TextButton", gui)
openBtn.Size = UDim2.new(0,110,0,40)
openBtn.Position = UDim2.new(0,10,0,10)
openBtn.Text = "SHADERS"
openBtn.BackgroundColor3 = Color3.fromRGB(20,20,20)
openBtn.TextColor3 = Color3.fromRGB(0,200,255)
openBtn.BorderSizePixel = 0
-- Main Frame
local main = Instance.new("Frame", gui)
main.Size = UDim2.new(0,300,0,300)
main.Position = UDim2.new(0,50,0,80)
main.BackgroundColor3 = Color3.fromRGB(12,12,12)
main.BorderColor3 = Color3.fromRGB(0,200,255)
main.BorderSizePixel = 1
main.Visible = true
-- Drag
local dragging, dragStart, startPos
main.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = i.Position
startPos = main.Position
end
end)
UserInputService.InputChanged:Connect(function(i)
if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then
local delta = i.Position - dragStart
main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
UserInputService.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
openBtn.MouseButton1Click:Connect(function()
main.Visible = not main.Visible
end)
-- ===== BUTTON MAKER =====
local function ToggleButton(text, y, callback)
local b = Instance.new("TextButton", main)
b.Size = UDim2.new(0,260,0,32)
b.Position = UDim2.new(0,20,0,y)
b.BackgroundColor3 = Color3.fromRGB(25,25,25)
b.TextColor3 = Color3.fromRGB(0,200,255)
b.BorderSizePixel = 0
b.Text = text .. " : OFF"
local state = false
b.MouseButton1Click:Connect(function()
state = not state
b.Text = text .. " : " .. (state and "ON" or "OFF")
callback(state)
end)
end
-- ===== QUALITY SLIDER =====
local quality = {"Low","Medium","High"}
local qIndex = 2
local qBtn = Instance.new("TextButton", main)
qBtn.Size = UDim2.new(0,260,0,32)
qBtn.Position = UDim2.new(0,20,0,20)
qBtn.BackgroundColor3 = Color3.fromRGB(30,30,30)
qBtn.TextColor3 = Color3.fromRGB(255,220,120)
qBtn.BorderSizePixel = 0
qBtn.Text = "Quality : Medium"
qBtn.MouseButton1Click:Connect(function()
qIndex = qIndex + 1
if qIndex > #quality then qIndex = 1 end
qBtn.Text = "Quality : " .. quality[qIndex]
SetQuality(quality[qIndex])
end)
-- ===== SHADER BUTTONS =====
ToggleButton("Day Sun", 65, function(v)
if v then Day() end
end)
ToggleButton("Sunset", 105, function(v)
if v then Sunset() end
end)
ToggleButton("Midnight", 145, function(v)
if v then Midnight() end
end)
ToggleButton("Bloom", 185, function(v)
Bloom.Enabled = v
end)
ToggleButton("Atmosphere", 225, function(v)
Atmosphere.Enabled = v
Atmosphere.Color = Color3.fromRGB(90,100,130)
Atmosphere.Decay = Color3.fromRGB(30,35,60)
end)
ToggleButton("Sun Rays", 265, function(v)
SunRays.Enabled = v
end)
print("๐๐ Shader UI + Quality Slider Loaded")No comments yet for this script.



