Run it
Copy the script and paste it into your executor.
Lighting = :()
Players = :()
UserInputService = :()
RunService = :()
HttpService = :()
Workspace = :()
Terrain = Workspace:()
TweenService = :()
player = Players.LocalPlayer
hasFS = ((writefile) == (readfile) == (isfile) == )
SAVE_PATH =
defaultConfig = {
clockTime = ,
brightness = ,
globalShadows = ,
bloomIntensity = ,
godrays = ,
dof = ,
rain = ,
fog = ,
fogDensity = ,
saturation = ,
contrast = ,
exposure = -
}
currentConfig = defaultConfig
hasFS (SAVE_PATH)
ok, data = (()
HttpService:((SAVE_PATH))
)
ok data
currentConfig = data
()
()
hasFS
ok, err = (()
(SAVE_PATH, HttpService:(currentConfig))
)
ok
()
(, err)
()
_, v (Lighting:())
v:() v:() v:()
v:()
_, v (Terrain:())
v:() v:()
Lighting.ClockTime = currentConfig.clockTime
Lighting.GlobalShadows = currentConfig.globalShadows
Lighting.Technology = .Technology.Future
Lighting.EnvironmentDiffuseScale =
Lighting.EnvironmentSpecularScale =
Lighting.ExposureCompensation = currentConfig.exposure
currentConfig.fog
Lighting.FogStart =
Lighting.FogEnd =
Lighting.FogColor = currentConfig.rain .(, , ) .(, , )
Lighting.FogStart =
Lighting.FogEnd =
currentConfig.rain
Lighting.Brightness =
sky = .(, Lighting)
sky.SkyboxBk =
sky.SkyboxDn =
sky.SkyboxFt =
sky.SkyboxLf =
sky.SkyboxRt =
sky.SkyboxUp =
sky.SunAngularSize =
atm = .(, Lighting)
atm.Density =
atm.Offset =
atm.Color = .(, , )
atm.Decay = .(, , )
atm.Glare =
atm.Haze =
clouds = .(, Terrain)
clouds.Cover =
clouds.Density =
clouds.Color = .(, , )
Lighting.Brightness = currentConfig.brightness
sky = .(, Lighting)
sky.SkyboxBk =
sky.SkyboxDn =
sky.SkyboxFt =
sky.SkyboxLf =
sky.SkyboxRt =
sky.SkyboxUp =
sky.SunAngularSize =
atm = .(, Lighting)
atm.Density =
atm.Offset =
atm.Color = .(, , )
atm.Decay = .(, , )
atm.Glare =
atm.Haze =
clouds = .(, Terrain)
clouds.Cover =
clouds.Density =
clouds.Color = .(, , )
bloom = .(, Lighting)
bloom.Intensity = currentConfig.rain currentConfig.bloomIntensity
bloom.Threshold =
bloom.Size =
currentConfig.godrays currentConfig.rain
rays = .(, Lighting)
rays.Intensity =
rays.Spread =
currentConfig.dof
dof = .(, Lighting)
dof.FocusDistance = currentConfig.rain
dof.InFocusRadius =
dof.FarIntensity = currentConfig.rain
dof.NearIntensity =
cc = .(, Lighting)
currentConfig.rain
cc.Brightness = -
cc.Contrast = currentConfig.contrast *
cc.Saturation = currentConfig.saturation -
cc.TintColor = .(, , )
cc.Brightness =
cc.Contrast = currentConfig.contrast
cc.Saturation = currentConfig.saturation
cc.TintColor = .(, , )
()
()
rainFolder = .(, Workspace)
rainFolder.Name =
rainEmitters = {}
()
_, emitter (rainFolder:())
emitter:()
rainEmitters = {}
gridSize =
height =
x = -,
z = -,
rainEmitterPart = .(, rainFolder)
rainEmitterPart.Name = .. (x) .. .. (z)
rainEmitterPart.CanCollide =
rainEmitterPart.Anchored =
rainEmitterPart.CanQuery =
rainEmitterPart.CFrame = .(x * gridSize, height, z * gridSize)
rainEmitterPart.Transparency =
rainEmitterPart.Size = .(, , )
attachment = .(, rainEmitterPart)
rainParticles = .(, attachment)
rainParticles.Rate =
rainParticles.Lifetime = NumberRange.(, )
rainParticles.Speed = NumberRange.(, )
rainParticles.VelocitySpread =
rainParticles.SpreadAngle = .(, )
rainParticles.Acceleration = .(, -, )
rainParticles.Rotation = NumberRange.(, )
rainParticles.RotSpeed = NumberRange.(-, )
rainParticles.Texture =
rainParticles.Transparency = NumberSequence.({
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, )
})
rainParticles.Color = ColorSequence.(.(, , ))
rainParticles.Size = NumberSequence.({
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, )
})
rainParticles.LightEmission =
rainParticles.LightInfluence =
rainParticles.Enabled = currentConfig.rain
.(rainEmitters, {part = rainEmitterPart, emitter = rainParticles})
()
lastUpdate =
RunService.Heartbeat:(()
() - lastUpdate <
lastUpdate = ()
rainFolder rainFolder.Parent player.Character player.Character:()
playerPos = player.Character.HumanoidRootPart.Position
gridSize =
centerX = .(playerPos.X / gridSize) * gridSize
centerZ = .(playerPos.Z / gridSize) * gridSize
idx =
x = -,
z = -,
rainEmitters[idx] rainEmitters[idx].part
rainEmitters[idx].part.CFrame = .(centerX + x * gridSize, , centerZ + z * gridSize)
idx = idx +
)
gui = .()
gui.Name =
gui.Parent = player:()
gui.Enabled =
gui.ResetOnSpawn =
gui.IgnoreGuiInset =
C_BG = .(, , )
C_BG2 = .(, , )
C_BORDER = .(, , )
C_TEXT = .(, , )
C_TEXT_DIM = .(, , )
C_ACCENT = .(, , )
C_ACCENT2 = .(, , )
C_YELLOW = .(, , )
C_ORANGE = .(, , )
C_PURPLE = .(, , )
C_GREEN = .(, , )
C_RED = .(, , )
mainFrame = .()
mainFrame.Size = .(, , , )
mainFrame.Position = .(, -, , -)
mainFrame.BackgroundColor3 = C_BG
mainFrame.BorderSizePixel =
mainFrame.Active =
mainFrame.Draggable =
mainFrame.ClipsDescendants =
mainFrame.Parent = gui
.(, mainFrame).CornerRadius = .(, )
stroke = .(, mainFrame)
stroke.Color = C_BORDER
stroke.Thickness =
stroke.Transparency =
backgroundGlow = .(, mainFrame)
backgroundGlow.Size = .(, , , )
backgroundGlow.Position = .(, -, , -)
backgroundGlow.BackgroundTransparency =
backgroundGlow.Image =
backgroundGlow.ImageColor3 = .(, , )
backgroundGlow.ScaleType = .ScaleType.Slice
backgroundGlow.SliceScale =
backgroundGlow.ImageTransparency =
backgroundGlow.ZIndex = -
header = .(, mainFrame)
header.Size = .(, , , )
header.BackgroundTransparency =
titleContainer = .(, header)
titleContainer.Size = .(, -, , )
titleContainer.Position = .(, , , )
titleContainer.BackgroundTransparency =
title = .(, titleContainer)
title.Size = .(, , , )
title.BackgroundTransparency =
title.Text =
title.Font = .Font.GothamBlack
title.TextColor3 = C_TEXT
title.TextSize =
title.TextXAlignment = .TextXAlignment.Left
subtitle = .(, titleContainer)
subtitle.Size = .(, , , )
subtitle.Position = .(, , , )
subtitle.BackgroundTransparency =
subtitle.Text =
subtitle.Font = .Font.GothamMedium
subtitle.TextColor3 = C_TEXT_DIM
subtitle.TextSize =
subtitle.TextXAlignment = .TextXAlignment.Left
headerStrip = .(, header)
headerStrip.Size = .(, -, , )
headerStrip.Position = .(, , , -)
headerStrip.BorderSizePixel =
grad = .(, headerStrip)
grad.Color = ColorSequence.({
ColorSequenceKeypoint.(, C_YELLOW),
ColorSequenceKeypoint.(, C_ORANGE),
ColorSequenceKeypoint.(, C_PURPLE),
ColorSequenceKeypoint.(, C_ACCENT)
})
grad.Rotation =
sunControlContainer = .(, mainFrame)
sunControlContainer.Size = .(, -, , )
sunControlContainer.Position = .(, , , )
sunControlContainer.BackgroundColor3 = C_BG2
sunControlContainer.BorderSizePixel =
.(, sunControlContainer).CornerRadius = .(, )
sunControlLabel = .(, sunControlContainer)
sunControlLabel.Size = .(, , , )
sunControlLabel.BackgroundTransparency =
sunControlLabel.Text =
sunControlLabel.Font = .Font.GothamBold
sunControlLabel.TextColor3 = C_TEXT
sunControlLabel.TextSize =
circleTrack = .(, sunControlContainer)
circleTrack.Size = .(, , , )
circleTrack.Position = .(, -, , -)
circleTrack.BackgroundTransparency =
circleOuter = .(, circleTrack)
circleOuter.Size = .(, , , )
circleOuter.BackgroundTransparency =
circleOuter.Image =
circleOuter.ImageColor3 = C_BORDER
circleOuter.ImageTransparency =
circleInner = .(, circleTrack)
circleInner.Size = .(, , , )
circleInner.Position = .(, , , )
circleInner.BackgroundTransparency =
circleInner.Image =
circleInner.ImageColor3 = C_BG
circleInner.ImageTransparency =
sunIndicator = .(, circleTrack)
sunIndicator.Size = .(, , , )
sunIndicator.BackgroundColor3 = C_YELLOW
sunIndicator.BorderSizePixel =
.(, sunIndicator).CornerRadius = .(, )
sunGlow = .(, sunIndicator)
sunGlow.Size = .(, , , )
sunGlow.Position = .(-, , -, )
sunGlow.BackgroundTransparency =
sunGlow.Image =
sunGlow.ImageColor3 = C_YELLOW
sunGlow.ScaleType = .ScaleType.Slice
sunGlow.SliceScale =
sunGlow.ImageTransparency =
sunGlow.ZIndex = -
timeDisplay = .(, sunControlContainer)
timeDisplay.Size = .(, , , )
timeDisplay.Position = .(, , , -)
timeDisplay.BackgroundTransparency =
timeDisplay.Text =
timeDisplay.Font = .Font.GothamBold
timeDisplay.TextColor3 = C_ACCENT
timeDisplay.TextSize =
timeLabels = {
{text = , position = .(, , , )},
{text = , position = .(, , , )},
{text = , position = .(, , , )},
{text = , position = .(, , , )}
}
_, labelInfo (timeLabels)
label = .(, circleTrack)
label.Size = .(, , , )
label.Position = labelInfo.position
label.BackgroundTransparency =
label.Text = labelInfo.text
label.Font = .Font.GothamMedium
label.TextColor3 = C_TEXT_DIM
label.TextSize =
label.TextXAlignment = .TextXAlignment.Center
(clockTime)
angle = (clockTime / ) * .pi * - .pi/
radius =
center = .(, )
x = center.x + .(angle) * radius
y = center.y + .(angle) * radius
sunIndicator.Position = .(, x - , , y - )
hours = .(clockTime)
minutes = .((clockTime - hours) * )
timeDisplay.Text = .(, hours, minutes)
currentConfig.clockTime = clockTime
Lighting.ClockTime = clockTime
()
(currentConfig.clockTime)
sunDragging =
sunIndicator.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
sunDragging =
)
UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1
sunDragging =
)
UserInputService.InputChanged:((input)
sunDragging input.UserInputType == .UserInputType.MouseMovement
mousePos = UserInputService:()
circleAbsPos = circleTrack.AbsolutePosition
circleAbsSize = circleTrack.AbsoluteSize
center = .(circleAbsPos.x + circleAbsSize.x/, circleAbsPos.y + circleAbsSize.y/)
relative = .(mousePos.x - center.x, mousePos.y - center.y)
angle = .(relative.y, relative.x) + .pi/
angle < angle = angle + .pi *
clockTime = (angle / (.pi * )) *
(clockTime)
)
settingsContainer = .(, mainFrame)
settingsContainer.Size = .(, -, , -)
settingsContainer.Position = .(, , , )
settingsContainer.BackgroundTransparency =
settingsContainer.ScrollBarThickness =
settingsContainer.ScrollBarImageColor3 = C_BORDER
settingsContainer.CanvasSize = .(, , , )
settingsContainer.AutomaticCanvasSize = .AutomaticSize.Y
layout = .(, settingsContainer)
layout.SortOrder = .SortOrder.LayoutOrder
layout.Padding = .(, )
(parent, label, minVal, maxVal, currentVal, callback)
sliderContainer = .(, parent)
sliderContainer.Size = .(, , , )
sliderContainer.BackgroundTransparency =
sliderContainer.LayoutOrder = #parent:()
labelContainer = .(, sliderContainer)
labelContainer.Size = .(, , , )
labelContainer.BackgroundTransparency =
labelText = .(, labelContainer)
labelText.Size = .(, , , )
labelText.BackgroundTransparency =
labelText.Text = label
labelText.Font = .Font.GothamMedium
labelText.TextColor3 = C_TEXT
labelText.TextSize =
labelText.TextXAlignment = .TextXAlignment.Left
valueText = .(, labelContainer)
valueText.Size = .(, , , )
valueText.Position = .(, , , )
valueText.BackgroundTransparency =
valueText.Text = .(, currentVal)
valueText.Font = .Font.GothamBold
valueText.TextColor3 = C_ACCENT
valueText.TextSize =
valueText.TextXAlignment = .TextXAlignment.Right
sliderBack = .(, sliderContainer)
sliderBack.Size = .(, , , )
sliderBack.Position = .(, , , )
sliderBack.BackgroundColor3 = C_BORDER
sliderBack.BorderSizePixel =
.(, sliderBack).CornerRadius = .(, )
sliderFill = .(, sliderBack)
sliderFill.Size = .((currentVal - minVal) / (maxVal - minVal), , , )
sliderFill.BackgroundColor3 = C_ACCENT
sliderFill.BorderSizePixel =
.(, sliderFill).CornerRadius = .(, )
sliderGlow = .(, sliderFill)
sliderGlow.Size = .(, , , )
sliderGlow.Position = .(-, -, -, -)
sliderGlow.BackgroundTransparency =
sliderGlow.Image =
sliderGlow.ImageColor3 = C_ACCENT
sliderGlow.ScaleType = .ScaleType.Slice
sliderGlow.SliceScale =
sliderGlow.ImageTransparency =
sliderGlow.ZIndex = -
sliderButton = .(, sliderBack)
sliderButton.Size = .(, , , )
sliderButton.Position = .((currentVal - minVal) / (maxVal - minVal), -, , -)
sliderButton.BackgroundColor3 = .(, , )
sliderButton.Text =
sliderButton.BorderSizePixel =
.(, sliderButton).CornerRadius = .(, )
buttonStroke = .(, sliderButton)
buttonStroke.Color = C_ACCENT2
buttonStroke.Thickness =
dragging =
(value)
normalized = .((value - minVal) / (maxVal - minVal), , )
sliderFill.Size = .(normalized, , , )
sliderButton.Position = .(normalized, -, , -)
valueText.Text = .(, value)
(value)
()
sliderButton.MouseButton1Down:(()
dragging =
)
UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1
dragging =
)
UserInputService.InputChanged:((input)
dragging input.UserInputType == .UserInputType.MouseMovement
mousePos = UserInputService:()
absolutePos = sliderBack.AbsolutePosition
absoluteSize = sliderBack.AbsoluteSize
relativeX = (mousePos.X - absolutePos.X) / absoluteSize.X
value = minVal + (relativeX * (maxVal - minVal))
(.(value, minVal, maxVal))
)
{ update = updateSlider }
(parent, label, currentState, callback)
toggleContainer = .(, parent)
toggleContainer.Size = .(, , , )
toggleContainer.BackgroundTransparency =
labelText = .(, toggleContainer)
labelText.Size = .(, -, , )
labelText.BackgroundTransparency =
labelText.Text = label
labelText.Font = .Font.GothamMedium
labelText.TextColor3 = C_TEXT
labelText.TextSize =
labelText.TextXAlignment = .TextXAlignment.Left
toggleButton = .(, toggleContainer)
toggleButton.Size = .(, , , )
toggleButton.Position = .(, -, , -)
toggleButton.BackgroundColor3 = currentState C_GREEN .(, , )
toggleButton.Text =
toggleButton.BorderSizePixel =
.(, toggleButton).CornerRadius = .(, )
toggleKnob = .(, toggleButton)
toggleKnob.Size = .(, , , )
toggleKnob.Position = .(currentState , , , -)
toggleKnob.BackgroundColor3 = .(, , )
toggleKnob.BorderSizePixel =
.(, toggleKnob).CornerRadius = .(, )
toggleButton.MouseButton1Click:(()
newState = currentState
currentState = newState
toggleButton.BackgroundColor3 = newState C_GREEN .(, , )
tweenInfo = TweenInfo.(, .EasingStyle.Quad, .EasingDirection.Out)
tween = TweenService:(toggleKnob, tweenInfo, {
Position = .(newState , , , -)
})
tween:()
(newState)
()
)
{ update = (state)
currentState = state
toggleButton.BackgroundColor3 = state C_GREEN .(, , )
toggleKnob.Position = .(state , , , -)
}
brightnessSlider = (settingsContainer, , , , currentConfig.brightness, (value)
currentConfig.brightness = value
Lighting.Brightness = currentConfig.rain value
)
bloomSlider = (settingsContainer, , , , currentConfig.bloomIntensity, (value)
currentConfig.bloomIntensity = value
()
)
saturationSlider = (settingsContainer, , -, , currentConfig.saturation, (value)
currentConfig.saturation = value
()
)
contrastSlider = (settingsContainer, , -, , currentConfig.contrast, (value)
currentConfig.contrast = value
()
)
exposureSlider = (settingsContainer, , -, , currentConfig.exposure, (value)
currentConfig.exposure = value
Lighting.ExposureCompensation = value
)
fogSlider = (settingsContainer, , , , currentConfig.fogDensity, (value)
currentConfig.fogDensity = value
currentConfig.fog
Lighting.FogStart = / (value * + )
Lighting.FogEnd = / (value * + )
)
shadowsToggle = (settingsContainer, , currentConfig.globalShadows, (state)
currentConfig.globalShadows = state
Lighting.GlobalShadows = state
)
godraysToggle = (settingsContainer, , currentConfig.godrays, (state)
currentConfig.godrays = state
()
)
dofToggle = (settingsContainer, , currentConfig.dof, (state)
currentConfig.dof = state
()
)
fogToggle = (settingsContainer, , currentConfig.fog, (state)
currentConfig.fog = state
()
)
rainToggle = (settingsContainer, , currentConfig.rain, (state)
currentConfig.rain = state
_, emitterData (rainEmitters)
emitterData.emitter.Enabled = state
()
)
closeBtn = .(, mainFrame)
closeBtn.Size = .(, , , )
closeBtn.Position = .(, -, , )
closeBtn.BackgroundColor3 = C_BG2
closeBtn.Text =
closeBtn.Font = .Font.GothamBlack
closeBtn.TextColor3 = C_TEXT_DIM
closeBtn.TextSize =
closeBtn.AutoButtonColor =
.(, closeBtn).CornerRadius = .(, )
closeBtn.MouseEnter:(()
closeBtn.BackgroundColor3 = C_RED
closeBtn.TextColor3 = .(, , )
)
closeBtn.MouseLeave:(()
closeBtn.BackgroundColor3 = C_BG2
closeBtn.TextColor3 = C_TEXT_DIM
)
closeBtn.MouseButton1Click:(()
gui.Enabled =
)
UserInputService.InputBegan:((input, gp)
gp input.KeyCode == .KeyCode.F5
gui.Enabled = gui.Enabled
)
()
()