Remove the lightning and add in some more advanced generation stuff.

```
-- Infinite Curved Baseplate with Progressive Liminal Environment
-- Place this script in StarterPlayer > StarterCharacterScripts

local RunService = game:GetService("RunService")
local Lighting = game:GetService("Lighting")

local character = script.Parent
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

-- Terrain Generation Parameters
local segmentLength = 50       -- Length of each terrain segment
local segmentWidth = 50        -- Width of each terrain segment
local segmentsAhead = 10       -- Number of segments to generate ahead
local segmentsBehind = 5       -- Number of segments to keep behind
local maxAmplitude = 30        -- Maximum amplitude of the curvature
local amplitudeGrowthRate = 0.02   -- Rate at which curvature amplitude increases

-- Environment Parameters
local maxFogDensity = 0.5
local maxBloomIntensity = 2
local maxColorShift = 0.2

-- Variables
local generatedSegments = {}   -- Table to keep track of generated segments
local currentAmplitude = 0     -- Current amplitude of the curvature
local distanceTraveled = 0     -- Total distance traveled by the player
local lastPosition = humanoidRootPart.Position

-- Initialize Environment Effects
Lighting.FogEnd = 1000
Lighting.FogStart = 0
Lighting.Bloom = Instance.new("BloomEffect", Lighting)
Lighting.Bloom.Intensity = 0

-- Function to generate a terrain segment
local function generateSegment(index)
    local segment = Instance.new("Part")
    segment.Size = Vector3.new(segmentWidth, 1, segmentLength)
    segment.Anchored = true
    segment.Material = Enum.Material.SmoothPlastic
    segment.BrickColor = BrickColor.new("Medium stone grey")

    -- Calculate position with curvature
    local xOffset = math.sin(index * 0.2) * currentAmplitude
    local yOffset = math.cos(index * 0.3) * (currentAmplitude / 2)
    local position = Vector3.new(xOffset, yOffset - 2, index * segmentLength)

    segment.CFrame = CFrame.new(position)
    segment.Parent = workspace
    generatedSegments[index] = segment
end

-- Function to clean up old segments
local function cleanupSegments(currentIndex)
    for index, segment in pairs(generatedSegments) do
        if index < currentIndex - segmentsBehind then
            if segment and segment.Parent then
                segment:Destroy()
                generatedSegments[index] = nil
            end
        end
    end
end

-- Function to update environmental effects
local function updateEnvironment()
    local progress = math.clamp(currentAmplitude / maxAmplitude, 0, 1)

    -- Update Fog
    Lighting.FogEnd = 1000 - (progress * 800)
    Lighting.FogColor = Color3.new(0.8 - progress * maxColorShift, 0.8 - progress * maxColorShift, 0.8 - progress * maxColorShift)

    -- Update Bloom Effect
    Lighting.Bloom.Intensity = progress * maxBloomIntensity

    -- Update Ambient Lighting
    Lighting.Ambient = Color3.new(1 - progress, 1 - progress, 1 - progress)
    Lighting.OutdoorAmbient = Color3.new(progress * 0.5, progress * 0.5, progress * 0.5)
    Lighting.Brightness = 2 - progress * 1.5
end

-- Main loop to generate terrain and update environment
RunService.RenderStepped:Connect(function()
    local position = humanoidRootPart.Position

    -- Calculate distance traveled
    distanceTraveled = distanceTraveled + (position - lastPosition).Magnitude
    lastPosition = position

    -- Increase curvature amplitude based on distance
    currentAmplitude = math.min(maxAmplitude, currentAmplitude + amplitudeGrowthRate)

    -- Determine current segment index based on Z position
    local currentIndex = math.floor(position.Z / segmentLength)

    -- Generate segments ahead
    for i = currentIndex, currentIndex + segmentsAhead do
        if not generatedSegments[i] then
            generateSegment(i)
        end
    end

    -- Clean up old segments
    cleanupSegments(currentIndex)

    -- Update environment effects
    updateEnvironment()
end)