function init()
    boxes = FindShapes("blink")
    server = FindShape("server")
    boxesSpeed = {}
    blinkTimer = {}
    for i = 1, #boxes do
        boxesSpeed[i] = 0.75
        blinkTimer[i] = 0
        SetShapeEmissiveScale(boxes[i], 0)
    end
    durationOn = 3.0  -- Тривалість включення (2 секунди)
    durationOff = 12.0  -- Тривалість вимкнення (13 секунд)
    currentTime = 0  -- Поточний час
    doBlink = false  -- Початковий стан - вимкнено
end

function tick(dt)
    if IsShapeBroken(server) then
        doBlink = false
        for i = 1, #boxes do
            SetShapeEmissiveScale(boxes[i], 0)
        end
    end

    currentTime = currentTime + dt

    if currentTime >= durationOff + durationOn then
        currentTime = 0
    end

    if currentTime < durationOff then
        doBlink = false  -- Вимикаємо миготіння
    else
        doBlink = true  -- Включаємо миготіння
    end

    for i = 1, #boxes do
        blinkTimer[i] = blinkTimer[i] + (dt * boxesSpeed[i])
        local t = math.mod(blinkTimer[i], 1.0)

        if doBlink and t < durationOn then
            SetShapeEmissiveScale(boxes[i], 1)
        else
            SetShapeEmissiveScale(boxes[i], 0)
        end
    end
end