Understanding Properties
In this article:
In EventIDE, experiment design revolves around three main types of objects: Experiments, Events, and Elements — collectively referred to as E-objects.
Experiment: The root container for all other objects in the design.
Events: Define the timeline or flow of your experiment and host elements.
Elements: Control the presentation of stimuli, capture responses, or interact with hardware.
Each E-object comes with a predefined set of properties—named fields or variables of simple data types like strings, Booleans, integers, etc.—that determine its behavior or indicate its status. For instance:
The Background Color property of an event allows you to set the background color.
The Elapsed Time property returns how many milliseconds have passed since the event’s onset.
Accessing and Editing Properties
The Property Panel is used to view and edit properties:
Experiment Properties: Click the Experiment ribbon tab. The Property Panel will automatically display experiment-level properties.
Event Properties: Click the Event ribbon tab. The first event will be auto-selected, and its properties will be shown. Use the Event Bar to switch events.
Element Properties: Click on an element in the Element Panel to show its properties in the Property Panel.
Tip: Important properties are marked in orange. Click “Show All Properties” at the bottom of the Property Panel to reveal advanced options.

Property Classes
Every property in EventIDE belongs to one of the following classes, which define how and when the property can be accessed or modified:
Property Class | Description | Example |
General | Read/write at design-time and runtime. Can assign proxy variables. | Background Color of an Event |
Design | Read/write only at design-time. Cannot be changed at runtime. | Device Type of a Button Element |
Status | Read-only at runtime. Use proxy variables to monitor values. | Triggering Time of a Button |
Runtime Command | Write-only at runtime. Used to trigger runtime commands via proxy variable. | Send Marker Now on LSL Marker Element |
Hover your mouse over a property’s name in the panel to see its type and class in a tooltip.

How Properties Work
Properties in EventIDE merge the functionality of variables and procedures found in traditional programming.
For example, to move a visual stimulus at runtime, you only need to update its position through the code:
myStimulusPosition.X = Xnew;
myStimulusPosition.Y = Ynew;EventIDE will automatically update and redraw the stimulus in the new location.
Key Concepts
All object functionality and data access happen through properties.
Reactive Design: Changing a property triggers internal update processes (e.g., redrawing a stimulus).
Caution at Runtime: Changing properties during stimulus presentation can impact timing precision. It’s best to prepare everything in advance.
Flow Control: You can use status properties to check runtime states—e.g., whether a key is pressed—and guide experiment logic.
Structural Properties
Some properties in EventIDE are not simple values but structs—objects that bundle related fields.
Examples of Struct Types
Struct Type | Description | Access Pattern (dot syntax) |
stColor | RGBA color components | TextColor.R = 127; |
clPoint | 2D coordinate or polar position | Position.X = 512; or TextPosition.Theta = 90; |
clSize | Object dimensions | StimSize.Width = 200; or TextAreaSize.aWidth = 5.5f; |
