Issues with using eyelink and the new Builder eye tracking components

No, unfortunately not. As you suggested, the ROI component needs an ETRecord component, which for the EyeLink really needs to support starting and stopping recording outside the ‘trial’ routine logic so that the time it takes does not impact presentation timing.

Until the root issues are resolved, you could implement your own region of interest type functionality using some extra custom code that calls something like the following on each frame when you want to monitor eye position:

# Note: eyetracker should already be recording...

# Get last eye position
gpos = eyetracker.getLastGazePosition()

if isinstance(gpos, (tuple, list)):
    # There was an eye position available
    # Check if it is within a visual stim called 'gaze_region_stim'
    if gaze_region_stim.contains(gpos):
        # Add logic for when eye is within the gaze_region_stim
        # ...
        pass
    else:
        # Add logic for when eye is outside the gaze_region_stim
        # ...
        pass