﻿<?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  » Monkey failing on drag/drop trials</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Wed, 29 Apr 2026 19:14:13 GMT</lastBuildDate><ttl>20</ttl><item><title>Monkey failing on drag/drop trials</title><link>https://forums.millisecond.com/Topic41747.aspx</link><description>Sorry if this is a doubled post, I can't see my original topic and I fear the forum may have swallowed it.&lt;br/&gt;&lt;br/&gt;I'm working on a scrambled sentences task implemented using the drag and drop function. Normally, I create large datasets with the monkey prior to actual data collection in order to make sure I'm collecting all the data points I need and to test randomization etc. However, the monkey is freezing on the drag and drop trials. Here's a code example:&lt;br/&gt;&lt;br/&gt;[code]## word stimuli, ordered so that word1 is the first word in the sentence, word2 the second and so on, with word5 being the distracter word&lt;br/&gt;&lt;br/&gt;&amp;lt;item word1&amp;gt;&lt;br/&gt;/1 = "he"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item word2&amp;gt;&lt;br/&gt;/1 = "buys"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item word3&amp;gt;&lt;br/&gt;/1 = "mature"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item word4&amp;gt;&lt;br/&gt;/1 = "whiskey"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item word5&amp;gt;&lt;br/&gt;/1 = "taken"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;## list to randomize presentation order of words&lt;br/&gt;&lt;br/&gt;&amp;lt;list wordorder&amp;gt;&lt;br/&gt;/items = (20pct,30pct,40pct,50pct,60pct)&lt;br/&gt;/replace = false&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;## word stimuli to drag&lt;br/&gt;&lt;br/&gt;&amp;lt;text word1&amp;gt;&lt;br/&gt;/ items = word1&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (20%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text word2&amp;gt;&lt;br/&gt;/ items = word2&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (30%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text word3&amp;gt;&lt;br/&gt;/ items = word3&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (40%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text word4&amp;gt;&lt;br/&gt;/ items = word4&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (50%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text word5&amp;gt;&lt;br/&gt;/ items = word5&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (60%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;## boxes to drop words in&lt;br/&gt;&lt;br/&gt;&amp;lt;shape slot1&amp;gt;&lt;br/&gt;/shape = rectangle&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = gray&lt;br/&gt;/position = (20%,80%)&lt;br/&gt;/ droptarget = true&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape slot2&amp;gt;&lt;br/&gt;/shape = rectangle&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = gray&lt;br/&gt;/position = (40%,80%)&lt;br/&gt;/ droptarget = true&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape slot3&amp;gt;&lt;br/&gt;/shape = rectangle&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = gray&lt;br/&gt;/ droptarget = true&lt;br/&gt;/position = (60%,80%)&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape slot4&amp;gt;&lt;br/&gt;/shape = rectangle&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = gray&lt;br/&gt;/ droptarget = true&lt;br/&gt;/position = (80%,80%)&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;## main trial, randomizes positions and only moves forward when the answer is correct&lt;br/&gt;&lt;br/&gt;&amp;lt;trial dragtrial&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.wordorder.resetselection()&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ontrialbegin = [&lt;br/&gt;    text.word1.hposition = list.wordorder.nextvalue;&lt;br/&gt;    text.word2.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word3.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word4.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word5.hposition= list.wordorder.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word1.vposition = 30pct;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word2.vposition = 30pct;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word3.vposition = 30pct;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word4.vposition = 30pct;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word5.vposition = 30pct;&lt;br/&gt;]&lt;br/&gt;/stimulustimes = [0 = word1, word2, word3, word4, word5, slot1, slot2, slot3, slot4]&lt;br/&gt;/ inputdevice = dragdrop&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.IsValidDragTrial&lt;br/&gt;]&lt;br/&gt;/ iscorrectresponse = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word1.hposition == display.getpixelsx(shape.slot1.hposition) &amp;amp;&amp;amp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word2.hposition == display.getpixelsx(shape.slot2.hposition) &amp;amp;&amp;amp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word3.hposition == display.getpixelsx(shape.slot3.hposition) &amp;amp;&amp;amp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word4.hposition == display.getpixelsx(shape.slot4.hposition)&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.dragtrial.error) trial.dragtrial&lt;br/&gt;]&lt;br/&gt;/ dropsources = (word1, word2, word3, word4)&lt;br/&gt;/ droptargets = (slot1, slot2, slot3, slot4)&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;## looped expression that checks whether every word has been dropped on a slot and returns true only&lt;br/&gt;## if this is the case, thus preventing the trial from moving forward until the participant has &lt;br/&gt;## made a complete response&lt;br/&gt;&lt;br/&gt;&amp;lt;expressions&amp;gt;&lt;br/&gt;/ IsValidDragTrial = {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var ValidCount = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var WordCurrentXPos;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var WordCurrentYPos;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var SlotCurrentXPos;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var SlotCurrentYPos;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (list.WordStimuli.unselectedcount &amp;gt; 0) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.WordStimuli.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WordCurrentXPos = evaluate(concat(list.WordStimuli.currentvalue, ".hposition"));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WordCurrentYPos = evaluate(concat(list.WordStimuli.currentvalue, ".vposition"));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (list.Slots.unselectedcount &amp;gt; 0) {&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;list.Slots.nextvalue;&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;SlotCurrentXPos = evaluate(concat(list.Slots.currentvalue, ".hposition"));&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;SlotCurrentYPos = evaluate(concat(list.Slots.currentvalue, ".vposition"));&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;SlotCurrentXPos = display.getpixelsx(SlotCurrentXPos);&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;SlotCurrentYPos = display.getpixelsy(SlotCurrentYPos);&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;if (WordCurrentXPos == SlotCurrentXPos &amp;amp;&amp;amp; WordCurrentYPos == SlotCurrentYPos) {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ValidCount += 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;};&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.Slots.resetselection();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.WordStimuli.resetselection();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (ValidCount &amp;gt;= 4) return true else return false&lt;br/&gt;}&lt;br/&gt;&amp;lt;/expressions&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list WordStimuli&amp;gt;&lt;br/&gt;/items = ("text.word1", "text.word2", "text.word3", "text.word4", "text.word5")&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ selectionmode = sequence&lt;br/&gt;&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list Slots&amp;gt;&lt;br/&gt;/items = ("shape.slot1", "shape.slot2", "shape.slot3", "shape.slot4")&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ selectionmode = sequence&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page scrambledsentences&amp;gt;&lt;br/&gt;On the next page you will see five words at a time.^^&lt;br/&gt;Four of these words form a grammatically correct sentence together while one word is left over each time.^^&lt;br/&gt;Your task is to find the correct sentence. ^^&lt;br/&gt;To complete the task use the mouse to place the words in the correct order into the fields below. ^^&lt;br/&gt;To do this, hold down the left mouse button and drag the words into the correct target position.^^&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block scrambledsentences&amp;gt;&lt;br/&gt;/preinstructions = (page.scrambledsentences)&lt;br/&gt;/trials = [1 = dragtrial]&lt;br/&gt;&amp;lt;/block&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;I've already tried removing the /isvalidresponse property in case that was causing trouble, but the monkey still freezes. Would appreciate any help!&lt;br/&gt;</description><pubDate>Tue, 16 Dec 2025 14:09:44 GMT</pubDate><dc:creator>AKrishna</dc:creator></item><item><title>RE: Monkey failing on drag/drop trials</title><link>https://forums.millisecond.com/Topic41749.aspx</link><description>&lt;blockquote data-id="41748" class="if-quote-wrapper" unselectable="on" data-guid="1765893923530" contenteditable="false" id="if_insertedNode_1765893922770"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="41748" 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="41748" 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="41748" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 12/16/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-41748"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="41747" class="if-quote-wrapper" unselectable="on" data-guid="1765893923530" contenteditable="false" id="if_insertedNode_1765889670138"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="41747" 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="41747" 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="41747" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;AKrishna - 12/16/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-41747"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Sorry if this is a doubled post, I can't see my original topic and I fear the forum may have swallowed it.&lt;br/&gt;&lt;br/&gt;I'm working on a scrambled sentences task implemented using the drag and drop function. Normally, I create large datasets with the monkey prior to actual data collection in order to make sure I'm collecting all the data points I need and to test randomization etc. However, the monkey is freezing on the drag and drop trials. Here's a code example:&lt;br/&gt;&lt;br/&gt;[code]## word stimuli, ordered so that word1 is the first word in the sentence, word2 the second and so on, with word5 being the distracter word&lt;br/&gt;&lt;br/&gt;&amp;lt;item word1&amp;gt;&lt;br/&gt;/1 = "he"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item word2&amp;gt;&lt;br/&gt;/1 = "buys"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item word3&amp;gt;&lt;br/&gt;/1 = "mature"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item word4&amp;gt;&lt;br/&gt;/1 = "whiskey"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item word5&amp;gt;&lt;br/&gt;/1 = "taken"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;## list to randomize presentation order of words&lt;br/&gt;&lt;br/&gt;&amp;lt;list wordorder&amp;gt;&lt;br/&gt;/items = (20pct,30pct,40pct,50pct,60pct)&lt;br/&gt;/replace = false&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;## word stimuli to drag&lt;br/&gt;&lt;br/&gt;&amp;lt;text word1&amp;gt;&lt;br/&gt;/ items = word1&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (20%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text word2&amp;gt;&lt;br/&gt;/ items = word2&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (30%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text word3&amp;gt;&lt;br/&gt;/ items = word3&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (40%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text word4&amp;gt;&lt;br/&gt;/ items = word4&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (50%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text word5&amp;gt;&lt;br/&gt;/ items = word5&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (60%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;## boxes to drop words in&lt;br/&gt;&lt;br/&gt;&amp;lt;shape slot1&amp;gt;&lt;br/&gt;/shape = rectangle&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = gray&lt;br/&gt;/position = (20%,80%)&lt;br/&gt;/ droptarget = true&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape slot2&amp;gt;&lt;br/&gt;/shape = rectangle&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = gray&lt;br/&gt;/position = (40%,80%)&lt;br/&gt;/ droptarget = true&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape slot3&amp;gt;&lt;br/&gt;/shape = rectangle&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = gray&lt;br/&gt;/ droptarget = true&lt;br/&gt;/position = (60%,80%)&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape slot4&amp;gt;&lt;br/&gt;/shape = rectangle&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = gray&lt;br/&gt;/ droptarget = true&lt;br/&gt;/position = (80%,80%)&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;## main trial, randomizes positions and only moves forward when the answer is correct&lt;br/&gt;&lt;br/&gt;&amp;lt;trial dragtrial&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.wordorder.resetselection()&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ontrialbegin = [&lt;br/&gt;    text.word1.hposition = list.wordorder.nextvalue;&lt;br/&gt;    text.word2.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word3.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word4.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word5.hposition= list.wordorder.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word1.vposition = 30pct;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word2.vposition = 30pct;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word3.vposition = 30pct;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word4.vposition = 30pct;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word5.vposition = 30pct;&lt;br/&gt;]&lt;br/&gt;/stimulustimes = [0 = word1, word2, word3, word4, word5, slot1, slot2, slot3, slot4]&lt;br/&gt;/ inputdevice = dragdrop&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.IsValidDragTrial&lt;br/&gt;]&lt;br/&gt;/ iscorrectresponse = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word1.hposition == display.getpixelsx(shape.slot1.hposition) &amp;amp;&amp;amp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word2.hposition == display.getpixelsx(shape.slot2.hposition) &amp;amp;&amp;amp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word3.hposition == display.getpixelsx(shape.slot3.hposition) &amp;amp;&amp;amp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word4.hposition == display.getpixelsx(shape.slot4.hposition)&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.dragtrial.error) trial.dragtrial&lt;br/&gt;]&lt;br/&gt;/ dropsources = (word1, word2, word3, word4)&lt;br/&gt;/ droptargets = (slot1, slot2, slot3, slot4)&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;## looped expression that checks whether every word has been dropped on a slot and returns true only&lt;br/&gt;## if this is the case, thus preventing the trial from moving forward until the participant has &lt;br/&gt;## made a complete response&lt;br/&gt;&lt;br/&gt;&amp;lt;expressions&amp;gt;&lt;br/&gt;/ IsValidDragTrial = {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var ValidCount = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var WordCurrentXPos;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var WordCurrentYPos;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var SlotCurrentXPos;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var SlotCurrentYPos;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (list.WordStimuli.unselectedcount &amp;gt; 0) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.WordStimuli.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WordCurrentXPos = evaluate(concat(list.WordStimuli.currentvalue, ".hposition"));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WordCurrentYPos = evaluate(concat(list.WordStimuli.currentvalue, ".vposition"));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (list.Slots.unselectedcount &amp;gt; 0) {&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;list.Slots.nextvalue;&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;SlotCurrentXPos = evaluate(concat(list.Slots.currentvalue, ".hposition"));&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;SlotCurrentYPos = evaluate(concat(list.Slots.currentvalue, ".vposition"));&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;SlotCurrentXPos = display.getpixelsx(SlotCurrentXPos);&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;SlotCurrentYPos = display.getpixelsy(SlotCurrentYPos);&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;if (WordCurrentXPos == SlotCurrentXPos &amp;amp;&amp;amp; WordCurrentYPos == SlotCurrentYPos) {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ValidCount += 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;};&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.Slots.resetselection();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.WordStimuli.resetselection();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (ValidCount &amp;gt;= 4) return true else return false&lt;br/&gt;}&lt;br/&gt;&amp;lt;/expressions&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list WordStimuli&amp;gt;&lt;br/&gt;/items = ("text.word1", "text.word2", "text.word3", "text.word4", "text.word5")&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ selectionmode = sequence&lt;br/&gt;&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list Slots&amp;gt;&lt;br/&gt;/items = ("shape.slot1", "shape.slot2", "shape.slot3", "shape.slot4")&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ selectionmode = sequence&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page scrambledsentences&amp;gt;&lt;br/&gt;On the next page you will see five words at a time.^^&lt;br/&gt;Four of these words form a grammatically correct sentence together while one word is left over each time.^^&lt;br/&gt;Your task is to find the correct sentence. ^^&lt;br/&gt;To complete the task use the mouse to place the words in the correct order into the fields below. ^^&lt;br/&gt;To do this, hold down the left mouse button and drag the words into the correct target position.^^&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block scrambledsentences&amp;gt;&lt;br/&gt;/preinstructions = (page.scrambledsentences)&lt;br/&gt;/trials = [1 = dragtrial]&lt;br/&gt;&amp;lt;/block&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;I've already tried removing the /isvalidresponse property in case that was causing trouble, but the monkey still freezes. Would appreciate any help!&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="41747"&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;In short, you need to make use of the /monkeyResponse attribute.&lt;br/&gt;&lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/v6/html/language/attributes/monkeyresponse.htm"&gt;&lt;a href="https://www.millisecond.com/support/docs/v6/html/language/attributes/monkeyresponse.htm"&gt;https://www.millisecond.com/support/docs/v6/html/language/attributes/monkeyresponse.htm&lt;/a&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;trial dragtrial&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;    list.wordorder.resetselection()&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ontrialbegin = [&lt;br/&gt;    text.word1.hposition = list.wordorder.nextvalue;&lt;br/&gt;    text.word2.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word3.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word4.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word5.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word1.vposition = 30pct;&lt;br/&gt;    text.word2.vposition = 30pct;&lt;br/&gt;    text.word3.vposition = 30pct;&lt;br/&gt;    text.word4.vposition = 30pct;&lt;br/&gt;    text.word5.vposition = 30pct;&lt;br/&gt;]&lt;br/&gt;/stimulustimes = [0 = word1, word2, word3, word4, word5, slot1, slot2, slot3, slot4]&lt;br/&gt;/ inputdevice = dragdrop&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;    expressions.IsValidDragTrial&lt;br/&gt;]&lt;br/&gt;/ iscorrectresponse = [&lt;br/&gt;    text.word1.hposition == display.getpixelsx(shape.slot1.hposition) &amp;amp;&amp;amp;&lt;br/&gt;    text.word2.hposition == display.getpixelsx(shape.slot2.hposition) &amp;amp;&amp;amp;&lt;br/&gt;    text.word3.hposition == display.getpixelsx(shape.slot3.hposition) &amp;amp;&amp;amp;&lt;br/&gt;    text.word4.hposition == display.getpixelsx(shape.slot4.hposition)&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;    if (trial.dragtrial.error) trial.dragtrial&lt;br/&gt;]&lt;br/&gt;/ dropsources = (word1, word2, word3, word4)&lt;br/&gt;/ droptargets = (slot1, slot2, slot3, slot4)&lt;br/&gt;/ monkeyresponse = (list.monkeyTargets.nextvalue)&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list monkeyTargets&amp;gt;&lt;br/&gt;/ items = (shape.slot1, shape.slot2, shape.slot3, shape.slot4)&lt;br/&gt;/ selectionmode = sequence&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;You'll probably also want to make some addition to the isValidDragTrial expression, to allow the trial to be a pass once the monkey has populated all four slots (no matter the word order), i.e. make it behave differently based on the value of the monkey.monkeymode property.&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="41748"&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;Cheers, that was the problem. As a side note, because your post gives me the impression you might expect something different: implementing this actually made the monkey drag all the words to the same target in each trial (slot 1 in trial 1, slot 2 in trial 2 and so on), rather than populating each slot. It seems the selectionrate = always attribute doesn't affect the monkey's response behavior; it acts as though selectionrate = trial. I guess this makes sense; Inquisit isn't designed for multiple "responses" per trial, so it wouldn't normally be necessary to draw multiple response locations in one trial. Interesting fringe case</description><pubDate>Tue, 16 Dec 2025 14:09:44 GMT</pubDate><dc:creator>AKrishna</dc:creator></item><item><title>RE: Monkey failing on drag/drop trials</title><link>https://forums.millisecond.com/Topic41748.aspx</link><description>&lt;blockquote data-id="41747" class="if-quote-wrapper" unselectable="on" data-guid="1765889670929" contenteditable="false" id="if_insertedNode_1765889670138"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="41747" 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="41747" 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="41747" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;AKrishna - 12/16/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-41747"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Sorry if this is a doubled post, I can't see my original topic and I fear the forum may have swallowed it.&lt;br/&gt;&lt;br/&gt;I'm working on a scrambled sentences task implemented using the drag and drop function. Normally, I create large datasets with the monkey prior to actual data collection in order to make sure I'm collecting all the data points I need and to test randomization etc. However, the monkey is freezing on the drag and drop trials. Here's a code example:&lt;br/&gt;&lt;br/&gt;[code]## word stimuli, ordered so that word1 is the first word in the sentence, word2 the second and so on, with word5 being the distracter word&lt;br/&gt;&lt;br/&gt;&amp;lt;item word1&amp;gt;&lt;br/&gt;/1 = "he"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item word2&amp;gt;&lt;br/&gt;/1 = "buys"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item word3&amp;gt;&lt;br/&gt;/1 = "mature"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item word4&amp;gt;&lt;br/&gt;/1 = "whiskey"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item word5&amp;gt;&lt;br/&gt;/1 = "taken"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&lt;br/&gt;## list to randomize presentation order of words&lt;br/&gt;&lt;br/&gt;&amp;lt;list wordorder&amp;gt;&lt;br/&gt;/items = (20pct,30pct,40pct,50pct,60pct)&lt;br/&gt;/replace = false&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;## word stimuli to drag&lt;br/&gt;&lt;br/&gt;&amp;lt;text word1&amp;gt;&lt;br/&gt;/ items = word1&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (20%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text word2&amp;gt;&lt;br/&gt;/ items = word2&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (30%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text word3&amp;gt;&lt;br/&gt;/ items = word3&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (40%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text word4&amp;gt;&lt;br/&gt;/ items = word4&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (50%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text word5&amp;gt;&lt;br/&gt;/ items = word5&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = white&lt;br/&gt;/fontstyle = ("Arial",26pt)&lt;br/&gt;/txcolor = black&lt;br/&gt;/position = (60%,30%)&lt;br/&gt;/ dropsource = true&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;## boxes to drop words in&lt;br/&gt;&lt;br/&gt;&amp;lt;shape slot1&amp;gt;&lt;br/&gt;/shape = rectangle&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = gray&lt;br/&gt;/position = (20%,80%)&lt;br/&gt;/ droptarget = true&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape slot2&amp;gt;&lt;br/&gt;/shape = rectangle&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = gray&lt;br/&gt;/position = (40%,80%)&lt;br/&gt;/ droptarget = true&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape slot3&amp;gt;&lt;br/&gt;/shape = rectangle&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = gray&lt;br/&gt;/ droptarget = true&lt;br/&gt;/position = (60%,80%)&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape slot4&amp;gt;&lt;br/&gt;/shape = rectangle&lt;br/&gt;/size = (220,60)&lt;br/&gt;/color = gray&lt;br/&gt;/ droptarget = true&lt;br/&gt;/position = (80%,80%)&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;## main trial, randomizes positions and only moves forward when the answer is correct&lt;br/&gt;&lt;br/&gt;&amp;lt;trial dragtrial&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.wordorder.resetselection()&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ontrialbegin = [&lt;br/&gt;    text.word1.hposition = list.wordorder.nextvalue;&lt;br/&gt;    text.word2.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word3.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word4.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word5.hposition= list.wordorder.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word1.vposition = 30pct;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word2.vposition = 30pct;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word3.vposition = 30pct;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word4.vposition = 30pct;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word5.vposition = 30pct;&lt;br/&gt;]&lt;br/&gt;/stimulustimes = [0 = word1, word2, word3, word4, word5, slot1, slot2, slot3, slot4]&lt;br/&gt;/ inputdevice = dragdrop&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.IsValidDragTrial&lt;br/&gt;]&lt;br/&gt;/ iscorrectresponse = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word1.hposition == display.getpixelsx(shape.slot1.hposition) &amp;amp;&amp;amp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word2.hposition == display.getpixelsx(shape.slot2.hposition) &amp;amp;&amp;amp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word3.hposition == display.getpixelsx(shape.slot3.hposition) &amp;amp;&amp;amp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text.word4.hposition == display.getpixelsx(shape.slot4.hposition)&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.dragtrial.error) trial.dragtrial&lt;br/&gt;]&lt;br/&gt;/ dropsources = (word1, word2, word3, word4)&lt;br/&gt;/ droptargets = (slot1, slot2, slot3, slot4)&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;## looped expression that checks whether every word has been dropped on a slot and returns true only&lt;br/&gt;## if this is the case, thus preventing the trial from moving forward until the participant has &lt;br/&gt;## made a complete response&lt;br/&gt;&lt;br/&gt;&amp;lt;expressions&amp;gt;&lt;br/&gt;/ IsValidDragTrial = {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var ValidCount = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var WordCurrentXPos;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var WordCurrentYPos;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var SlotCurrentXPos;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var SlotCurrentYPos;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (list.WordStimuli.unselectedcount &amp;gt; 0) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.WordStimuli.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WordCurrentXPos = evaluate(concat(list.WordStimuli.currentvalue, ".hposition"));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WordCurrentYPos = evaluate(concat(list.WordStimuli.currentvalue, ".vposition"));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (list.Slots.unselectedcount &amp;gt; 0) {&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;list.Slots.nextvalue;&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;SlotCurrentXPos = evaluate(concat(list.Slots.currentvalue, ".hposition"));&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;SlotCurrentYPos = evaluate(concat(list.Slots.currentvalue, ".vposition"));&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;SlotCurrentXPos = display.getpixelsx(SlotCurrentXPos);&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;SlotCurrentYPos = display.getpixelsy(SlotCurrentYPos);&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;if (WordCurrentXPos == SlotCurrentXPos &amp;amp;&amp;amp; WordCurrentYPos == SlotCurrentYPos) {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ValidCount += 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;};&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.Slots.resetselection();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.WordStimuli.resetselection();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (ValidCount &amp;gt;= 4) return true else return false&lt;br/&gt;}&lt;br/&gt;&amp;lt;/expressions&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list WordStimuli&amp;gt;&lt;br/&gt;/items = ("text.word1", "text.word2", "text.word3", "text.word4", "text.word5")&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ selectionmode = sequence&lt;br/&gt;&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list Slots&amp;gt;&lt;br/&gt;/items = ("shape.slot1", "shape.slot2", "shape.slot3", "shape.slot4")&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ selectionmode = sequence&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page scrambledsentences&amp;gt;&lt;br/&gt;On the next page you will see five words at a time.^^&lt;br/&gt;Four of these words form a grammatically correct sentence together while one word is left over each time.^^&lt;br/&gt;Your task is to find the correct sentence. ^^&lt;br/&gt;To complete the task use the mouse to place the words in the correct order into the fields below. ^^&lt;br/&gt;To do this, hold down the left mouse button and drag the words into the correct target position.^^&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block scrambledsentences&amp;gt;&lt;br/&gt;/preinstructions = (page.scrambledsentences)&lt;br/&gt;/trials = [1 = dragtrial]&lt;br/&gt;&amp;lt;/block&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;I've already tried removing the /isvalidresponse property in case that was causing trouble, but the monkey still freezes. Would appreciate any help!&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="41747"&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;In short, you need to make use of the /monkeyResponse attribute.&lt;br/&gt;&lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/v6/html/language/attributes/monkeyresponse.htm"&gt;https://www.millisecond.com/support/docs/v6/html/language/attributes/monkeyresponse.htm&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;trial dragtrial&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;    list.wordorder.resetselection()&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ontrialbegin = [&lt;br/&gt;    text.word1.hposition = list.wordorder.nextvalue;&lt;br/&gt;    text.word2.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word3.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word4.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word5.hposition= list.wordorder.nextvalue;&lt;br/&gt;    text.word1.vposition = 30pct;&lt;br/&gt;    text.word2.vposition = 30pct;&lt;br/&gt;    text.word3.vposition = 30pct;&lt;br/&gt;    text.word4.vposition = 30pct;&lt;br/&gt;    text.word5.vposition = 30pct;&lt;br/&gt;]&lt;br/&gt;/stimulustimes = [0 = word1, word2, word3, word4, word5, slot1, slot2, slot3, slot4]&lt;br/&gt;/ inputdevice = dragdrop&lt;br/&gt;/ isvalidresponse = [&lt;br/&gt;    expressions.IsValidDragTrial&lt;br/&gt;]&lt;br/&gt;/ iscorrectresponse = [&lt;br/&gt;    text.word1.hposition == display.getpixelsx(shape.slot1.hposition) &amp;amp;&amp;amp;&lt;br/&gt;    text.word2.hposition == display.getpixelsx(shape.slot2.hposition) &amp;amp;&amp;amp;&lt;br/&gt;    text.word3.hposition == display.getpixelsx(shape.slot3.hposition) &amp;amp;&amp;amp;&lt;br/&gt;    text.word4.hposition == display.getpixelsx(shape.slot4.hposition)&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;    if (trial.dragtrial.error) trial.dragtrial&lt;br/&gt;]&lt;br/&gt;/ dropsources = (word1, word2, word3, word4)&lt;br/&gt;/ droptargets = (slot1, slot2, slot3, slot4)&lt;br/&gt;/ monkeyresponse = (list.monkeyTargets.nextvalue)&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list monkeyTargets&amp;gt;&lt;br/&gt;/ items = (shape.slot1, shape.slot2, shape.slot3, shape.slot4)&lt;br/&gt;/ selectionmode = sequence&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;You'll probably also want to make some addition to the isValidDragTrial expression, to allow the trial to be a pass once the monkey has populated all four slots (no matter the word order), i.e. make it behave differently based on the value of the monkey.monkeymode property.&lt;br/&gt;&lt;br/&gt;</description><pubDate>Tue, 16 Dec 2025 13:08:36 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>