Загрузка данных
-- Создание интерфейса (ScreenGui)
local player = game.Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "DinaxaliseFogMenu"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui
-- Главное окно
local mainFrame = Instance.new("Frame")
mainFrame.Size = UUDim2.new(0, 250, 0, 320)
mainFrame.Position = UDim2.new(0.5, -125, 0.4, -160)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true -- Можно перетаскивать по экрану
mainFrame.Parent = screenGui
-- Скругление углов
local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, 8)
uiCorner.Parent = mainFrame
-- Шапка меню
local header = Instance.new("TextLabel")
header.Size = UDim2.new(1, 0, 0, 35)
header.BackgroundColor3 = Color3.fromRGB(40, 40, 45)
header.Text = " DINAXALISE FOG MENU"
header.TextColor3 = Color3.fromRGB(255, 255, 255)
header.Font = Enum.Font.SourceSansBold
header.TextSize = 16
header.TextXAlignment = Enum.TextXAlignment.Left
header.BorderSizePixel = 0
header.Parent = mainFrame
local headerCorner = Instance.new("UICorner")
headerCorner.CornerRadius = UDim.new(0, 8)
headerCorner.Parent = header
-- Кнопка закрытия [X]
local closeButton = Instance.new("TextButton")
closeButton.Size = UDim2.new(0, 30, 0, 30)
closeButton.Position = UDim2.new(1, -35, 0, 2)
closeButton.BackgroundTransparency = 1
closeButton.Text = "✕"
closeButton.TextColor3 = Color3.fromRGB(150, 150, 150)
closeButton.TextSize = 18
closeButton.Font = Enum.Font.SourceSansBold
closeButton.Parent = header
closeButton.MouseEnter:Connect(function() closeButton.TextColor3 = Color3.fromRGB(255, 75, 75) end)
closeButton.MouseLeave:Connect(function() closeButton.TextColor3 = Color3.fromRGB(150, 150, 150) end)
closeButton.MouseButton1Click:Connect(function() screenGui:Destroy() end)
-- Контентный контейнер
local container = Instance.new("Frame")
container.Size = UDim2.new(1, -20, 1, -45)
container.Position = UDim2.new(0, 10, 0, 40)
container.BackgroundTransparency = 1
container.Parent = mainFrame
-- Элементы Lighting
local lighting = game:GetService("Lighting")
-- Функция для создания текста ползунков
local function createLabel(text, position, parent)
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, 0, 0, 20)
label.Position = position
label.BackgroundTransparency = 1
label.Text = text
label.TextColor3 = Color3.fromRGB(200, 200, 200)
label.Font = Enum.Font.SourceSans
label.TextSize = 14
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = parent
return label
end
-- Включение тумана (Чекбокс + Квадрат цвета)
local fogEnableLabel = createLabel("Enable Fog", UDim2.new(0, 40, 0, 5), container)
local colorBox = Instance.new("TextButton")
colorBox.Size = UDim2.new(0, 20, 0, 20)
colorBox.Position = UDim2.new(0, 5, 0, 5)
colorBox.BackgroundColor3 = lighting.FogColor
colorBox.Text = ""
colorBox.BorderSizePixel = 1
colorBox.BorderColor3 = Color3.fromRGB(255, 255, 255)
colorBox.Parent = container
-- Простая палитра цветов (RGB слайдеры для точной настройки оттенка)
local colorPickerFrame = Instance.new("Frame")
colorPickerFrame.Size = UDim2.new(1, 0, 0, 85)
colorPickerFrame.Position = UDim2.new(0, 0, 0, 35)
colorPickerFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 28)
colorPickerFrame.BorderSizePixel = 0
colorPickerFrame.Visible = false
colorPickerFrame.Parent = container
local cpCorner = Instance.new("UICorner")
cpCorner.CornerRadius = UDim.new(0, 4)
cpCorner.Parent = colorPickerFrame
-- Открытие палитры по клику на квадратик
colorBox.MouseButton1Click:Connect(function()
colorPickerFrame.Visible = not colorPickerFrame.Visible
end)
-- Функция создания слайдера
local function createSlider(min, max, default, position, parent, callback)
local sliderFrame = Instance.new("Frame")
sliderFrame.Size = UDim2.new(1, -10, 0, 6)
sliderFrame.Position = position
sliderFrame.BackgroundColor3 = Color3.fromRGB(60, 60, 65)
sliderFrame.BorderSizePixel = 0
sliderFrame.Parent = parent
local sliderBtn = Instance.new("ImageButton")
sliderBtn.Size = UDim2.new(0, 14, 0, 14)
sliderBtn.Position = UDim2.new((default - min) / (max - min), -7, 0.5, -7)
sliderBtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
sliderBtn.BorderSizePixel = 0
sliderBtn.Parent = sliderFrame
local btnCorner = Instance.new("UICorner")
btnCorner.CornerRadius = UDim.new(1, 0)
btnCorner.Parent = sliderBtn
local dragging = false
sliderBtn.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
end
end)
game:GetService("UserInputService").InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local mousePos = input.Position.X
local sliderLeft = sliderFrame.AbsolutePosition.X
local sliderWidth = sliderFrame.AbsoluteSize.X
local percentage = math.clamp((mousePos - sliderLeft) / sliderWidth, 0, 1)
sliderBtn.Position = UDim2.new(percentage, -7, 0.5, -7)
local value = min + (max - min) * percentage
callback(value)
end
end)
game:GetService("UserInputService").InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
end
-- Слайдеры для палитры (R, G, B)
local currentR, currentG, currentB = lighting.FogColor.R, lighting.FogColor.G, lighting.FogColor.B
local function updateFogColor()
local newColor = Color3.new(currentR, currentG, currentB)
colorBox.BackgroundColor3 = newColor
lighting.FogColor = newColor
end
createLabel("R", UDim2.new(0, 5, 0, 5), colorPickerFrame)
createSlider(0, 1, currentR, UDim2.new(0, 25, 0, 15), colorPickerFrame, function(val)
currentR = val
updateFogColor()
end)
createLabel("G", UDim2.new(0, 5, 0, 30), colorPickerFrame)
createSlider(0, 1, currentG, UDim2.new(0, 25, 0, 40), colorPickerFrame, function(val)
currentG = val
updateFogColor()
end)
createLabel("B", UDim2.new(0, 5, 0, 55), colorPickerFrame)
createSlider(0, 1, currentB, UDim2.new(0, 25, 0, 65), colorPickerFrame, function(val)
currentB = val
updateFogColor()
end)
-- Настройки Дальности (FogStart / FogEnd)
-- Сдвигаем вниз, чтобы открывающаяся палитра их не перекрывала визуально
local slidersContainer = Instance.new("Frame")
slidersContainer.Size = UDim2.new(1, 0, 0, 140)
slidersContainer.Position = UDim2.new(0, 0, 0, 130)
slidersContainer.BackgroundTransparency = 1
slidersContainer.Parent = container
-- Ползунок: Fog Start (Начало рассеивания)
local startLabel = createLabel("Fog Start: " .. lighting.FogStart, UDim2.new(0, 5, 0, 5), slidersContainer)
createSlider(0, 500, lighting.FogStart, UDim2.new(0, 5, 0, 30), slidersContainer, function(val)
lighting.FogStart = math.floor(val)
startLabel.Text = "Fog Start: " .. math.floor(val)
end)
-- Ползунок: Fog End (Дальность/Конец тумана)
local endLabel = createLabel("Fog End: " .. lighting.FogEnd, UDim2.new(0, 5, 0, 45), slidersContainer)
createSlider(10, 2000, lighting.FogEnd, UDim2.new(0, 5, 0, 70), slidersContainer, function(val)
lighting.FogEnd = math.floor(val)
endLabel.Text = "Fog End: " .. math.floor(val)
end)
-- Ползунок: Отдельно для плотности/рассеивания (через кастомный FogEnd, если это классический туман)
-- Чем меньше FogEnd при маленьком FogStart — тем туман «гуще» (рассеивание сильнее)