Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 24, 2023
Last Modified: January 08, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script runs Millisecond's implementation of the Magic Cups Task (Rahman et al, 2021), a 'Theory of Mind' (ToM) paradigm to study people's ability to infer another person's thoughts and beliefs.
This Inquisit script is based on the publicly available eprime script by the original authors. Any intentional alterations to the original procedure (e.g. adding an optional instruction block) are explained below.
The original eprime script can be accessed at: https://osf.io/wy5cm/ (last checked: 26 Jan 2023) Additional information is located at: https://osf.io/br9v8/ (last checked: 26 Jan 2023) The project is licensed under: CC-By Attribution 4.0 International
DISCLAIMER: While we try to stay as faithful as possible to the original eprime script, the Inquisit implementation of the Magic Cups Task may still differ from it.
Rahman, F., Kessler, K., Apperly, I. A., Hansen, P. C., Javed, S., Holland, C. A., & Hartwright, C. E. (2021). Sources of Cognitive Conflict and Their Relevance to Theory-of-Mind Proficiency in Healthy Aging: A Preregistered Study. Psychological Science, 32(12), 1918–1936. https://doi.org/10.1177/09567976211017870
45 minutes
A ball is hidden in one of three cups. Participants see three events (in random order): 1. some information about where the ball is (a green ball is presented in the target cup's location) OR isn't (a green X is presented in a cup's location) -> REALITY INFORMATION 2. the GUESS/BELIEF of a blue player 3. the GUESS/BELIEF of a red player
At the end of each trial, participants get one of three probe questions: 1. Where do YOU think the ball is? (reality/attention check questions) (FILLER TRIALS) 2. Where does blue player think the ball is? (TARGET TRIALS) 3. Where does red player think the ball is? (TARGET TRIALS)
For each trial, participants have to keep track of the 'reality' information and the information they receive about each player's belief and be ready to switch perspective depending on the probe question.
All images downloaded from:
https://osf.io/wy5cm/ (last checked: 26 Jan 2023)
The instructions used in the optional intro block are provided by Millisecond.
They can be edited under section Editable Instructions.
The remaining instructions were downloaded with the original eprime script.
File Name: magiccubstask_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| startDate | Date the session was run |
| startTime | Time the session was run |
| subjectId | Participant ID |
| groupId | Group number |
| sessionId | Session number |
| elapsedTime | Session duration in ms |
| completed | 0 = Test was not completed 1 = Test was completed |
Filler Trials: Participant Is Agent |
|
| propCorrectFiller | Proportion correct responses given in filler trials across all test blocks |
| meanCorrRTFiller | Mean correct response time (in ms) of responses in filler trials across all test blocks |
Target Trials: Players Are Agent |
|
| propCorrect | Proportion correct responses given across all test blocks (applies only to target trials) |
| meanCorrRT | Mean correct response time (in ms) of responses across all test blocks (applies only to target trials) |
Proportion Corrects For Each Of The 8 Experimental Conditions |
|
| propCorrectKoR0OOC0SOC0 | Proportion correct responses in condition KoR0_OOC0_SOC0 (NNN) koR0 (knowledge of reality, level0) - participant has no knowledge of reality OOC0 (other-other conflict, level0) - no conflict; both players agree on the same response SOC0 (self-other conflict, level0) - no conflict; agent player's response is NOT in conflict with what participant knows |
| propCorrectKoR0OOC0SOC1 | Proportion correct responses in condition KoR0_OOC0_SOC1 (NNY) koR0 (knowledge of reality, level0) - participant has no knowledge of reality OOC0 (other-other conflict, level0) - no conflict; both players agree on the same response SOC1 (self-other conflict, level1) - conflict; agent player's response IS in conflict with what participant knows |
| propCorrectKoR0OOC1SOC0 | Proportion correct responses in condition KoR0_OOC1_SOC0 (NYN) koR0 (knowledge of reality, level0) - participant has no knowledge of reality OOC1 (other-other conflict, level1) - conflict; players differ in their responses SOC0 (self-other conflict, level0) - no conflict; agent player's response is NOT in conflict with what participant knows |
| propCorrectKoR0OOC1SOC1 | Proportion correct responses in condition KoR0_OOC1_SOC1 (NYY) koR0 (knowledge of reality, level0) - participant has no knowledge of reality OOC1 (other-other conflict, level1) - conflict; players differ in their responses SOC1 (self-other conflict, level1) - conflict; agent player's response IS in conflict with what participant knows |
| propCorrectKoR1OOC0SOC0 | Proportion correct responses in condition KoR1_OOC0_SOC0 (YNN) koR1 (knowledge of reality, level1) - explicit knowledge of reality (participant saw a green dot) OOC0 (other-other conflict, level0) - no conflict; both players agree on the same response SOC0 (self-other conflict, level0) - no conflict; agent player's response is NOT in conflict with what participant knows |
| propCorrectKoR1OOC0SOC1 | Proportion correct responses in condition KoR1_OOC0_SOC1 (YNY) koR1 (knowledge of reality, level1) - explicit knowledge of reality (participant saw a green dot) OOC0 (other-other conflict, level0) - no conflict; both players agree on the same response SOC1 (self-other conflict, level1) - conflict; agent player's response IS in conflict with what participant knows |
| propCorrectKoR1OOC1SOC0 | Proportion correct responses in condition KoR1_OOC1_SOC0 (YYN) koR1 (knowledge of reality, level1) - explicit knowledge of reality (participant saw a green dot) OOC1 (other-other conflict, level1) - conflict; players differ in their responses SOC0 (self-other conflict, level0) - no conflict; agent player's response is NOT in conflict with what participant knows |
| propCorrectKoR1OOC1SOC1 | Proportion correct responses in condition KoR1_OOC1_SOC1 (YYY) koR1 (knowledge of reality, level1) - explicit knowledge of reality (participant saw a green dot) OOC1 (other-other conflict, level1) - conflict; players differ in their responses SOC1 (self-other conflict, level1) - conflict; agent player's response IS in conflict with what participant knows |
Untrimmed Correct Response Times For Each Of The 8 Experimental Conditions + Their Standard Deviations |
|
| meanCorrRTKoR0OOC0SOC0 | Mean correct UNTRIMMED response time (in ms) in condition KoR0_OOC0_SOC0 (NNN) |
| sdKoR0OOC0SOC0 | Standard deviation of response times (in ms) in condition KoR0_OOC0_SOC0 (NNN) |
| meanCorrRTKoR0OOC0SOC1 | Mean correct UNTRIMMED response time (in ms) in condition KoR0_OOC0_SOC1 (NNY) |
| sdKoR0OOC0SOC1 | Standard deviation of response times (in ms) in condition KoR0_OOC0_SOC1 (NNy) |
| meanCorrRTKoR0OOC1SOC0 | Mean correct UNTRIMMED response time (in ms) in condition KoR0_OOC1_SOC0 (NYN) |
| sdKoR0OOC1SOC0 | Standard deviation of response times (in ms) in condition KoR0_OOC1_SOC0 (NYN) |
| meanCorrRTKoR0OOC1SOC1 | Mean correct UNTRIMMED response time (in ms) in condition KoR0_OOC1_SOC1 (NYY) |
| sdKoR0OOC1SOC1 | Standard deviation of response times (in ms) in condition KoR0_OOC1_SOC1 (NYY) |
| meanCorrRTKoR1OOC0SOC0 | Mean correct UNTRIMMED response time (in ms) in condition KoR1_OOC0_SOC0 (YNN) |
| sdKoR1OOC0SOC0 | Standard deviation of response times (in ms) in condition KoR1_OOC0_SOC0 (YNN) |
| meanCorrRTKoR1OOC0SOC1 | Mean correct UNTRIMMED response time (in ms) in condition KoR1_OOC0_SOC1 (YNY) |
| sdKoR1OOC0SOC1 | Standard deviation of response times (in ms) in condition KoR1_OOC0_SOC1 (YNY) |
| meanCorrRTKoR1OOC1SOC0 | Mean correct UNTRIMMED response time (in ms) in condition KoR1_OOC1_SOC0 (YYN) |
| sdKoR1OOC1SOC0 | Standard deviation of response times (in ms) in condition KoR1_OOC1_SOC0 (YYN) |
| meanCorrRTKoR1OOC1SOC1 | Mean correct UNTRIMMED response time (in ms) in condition KoR1_OOC1_SOC1 (YYY) |
| sdKoR1OOC1SOC1 | Standard deviation of response times (in ms) in condition KoR1_OOC1_SOC1 (YYY) |
Trimmed Correct Response Times For Each Of The 8 Experimental Conditions |
|
| trMeanCorrRTKoR0OOC0SOC0 | Mean correct TRIMMED response time (in ms) in condition KoR0_OOC0_SOC0 (NNN) |
| trMeanCorrRTKoR0OOC0SOC1 | Mean correct TRIMMED response time (in ms) in condition KoR0_OOC0_SOC1 (NNY) |
| trMeanCorrRTKoR0OOC1SOC0 | Mean correct TRIMMED response time (in ms) in condition KoR0_OOC1_SOC0 (NYN) |
| trMeanCorrRTKoR0OOC1SOC1 | Mean correct TRIMMED response time (in ms) in condition KoR0_OOC1_SOC1 (NYY) |
| trMeanCorrRTKoR1OOC0SOC0 | Mean correct TRIMMED response time (in ms) in condition KoR1_OOC0_SOC0 (YNN) |
| trMeanCorrRTKoR1OOC0SOC1 | Mean correct TRIMMED response time (in ms) in condition KoR1_OOC0_SOC1 (YNY) |
| trMeanCorrRTKoR1OOC1SOC0 | Mean correct TRIMMED response time (in ms) in condition KoR1_OOC1_SOC0 (YYN) |
| trMeanCorrRTKoR1OOC1SOC1 | Mean correct TRIMMED response time (in ms) in condition KoR1_OOC1_SOC1 (YYY) |
File Name: magiccupstask_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| blockcode | The name the current block (built-in Inquisit variable) |
| blocknum | The number of the current block (built-in Inquisit variable) |
| trialcode | The name of the currently recorded trial (built-in Inquisit variable) |
| trialnum | The number of the currently recorded trial (built-in Inquisit variable) trialnum is a built-in Inquisit variable; it counts all trials run even those that do not store data to the data file. |
| blockExpt | P1 (practice), 1-4 (testblock1-4) |
| testBlockCounter | Tracks the number of testblocks run |
| trialCounter | Tracks the number trials run across the testblocks (resets after practice) |
| itemNumber | The currently selected itemnumber |
| stimulusItem | Stores the first item presented in the current trial |
| event3 | The image presented as event3 (scene1) |
| event5 | The image presented as event5 (scene2) |
| event7 | The image presented as event7 (scene3) |
| event9 | The image presented as event9 (probe) |
| trialID | The assigned trial ID |
| variantID | The assigned variant ID of the current trial combination (out of 48 possible) |
| trialType | T = true trial (agent is one of the two 'players'), F = filler/catch trial (agent is participant) |
| eventCode2 | The event code (settings of the three main IVs), see settings of realityKnowledge, OOC, SIC |
| realityKnowledge | Y(es) = participant knows exactly where ball is located (sees a green ball) N(o) = participant does not know exactly where the ball is located (sees a green X) |
| ooc | Other-other Conflict Y(es), there is a conflict = the two player agents make different predictions (OOC incongruent) N(o), there is no conflict = the two player agents make the same prediction (OOC congruent) |
| soc | Self-other Conflict Y(es), there is a conflict = participant knowledge and target agent are in conflict -> participant's response requires a selection that is incongruent with reality (SOC incongruent) N(o), there is no conflict = participant knowledge and target agent are in agreement (SOC congruent) Note from Millisecond: for Filler/Catch trials the categorization done by the eprime script seems 'artifically forced' (probably done for balancing) as there cannot really be a conflict btw. participant and self-agent (participant) knowledge, yet some Filler trials code the SOC as 'Y'. |
| order | The eprime assigned order ID for the given trial (depends on occurence of reality scene) Blue/Red Agent -> Red/Blue Agent -> Reality: 1 (reality is scene3) Blue/Red Agent -> Reality -> Red/Blue Agent: 2 (reality is scene2) Reality -> Blue/Red Agent -> Red/Blue Agent: 3 (reality is scene1) |
| agentReferent | Interpretation Millisecond: likely the 'guess'/knowledge of the target agent where the ball is (though coding of filler trials - where participant is target agent- does not always seem to coincide with the numbers) |
| participantReferent | Interpretation Millisecond: likely refers to the knowledge participant has about one of the three cups 1 = participant knows something about cup1 (ball either is under cup1 or is NOT under cup1) 2 = participant knows something about cup2 3 = participant knows something about cup3 |
| correctResponse | The correct response double digits refer to filler trials in which there are two possibly correct answers |
Dvs |
|
| response | The scancode of the pressed response key (Note that scancodes look confusing for number keys) scancode2 -> key1 was pressed scancode3 -> key2 was pressed scancode4 -> key3 was pressed |
| responseText | Converts the scancode into the label of the pressed key |
| rsp | Inquisit custom response variable |
| correct | Correctness of response (1 = correct, 0 = error, including omissions) |
| latency | Response latency (in ms); measured from: onset of probe (for probe trials) |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Design |
||
| runGeneralIntro | True (1): this script runs a general Intro to the task that was added by Millisecond (it was not part of the original eprime script) false (0): no general task intro is run, script starts with practiceIntro | true |
Timing Parameters |
||
| scene0DelayMS | The delay (in ms) of the first trialsequence in a block after instructions/break | 0 |
| scene0DurationMS | The duration (in ms) of scene0 | 1000 |
| scene1DurationMS | The duration (in ms) of scene1 | 1000 |
| scene2DurationMS | The duration (in ms) of scene2 | 1000 |
| scene3DurationMS | The duration (in ms) of scene3 | 1000 |
| blankDurationMS | The duration (in ms) of the blank screen that follows each scene | 500 |
| probeDurationMS | The total duration (in ms) that the probe image is presented | 1000 |
| responseTimeoutMS | The duration (in ms) set aside for the response window in case the response should be allowed to be part of the ISI (fixation dot) presentation time responsetimeoutMS needs to be <= (probe_durationMS + isi_durationMS) | 3000 |
| isiDurationMS | The total duration (in ms) that the fixation dot is presented at the end of a trial | 3000 |
Responsekeys |
||
| responseKeyCup1 | Key "1" assigned to cup1 on the left | "1" |
| responseKeyCup2 | Key "2" assigned to cup2 in the middle | "2" |
| responseKeyCup3 | Key "3" assigned to cup3 on the right | "3" |