Minimal mixed project
The smallest useful survey-plus-experiment file, showing instructions, a demographics page, a scored test block, and a closing question in one flow.
When to use it
Section titled “When to use it”Use this as the starting frame whenever one session must combine survey pages with scored trials, which covers most real studies once demographics and a closing question are included. Assembling the mix ad hoc invites the classic silent failure: a capitalised type value produces a row that runs but saves nothing, and the loss only surfaces at analysis. A minimal working skeleton with each row type in place gives you something runnable to extend rather than debug. If the study is a pure questionnaire or a pure experiment, you do not need the mixing and can start from a simpler file.
Trial file
Section titled “Trial file”| type | content | head | responseType | responseOptions | pageBreak | stimFormat | stim1 | keyboard | key | button1 |
|---|---|---|---|---|---|---|---|---|---|---|
| instructions | You will answer two quick questions and then decide whether each word names an animal. Press F for animal and J for anything else. | NEXT | ||||||||
| form | How old are you? | box | ||||||||
| form | What is your gender? | radio | Woman;Man;Non-binary;Prefer not to say | 1 | ||||||
| test | word | BADGER | f j | f | ||||||
| test | word | TURNIP | f j | j | ||||||
| test | word | FALCON | f j | f | ||||||
| form | Did anything distract you during the task? | comment |
type,content,head,responseType,responseOptions,pageBreak,stimFormat,stim1,keyboard,key,button1 instructions,You will answer two quick questions and then decide whether each word names an animal. Press F for animal and J for anything else.,,,,,,,,,NEXT form,,How old are you?,box,,,,,,, form,,What is your gender?,radio,Woman;Man;Non-binary;Prefer not to say,1,,,,, test,,,,,,word,BADGER,f j,f, test,,,,,,word,TURNIP,f j,j, test,,,,,,word,FALCON,f j,f, form,,Did anything distract you during the task?,comment,,,,,,,
How it works
Section titled “How it works”The type column decides, row by row, which world each row belongs to, so a mixed file reads naturally top to bottom: an instructions screen, a survey page, a block of trials, another survey page. Values are case-sensitive; Test or Form silently leaves no results row, so keep them lowercase.
The instructions row has no recognisable stimFormat, so it renders as an instructions screen with content as its text and a NEXT button.
The two demographics rows are consecutive type=form rows, so they share one survey page: an age input (responseType set to box) and a gender choice (radio with its responseOptions). pageBreak set to 1 on the second question marks the end of the page. The page would end here anyway because the next row is not a form, but the explicit 1 keeps the boundary stable if you later append more form rows, and a literal 1 is also the only break token recognised as a page start when form rows inherit timer labels.
The test block is three word trials: stimFormat set to word renders the stim1 text as the stimulus, keyboard accepts F or J, and key scores the pressed key into the correct results column (lowercase key values, since a match that only succeeds ignoring case is recorded as unscored, not incorrect). Only type=test rows are saved to the results file.
The closing comment question is a form row again, so it becomes its own new page. Its button reads FINISH automatically, because it is the last page of the project; no button1 needed.
Variations
Section titled “Variations”- Constrain the age box to numbers by putting
type:number(ormin:18;max:99) in that row’sresponseOptions; the pairs are applied as input attributes. - Force the demographics to be answered by adding
requiredwith1on the two form rows. - Shuffle the word order by adding
randomwith1on the three test rows only, leaving every other row’s cell empty so the surrounding pages hold their positions. - Add unsaved warm-up trials by copying a test row and switching
typetopractice; it is scored for feedback but writes no results row.