> For the complete documentation index, see [llms.txt](https://docs.incari.com/incari-studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.incari.com/incari-studio/2.0/toolbox/events.md).

# Events

## Introduction

Although many branches of **Logic** can be defined in Incari's **Logic Editor**, a branch will never be executed without being initiated by an **Event**. They define when, and under what conditions, functionality should be triggered. In both Incari and computer science in general, event systems define a relationship between the fulfillment of criteria and the set of instructions to be performed once those criteria are met, and are made up of two parts: *triggers* and *listeners*.

*Triggers* can be thought of as being like announcements. A real-world example of a trigger is a school teacher announcing that an exam's time limit has been reached. The other staff members and students are the *listeners* in this case, whereby the **Event** occurring prompts the staff members to begin collecting exam papers, while students stop writing and put down their pencils.

**Events** in Incari can be directly triggered by the user's input, as is the case with **Keyboard** and **Mouse Events**, or triggered automatically when something happens relating to an **Object**, **Variable**, **Scene**, or **Screen**. One of the most powerful aspect of Incari's **Events** is that you even can define your own custom *triggers* and *listeners*, to establish the criteria under which one part of your **Logic** causes the execution of others.

## Contents

* [**Keyboard**](/incari-studio/2.0/toolbox/events/keyboard.md)
  * [**On Key Press**](/incari-studio/2.0/toolbox/events/keyboard/on-key-press.md)
  * [**On Key Release**](/incari-studio/2.0/toolbox/events/keyboard/on-key-release.md)

## External Links

[*What is event programming?*](https://mortoray.com/2017/06/26/what-is-event-programming/) on Musing Mortoray.
