-- open source, feel free to adjust it however you want local Lighting = game:GetService("Lighting") local Workspace = game:GetService("Workspace") local Terrain = Workspace:FindFirstChildOfClass("Terrain") for _, obj in ipairs(Lighting:GetChildren()) do if obj:GetAttribute("UltraRealismEffect") then obj:Destroy() end end Lighting.Technology = Enum.Technology.Future Lighting.GlobalShadows = true Lighting.ShadowSoftness = 0.2 Lighting.ExposureCompensation = 0 Lighting.EnvironmentDiffuseScale = 1 Lighting.EnvironmentSpecularScale = 1 Lighting.GeographicLatitude = 35 Lighting.Ambient = Color3.fromRGB(60, 62, 70) Lighting.OutdoorAmbient = Color3.fromRGB(110, 120, 135) local Atmosphere = Instance.new("Atmosphere") Atmosphere:SetAttribute("UltraRealismEffect", true) Atmosphere.Offset = 0.15 Atmosphere.Color = Color3.fromRGB(199, 214, 255) Atmosphere.Decay = Color3.fromRGB(92, 108, 140) Atmosphere.Parent = Lighting local ColorCorrection = Instance.new("ColorCorrectionEffect") ColorCorrection:SetAttribute("UltraRealismEffect", true) ColorCorrection.Parent = Lighting local Bloom = Instance.new("BloomEffect") Bloom:SetAttribute("UltraRealismEffect", true) Bloom.Size = 24 Bloom.Threshold = 1.4 Bloom.Parent = Lighting local SunRays = Instance.new("SunRaysEffect") SunRays:SetAttribute("UltraRealismEffect", true) SunRays.Spread = 0.65 SunRays.Parent = Lighting local DOF = Instance.new("DepthOfFieldEffect") DOF:SetAttribute("UltraRealismEffect", true) DOF.FarIntensity = 0.02 DOF.NearIntensity = 0.015 DOF.FocusDistance = 120 DOF.InFocusRadius = 90 DOF.Parent = Lighting if Terrain then Terrain.WaterTransparency = 0.12 Terrain.WaterReflectance = 0.85 Terrain.WaterWaveSize = 0.18 Terrain.WaterWaveSpeed = 7 Terrain.Decoration = true end for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("BasePart") then obj.CastShadow = true obj.Reflectance = math.clamp(obj.Reflectance, 0, 0.15) end end Workspace.DescendantAdded:Connect(function(obj) if obj:IsA("BasePart") then obj.CastShadow = true end end) local keyframes = { { hour = 0, density = 0.5, haze = 1.6, glare = 0, brightness = 1.4, contrast = 0.1, saturation = -0.12, tint = Color3.fromRGB(205, 220, 255), bloom = 0.05, sunray = 0 }, { hour = 6, density = 0.32, haze = 1.1, glare = 0.1, brightness = 1.8, contrast = 0.1, saturation = 0, tint = Color3.fromRGB(255, 236, 210), bloom = 0.14, sunray = 0.08 }, { hour = 8, density = 0.2, haze = 0.7, glare = 0.08, brightness = 2.4, contrast = 0.08, saturation = -0.03, tint = Color3.fromRGB(255, 252, 245), bloom = 0.08, sunray = 0.045 }, { hour = 17, density = 0.22, haze = 0.8, glare = 0.08, brightness = 2.2, contrast = 0.08, saturation = -0.03, tint = Color3.fromRGB(255, 252, 245), bloom = 0.08, sunray = 0.045 }, { hour = 19, density = 0.3, haze = 1.2, glare = 0.12, brightness = 1.7, contrast = 0.1, saturation = 0.02, tint = Color3.fromRGB(255, 224, 190), bloom = 0.15, sunray = 0.09 }, { hour = 21, density = 0.4, haze = 1.4, glare = 0, brightness = 1.5, contrast = 0.1, saturation = -0.1, tint = Color3.fromRGB(210, 222, 255), bloom = 0.05, sunray = 0 }, { hour = 24, density = 0.5, haze = 1.6, glare = 0, brightness = 1.4, contrast = 0.1, saturation = -0.12, tint = Color3.fromRGB(205, 220, 255), bloom = 0.05, sunray = 0 }, } local function updateLighting() local clock = Lighting.ClockTime local a, b = keyframes[1], keyframes[#keyframes] for i = 1, #keyframes - 1 do if clock >= keyframes[i].hour and clock <= keyframes[i + 1].hour then a, b = keyframes[i], keyframes[i + 1] break end end local t = math.clamp((clock - a.hour) / (b.hour - a.hour), 0, 1) Atmosphere.Density = a.density + (b.density - a.density) * t Atmosphere.Haze = a.haze + (b.haze - a.haze) * t Atmosphere.Glare = a.glare + (b.glare - a.glare) * t Lighting.Brightness = a.brightness + (b.brightness - a.brightness) * t ColorCorrection.Contrast = a.contrast + (b.contrast - a.contrast) * t ColorCorrection.Saturation = a.saturation + (b.saturation - a.saturation) * t ColorCorrection.TintColor = a.tint:Lerp(b.tint, t) Bloom.Intensity = a.bloom + (b.bloom - a.bloom) * t SunRays.Intensity = a.sunray + (b.sunray - a.sunray) * t end updateLighting() Lighting:GetPropertyChangedSignal("ClockTime"):Connect(updateLighting) local Camera = Workspace.CurrentCamera if Camera then Camera.FieldOfView = 70 Camera.FieldOfViewMode = Enum.FieldOfViewMode.Vertical end