
KeylessUniversal

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,
})



ray tracing and RTX are the same thing lol (RTX means ray tracing)