local Lighting = game:GetService("Lighting")
local Workspace = game:GetService("Workspace")
-- ==========================================
-- 1. НАСТРОЙКА ОСВЕЩЕНИЯ И АТМОСФЕРЫ (VFX)
-- ==========================================
Lighting.Technology = Enum.Technology.ShadowMap
Lighting.Ambient = Color3.fromRGB(150, 140, 200) -- Легкий фиолетовый оттенок в тенях
Lighting.OutdoorAmbient = Color3.fromRGB(170, 160, 220)
Lighting.Brightness = 2.5
Lighting.ColorShift_Top = Color3.fromRGB(255, 230, 200) -- Теплый свет солнца
-- Удаляем старые эффекты, если были
for _, child in ipairs(Lighting:GetChildren()) do
if child:IsA("PostEffect") or child:IsA("Atmosphere") or child:IsA("Sky") then
child:Destroy()
end
end
-- Цветокоррекция (делает цвета сочными, как на арте)
local colorCorrection = Instance.new("ColorCorrectionEffect")
colorCorrection.Saturation = 0.4
colorCorrection.Contrast = 0.1
colorCorrection.TintColor = Color3.fromRGB(255, 245, 255)
colorCorrection.Parent = Lighting
-- Свечение (мягкий блюм для неоновых деталей)
local bloom = Instance.new("BloomEffect")
bloom.Intensity = 0.6
bloom.Size = 24
bloom.Threshold = 2
bloom.Parent = Lighting
-- ==========================================
-- 2. ГЕНЕРАЦИЯ БАЗОВЫХ ОСТРОВОВ И ЗОН
-- ==========================================
local mapFolder = Instance.new("Folder")
mapFolder.Name = "BubbleGumMap_Base"
mapFolder.Parent = Workspace
local function createPlatform(size, position, color, name)
local pad = Instance.new("Part")
pad.Shape = Enum.PartType.Cylinder
pad.Size = size
pad.Position = position
-- Поворачиваем цилиндр, чтобы он лежал плашмя
pad.CFrame = CFrame.new(position) * CFrame.Angles(0, 0, math.rad(90))
pad.Color = color
pad.Material = Enum.Material.SmoothPlastic
pad.Anchored = true
pad.Name = name
pad.Parent = mapFolder
return pad
end
-- Цвета
local grassMint = Color3.fromRGB(152, 255, 216)
local baseBlue = Color3.fromRGB(124, 161, 181)
-- Центральный остров (Spawn)
createPlatform(Vector3.new(4, 80, 80), Vector3.new(0, 0, 0), baseBlue, "Center_Base")
createPlatform(Vector3.new(2, 78, 78), Vector3.new(0, 3, 0), grassMint, "Center_Grass")
-- Остров магазина (Слева)
createPlatform(Vector3.new(10, 60, 60), Vector3.new(-70, -5, -20), baseBlue, "Shop_Base")
createPlatform(Vector3.new(2, 58, 58), Vector3.new(-70, 1, -20), grassMint, "Shop_Grass")
-- Остров с яйцами (Справа)
createPlatform(Vector3.new(8, 65, 65), Vector3.new(70, -2, -10), baseBlue, "Egg_Base")
createPlatform(Vector3.new(2, 63, 63), Vector3.new(70, 3, -10), grassMint, "Egg_Grass")
-- ==========================================
-- 3. ГИГАНТСКИЕ ПУЗЫРИ (Зоны)
-- ==========================================
local function createBubbleZone(size, position, color, name)
local bubble = Instance.new("Part")
bubble.Shape = Enum.PartType.Ball
bubble.Size = Vector3.new(size, size, size)
bubble.Position = position
bubble.Color = color
-- ForceField дает идеальный эффект голографического мыльного пузыря без лагов
bubble.Material = Enum.Material.ForceField
bubble.Anchored = true
bubble.CanCollide = false -- Игроки проходят насквозь
bubble.Name = name
bubble.Parent = mapFolder
return bubble
end
-- Пузырь спавна (в центре)
createBubbleZone(45, Vector3.new(0, 25, 0), Color3.fromRGB(200, 180, 255), "Spawn_Bubble")
-- Пузырь для яиц (справа)
createBubbleZone(50, Vector3.new(70, 28, -10), Color3.fromRGB(180, 220, 255), "Egg_Bubble")
print("Освещение, фильтры и база островов сгенерированы!")