local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = " Шейдеры", LoadingTitle = "Сделано ИИ", LoadingSubtitle = "Made by ???", ConfigurationSaving = { Enabled = false }, Discord = { Enabled = false }, KeySystem = false }) local TabSettings = Window:CreateTab("Настройки", "sliders") local TabPresets = Window:CreateTab("Пресеты", "star") local Lighting = game:GetService("Lighting") -- Сохраняем оригинал local OriginalSettings = { Ambient = Lighting.Ambient, OutdoorAmbient = Lighting.OutdoorAmbient, Brightness = Lighting.Brightness, ClockTime = Lighting.ClockTime, ExposureCompensation = Lighting.ExposureCompensation, ShadowSoftness = Lighting.ShadowSoftness, FogEnd = Lighting.FogEnd, FogColor = Lighting.FogColor } -- Создаем наши эффекты 1 раз и скрываем local FX = { Sun = Instance.new("SunRaysEffect"), CC = Instance.new("ColorCorrectionEffect"), Blur = Instance.new("BlurEffect"), Bloom = Instance.new("BloomEffect") } for _, effect in pairs(FX) do effect.Enabled = false effect.Parent = Lighting end -- Вспомогательная функция включения local function EnableFX() for _, effect in pairs(FX) do effect.Enabled = true end end ----------------------------------------- -- Вкладка 1: РУЧНЫЕ НАСТРОЙКИ ----------------------------------------- TabSettings:CreateSection("Управление эффектами") TabSettings:CreateToggle({ Name = "Включить кастомные шейдеры", CurrentValue = false, Flag = "ToggleShaders", Callback = function(Value) for _, effect in pairs(FX) do effect.Enabled = Value end end, }) TabSettings:CreateSection("Регулировка") TabSettings:CreateSlider({ Name = "Яркость (Мягкий свет)", Range = {0, 100}, Increment = 1, Suffix = "%", CurrentValue = 30, Flag = "BrightnessSlider", Callback = function(Value) Lighting.Brightness = (Value / 100) * 5 -- от 0 до 5 Lighting.ExposureCompensation = (Value / 100) * 0.5 end, }) TabSettings:CreateSlider({ Name = "Интенсивность солнечных лучей", Range = {0, 100}, Increment = 1, Suffix = "%", CurrentValue = 20, Flag = "SunSlider", Callback = function(Value) FX.Sun.Intensity = Value / 100 end, }) TabSettings:CreateSlider({ Name = "Мягкость теней", Range = {0, 100}, Increment = 1, Suffix = "%", CurrentValue = 100, Flag = "ShadowSlider", Callback = function(Value) Lighting.ShadowSoftness = Value / 100 end, }) TabSettings:CreateSlider({ Name = "Густота тумана", Range = {0, 100}, Increment = 1, Suffix = "%", CurrentValue = 0, Flag = "FogSlider", Callback = function(Value) -- 0% = нет тумана (100000), 100% = плотный туман (50) if Value == 0 then Lighting.FogEnd = 100000 else Lighting.FogEnd = 10000 - (Value * 99.5) end end, }) ----------------------------------------- -- Вкладка 2: ПРЕСЕТЫ ----------------------------------------- TabPresets:CreateSection("Готовые варианты") local function ApplyPreset(clock, bright, shadow, sunInt, ccTint, ccSat, blurSize, fogEnd) EnableFX() Lighting.ClockTime = clock Lighting.Brightness = bright Lighting.ShadowSoftness = shadow Lighting.FogEnd = fogEnd FX.Sun.Intensity = sunInt FX.CC.TintColor = ccTint FX.CC.Saturation = ccSat FX.Blur.Size = blurSize FX.Bloom.Intensity = 0.3 Rayfield:Notify({Title = "Пресет применен", Content = "Графика обновлена!", Duration = 2, Image = "check"}) end TabPresets:CreateButton({ Name = "🌅 Теплый закат", Callback = function() ApplyPreset(17.5, 2.5, 0.8, 0.4, Color3.fromRGB(255, 210, 180), 0.3, 2, 100000) end, }) TabPresets:CreateButton({ Name = "❄️ Холодное утро", Callback = function() Lighting.FogColor = Color3.fromRGB(180, 200, 220) ApplyPreset(6.5, 1.8, 1, 0.1, Color3.fromRGB(200, 220, 255), -0.1, 1, 400) end, }) TabPresets:CreateButton({ Name = "🎬 Кинематографичный", Callback = function() ApplyPreset(14.0, 2.0, 0.2, 0.2, Color3.fromRGB(240, 240, 255), 0.1, 4, 100000) FX.CC.Contrast = 0.3 -- Добавляем контраст для киношности end, }) TabPresets:CreateButton({ Name = "☀️ Яркий день", Callback = function() ApplyPreset(12.0, 3.5, 0.5, 0.15, Color3.fromRGB(255, 255, 255), 0.2, 0, 100000) FX.CC.Contrast = 0 end, }) TabPresets:CreateSection("Сброс") TabPresets:CreateButton({ Name = "🔄 Сбросить до оригинала", Callback = function() for _, effect in pairs(FX) do effect.Enabled = false end Lighting.Ambient = OriginalSettings.Ambient Lighting.OutdoorAmbient = OriginalSettings.OutdoorAmbient Lighting.Brightness = OriginalSettings.Brightness Lighting.ClockTime = OriginalSettings.ClockTime Lighting.ExposureCompensation = OriginalSettings.ExposureCompensation Lighting.ShadowSoftness = OriginalSettings.ShadowSoftness Lighting.FogEnd = OriginalSettings.FogEnd Lighting.FogColor = OriginalSettings.FogColor Rayfield:Notify({Title = "Сброшено", Content = "Всё вернулось в норму.", Duration = 2, Image = "refresh"}) end, })