Hi everyone,
I’m building a study in Pavlovia Surveys and am having trouble implementing two pieces of survey logic.
I’m using a survey structure that consists of a flat list of pages. My version appears to generate syntax/compilation errors when I attempt to add blocks or page-level triggers directly in the JSON editor, so I’m looking for a solution that works within the standard survey/page framework.
1. Page-specific countdown timers
My survey contains approximately 20 pages.
I would like Pages 6–10 (a series of cognitive/scenario tasks) to each have their own 60-second countdown timer that:
- starts when the page loads,
- resets on each new page,
- automatically advances the participant when time expires.
I have successfully added a 60-second countdown timer to the pages I need, however I am also getting a clock that is timing the rest of the survey on all the other pages. I’m unsure how to scope the timer to a subset of pages while leaving the remainder of the survey untimed.
Additional information: I also experimented with placing the timed pages inside a separate block so the timer settings could be isolated from the rest of the survey. However, my survey editor does not appear to use the Flow interface shown in some examples. When I add a second block, participants complete the pages in the first block and then the survey ends rather than continuing to the next block. I’m not sure whether I’m misunderstanding how blocks are intended to work in my version of Pavlovia Surveys or whether additional configuration is required.
What is the recommended way to implement page-specific timers in Pavlovia Surveys?
Picture of my page interface:
2. One-time random assignment
After participants complete the timed tasks, they reach a loading/processing page.
At that point, I need to assign each participant to one of two conditions and store that assignment so it remains fixed for the remainder of the survey.
My intended flow is:
- Page 11: loading screen
- Generate a random value (1 or 2) once
- Store the value
- If value = 1 → show Page 12
- If value = 2 → show Page 13
- Both branches then continue to the same outcome measures
What I’ve tried
I created an Expression question using:
randInt(1, 2)
and then referenced that value in visibleIf logic.
However, it appears to be recalculated on subsequent page transitions, which causes participants to skip the condition pages or behave unpredictably.
I also tried placing randInt(1, 2) directly inside visibleIf expressions, but this appears to generate a new random value each time the condition is evaluated.
Questions
- Is there a way to generate a random value exactly once and store it as an embedded/survey variable?
- What is the recommended method for condition assignment in Pavlovia Surveys?
- How can I implement timers on only a subset of pages without affecting the rest of the survey?
Any examples, documentation links, or JSON snippets would be greatly appreciated.
Thanks,
Amanda



