﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Millisecond Forums » Millisecond Forums » Inquisit 5  » Multiple valid responses, correct responses, and XID</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Wed, 23 Sep 2026 21:11:57 GMT</lastBuildDate><ttl>20</ttl><item><title>Multiple valid responses, correct responses, and XID</title><link>https://forums.millisecond.com/Topic26512.aspx</link><description>Hi there,&lt;br/&gt;&lt;br/&gt;Well, I thought my response box troubles were behind me, but alas...&lt;br/&gt;&lt;br/&gt;I've moved on to trying to get our response pad to work with N-back, where either no response or an active response can be correct responses depending on the (non)target stimulus. Looking at the data, nonresponses are logging just fine, but it isn't registering any XID button presses. Here's the relevant code I'm using:&lt;br/&gt;&lt;br/&gt;&amp;lt;trial start&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;if (values.N == 0) {&lt;br/&gt;text.targetreminder.textcolor = red;&lt;br/&gt;values.trialduration_starttrial = parameters.showtarget0;&lt;br/&gt;values.starttrialposttrialpause = parameters.posttrialpause_aftertarget0;&lt;br/&gt;} else {&lt;br/&gt;trial.start.insertstimulustime(clearscreen, parameters.stimulusPresentationtime);&lt;br/&gt;values.trialduration_starttrial = parameters.trialduration;&lt;br/&gt;values.starttrialposttrialpause = 0;&lt;br/&gt;};&lt;br/&gt;values.starttrialcounter += 1;&lt;br/&gt;values.trial_Hit = 0;&lt;br/&gt;values.trial_Miss = 0;&lt;br/&gt;values.trial_CR = 0;&lt;br/&gt;values.trial_FA = 0;&lt;br/&gt;]&lt;br/&gt;/ stimulustimes = [0 = startletter, targetreminder]&lt;br/&gt;&lt;strong&gt;/ inputdevice = xid&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;trial.start.response == 80 &lt;br/&gt;]&lt;br/&gt;/ validresponse = (noresponse)&lt;br/&gt;/ correctresponse = (noresponse)&lt;/strong&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;trial.start.resetstimulusframes();&lt;br/&gt;if (values.N == 0) {&lt;br/&gt;values.currenttarget = text.startletter.currentitemnumber;&lt;br/&gt;}&lt;br/&gt;list.items.insertitem(text.startletter.currentitemnumber, 1);&lt;br/&gt;text.targetreminder.textcolor = black;&lt;br/&gt;]&lt;br/&gt;/ beginresponsetime = 0&lt;br/&gt;/ trialduration = values.trialduration_starttrial&lt;br/&gt;/ posttrialpause = (values.starttrialposttrialpause)&lt;br/&gt;/ branch = [&lt;br/&gt;if (values.starttrialcounter &amp;lt; values.N)&lt;br/&gt;trial.start&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;**********************************&lt;br/&gt;Nontarget Trials&lt;br/&gt;**********************************&lt;br/&gt;&amp;lt;trial nontarget&amp;gt;&lt;br/&gt;/ stimulustimes = [0 = nontargetletter]&lt;br/&gt;&lt;strong&gt;/ inputdevice = xid&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;trial.nontarget.response == 80&lt;br/&gt;]&lt;br/&gt;/ validresponse = (noresponse)&lt;br/&gt;/ correctresponse = (noresponse)&lt;/strong&gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;trial.nontarget.insertstimulustime(clearscreen, parameters.stimulusPresentationtime);&lt;br/&gt;if (values.N &amp;gt; 0) {&lt;br/&gt;values.currenttarget = list.items.item(values.N);&lt;br/&gt;};&lt;br/&gt;values.trial_Hit = 0;&lt;br/&gt;values.trial_Miss = 0;&lt;br/&gt;values.trial_CR = 0;&lt;br/&gt;values.trial_FA = 0;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;trial.nontarget.resetstimulusframes();&lt;br/&gt;list.items.insertitem(text.nontargetletter.currentitemnumber, 1);&lt;br/&gt;values.CorrReject = values.CorrReject + trial.nontarget.correct;&lt;br/&gt;values.trial_CR = trial.nontarget.correct;&lt;br/&gt;values.FalseA = values.FalseA + trial.nontarget.error;&lt;br/&gt;values.trial_FA = trial.nontarget.error;&lt;br/&gt;values.TotalFA = values.TotalFA + trial.nontarget.error;&lt;br/&gt;values.DV = (values.TotalHits - values.TotalFA)/values.TotalBlocks;&lt;br/&gt;]&lt;br/&gt;/ beginresponsetime = 0&lt;br/&gt;/ trialduration = parameters.trialduration&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;**********************************&lt;br/&gt;Target Trials&lt;br/&gt;**********************************&lt;br/&gt;**if target, press the letter "A" (code: 30)&lt;br/&gt;&amp;lt;trial target&amp;gt;&lt;br/&gt;/ stimulustimes = [0 = targetletter, targetalert]&lt;br/&gt;&lt;strong&gt;/ inputdevice = xid&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;trial.target.response == 80&lt;br/&gt;]&lt;br/&gt;/ validresponse = (noresponse)&lt;br/&gt;/ correctresponse = (80)&lt;/strong&gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;trial.target.insertstimulustime(clearscreen, parameters.stimulusPresentationtime);&lt;br/&gt;if (values.N &amp;gt; 0) {&lt;br/&gt;values.currenttarget = list.items.item(values.N);&lt;br/&gt;};&lt;br/&gt;values.trial_Hit = 0;&lt;br/&gt;values.trial_Miss = 0;&lt;br/&gt;values.trial_CR = 0;&lt;br/&gt;values.trial_FA = 0;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;trial.target.resetstimulusframes();&lt;br/&gt;list.items.insertitem(text.targetletter.currentitemnumber, 1);&lt;br/&gt;values.Hits = values.Hits+ trial.target.correct;&lt;br/&gt;values.trial_Hit = trial.target.correct;&lt;br/&gt;values.Misses = values.Misses + trial.target.error;&lt;br/&gt;values.trial_Miss = trial.target.error;&lt;br/&gt;values.TotalHits = values.TotalHits + trial.target.correct;&lt;br/&gt;values.DV = (values.TotalHits - values.TotalFA)/values.TotalBlocks;&lt;br/&gt;]&lt;br/&gt;/ beginresponsetime = 0&lt;br/&gt;/ trialduration = parameters.trialduration&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;</description><pubDate>Fri, 01 Mar 2019 16:45:08 GMT</pubDate><dc:creator>drtb</dc:creator></item><item><title>RE: Multiple valid responses, correct responses, and XID</title><link>https://forums.millisecond.com/Topic26514.aspx</link><description>&lt;div data-id="26513" class="if-quote-wrapper" unselectable="on" data-guid="1551487055593"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="26513" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="26513" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="26513" title=" "&gt;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - Friday, March 1, 2019&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-26513"&gt;&lt;div class="if-quote-message-margin"&gt;&lt;div data-id="26512" class="if-quote-wrapper" unselectable="on" data-guid="1551487055593"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="26512" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="26512" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="26512" title=" "&gt;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;drtb - Friday, March 1, 2019&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-26512"&gt;&lt;div class="if-quote-message-margin"&gt;Hi there,&lt;br/&gt;&lt;br/&gt;Well, I thought my response box troubles were behind me, but alas...&lt;br/&gt;&lt;br/&gt;I've moved on to trying to get our response pad to work with N-back, where either no response or an active response can be correct responses depending on the (non)target stimulus. Looking at the data, nonresponses are logging just fine, but it isn't registering any XID button presses. Here's the relevant code I'm using:&lt;br/&gt;&lt;br/&gt;&amp;lt;trial start&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;if (values.N == 0) {&lt;br/&gt;text.targetreminder.textcolor = red;&lt;br/&gt;values.trialduration_starttrial = parameters.showtarget0;&lt;br/&gt;values.starttrialposttrialpause = parameters.posttrialpause_aftertarget0;&lt;br/&gt;} else {&lt;br/&gt;trial.start.insertstimulustime(clearscreen, parameters.stimulusPresentationtime);&lt;br/&gt;values.trialduration_starttrial = parameters.trialduration;&lt;br/&gt;values.starttrialposttrialpause = 0;&lt;br/&gt;};&lt;br/&gt;values.starttrialcounter += 1;&lt;br/&gt;values.trial_Hit = 0;&lt;br/&gt;values.trial_Miss = 0;&lt;br/&gt;values.trial_CR = 0;&lt;br/&gt;values.trial_FA = 0;&lt;br/&gt;]&lt;br/&gt;/ stimulustimes = [0 = startletter, targetreminder]&lt;br/&gt;&lt;strong&gt;/ inputdevice = xid&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;trial.start.response == 80 &lt;br/&gt;]&lt;br/&gt;/ validresponse = (noresponse)&lt;br/&gt;/ correctresponse = (noresponse)&lt;/strong&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;trial.start.resetstimulusframes();&lt;br/&gt;if (values.N == 0) {&lt;br/&gt;values.currenttarget = text.startletter.currentitemnumber;&lt;br/&gt;}&lt;br/&gt;list.items.insertitem(text.startletter.currentitemnumber, 1);&lt;br/&gt;text.targetreminder.textcolor = black;&lt;br/&gt;]&lt;br/&gt;/ beginresponsetime = 0&lt;br/&gt;/ trialduration = values.trialduration_starttrial&lt;br/&gt;/ posttrialpause = (values.starttrialposttrialpause)&lt;br/&gt;/ branch = [&lt;br/&gt;if (values.starttrialcounter &amp;lt; values.N)&lt;br/&gt;trial.start&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;**********************************&lt;br/&gt;Nontarget Trials&lt;br/&gt;**********************************&lt;br/&gt;&amp;lt;trial nontarget&amp;gt;&lt;br/&gt;/ stimulustimes = [0 = nontargetletter]&lt;br/&gt;&lt;strong&gt;/ inputdevice = xid&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;trial.nontarget.response == 80&lt;br/&gt;]&lt;br/&gt;/ validresponse = (noresponse)&lt;br/&gt;/ correctresponse = (noresponse)&lt;/strong&gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;trial.nontarget.insertstimulustime(clearscreen, parameters.stimulusPresentationtime);&lt;br/&gt;if (values.N &amp;gt; 0) {&lt;br/&gt;values.currenttarget = list.items.item(values.N);&lt;br/&gt;};&lt;br/&gt;values.trial_Hit = 0;&lt;br/&gt;values.trial_Miss = 0;&lt;br/&gt;values.trial_CR = 0;&lt;br/&gt;values.trial_FA = 0;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;trial.nontarget.resetstimulusframes();&lt;br/&gt;list.items.insertitem(text.nontargetletter.currentitemnumber, 1);&lt;br/&gt;values.CorrReject = values.CorrReject + trial.nontarget.correct;&lt;br/&gt;values.trial_CR = trial.nontarget.correct;&lt;br/&gt;values.FalseA = values.FalseA + trial.nontarget.error;&lt;br/&gt;values.trial_FA = trial.nontarget.error;&lt;br/&gt;values.TotalFA = values.TotalFA + trial.nontarget.error;&lt;br/&gt;values.DV = (values.TotalHits - values.TotalFA)/values.TotalBlocks;&lt;br/&gt;]&lt;br/&gt;/ beginresponsetime = 0&lt;br/&gt;/ trialduration = parameters.trialduration&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;**********************************&lt;br/&gt;Target Trials&lt;br/&gt;**********************************&lt;br/&gt;**if target, press the letter "A" (code: 30)&lt;br/&gt;&amp;lt;trial target&amp;gt;&lt;br/&gt;/ stimulustimes = [0 = targetletter, targetalert]&lt;br/&gt;&lt;strong&gt;/ inputdevice = xid&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;trial.target.response == 80&lt;br/&gt;]&lt;br/&gt;/ validresponse = (noresponse)&lt;br/&gt;/ correctresponse = (80)&lt;/strong&gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;trial.target.insertstimulustime(clearscreen, parameters.stimulusPresentationtime);&lt;br/&gt;if (values.N &amp;gt; 0) {&lt;br/&gt;values.currenttarget = list.items.item(values.N);&lt;br/&gt;};&lt;br/&gt;values.trial_Hit = 0;&lt;br/&gt;values.trial_Miss = 0;&lt;br/&gt;values.trial_CR = 0;&lt;br/&gt;values.trial_FA = 0;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;trial.target.resetstimulusframes();&lt;br/&gt;list.items.insertitem(text.targetletter.currentitemnumber, 1);&lt;br/&gt;values.Hits = values.Hits+ trial.target.correct;&lt;br/&gt;values.trial_Hit = trial.target.correct;&lt;br/&gt;values.Misses = values.Misses + trial.target.error;&lt;br/&gt;values.trial_Miss = trial.target.error;&lt;br/&gt;values.TotalHits = values.TotalHits + trial.target.correct;&lt;br/&gt;values.DV = (values.TotalHits - values.TotalFA)/values.TotalBlocks;&lt;br/&gt;]&lt;br/&gt;/ beginresponsetime = 0&lt;br/&gt;/ trialduration = parameters.trialduration&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="26512"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;In your &amp;lt;trial&amp;gt; elements, using /validresponse = (noresponse) looks wrong.&lt;br/&gt;&lt;br/&gt;It should be /validresponse = (anyresponse) and multiple valid responses via /isvalidresponse can be defined like so&lt;br/&gt;&lt;br/&gt;&amp;lt;trial nontarget&amp;gt;&lt;br/&gt;/ stimulustimes = [0 = nontargetletter]&lt;br/&gt;&lt;strong&gt;/ inputdevice = xid&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;trial.nontarget.response == 80 || trial.nontarget.response == 0&lt;br/&gt;]&lt;br/&gt;/ validresponse = (anyresponse)&lt;br/&gt;/ iscorrectresponse = [trial.nontarget.response == 0]&lt;br/&gt;....&lt;br/&gt;&lt;/strong&gt;&amp;lt;/trial&amp;gt;&lt;strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;&amp;lt;trial target&amp;gt;&lt;br/&gt;/ stimulustimes = [0 = targetletter, targetalert]&lt;br/&gt;/ inputdevice = xid&lt;br/&gt;&lt;strong&gt;/ isvalidresponse = [&lt;br/&gt;trial.target.response == 80 || trial.target.response == 0&lt;br/&gt;]&lt;br/&gt;/ validresponse = (anyresponse)&lt;br/&gt;/ iscorrectresponse = [trial.target.response == 80]&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/strong&gt;...&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="26513"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;Dave: if God does exist and there is a heaven, you will surely be among the first of its citizens. After failing miserably for hours on end, your code worked immediately. I bow to your infinite glory and wisdom. From the deepest corners of my heart, I thank you.</description><pubDate>Fri, 01 Mar 2019 16:45:08 GMT</pubDate><dc:creator>drtb</dc:creator></item><item><title>RE: Multiple valid responses, correct responses, and XID</title><link>https://forums.millisecond.com/Topic26513.aspx</link><description>&lt;div data-id="26512" class="if-quote-wrapper" unselectable="on" data-guid="1551473484739"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="26512" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="26512" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="26512" title=" "&gt;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;drtb - Friday, March 1, 2019&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-26512"&gt;&lt;div class="if-quote-message-margin"&gt;Hi there,&lt;br/&gt;&lt;br/&gt;Well, I thought my response box troubles were behind me, but alas...&lt;br/&gt;&lt;br/&gt;I've moved on to trying to get our response pad to work with N-back, where either no response or an active response can be correct responses depending on the (non)target stimulus. Looking at the data, nonresponses are logging just fine, but it isn't registering any XID button presses. Here's the relevant code I'm using:&lt;br/&gt;&lt;br/&gt;&amp;lt;trial start&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;if (values.N == 0) {&lt;br/&gt;text.targetreminder.textcolor = red;&lt;br/&gt;values.trialduration_starttrial = parameters.showtarget0;&lt;br/&gt;values.starttrialposttrialpause = parameters.posttrialpause_aftertarget0;&lt;br/&gt;} else {&lt;br/&gt;trial.start.insertstimulustime(clearscreen, parameters.stimulusPresentationtime);&lt;br/&gt;values.trialduration_starttrial = parameters.trialduration;&lt;br/&gt;values.starttrialposttrialpause = 0;&lt;br/&gt;};&lt;br/&gt;values.starttrialcounter += 1;&lt;br/&gt;values.trial_Hit = 0;&lt;br/&gt;values.trial_Miss = 0;&lt;br/&gt;values.trial_CR = 0;&lt;br/&gt;values.trial_FA = 0;&lt;br/&gt;]&lt;br/&gt;/ stimulustimes = [0 = startletter, targetreminder]&lt;br/&gt;&lt;strong&gt;/ inputdevice = xid&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;trial.start.response == 80 &lt;br/&gt;]&lt;br/&gt;/ validresponse = (noresponse)&lt;br/&gt;/ correctresponse = (noresponse)&lt;/strong&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;trial.start.resetstimulusframes();&lt;br/&gt;if (values.N == 0) {&lt;br/&gt;values.currenttarget = text.startletter.currentitemnumber;&lt;br/&gt;}&lt;br/&gt;list.items.insertitem(text.startletter.currentitemnumber, 1);&lt;br/&gt;text.targetreminder.textcolor = black;&lt;br/&gt;]&lt;br/&gt;/ beginresponsetime = 0&lt;br/&gt;/ trialduration = values.trialduration_starttrial&lt;br/&gt;/ posttrialpause = (values.starttrialposttrialpause)&lt;br/&gt;/ branch = [&lt;br/&gt;if (values.starttrialcounter &amp;lt; values.N)&lt;br/&gt;trial.start&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;**********************************&lt;br/&gt;Nontarget Trials&lt;br/&gt;**********************************&lt;br/&gt;&amp;lt;trial nontarget&amp;gt;&lt;br/&gt;/ stimulustimes = [0 = nontargetletter]&lt;br/&gt;&lt;strong&gt;/ inputdevice = xid&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;trial.nontarget.response == 80&lt;br/&gt;]&lt;br/&gt;/ validresponse = (noresponse)&lt;br/&gt;/ correctresponse = (noresponse)&lt;/strong&gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;trial.nontarget.insertstimulustime(clearscreen, parameters.stimulusPresentationtime);&lt;br/&gt;if (values.N &amp;gt; 0) {&lt;br/&gt;values.currenttarget = list.items.item(values.N);&lt;br/&gt;};&lt;br/&gt;values.trial_Hit = 0;&lt;br/&gt;values.trial_Miss = 0;&lt;br/&gt;values.trial_CR = 0;&lt;br/&gt;values.trial_FA = 0;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;trial.nontarget.resetstimulusframes();&lt;br/&gt;list.items.insertitem(text.nontargetletter.currentitemnumber, 1);&lt;br/&gt;values.CorrReject = values.CorrReject + trial.nontarget.correct;&lt;br/&gt;values.trial_CR = trial.nontarget.correct;&lt;br/&gt;values.FalseA = values.FalseA + trial.nontarget.error;&lt;br/&gt;values.trial_FA = trial.nontarget.error;&lt;br/&gt;values.TotalFA = values.TotalFA + trial.nontarget.error;&lt;br/&gt;values.DV = (values.TotalHits - values.TotalFA)/values.TotalBlocks;&lt;br/&gt;]&lt;br/&gt;/ beginresponsetime = 0&lt;br/&gt;/ trialduration = parameters.trialduration&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;**********************************&lt;br/&gt;Target Trials&lt;br/&gt;**********************************&lt;br/&gt;**if target, press the letter "A" (code: 30)&lt;br/&gt;&amp;lt;trial target&amp;gt;&lt;br/&gt;/ stimulustimes = [0 = targetletter, targetalert]&lt;br/&gt;&lt;strong&gt;/ inputdevice = xid&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;trial.target.response == 80&lt;br/&gt;]&lt;br/&gt;/ validresponse = (noresponse)&lt;br/&gt;/ correctresponse = (80)&lt;/strong&gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;trial.target.insertstimulustime(clearscreen, parameters.stimulusPresentationtime);&lt;br/&gt;if (values.N &amp;gt; 0) {&lt;br/&gt;values.currenttarget = list.items.item(values.N);&lt;br/&gt;};&lt;br/&gt;values.trial_Hit = 0;&lt;br/&gt;values.trial_Miss = 0;&lt;br/&gt;values.trial_CR = 0;&lt;br/&gt;values.trial_FA = 0;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;trial.target.resetstimulusframes();&lt;br/&gt;list.items.insertitem(text.targetletter.currentitemnumber, 1);&lt;br/&gt;values.Hits = values.Hits+ trial.target.correct;&lt;br/&gt;values.trial_Hit = trial.target.correct;&lt;br/&gt;values.Misses = values.Misses + trial.target.error;&lt;br/&gt;values.trial_Miss = trial.target.error;&lt;br/&gt;values.TotalHits = values.TotalHits + trial.target.correct;&lt;br/&gt;values.DV = (values.TotalHits - values.TotalFA)/values.TotalBlocks;&lt;br/&gt;]&lt;br/&gt;/ beginresponsetime = 0&lt;br/&gt;/ trialduration = parameters.trialduration&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="26512"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;In your &amp;lt;trial&amp;gt; elements, using /validresponse = (noresponse) looks wrong.&lt;br/&gt;&lt;br/&gt;It should be /validresponse = (anyresponse) and multiple valid responses via /isvalidresponse can be defined like so&lt;br/&gt;&lt;br/&gt;&amp;lt;trial nontarget&amp;gt;&lt;br/&gt;/ stimulustimes = [0 = nontargetletter]&lt;br/&gt;&lt;strong&gt;/ inputdevice = xid&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;trial.nontarget.response == 80 || trial.nontarget.response == 0&lt;br/&gt;]&lt;br/&gt;/ validresponse = (anyresponse)&lt;br/&gt;/ iscorrectresponse = [trial.nontarget.response == 0]&lt;br/&gt;....&lt;br/&gt;&lt;/strong&gt;&amp;lt;/trial&amp;gt;&lt;strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;&amp;lt;trial target&amp;gt;&lt;br/&gt;/ stimulustimes = [0 = targetletter, targetalert]&lt;br/&gt;/ inputdevice = xid&lt;br/&gt;&lt;strong&gt;/ isvalidresponse = [&lt;br/&gt;trial.target.response == 80 || trial.target.response == 0&lt;br/&gt;]&lt;br/&gt;/ validresponse = (anyresponse)&lt;br/&gt;/ iscorrectresponse = [trial.target.response == 80]&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/strong&gt;...&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;br/&gt;</description><pubDate>Fri, 01 Mar 2019 12:53:55 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>