> For the complete documentation index, see [llms.txt](https://wiki.redmodding.org/scripting-cyberpunk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.redmodding.org/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/onoverlayopen.md).

# onOverlayOpen

This event get triggered when the [CET Overlay](https://wiki.redmodding.org/cyber-engine-tweaks/console/usage) gets shown.

Use this to keep track of the overlays state, and e.g. to only draw your own UI when CETs overlay is visible. Use it in conjunction with [onOverlayClose](/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/onoverlayclose.md) to get a proper on/off switch case.

## Usage Example

#### Display a warning message when the [CET Overlay](https://wiki.redmodding.org/cyber-engine-tweaks/console/usage) is opened:

{% code title="init.lua" %}

```lua
-- onOverlayOpen
registerForEvent('onOverlayOpen', function()
    
    -- get player
    local player = Game.GetPlayer()
    
    -- bail early if player doesn't exists
    if not player then
        return
    end
    
    -- display warning message
    player:SetWarningMessage('Overlay is open')

end)
```

{% endcode %}

## Advanced Example

#### Render an ImGui window when the [CET Overlay](https://wiki.redmodding.org/cyber-engine-tweaks/console/usage) is opened:

{% hint style="info" %}
This example use the [onDraw](/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/ondraw.md) event, which is triggered continuously. Make sure to [check the documentation](/scripting-cyberpunk/cyber-engine-tweaks/cet-functions/events/ondraw.md) before any modification.
{% endhint %}

{% code title="init.lua" %}

```lua
-- set initial var
local isOverlayVisible = false

-- onOverlayOpen
registerForEvent('onOverlayOpen', function()
    isOverlayVisible = true
end)

-- onOverlayClose
registerForEvent('onOverlayClose', function()
    isOverlayVisible = false
end)

-- onDraw
-- this event is triggered continuously
registerForEvent('onDraw', function()
    
    -- bail early if overlay is not open
    if not isOverlayVisible then
        return
    end
    
    -- draw ImGui window
    if ImGui.Begin('Window Title', ImGuiWindowFlags.AlwaysAutoResize) then
        ImGui.Text('Hello World!')
    end
    
    ImGui.End()
    
end)
```

{% endcode %}
