Skip to main content

Stroop Test

You can create and configure Stroop Tests directly in the simulator. The Stroop Test is a psychological task that measures a person's ability to process conflicting information by asking them to name the color of a word's font rather than the word itself.

Stroop Test Screenshot

During a Stroop Test, participants see two things: input prompts and the Stroop stimulus.

The input prompts show the available response options and indicate which color or response each corresponds to. The simulator supports up to three input prompts, which are displayed at the top of the screen from left to right.

The Stroop stimulus is the word presented to the participant, displayed in a specific font color. The participant must respond based on the task rules, and the combination of the word's meaning and its color creates the cognitive challenge of the Stroop Test.

These elements are defined as ScriptableObjects and assigned to dedicated Stroop Test Scenes. At runtime, the scene automatically generates the test based on the assigned assets.

Stroop Test ScriptableObjects in Project window

ScriptableObjects​

The simulator uses two main ScriptableObjects for Stroop Tests:

1. Stroop Test Set Data​

A Stroop Test Set Data asset defines the three input prompts and the sequence of stimuli.

To create a Stroop Test Set Data asset: Right-click in the Project window > Create > ScriptableObject > Assessments > StroopTest > Set.

Stroop Test Set Data's Inspector

Input Prompt Settings​

The Input Prompt Settings define how the three response buttons are displayed on screen during the Stroop Test. In the Inspector, you see three side-by-side boxes titled Input Prompt - Left, Input Prompt - Middle, and Input Prompt - Right:

Stroop Test Set Data's Input Prompt Settings

Each box corresponds to one of the input prompts the participant can select during the test. For example, the Left box controls what the left prompt looks like on screen, the Middle box controls the middle prompt, and so on.

Inside each box are three fields:

  1. Top field: The image that appears on screen to represent the input (for example, a keyboard down-arrow key icon).

  2. Middle field: The text displayed in the prompt, showing which color the input corresponds to (for example, "Red").

  3. Bottom field: The font color used for the text.

note

These settings only define the input prompts displayed on screen. They do not set the actual player input. Make sure the prompts match the configured input.

Stimuli Sequence Settings​

Stroop Test Set Data's Stimuli Sequence Settings

The Stroop Stimuli list defines the sequence of trials in the Stroop Test. Each element in the list references a Stroop Stimulus asset, and the order of the list determines the order in which the stimuli are shown on screen.

To assign a stimulus, drag a Stroop Stimulus asset into the slot or select it from the object picker. Use the + / − buttons to change the number of elements, and drag elements up or down to rearrange them.

2. Stroop Stimulus​

A Stroop Stimulus asset represents an individual stimulus. It is a data container that defines both the word and its font color, which the system renders during the test.

Screenshot of the Stimulus UI on Screen circled/pointed at

To create a Stroop Stimulus asset: Right-click in the Project window > Create > ScriptableObject > Assessments > StroopTest > Stimulus.

Once created, you can configure the word and its color in the Inspector:

Stroop Stimulus asset's Inspector

Stroop Stimulus
Property
Description
Word
The actual word presented on screen.
Color
The color in which the word is printed.

This asset produces the following stimulus:

Screenshot of the Stimulus

tip

You can reuse a Stroop Stimulus asset across different test sets, and also multiple times within the same set.

Stroop Test Scene​

To administer the Stroop Test to participants, you need a correctly set up Unity scene. The simulator provides a Stroop Test Scene Template (listed as Stroop Test in the dialog) that contains all the components needed to administer a Stroop Test. Select it when you create a new scene in the New Scene Dialog.

Image of Stroop Test Scene template in dialog

Linking Stroop Test Data to the Scene​

In the scene, you need to assign the Stroop Test Set Data asset to the appropriate component. The scene contains a StroopTest UI Document GameObject in the Hierarchy, which has a Stroop Test Generator component.

Image of Stroop Test Document in Hierarchy

In the Inspector, assign your Stroop Test Set Data ScriptableObject to the Stroop Test Set Data field. The template comes with the Sample Stroop Sample Set asset assigned as an example.

Image of Stroop Test Set Data field in Inspector

Configure Player Input​

The Stroop Test relies on input actions to listen for participant input. In the scene, the Stroop Test Generator component attached to StroopTest UI Document must be configured to respond to specific inputs.

A pre-configured Input Action Asset, StroopTestInputAction (located at Assets/mobisim/Assessment/StroopTest), is provided for the Stroop Test scene template. Its Stroop Input Action Map contains three actions, Input Action Red (Left Arrow), Input Action Green (Down Arrow), and Input Action Blue (Right Arrow), which are assigned to the generator's Action References list.

Image of StroopTestInputAction's configured inputs

Changing the input bindings of the assigned actions affects every scene that uses them. If a specific Stroop Test requires a unique input setup, create your own input actions and assign them to the Action References list of the Stroop Test Generator component.

Image of Action References in Stroop Test Generator component

For full details on creating input actions, see Creating Input Action Assets.

Data Collection​

Stroop Test results are collected at the end of the test. The test ends after the participant responds to the last stimulus in the set, at which point the session ends and the data is saved. Stroop Test results are stored in JSON format with the following structure:

Property
Description
SessionData
Participant ID, Subject ID, and session metadata.
dataList
Array of all stimulus–response records for the session. Each item represents one stimulus and the participant's response.
└stroopTestEntryText
The word shown on screen (e.g., "BLUE").
└stroopTestEntryColor
The ink color the word was printed in, as a Unity RGBA string (e.g., "RGBA(1.000, 0.000, 0.000, 1.000)").
└inputAction
The input action the participant performed, formatted as action map/action name followed by the bound control(s) (e.g., "Stroop Input Action Map/Input Action Red[/Keyboard/leftArrow]").
└unixTimeStamp
When the input was received (Unix time in milliseconds).
└elapsedTime
Seconds from when the stimulus appeared until the participant responded.

Below is an example snippet of the saved data:

Sample Output
{
"SessionData": { "ParticipantID": "W1234", "subjectID": 3 },
"dataList": [
{
"inputAction": "Stroop Input Action Map/Input Action Blue[/Keyboard/rightArrow]", // The input action performed by the participant (key/button)
"stroopTestEntryText": "RED", // Word shown on the screen as the stimulus
"stroopTestEntryColor": "RGBA(0.000, 0.000, 1.000, 1.000)", // Color of the word stimulus displayed
"unixTimeStamp": 1234567890123, // Timestamp in milliseconds when the input was received
"elapsedTime": 1.234 // Time in seconds since this stimulus appeared on screen
},
{
"inputAction": "Stroop Input Action Map/Input Action Red[/Keyboard/leftArrow]",
"stroopTestEntryText": "GREEN",
"stroopTestEntryColor": "RGBA(1.000, 0.000, 0.000, 1.000)",
"unixTimeStamp": 1234567890456,
"elapsedTime": 2.345
},
// ... Other entries
]
}

Data is saved in a Gzip-compressed JSON file with the following name:

mTkID[ParticipantID]_subID[SubjectID]_[SceneName]_StroopTest_[yyyyMMddHHmmss]

For example, if ParticipantID is A1B2C3D4E5F6G7H8I9J0, SubjectID is 100, the scene is StroopTestScene, and the test is completed at 3:30:45 PM on August 22, 2025, the file name would be:

mTkIDA1B2C3D4E5F6G7H8I9J0_subID100_StroopTestScene_StroopTest_20250822153045

The save location is defined in the Project Settings (see Data Collection Settings for full details).

Setup​

Image of a Stroop Test generator with a Stroop Test data handler component attached to the same GameObject

Data collection setup in a Stroop Test scene is minimal: a StroopTestDataHandler component must be on the same GameObject as your StroopTestGenerator (the generator references it and doesn't record inputs without it). The Stroop Test scene template already includes it on StroopTest UI Document.