﻿<?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 6  » removestimulusframe, insertstimulusframe - Response not correct</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Fri, 02 Oct 2026 22:17:01 GMT</lastBuildDate><ttl>20</ttl><item><title>removestimulusframe, insertstimulusframe - Response not correct</title><link>https://forums.millisecond.com/Topic34938.aspx</link><description>Dear community, dear Dave,&lt;br/&gt;&lt;br/&gt;I have a question. I'm trying to present a word and have every letter be its own stimulus. If one letter is pressed, I want to replace its image with a strike-through version of it. And the other way around: If a striked-through character is pressed, the non-striked-through version should be shown.&lt;br/&gt;I got far enough to replace a non-striked version with a striked version. However, if I then press on the strike-letter, Inquisit still logs the response as the non-striked letter (e.g. h_upper_pure, not h_upper_strike). Therefore, I have no way to display the non-striked letter again, because Inquisit can't distinguish the stimuli.&lt;br/&gt;&lt;br/&gt;I appended the code below. &lt;br/&gt;&lt;br/&gt;Thank you in advance for your help&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = h_upper_pure; 2 = e_lower_pure; 3 = l1_lower_pure; 4 = l2_lower_pure; 5 = o_lower_pure]&lt;br/&gt;/ validresponse = (&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h_upper_pure, h_upper_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e_lower_pure, e_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l1_lower_pure, l1_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l2_lower_pure, l2_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o_lower_pure, o_lower_strike&lt;br/&gt;)&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_strike, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_pure, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_strike, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_pure, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;</description><pubDate>Wed, 16 Nov 2022 20:25:04 GMT</pubDate><dc:creator>dschulz</dc:creator></item><item><title>RE: removestimulusframe, insertstimulusframe - Response not correct</title><link>https://forums.millisecond.com/Topic34952.aspx</link><description>&lt;blockquote data-id="34951" class="if-quote-wrapper" unselectable="on" data-guid="1668630290210" contenteditable="false" id="if_insertedNode_1668630289378"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34951" 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="34951" 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="34951" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34951"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34950" class="if-quote-wrapper" unselectable="on" data-guid="1668630290210" id="if_insertedNode_1668626901894" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34950" 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="34950" 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="34950" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;dschulz - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34950"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34945" class="if-quote-wrapper" unselectable="on" data-guid="1668630290210" id="if_insertedNode_1668626395351" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34945" 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="34945" 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="34945" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34945"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34943" class="if-quote-wrapper" unselectable="on" data-guid="1668630290210" id="if_insertedNode_1668618317209" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34943" 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="34943" 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="34943" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;dschulz - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34943"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34940" class="if-quote-wrapper" unselectable="on" data-guid="1668630290210" id="if_insertedNode_1668616774345" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34940" 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="34940" 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="34940" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34940"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34938" class="if-quote-wrapper" unselectable="on" data-guid="1668630290210" id="if_insertedNode_1668613023726" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34938" 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="34938" 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="34938" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;dschulz - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34938"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Dear community, dear Dave,&lt;br/&gt;&lt;br/&gt;I have a question. I'm trying to present a word and have every letter be its own stimulus. If one letter is pressed, I want to replace its image with a strike-through version of it. And the other way around: If a striked-through character is pressed, the non-striked-through version should be shown.&lt;br/&gt;I got far enough to replace a non-striked version with a striked version. However, if I then press on the strike-letter, Inquisit still logs the response as the non-striked letter (e.g. h_upper_pure, not h_upper_strike). Therefore, I have no way to display the non-striked letter again, because Inquisit can't distinguish the stimuli.&lt;br/&gt;&lt;br/&gt;I appended the code below. &lt;br/&gt;&lt;br/&gt;Thank you in advance for your help&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = h_upper_pure; 2 = e_lower_pure; 3 = l1_lower_pure; 4 = l2_lower_pure; 5 = o_lower_pure]&lt;br/&gt;/ validresponse = (&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h_upper_pure, h_upper_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e_lower_pure, e_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l1_lower_pure, l1_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l2_lower_pure, l2_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o_lower_pure, o_lower_strike&lt;br/&gt;)&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_strike, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_pure, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_strike, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_pure, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="34938"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The objects defined in /validresponse are checked in the order given, and even an object that s not currently on-screen can serve as a response object IF it has been previously presented on-screen (this is a feature, not a bug). So, a click on the location of the objects "h_upper_pure" / "h_upper_strike" will always result in logging of "h_upper_pure" as the response, because that is checked first. The solution is to use variables.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ object1 = "h_upper_pure"&lt;br/&gt;/ object2 = "e_lower_pure"&lt;br/&gt;/ object3 = "l1_lower_pure"&lt;br/&gt;/ object4 = "l2_lower_pure"&lt;br/&gt;/ object5 = "o_lower_pure"&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text h_upper_pure&amp;gt;&lt;br/&gt;/ items = ("H")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text h_upper_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;H&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text e_lower_pure&amp;gt;&lt;br/&gt;/ items = ("e")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text e_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;e&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1_lower_pure&amp;gt;&lt;br/&gt;/ items = ("l")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2_lower_pure&amp;gt;&lt;br/&gt;/ items = ("l")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text o_lower_pure&amp;gt;&lt;br/&gt;/ items = ("o")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text o_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;o&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = h_upper_pure; 2 = e_lower_pure; 3 = l1_lower_pure; 4 = l2_lower_pure; 5 = o_lower_pure]&lt;br/&gt;/ validresponse = (values.object1, values.object2, values.object3, values.object4, values.object5)&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    if (trial.test.response == "h_upper_pure") {&lt;br/&gt;        trial.test.removestimulusframe(1);&lt;br/&gt;        trial.test.insertstimulusframe(text.h_upper_strike, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object1 = "h_upper_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "h_upper_strike") {&lt;br/&gt;        trial.test.removestimulusframe(1);&lt;br/&gt;        trial.test.insertstimulusframe(text.h_upper_pure, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object1 = "h_upper_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "e_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(2);&lt;br/&gt;        trial.test.insertstimulusframe(text.e_lower_strike, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object2 = "e_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "e_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(2);&lt;br/&gt;        trial.test.insertstimulusframe(text.e_lower_pure, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object2 = "e_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l1_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.l1_lower_strike, 3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object3 = "l1_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l1_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(3);&lt;br/&gt;        trial.test.insertstimulusframe(text.l1_lower_pure, 3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object3 = "l1_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l2_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.l2_lower_strike, 4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object4 = "l2_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l2_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(4);&lt;br/&gt;        trial.test.insertstimulusframe(text.l2_lower_pure, 4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object4 = "l2_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "o_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.o_lower_strike, 5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object5 = "o_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "o_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(5);&lt;br/&gt;        trial.test.insertstimulusframe(text.o_lower_pure, 5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object5 = "o_lower_pure";&lt;br/&gt;    };&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;    trial.test;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject trialcode trialnum response values.object1 values.object2 values.object3 values.object4 values.object5)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="34940"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Dear Dave,&lt;br/&gt;&lt;br/&gt;yes variables, were my backup plan. But thank you for the explanation, that makes sense!&lt;a class="if-quote-goto quote-link" href="#" data-id="34943"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;For what it's worth, the whole setup might be a lot less complicated if you define just 5 on-screen objects with 2 items each ("pure" letter, "striked" letter) and then just switch back and forth between the two item states.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;/ fontstyle = ("Arial", 10%)&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ l1_state = 1&lt;br/&gt;/ l2_state = 1&lt;br/&gt;/ l3_state = 1&lt;br/&gt;/ l4_state = 1&lt;br/&gt;/ l5_state = 1&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1&amp;gt;&lt;br/&gt;/ items = ("H", "&amp;lt;s&amp;gt;H&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;/ select = values.l1_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2&amp;gt;&lt;br/&gt;/ items = ("e", "&amp;lt;s&amp;gt;e&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;/ select = values.l2_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l3&amp;gt;&lt;br/&gt;/ items = ("l", "&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;/ select = values.l3_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l4&amp;gt;&lt;br/&gt;/ items = ("l", "&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;/ select = values.l4_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l5&amp;gt;&lt;br/&gt;/ items = ("o", "&amp;lt;s&amp;gt;o&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;/ select = values.l5_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = l1,l2,l3,l4,l5]&lt;br/&gt;/ validresponse = (l1,l2,l3,l4,l5)&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l1") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l1_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l1_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l1_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l2") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l2_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l2_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l2_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l3") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l3_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l3_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l3_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l4") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l4_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l4_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l4_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l5") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l5_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l5_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l5_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;[/code]&lt;a class="if-quote-goto quote-link" href="#" data-id="34945"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hey Dave,&lt;br/&gt;&lt;br/&gt;that looks like a very clean approach! I will adopt this, thank you!&lt;br/&gt;&lt;br/&gt;A quick question :Are the semicolons after the brackets ({};) necessary? I know they are necessary after every expression (e.g. values.x = 2;), but I never use them after brackets and have not yet ran into trouble.&lt;br/&gt;&lt;br/&gt;Thanks again for the idea.&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Daniel&lt;a class="if-quote-goto quote-link" href="#" data-id="34950"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&amp;gt; Are the semicolons after the brackets ({};) necessary?&lt;br/&gt;&lt;br/&gt;It depends. ";" is the statement separator, so if a given statement formally ends, it's generally best to close it out with a semicolon. Personally, I also find it improves code readability (along with proper indentation).&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="34951"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Alright great, thank you.&lt;br/&gt;&lt;br/&gt;And your approach worked like a charm&lt;br/&gt;</description><pubDate>Wed, 16 Nov 2022 20:25:04 GMT</pubDate><dc:creator>dschulz</dc:creator></item><item><title>RE: removestimulusframe, insertstimulusframe - Response not correct</title><link>https://forums.millisecond.com/Topic34951.aspx</link><description>&lt;blockquote data-id="34950" class="if-quote-wrapper" unselectable="on" data-guid="1668626902866" id="if_insertedNode_1668626901894" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34950" 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="34950" 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="34950" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;dschulz - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34950"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34945" class="if-quote-wrapper" unselectable="on" data-guid="1668626902866" id="if_insertedNode_1668626395351" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34945" 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="34945" 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="34945" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34945"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34943" class="if-quote-wrapper" unselectable="on" data-guid="1668626902866" id="if_insertedNode_1668618317209" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34943" 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="34943" 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="34943" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;dschulz - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34943"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34940" class="if-quote-wrapper" unselectable="on" data-guid="1668626902866" id="if_insertedNode_1668616774345" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34940" 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="34940" 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="34940" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34940"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34938" class="if-quote-wrapper" unselectable="on" data-guid="1668626902866" id="if_insertedNode_1668613023726" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34938" 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="34938" 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="34938" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;dschulz - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34938"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Dear community, dear Dave,&lt;br/&gt;&lt;br/&gt;I have a question. I'm trying to present a word and have every letter be its own stimulus. If one letter is pressed, I want to replace its image with a strike-through version of it. And the other way around: If a striked-through character is pressed, the non-striked-through version should be shown.&lt;br/&gt;I got far enough to replace a non-striked version with a striked version. However, if I then press on the strike-letter, Inquisit still logs the response as the non-striked letter (e.g. h_upper_pure, not h_upper_strike). Therefore, I have no way to display the non-striked letter again, because Inquisit can't distinguish the stimuli.&lt;br/&gt;&lt;br/&gt;I appended the code below. &lt;br/&gt;&lt;br/&gt;Thank you in advance for your help&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = h_upper_pure; 2 = e_lower_pure; 3 = l1_lower_pure; 4 = l2_lower_pure; 5 = o_lower_pure]&lt;br/&gt;/ validresponse = (&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h_upper_pure, h_upper_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e_lower_pure, e_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l1_lower_pure, l1_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l2_lower_pure, l2_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o_lower_pure, o_lower_strike&lt;br/&gt;)&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_strike, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_pure, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_strike, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_pure, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="34938"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The objects defined in /validresponse are checked in the order given, and even an object that s not currently on-screen can serve as a response object IF it has been previously presented on-screen (this is a feature, not a bug). So, a click on the location of the objects "h_upper_pure" / "h_upper_strike" will always result in logging of "h_upper_pure" as the response, because that is checked first. The solution is to use variables.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ object1 = "h_upper_pure"&lt;br/&gt;/ object2 = "e_lower_pure"&lt;br/&gt;/ object3 = "l1_lower_pure"&lt;br/&gt;/ object4 = "l2_lower_pure"&lt;br/&gt;/ object5 = "o_lower_pure"&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text h_upper_pure&amp;gt;&lt;br/&gt;/ items = ("H")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text h_upper_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;H&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text e_lower_pure&amp;gt;&lt;br/&gt;/ items = ("e")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text e_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;e&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1_lower_pure&amp;gt;&lt;br/&gt;/ items = ("l")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2_lower_pure&amp;gt;&lt;br/&gt;/ items = ("l")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text o_lower_pure&amp;gt;&lt;br/&gt;/ items = ("o")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text o_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;o&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = h_upper_pure; 2 = e_lower_pure; 3 = l1_lower_pure; 4 = l2_lower_pure; 5 = o_lower_pure]&lt;br/&gt;/ validresponse = (values.object1, values.object2, values.object3, values.object4, values.object5)&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    if (trial.test.response == "h_upper_pure") {&lt;br/&gt;        trial.test.removestimulusframe(1);&lt;br/&gt;        trial.test.insertstimulusframe(text.h_upper_strike, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object1 = "h_upper_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "h_upper_strike") {&lt;br/&gt;        trial.test.removestimulusframe(1);&lt;br/&gt;        trial.test.insertstimulusframe(text.h_upper_pure, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object1 = "h_upper_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "e_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(2);&lt;br/&gt;        trial.test.insertstimulusframe(text.e_lower_strike, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object2 = "e_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "e_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(2);&lt;br/&gt;        trial.test.insertstimulusframe(text.e_lower_pure, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object2 = "e_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l1_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.l1_lower_strike, 3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object3 = "l1_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l1_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(3);&lt;br/&gt;        trial.test.insertstimulusframe(text.l1_lower_pure, 3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object3 = "l1_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l2_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.l2_lower_strike, 4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object4 = "l2_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l2_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(4);&lt;br/&gt;        trial.test.insertstimulusframe(text.l2_lower_pure, 4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object4 = "l2_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "o_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.o_lower_strike, 5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object5 = "o_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "o_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(5);&lt;br/&gt;        trial.test.insertstimulusframe(text.o_lower_pure, 5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object5 = "o_lower_pure";&lt;br/&gt;    };&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;    trial.test;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject trialcode trialnum response values.object1 values.object2 values.object3 values.object4 values.object5)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="34940"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Dear Dave,&lt;br/&gt;&lt;br/&gt;yes variables, were my backup plan. But thank you for the explanation, that makes sense!&lt;a class="if-quote-goto quote-link" href="#" data-id="34943"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;For what it's worth, the whole setup might be a lot less complicated if you define just 5 on-screen objects with 2 items each ("pure" letter, "striked" letter) and then just switch back and forth between the two item states.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;/ fontstyle = ("Arial", 10%)&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ l1_state = 1&lt;br/&gt;/ l2_state = 1&lt;br/&gt;/ l3_state = 1&lt;br/&gt;/ l4_state = 1&lt;br/&gt;/ l5_state = 1&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1&amp;gt;&lt;br/&gt;/ items = ("H", "&amp;lt;s&amp;gt;H&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;/ select = values.l1_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2&amp;gt;&lt;br/&gt;/ items = ("e", "&amp;lt;s&amp;gt;e&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;/ select = values.l2_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l3&amp;gt;&lt;br/&gt;/ items = ("l", "&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;/ select = values.l3_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l4&amp;gt;&lt;br/&gt;/ items = ("l", "&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;/ select = values.l4_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l5&amp;gt;&lt;br/&gt;/ items = ("o", "&amp;lt;s&amp;gt;o&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;/ select = values.l5_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = l1,l2,l3,l4,l5]&lt;br/&gt;/ validresponse = (l1,l2,l3,l4,l5)&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l1") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l1_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l1_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l1_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l2") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l2_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l2_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l2_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l3") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l3_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l3_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l3_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l4") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l4_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l4_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l4_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l5") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l5_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l5_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l5_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;[/code]&lt;a class="if-quote-goto quote-link" href="#" data-id="34945"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hey Dave,&lt;br/&gt;&lt;br/&gt;that looks like a very clean approach! I will adopt this, thank you!&lt;br/&gt;&lt;br/&gt;A quick question :Are the semicolons after the brackets ({};) necessary? I know they are necessary after every expression (e.g. values.x = 2;), but I never use them after brackets and have not yet ran into trouble.&lt;br/&gt;&lt;br/&gt;Thanks again for the idea.&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Daniel&lt;a class="if-quote-goto quote-link" href="#" data-id="34950"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&amp;gt; Are the semicolons after the brackets ({};) necessary?&lt;br/&gt;&lt;br/&gt;It depends. ";" is the statement separator, so if a given statement formally ends, it's generally best to close it out with a semicolon. Personally, I also find it improves code readability (along with proper indentation).&lt;br/&gt;</description><pubDate>Wed, 16 Nov 2022 19:34:48 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: removestimulusframe, insertstimulusframe - Response not correct</title><link>https://forums.millisecond.com/Topic34950.aspx</link><description>&lt;blockquote data-id="34945" class="if-quote-wrapper" unselectable="on" data-guid="1668626396732" contenteditable="false" id="if_insertedNode_1668626395351"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34945" 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="34945" 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="34945" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34945"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34943" class="if-quote-wrapper" unselectable="on" data-guid="1668626396732" id="if_insertedNode_1668618317209" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34943" 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="34943" 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="34943" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;dschulz - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34943"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34940" class="if-quote-wrapper" unselectable="on" data-guid="1668626396732" id="if_insertedNode_1668616774345" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34940" 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="34940" 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="34940" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34940"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34938" class="if-quote-wrapper" unselectable="on" data-guid="1668626396732" id="if_insertedNode_1668613023726" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34938" 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="34938" 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="34938" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;dschulz - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34938"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Dear community, dear Dave,&lt;br/&gt;&lt;br/&gt;I have a question. I'm trying to present a word and have every letter be its own stimulus. If one letter is pressed, I want to replace its image with a strike-through version of it. And the other way around: If a striked-through character is pressed, the non-striked-through version should be shown.&lt;br/&gt;I got far enough to replace a non-striked version with a striked version. However, if I then press on the strike-letter, Inquisit still logs the response as the non-striked letter (e.g. h_upper_pure, not h_upper_strike). Therefore, I have no way to display the non-striked letter again, because Inquisit can't distinguish the stimuli.&lt;br/&gt;&lt;br/&gt;I appended the code below. &lt;br/&gt;&lt;br/&gt;Thank you in advance for your help&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = h_upper_pure; 2 = e_lower_pure; 3 = l1_lower_pure; 4 = l2_lower_pure; 5 = o_lower_pure]&lt;br/&gt;/ validresponse = (&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h_upper_pure, h_upper_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e_lower_pure, e_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l1_lower_pure, l1_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l2_lower_pure, l2_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o_lower_pure, o_lower_strike&lt;br/&gt;)&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_strike, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_pure, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_strike, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_pure, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="34938"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The objects defined in /validresponse are checked in the order given, and even an object that s not currently on-screen can serve as a response object IF it has been previously presented on-screen (this is a feature, not a bug). So, a click on the location of the objects "h_upper_pure" / "h_upper_strike" will always result in logging of "h_upper_pure" as the response, because that is checked first. The solution is to use variables.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ object1 = "h_upper_pure"&lt;br/&gt;/ object2 = "e_lower_pure"&lt;br/&gt;/ object3 = "l1_lower_pure"&lt;br/&gt;/ object4 = "l2_lower_pure"&lt;br/&gt;/ object5 = "o_lower_pure"&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text h_upper_pure&amp;gt;&lt;br/&gt;/ items = ("H")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text h_upper_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;H&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text e_lower_pure&amp;gt;&lt;br/&gt;/ items = ("e")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text e_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;e&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1_lower_pure&amp;gt;&lt;br/&gt;/ items = ("l")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2_lower_pure&amp;gt;&lt;br/&gt;/ items = ("l")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text o_lower_pure&amp;gt;&lt;br/&gt;/ items = ("o")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text o_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;o&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = h_upper_pure; 2 = e_lower_pure; 3 = l1_lower_pure; 4 = l2_lower_pure; 5 = o_lower_pure]&lt;br/&gt;/ validresponse = (values.object1, values.object2, values.object3, values.object4, values.object5)&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    if (trial.test.response == "h_upper_pure") {&lt;br/&gt;        trial.test.removestimulusframe(1);&lt;br/&gt;        trial.test.insertstimulusframe(text.h_upper_strike, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object1 = "h_upper_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "h_upper_strike") {&lt;br/&gt;        trial.test.removestimulusframe(1);&lt;br/&gt;        trial.test.insertstimulusframe(text.h_upper_pure, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object1 = "h_upper_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "e_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(2);&lt;br/&gt;        trial.test.insertstimulusframe(text.e_lower_strike, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object2 = "e_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "e_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(2);&lt;br/&gt;        trial.test.insertstimulusframe(text.e_lower_pure, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object2 = "e_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l1_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.l1_lower_strike, 3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object3 = "l1_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l1_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(3);&lt;br/&gt;        trial.test.insertstimulusframe(text.l1_lower_pure, 3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object3 = "l1_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l2_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.l2_lower_strike, 4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object4 = "l2_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l2_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(4);&lt;br/&gt;        trial.test.insertstimulusframe(text.l2_lower_pure, 4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object4 = "l2_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "o_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.o_lower_strike, 5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object5 = "o_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "o_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(5);&lt;br/&gt;        trial.test.insertstimulusframe(text.o_lower_pure, 5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object5 = "o_lower_pure";&lt;br/&gt;    };&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;    trial.test;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject trialcode trialnum response values.object1 values.object2 values.object3 values.object4 values.object5)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="34940"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Dear Dave,&lt;br/&gt;&lt;br/&gt;yes variables, were my backup plan. But thank you for the explanation, that makes sense!&lt;a class="if-quote-goto quote-link" href="#" data-id="34943"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;For what it's worth, the whole setup might be a lot less complicated if you define just 5 on-screen objects with 2 items each ("pure" letter, "striked" letter) and then just switch back and forth between the two item states.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;/ fontstyle = ("Arial", 10%)&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ l1_state = 1&lt;br/&gt;/ l2_state = 1&lt;br/&gt;/ l3_state = 1&lt;br/&gt;/ l4_state = 1&lt;br/&gt;/ l5_state = 1&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1&amp;gt;&lt;br/&gt;/ items = ("H", "&amp;lt;s&amp;gt;H&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;/ select = values.l1_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2&amp;gt;&lt;br/&gt;/ items = ("e", "&amp;lt;s&amp;gt;e&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;/ select = values.l2_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l3&amp;gt;&lt;br/&gt;/ items = ("l", "&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;/ select = values.l3_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l4&amp;gt;&lt;br/&gt;/ items = ("l", "&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;/ select = values.l4_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l5&amp;gt;&lt;br/&gt;/ items = ("o", "&amp;lt;s&amp;gt;o&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;/ select = values.l5_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = l1,l2,l3,l4,l5]&lt;br/&gt;/ validresponse = (l1,l2,l3,l4,l5)&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l1") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l1_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l1_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l1_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l2") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l2_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l2_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l2_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l3") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l3_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l3_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l3_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l4") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l4_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l4_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l4_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l5") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l5_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l5_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l5_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;[/code]&lt;a class="if-quote-goto quote-link" href="#" data-id="34945"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hey Dave,&lt;br/&gt;&lt;br/&gt;that looks like a very clean approach! I will adopt this, thank you!&lt;br/&gt;&lt;br/&gt;A quick question :Are the semicolons after the brackets ({};) necessary? I know they are necessary after every expression (e.g. values.x = 2;), but I never use them after brackets and have not yet ran into trouble.&lt;br/&gt;&lt;br/&gt;Thanks again for the idea.&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Daniel</description><pubDate>Wed, 16 Nov 2022 19:21:44 GMT</pubDate><dc:creator>dschulz</dc:creator></item><item><title>RE: removestimulusframe, insertstimulusframe - Response not correct</title><link>https://forums.millisecond.com/Topic34945.aspx</link><description>&lt;blockquote data-id="34943" class="if-quote-wrapper" unselectable="on" data-guid="1668618318094" id="if_insertedNode_1668618317209" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34943" 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="34943" 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="34943" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;dschulz - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34943"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34940" class="if-quote-wrapper" unselectable="on" data-guid="1668618318094" id="if_insertedNode_1668616774345" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34940" 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="34940" 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="34940" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34940"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34938" class="if-quote-wrapper" unselectable="on" data-guid="1668618318094" id="if_insertedNode_1668613023726" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34938" 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="34938" 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="34938" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;dschulz - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34938"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Dear community, dear Dave,&lt;br/&gt;&lt;br/&gt;I have a question. I'm trying to present a word and have every letter be its own stimulus. If one letter is pressed, I want to replace its image with a strike-through version of it. And the other way around: If a striked-through character is pressed, the non-striked-through version should be shown.&lt;br/&gt;I got far enough to replace a non-striked version with a striked version. However, if I then press on the strike-letter, Inquisit still logs the response as the non-striked letter (e.g. h_upper_pure, not h_upper_strike). Therefore, I have no way to display the non-striked letter again, because Inquisit can't distinguish the stimuli.&lt;br/&gt;&lt;br/&gt;I appended the code below. &lt;br/&gt;&lt;br/&gt;Thank you in advance for your help&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = h_upper_pure; 2 = e_lower_pure; 3 = l1_lower_pure; 4 = l2_lower_pure; 5 = o_lower_pure]&lt;br/&gt;/ validresponse = (&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h_upper_pure, h_upper_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e_lower_pure, e_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l1_lower_pure, l1_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l2_lower_pure, l2_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o_lower_pure, o_lower_strike&lt;br/&gt;)&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_strike, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_pure, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_strike, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_pure, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="34938"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The objects defined in /validresponse are checked in the order given, and even an object that s not currently on-screen can serve as a response object IF it has been previously presented on-screen (this is a feature, not a bug). So, a click on the location of the objects "h_upper_pure" / "h_upper_strike" will always result in logging of "h_upper_pure" as the response, because that is checked first. The solution is to use variables.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ object1 = "h_upper_pure"&lt;br/&gt;/ object2 = "e_lower_pure"&lt;br/&gt;/ object3 = "l1_lower_pure"&lt;br/&gt;/ object4 = "l2_lower_pure"&lt;br/&gt;/ object5 = "o_lower_pure"&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text h_upper_pure&amp;gt;&lt;br/&gt;/ items = ("H")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text h_upper_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;H&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text e_lower_pure&amp;gt;&lt;br/&gt;/ items = ("e")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text e_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;e&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1_lower_pure&amp;gt;&lt;br/&gt;/ items = ("l")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2_lower_pure&amp;gt;&lt;br/&gt;/ items = ("l")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text o_lower_pure&amp;gt;&lt;br/&gt;/ items = ("o")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text o_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;o&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = h_upper_pure; 2 = e_lower_pure; 3 = l1_lower_pure; 4 = l2_lower_pure; 5 = o_lower_pure]&lt;br/&gt;/ validresponse = (values.object1, values.object2, values.object3, values.object4, values.object5)&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    if (trial.test.response == "h_upper_pure") {&lt;br/&gt;        trial.test.removestimulusframe(1);&lt;br/&gt;        trial.test.insertstimulusframe(text.h_upper_strike, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object1 = "h_upper_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "h_upper_strike") {&lt;br/&gt;        trial.test.removestimulusframe(1);&lt;br/&gt;        trial.test.insertstimulusframe(text.h_upper_pure, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object1 = "h_upper_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "e_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(2);&lt;br/&gt;        trial.test.insertstimulusframe(text.e_lower_strike, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object2 = "e_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "e_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(2);&lt;br/&gt;        trial.test.insertstimulusframe(text.e_lower_pure, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object2 = "e_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l1_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.l1_lower_strike, 3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object3 = "l1_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l1_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(3);&lt;br/&gt;        trial.test.insertstimulusframe(text.l1_lower_pure, 3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object3 = "l1_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l2_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.l2_lower_strike, 4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object4 = "l2_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l2_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(4);&lt;br/&gt;        trial.test.insertstimulusframe(text.l2_lower_pure, 4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object4 = "l2_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "o_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.o_lower_strike, 5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object5 = "o_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "o_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(5);&lt;br/&gt;        trial.test.insertstimulusframe(text.o_lower_pure, 5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object5 = "o_lower_pure";&lt;br/&gt;    };&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;    trial.test;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject trialcode trialnum response values.object1 values.object2 values.object3 values.object4 values.object5)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="34940"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Dear Dave,&lt;br/&gt;&lt;br/&gt;yes variables, were my backup plan. But thank you for the explanation, that makes sense!&lt;a class="if-quote-goto quote-link" href="#" data-id="34943"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;For what it's worth, the whole setup might be a lot less complicated if you define just 5 on-screen objects with 2 items each ("pure" letter, "striked" letter) and then just switch back and forth between the two item states.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;/ fontstyle = ("Arial", 10%)&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ l1_state = 1&lt;br/&gt;/ l2_state = 1&lt;br/&gt;/ l3_state = 1&lt;br/&gt;/ l4_state = 1&lt;br/&gt;/ l5_state = 1&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1&amp;gt;&lt;br/&gt;/ items = ("H", "&amp;lt;s&amp;gt;H&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;/ select = values.l1_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2&amp;gt;&lt;br/&gt;/ items = ("e", "&amp;lt;s&amp;gt;e&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;/ select = values.l2_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l3&amp;gt;&lt;br/&gt;/ items = ("l", "&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;/ select = values.l3_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l4&amp;gt;&lt;br/&gt;/ items = ("l", "&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;/ select = values.l4_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l5&amp;gt;&lt;br/&gt;/ items = ("o", "&amp;lt;s&amp;gt;o&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;/ select = values.l5_state&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = l1,l2,l3,l4,l5]&lt;br/&gt;/ validresponse = (l1,l2,l3,l4,l5)&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l1") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l1_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l1_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l1_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l2") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l2_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l2_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l2_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l3") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l3_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l3_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l3_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l4") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l4_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l4_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l4_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "l5") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.l5_state == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l5_state += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.l5_state -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;[/code]</description><pubDate>Wed, 16 Nov 2022 17:17:12 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: removestimulusframe, insertstimulusframe - Response not correct</title><link>https://forums.millisecond.com/Topic34943.aspx</link><description>&lt;blockquote data-id="34940" class="if-quote-wrapper" unselectable="on" data-guid="1668616775116" contenteditable="false" id="if_insertedNode_1668616774345"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34940" 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="34940" 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="34940" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34940"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="34938" class="if-quote-wrapper" unselectable="on" data-guid="1668616775116" id="if_insertedNode_1668613023726" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34938" 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="34938" 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="34938" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;dschulz - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34938"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Dear community, dear Dave,&lt;br/&gt;&lt;br/&gt;I have a question. I'm trying to present a word and have every letter be its own stimulus. If one letter is pressed, I want to replace its image with a strike-through version of it. And the other way around: If a striked-through character is pressed, the non-striked-through version should be shown.&lt;br/&gt;I got far enough to replace a non-striked version with a striked version. However, if I then press on the strike-letter, Inquisit still logs the response as the non-striked letter (e.g. h_upper_pure, not h_upper_strike). Therefore, I have no way to display the non-striked letter again, because Inquisit can't distinguish the stimuli.&lt;br/&gt;&lt;br/&gt;I appended the code below. &lt;br/&gt;&lt;br/&gt;Thank you in advance for your help&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = h_upper_pure; 2 = e_lower_pure; 3 = l1_lower_pure; 4 = l2_lower_pure; 5 = o_lower_pure]&lt;br/&gt;/ validresponse = (&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h_upper_pure, h_upper_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e_lower_pure, e_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l1_lower_pure, l1_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l2_lower_pure, l2_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o_lower_pure, o_lower_strike&lt;br/&gt;)&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_strike, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_pure, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_strike, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_pure, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="34938"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The objects defined in /validresponse are checked in the order given, and even an object that s not currently on-screen can serve as a response object IF it has been previously presented on-screen (this is a feature, not a bug). So, a click on the location of the objects "h_upper_pure" / "h_upper_strike" will always result in logging of "h_upper_pure" as the response, because that is checked first. The solution is to use variables.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ object1 = "h_upper_pure"&lt;br/&gt;/ object2 = "e_lower_pure"&lt;br/&gt;/ object3 = "l1_lower_pure"&lt;br/&gt;/ object4 = "l2_lower_pure"&lt;br/&gt;/ object5 = "o_lower_pure"&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text h_upper_pure&amp;gt;&lt;br/&gt;/ items = ("H")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text h_upper_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;H&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text e_lower_pure&amp;gt;&lt;br/&gt;/ items = ("e")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text e_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;e&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1_lower_pure&amp;gt;&lt;br/&gt;/ items = ("l")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2_lower_pure&amp;gt;&lt;br/&gt;/ items = ("l")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text o_lower_pure&amp;gt;&lt;br/&gt;/ items = ("o")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text o_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;o&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = h_upper_pure; 2 = e_lower_pure; 3 = l1_lower_pure; 4 = l2_lower_pure; 5 = o_lower_pure]&lt;br/&gt;/ validresponse = (values.object1, values.object2, values.object3, values.object4, values.object5)&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    if (trial.test.response == "h_upper_pure") {&lt;br/&gt;        trial.test.removestimulusframe(1);&lt;br/&gt;        trial.test.insertstimulusframe(text.h_upper_strike, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object1 = "h_upper_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "h_upper_strike") {&lt;br/&gt;        trial.test.removestimulusframe(1);&lt;br/&gt;        trial.test.insertstimulusframe(text.h_upper_pure, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object1 = "h_upper_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "e_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(2);&lt;br/&gt;        trial.test.insertstimulusframe(text.e_lower_strike, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object2 = "e_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "e_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(2);&lt;br/&gt;        trial.test.insertstimulusframe(text.e_lower_pure, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object2 = "e_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l1_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.l1_lower_strike, 3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object3 = "l1_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l1_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(3);&lt;br/&gt;        trial.test.insertstimulusframe(text.l1_lower_pure, 3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object3 = "l1_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l2_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.l2_lower_strike, 4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object4 = "l2_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l2_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(4);&lt;br/&gt;        trial.test.insertstimulusframe(text.l2_lower_pure, 4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object4 = "l2_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "o_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.o_lower_strike, 5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object5 = "o_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "o_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(5);&lt;br/&gt;        trial.test.insertstimulusframe(text.o_lower_pure, 5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object5 = "o_lower_pure";&lt;br/&gt;    };&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;    trial.test;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject trialcode trialnum response values.object1 values.object2 values.object3 values.object4 values.object5)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="34940"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Dear Dave,&lt;br/&gt;&lt;br/&gt;yes variables, were my backup plan. But thank you for the explanation, that makes sense!</description><pubDate>Wed, 16 Nov 2022 16:40:03 GMT</pubDate><dc:creator>dschulz</dc:creator></item><item><title>RE: removestimulusframe, insertstimulusframe - Response not correct</title><link>https://forums.millisecond.com/Topic34940.aspx</link><description>&lt;blockquote data-id="34938" class="if-quote-wrapper" unselectable="on" data-guid="1668613024942" id="if_insertedNode_1668613023726" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="34938" 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="34938" 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="34938" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;dschulz - 11/16/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-34938"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Dear community, dear Dave,&lt;br/&gt;&lt;br/&gt;I have a question. I'm trying to present a word and have every letter be its own stimulus. If one letter is pressed, I want to replace its image with a strike-through version of it. And the other way around: If a striked-through character is pressed, the non-striked-through version should be shown.&lt;br/&gt;I got far enough to replace a non-striked version with a striked version. However, if I then press on the strike-letter, Inquisit still logs the response as the non-striked letter (e.g. h_upper_pure, not h_upper_strike). Therefore, I have no way to display the non-striked letter again, because Inquisit can't distinguish the stimuli.&lt;br/&gt;&lt;br/&gt;I appended the code below. &lt;br/&gt;&lt;br/&gt;Thank you in advance for your help&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture h_upper_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/h_uppercase.png")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture e_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/e_lowercase.png")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l1_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture l2_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/l_lowercase.png")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_pure&amp;gt;&lt;br/&gt;/ items = ("./letters/cropped/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture o_lower_strike&amp;gt;&lt;br/&gt;/ items = ("./letters/crossed/o_lowercase.png")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = h_upper_pure; 2 = e_lower_pure; 3 = l1_lower_pure; 4 = l2_lower_pure; 5 = o_lower_pure]&lt;br/&gt;/ validresponse = (&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h_upper_pure, h_upper_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e_lower_pure, e_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l1_lower_pure, l1_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l2_lower_pure, l2_lower_strike,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o_lower_pure, o_lower_strike&lt;br/&gt;)&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_strike, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "h_upper_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.h_upper_pure, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_pure") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_strike, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.test.response == "e_lower_strike") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.removestimulusframe(2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(picture.e_lower_pure, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="34938"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The objects defined in /validresponse are checked in the order given, and even an object that s not currently on-screen can serve as a response object IF it has been previously presented on-screen (this is a feature, not a bug). So, a click on the location of the objects "h_upper_pure" / "h_upper_strike" will always result in logging of "h_upper_pure" as the response, because that is checked first. The solution is to use variables.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ object1 = "h_upper_pure"&lt;br/&gt;/ object2 = "e_lower_pure"&lt;br/&gt;/ object3 = "l1_lower_pure"&lt;br/&gt;/ object4 = "l2_lower_pure"&lt;br/&gt;/ object5 = "o_lower_pure"&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text h_upper_pure&amp;gt;&lt;br/&gt;/ items = ("H")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text h_upper_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;H&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (40%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text e_lower_pure&amp;gt;&lt;br/&gt;/ items = ("e")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text e_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;e&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (45%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1_lower_pure&amp;gt;&lt;br/&gt;/ items = ("l")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l1_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2_lower_pure&amp;gt;&lt;br/&gt;/ items = ("l")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text l2_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;l&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (55%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text o_lower_pure&amp;gt;&lt;br/&gt;/ items = ("o")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text o_lower_strike&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;s&amp;gt;o&amp;lt;/s&amp;gt;")&lt;br/&gt;/ position = (60%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial test&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = h_upper_pure; 2 = e_lower_pure; 3 = l1_lower_pure; 4 = l2_lower_pure; 5 = o_lower_pure]&lt;br/&gt;/ validresponse = (values.object1, values.object2, values.object3, values.object4, values.object5)&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    if (trial.test.response == "h_upper_pure") {&lt;br/&gt;        trial.test.removestimulusframe(1);&lt;br/&gt;        trial.test.insertstimulusframe(text.h_upper_strike, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object1 = "h_upper_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "h_upper_strike") {&lt;br/&gt;        trial.test.removestimulusframe(1);&lt;br/&gt;        trial.test.insertstimulusframe(text.h_upper_pure, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object1 = "h_upper_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "e_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(2);&lt;br/&gt;        trial.test.insertstimulusframe(text.e_lower_strike, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object2 = "e_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "e_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(2);&lt;br/&gt;        trial.test.insertstimulusframe(text.e_lower_pure, 2);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object2 = "e_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l1_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.l1_lower_strike, 3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object3 = "l1_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l1_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(3);&lt;br/&gt;        trial.test.insertstimulusframe(text.l1_lower_pure, 3);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object3 = "l1_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l2_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.l2_lower_strike, 4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object4 = "l2_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "l2_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(4);&lt;br/&gt;        trial.test.insertstimulusframe(text.l2_lower_pure, 4);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object4 = "l2_lower_pure";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "o_lower_pure") {&lt;br/&gt;        trial.test.removestimulusframe(5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.test.insertstimulusframe(text.o_lower_strike, 5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object5 = "o_lower_strike";&lt;br/&gt;    };&lt;br/&gt;    if (trial.test.response == "o_lower_strike") {&lt;br/&gt;        trial.test.removestimulusframe(5);&lt;br/&gt;        trial.test.insertstimulusframe(text.o_lower_pure, 5);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.object5 = "o_lower_pure";&lt;br/&gt;    };&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;    trial.test;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block testblock&amp;gt;&lt;br/&gt;/ trials = [1 = test]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject trialcode trialnum response values.object1 values.object2 values.object3 values.object4 values.object5)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;</description><pubDate>Wed, 16 Nov 2022 16:11:10 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>