Superlab not tagging events based on rules


I’m creating an experiment and am trying to use the Trial Rules to set tags during a presentation phase that are used to determine the correct response during the test phase.

My experiment, overall, shows participants a randomly selected subset of letters from a stimulus list. They are instructed to recall the last 3 letters that they saw, in the order they saw them, and enter them one at a time. For example, they might see A-B-C-D-E. The correct response would be C-D-E (the last 3 letters presented).

I have 3 response screens per trial, 1 for each response, and need to know if they are correct.

I got Superlab to pick a random subset of letters for each trial, and created Parameters to indicate in the output which letters are the last 3 presented during the test phase (Parameters are called Correct Response 1, Correct Response 2, and Correct Response 3). I have also tagged each letter in the Stimulus List.

I am now trying to set new tags, called Response1, Response2, and Response3, that Superlab can use to determine if each participant’s response is correct.

I have created a series of 27 rules (3 response tags x 9 letters), because I could not find a way to say Set Tag X to Tag Y’s value.

Here’s an example to evaluate whether the participant should enter the letter “F” as the first response [in Trial Rules and active during stimuli presentation phase]:


  1. Parameter: Correct Response 1 = Yes
  2. Tag “Letter Response” is set to F
    Set tag on all trials in block from Response1 to F

And so on for all 27 Response x Letter combinations.

My expectation is that all remaining trials in the block (including the response Trials), will have a value of “F” in the Response1 tag, but when I exit the experiment the Response1, Response2, and Response3 tag columns are all blank. Not surprisingly, then, when I exit the experiment Superlab gives an error re: missing tags, and doesn’t properly evaluate responses as correct/incorrect.

My experiment package is attached.

Please advise.


Present Random Number of Stimuli Test tag as event all in block (37.1 KB)

When handling sequences, using Text parameters can come in handy. Let’s say you create two Text parameters, one called “Presented Sequence” and the other “Participant Response”. The idea is as follows.

In the first part where you are showing the participants a randomly selected subset of letters, append the letters to parameter “Presented Sequence”. You can do that in the Event Editor’s Feedback tab.

Later, you can collect responses, you also use the Feedback tab to append a letter to parameter “Participant Response” if the participant clicks on that letter.

And last but not least is a rather simple rule that compares the two. I have attached a modification of your experiment that does exactly that. You will find a lot less rules and parameters in this version!

To prevent the experiment from looping forever right now, a block-level rule checks for a maximum number of trials; see the “Go back to present next trial” rule.

Present Random Number of Stimuli Test.sl5 (31.2 KB)

Thank you - this is very helpful.

This version provides feedback re: whether the participant got the whole response correct.

I would like the Error Code for each response (Response1, Response2, Response3) to indicate whether they chose the right letter each time - we need to do partial scoring to know if they got 0/3, 1/3, 2/3, or 3/3 of the letters correct each trial.


You are welcome.

Regarding partial scoring, I’m afraid that this would need to be done in post-processing.

Were you able to determine why the Rules I created in the original version weren’t saving data to the Response1-3 tags as written? If those were working, then the scoring would work, I think.


It wasn’t just the rules that you had created. It was that I redid the entire experiment (about 3 hours) to use the new approach of building two Text parameters so that we have something to compare.

But generally speaking, I noticed that your experiments rely excessively on tags. Prior to SuperLab 5, tags (then called event codes) were the only way to do many things. But these have been supplanted by version 5’s parameters and other goodies.

There is another SuperLab 5 feature that also makes things easier: that is the ability to provide feedback based on a specific response. Previously, you could provide feedback based on response correctness or RT only.

I very much appreciate your work on this.

Tags still seem to be the only way in Superlab 5 to indicate in the Event’s Correct Response tab whether or not the response is correct, and hence the only way to get the data file’s Error Code column to indicate whether a response is correct or not.

It is important for my purposes that the Error Code column in Superlab’s output file be accurate.

I am still trying to understand why the Rules I created did not save information to the Response1-3 columns as written. Is it a bug, or something I did wrong in the logic?

Thanks again!

Tags are not the only way to indicate if the response is correct. I’d advise against using them for that purpose except when it’s the only way.

For your experiment, the problem is to determine whether a sequence is correct. Currently, SuperLab has no built-in method for determining if a sequence is correct. That’s why I used two Text parameters. The idea is to build a sequence of characters, once during presentation, and once during participant response, and then compare the two parameters. Tags would not have helped with this endeavor.

I think what I’m hearing from your responses is that it’s not possible to tag trials during an experiment. Under Trial Editor, Rules, there is an option “Set tag on all trials in block”. This is not working for me. Is this a bug, or am I doing something wrong? I understand that you are suggesting other ways to partially accomplish what I need; however, for my purposes I need to be able to get this option working.

If I set the action to “set tag on all trials in block” it does nothing. If I set it to “set trial’s tag”, then Superlab crashes (Crash message was too long to paste into this text box).

I am also noticing that Superlab saves parameter info at the very beginning of each event rather than at the end. So, for example, if I tell Superlab to increment a counter, it doesn’t show up in the Data File until the next event. for example, in the version of my task that you created, if the letter presented is “S”, that letter isn’t shown in the Data File’s row for the event “S”, but in the next row. This also affects parameters such as counting the number of correct responses, number of trials, etc. Is it possible to have Superlab save parameters that an event changes on that event’s Data File line, rather than on the next line?

Are you using the latest version 5.0.3 of SuperLab? If yes, then we definitely need the crash report, otherwise we will not know about this bug nor be able to fix it. We have no other bug reports regarding the “Set trial’s tag” causing a crash.

You are correct about parameters. They are updated at “trial boundaries”, i.e. after one trial has ended and another one is starting. There are no plans to change that behavior at present.

I’m using version 5.0.3 for Mac. Crash report is attached. the attachment uploader doesn’t accept Word documents, so I converted it to PDF.

Thanks again for all your work helping me figure out how to get Superlab to perform the functions we need for some of our experiments.

Process.pdf (193 KB)

A developer looked into the crash report. This will be fixed in an upcoming SuperLab 5.0.4 release. Sorry for the inconvenience.

The bug fix is now included in the SuperLab 5.0.4 update that we released last week. You can get the latest version from our SuperLab 5 Update page.

Thank you for reporting it.