___________________________________________________________________________________________________________________ TRIER MENTAL CHALLENGE TEST (TMCT) ___________________________________________________________________________________________________________________ Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC Date: 06-30-2015 last updated: 10-25-2023 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC Script Copyright © 10-25-2023 Millisecond Software ___________________________________________________________________________________________________________________ BACKGROUND INFO ___________________________________________________________________________________________________________________ This script implements the Trier Mental Challenge Test (TMCT). The TMCT can be used to induce stress; particularly if used in a group setting. Reference: Pruessner J.C., Hellhammer D.H., & Kirschbaum C. (1999). Low self-esteem, induced failure and the adrenocortical stress response. Personality and Interindividual Differences 27, 477-489. ___________________________________________________________________________________________________________________ TASK DESCRIPTION ___________________________________________________________________________________________________________________ Participants are asked to solve arithmetic problems of 5 different difficulty levels (levels increase if performance increases and decreases if performance decreases) in 5s each (default). - After each block (default: 3 minutes), a performance summary is provided to participant/experimenter (that could be made 'public') - A timer can be made visible that counts down the seconds 1-5 - The total points can be made visible on screen for participants to see ___________________________________________________________________________________________________________________ DURATION ___________________________________________________________________________________________________________________ the default set-up of the script takes appr. 10 minutes to complete __________________________________________________________________________________________________________________ DATA OUTPUT DICTIONARY ___________________________________________________________________________________________________________________ The fields in the data files are: (1) Raw data file: 'triermentalchallengetest_raw*.iqdat' (a separate file for each participant) build: The specific Inquisit version used (the 'build') that was run computer.platform: the platform the script was run on (win/mac/ios/android) date, time: date and time script was run subject, group: with the current subject/groupnumber session: with the current session id blockCode, blockNum: the name and number of the current block (built-in Inquisit variable) trialCode, trialNum: the name and number of the currently recorded trial (built-in Inquisit variable) Note: trialNum is a built-in Inquisit variable; it counts all trials run; even those that do not store data to the data file such as feedback trials. Thus, trialNum may not reflect the number of main trials run per block. blockCount: counts the challenge blocks level: level 1-5 of the current math problem problem: stores the currently selected problem solution: stores the solution to the currently selected problem stimulusItem: the presented stimuli in order of trial presentation response: the scancode of the key OR dial button pressed suggestedSolution: the solution suggested by participants correct: the correctness of the suggested solution (1 = correct; 0 = incorrect) latency: the response latency (in ms) oldTotalPoints: stores the totalpoints at the start of each trial newTotalPoints: stores the updated totalpoints at the end of the trial percentCorrect: the current percent correct if (parameter) resetvalues = true: percentcorrect of the current block only if (parameter) resetvalues = false: percentcorrect across blocks meanCorrectrt: mean response time of correct responses if (parameter) resetvalues = true: mean response time of correct responses of the current block only if (parameter) resetvalues = false: mean response time of correct responses across blocks (2) Summary data file: 'triermentalchallengetest_summary*.iqdat' (a separate file for each participant) inquisit.version: Inquisit version run computer.platform: the platform the script was run on (win/mac/ios/android) startDate: date script was run startTime: time script was started subjectId: assigned subject id number groupId: assigned group id number sessionId: assigned session id number elapsedTime: time it took to run script (in ms); measured from onset to offset of script completed: 0 = script was not completed (prematurely aborted); 1 = script was completed (all conditions run) (parameter) numberOfBlocks: sets the number of test blocks run (default: 3) (parameter) startpoints: the number of points at the start of the task (default: 30) (parameter) resetvalues: true (1): after each block totalpoints (and trialcounts) reset to the startpoints (0) false (0): totalpoints (and trialcounts) do not reset (default: true) newTotalPoints: stores the current totalpoints (at the end of the trial) Note: if (parameter) resetvalues = false -> totalpoints are counted across all blocks otherwise the value reflects on the totalpoints of the last block totalPointsPerBlock: stores the totalpoints at the end of each of the rounds Note: if (parameter) resetvalues = false -> cumulative totalpoints across all blocks otherwise the totalpoints start over at startvalue for each block percentCorrectPerBlock: stores the percent corrects at the end of the rounds Note: if (parameter) reservalues = false -> cumulative percent correct across all blocks otherwise the percent correct values stored reflect the current block only meanrtPerBlock: stores the mean correct latencies at the end of each round Note: if (parameter) reservalues = false -> cumulative reaction time across all blocks otherwise the mean reaction times stored reflect the current block only trialCountPerBlock: stores the number of trials attempted at the end of each round Note: if (parameter) reservalues = false -> cumulative trialCount across blocks otherwise the trialCount is only for the given block ___________________________________________________________________________________________________________________ EXPERIMENTAL SET-UP ___________________________________________________________________________________________________________________ * by default this script runs 3 challenge blocks; each for 3 minutes (see section Editable Parameters) Note: to change the number of blocks run, go to section EXPERIMENT * a performance summary is presented after each block * each block presents arithmetic problems of varying difficulties (5 levels); the level of the currently presented arithmetic problem depends on the totalpoints gained (see section Editable Parameters): - fewer than 36 points: level 1 - 36-40: level2, - 41-45 level3, - 46-50 level4, - over 50 level 5 * each problem has a solution ranging from 0-9; a response dial is provided and responses are made by selecting the corresponding button by touch/mouse * each problem has max. 5s (see section Editable Parameters) * by default, participants start with 30 totalpoints (see section Editable Values) - these points reset by default for each new block (see section Editable Values) * if response is correct, the totalpoints increase by 1; otherwise the totalpoints decrease by 1 * if response was incorrect or no response was given, visual error feedback is provided * a timer is optional (see section Editable Parameters); by default the timer is presented * an intertrial interval inbetween trials can be set under section Editable Parameters (default: 0ms) ___________________________________________________________________________________________________________________ STIMULI ___________________________________________________________________________________________________________________ The problems for each level were pre-generated by Millisecond Software and are stored in lists that can be edited under section Editable Lists. All problems have solutions ranging from 0-9 The problems were generated using the following guidelines*: Level1: simple addition/subtraction: 1-2 digit** integers (at least one number has to be single digit, double digits only from the teens), one operator (addition or subtraction) Level2: simple multiplication/division: 1-2 digit integers (at least one number has to be single digit, double digits only from the teens), one operator (multiplication or division) Level3: multiple addition/subtraction: 1-2 digit integers (at least 3 numbers are single digits, double digits only from the teens), 3 operators (addition and/or subtraction) Level4: multiple multiplication/division: 1 digit integers, 3 operators (multiplication and/or division) Level5: multiple, mixed operations: 1-2 digit integers (at least 3 numbers are single digits, double digits only from the teens), 3 operators (at least 1 addition or subtraction AND at least 1 multiplication or division) *Note: the applied constraints built on the guidelines provided by Pruessner et al (1999, p.479) but were imposed by Millisecond Software. Furthermore, level2 (simple multiplication/division) and level3 (multiple addition/subtraction) in this script switch the level2 and level3 categories suggested by Pruessner et al (1999) **Note: while 0 could be a solution, 0 itself was not used as a digit in any of the provided problems To change out the specific problems or expand the lists used for each level, go to section Editable Lists and replace the individual problems with new ones or add new problems to the lists. ___________________________________________________________________________________________________________________ INSTRUCTIONS ___________________________________________________________________________________________________________________ Instructions were written by Millisecond Software and can be edited under section Editable Instructions/Stimuli ___________________________________________________________________________________________________________________ EDITABLE CODE ___________________________________________________________________________________________________________________ check below for (relatively) easily editable parameters, stimuli, instructions etc. Keep in mind that you can use this script as a template and therefore always "mess" with the entire code to further customize your experiment. The parameters you can change are: /numberOfBlocks: sets the number of test blocks run (default: 3) /blockDuration: the duration of each block in ms (default: 18000ms -> 3min) /maxTrialDuration: the max duration of each trial in ms (default: 5000ms -> 5s) /startPoints: the number of points at the start of the task (default: 30) /resetValues: true (1): after each block points (trialcounts) reset to the startpoints (0) (default false (0): totalpoints (trialcounts) do not reset /startLevel2: the lowest number of points that result in level 2 problems (default: 36) Note: below this number, participants receive level 1 problems /startLevel3: the lowest number of points that result in level 3 problems (default: 41) /startLevel4: the lowest number of points that result in level 4 problems (default: 46) /startLevel5: the lowest number of points that result in level 5 problems (default: 51) /presentTimer: true (1) = a timer is presented together with the problem that counts down the seconds (default) false (0)= no timer is presented /showTotalPoints: true (1)= the totalpoints are presented on screen (default) false (0)= the totalpoints are not presented on screen /iti: intertrial interval in ms (default: 0ms) /circleProportion: proportion of canvas height used for the circle radius of response dial (default: 0.3) /debugmode: true: trials run with displaying the correct solution false: trials run without displaying the correct solution (default)