ROI component preventing trial termination

OS (e.g. Win10):
PsychoPy version (e.g. 1.84.x): v2022.1.3
Standard Standalone? (y/n) If not then what?: Yes

Hello everyone,

I am currently building my first eyetracking experiment using the PsychoPy builder so there might be some obvious mistakes I am not seeing. Sorry for that!

During the trial (and eyetracker recording) period, I want to display a visual target either to the left or to the right of the fixation cross. Participants should respond to the location of the target with a corresponding key press or a saccade and I want to measure (among others) saccade latencies.

To this end, I have placed to ROI components on the potential target positions (ROI_left & ROI_right). They should last until the trial is over but they should not terminate the trial in case participants respond with a keypress after the saccade. So I set the duration of both ROI compononents to the trial duration (like all other components). However, after the ROIs disappear the trial does not terminate and I am stuck with a blank screen.

When I disable the ROI components or let them terminate the trial, the experiment continues as intended.

Do you have any ideas on how to fix this issue?

Thanks a lot!


I was actually struggling with the same issue today.
My problem was that I had the component duration set to stop using frames, however it seems like it can only be stopped using duration in seconds.
Changing the Start/stop from frames to seconds seems to have solved the issue for me.

Thanks for your reply! Unfortunately, that didn’t do the trick as I already set the duration of the components using seconds …

Are there any other components with the ability to end the routine? If not, then the routine duration will simply continue until all components are finished. But if all components end when the routine does, then you end up with circular logic - the routine never ends.

Thanks for the reply! All the components in the routine have a fixed duration (s) so that the trial should terminate after the last component has finished because I don’t want the component to be forced to end by any action but instead after a certain deadline has been exceeded in every trial.

So when you set the ROI to the trial duration, did you do so by setting it to the same duration as the other components, or by leaving the duration field blank? Could you share the psyexp file so I can see it live?

Sure I attached the file here. And yes, I have set the ROI to the same duration as (some of) the other components during the trial. Some components start a little bit earlier and some a little bit later but I wanted everything to be terminated at the same time.
sds_task.psyexp (60.5 KB)
conditions.xlsx (8.5 KB)