User Manual: Inquisit Trier Mental Challenge Test (TMCT)


___________________________________________________________________________________________________________________	

									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)