open-index/open-npm huggingface dataset:
npm package: @jspsych-contrib/plugin-rdk
Description: This plugin displays a Random Dot Kinematogram (RDK) and allows the subject to report the primary direction of motion by pressing a key on the keyboard.
Author: Josh de Leeuw
Latest version: 2.0.0

# rdk plugin

## Overview

This plugin displays a Random Dot Kinematogram (RDK) and allows the participant to report the primary direction of motion by pressing a key on the keyboard. The stimulus can be displayed until a keyboard response is given or until a certain duration of time has passed. The RDK is fully customizable (see documentation below) and can display multiple apertures at the same time, each with its own parameters.

## Loading

### In browser

```js
<script src="https://unpkg.com/@jspsych-contrib/plugin-rdk@2.0.0"></script>
```

### Via NPM

```
npm install @jspsych-contrib/plugin-rdk
```

```js
import jsPsychRdk from '@jspsych-contrib/plugin-rdk';
```

## Compatibility

jsPsych v8.0. For compatibility with jsPsych v7.0, use version 1.1.0 of this plugin.
## Documentation

See [documentation](docs/jspsych-rdk.md)

## Author / Citation

Created by [Sivananda Rajananda](https://github.com/vrsivananda), Hakwan Lau, and Brian Odegaard. Modified by the jsPsych core team for 7.0 compatibility.

We would appreciate it if you cited this paper when you use the RDK plugin.

Rajananda, S., Lau, H. & Odegaard, B., (2018). A Random-Dot Kinematogram for Web-Based Vision Research. *Journal of Open Research Software. 6*(1), p.6. doi:[10.5334/jors.194](http://doi.org/10.5334/jors.194)
npm package: @jspsych-contrib/plugin-rok
Description: This plugin displays a Random Object Kinematogram (ROK) and allows the participant to report the primary direction of motion or the primary orientation by pressing a key on the keyboard.
Author: Younes Strittmatter
Latest version: 2.0.0

# rok plugin

## Overview

This plugin displays oriented objects (oobs) that move and allows the participant to report the primary direction of motion or the primary orientation by pressing a key on the keyboard.  The stimulus can be displayed until a keyboard response is given or until a certain duration of time has passed. Oobs are objects that have an orientation (e.g. triangles).


## Loading

### In browser

```js
<script src="https://unpkg.com/@jspsych-contrib/plugin-rok@2.0.0"></script>
```

### Via NPM

```
npm install @jspsych-contrib/plugin-rok
```

```js
import jsPsychRok from '@jspsych-contrib/plugin-rok';
```

## Compatibility

jsPsych v8.0. For compatibility with jsPsych v7.0, use version 1.1.1 of this plugin.

## Documentation

See [documentation](docs/jspsych-rok.md)

## Author / Citation

Created by [Younes Strittmatter](https://github.com/younesStrittmatter).

We would appreciate it if you cited this paper when you use the ROK plugin.

Strittmatter, Y., Spitzer, M., & Kiesel, A. (2021, July 12). A Random-Object-Kinematogram Plugin for Web-Based Research: Implementing Oriented Objects Enables Varying Coherence Levels and Stimulus Congruency Levels. DOI: [10.31234/osf.io/hmq4u]
npm package: @jspsych-contrib/plugin-self-paced-reading
Description: jsPsych plugin for self paced reading paradigms.
Author: igmmgi
Latest version: 2.0.0

# SelfPacedReadingPlugin

## Overview

A jsPsych plugin for self-paced-reading paradigms.

## Loading

### In browser

```js
<script src="https://unpkg.com/@jspsych-contrib/plugin-self-paced-reading@2.0.0">
```

### Via NPM

```
npm install @jspsych-contrib/plugin-self-paced-reading
```

```js
import SelfPacedReadingPlugin from '@jspsych-contrib/plugin-self-paced-reading';
```

## Compatibility

jsPsych v7.0.0

## Documentation

See [documentation](docs/jspsych-self-paced-reading.md)

## Author / Citation

[igmmgi](https://github.com/igmmgi)  
[jessestorbeck](https://github.com/jessestorbeck)  
[jkhartshorne](https://github.com/jkhartshorne)
npm package: @jspsych-contrib/plugin-spatial-nback
Description: A jsPsych plugin for presenting a spatial grid stimulus, designed for spatial n-back tasks. The plugin displays a customizable grid, highlights a cell as the stimulus, and collects participant responses with optional feedback and instructions.
Author: A. Hunter Farhat
Latest version: 1.1.0

# jspsych-plugin-spatial-nback

## Overview

A jsPsych plugin for presenting a spatial grid stimulus, designed for spatial n-back tasks. The plugin displays a customizable grid, highlights a cell as the stimulus, and collects participant responses with optional feedback and instructions.

## Loading

**CDN:**
```html
<script src="https://unpkg.com/@jspsych-contrib/plugin-spatial-nback@1.1.0"></script>
```

**NPM:**
```sh
npm install @jspsych-contrib/plugin-spatial-nback
```
```js
import jsPsychSpatialNback from '@jspsych-contrib/plugin-spatial-nback';
```

## Compatibility

jsPsych v8.0

## Documentation

See the [full documentation](./docs/plugin-spatial-nback.md) for parameter details, usage examples, and integration instructions.

## Author / Citation

A. Hunter Farhat  
[GitHub](https://github.com/farhat60)  
[ORCID](https://orcid.org/0009-0008-7042-469X)
npm package: @jspsych-contrib/plugin-spr
Description: Self-paced reading trials using the DOM.
Author: jade
Latest version: 0.1.0

# spr

## Overview

This is a plugin built to conduct self-paced reading trials. It supports different reading modes including single-word mask and multi-word (hide/show). This package allows you to also customize the format of the text displayed by using CSS, and how many words display per key press.

### Why `plugin-spr` over `plugin-self-paced-reading`?
This plugin primarily works within the context of the DOM- allowing for a much more flexible usage of this plugin with respect to differing screen sizes. On the other hand, `plugin-self-paced-reading` primarily handles appearance via `<canvas>` elements, which are much more strict, appearing as the same for all screen sizes. However, `plugin-self-paced-reading` provides an easier way to customize the look of your plugin through parameters, while `plugin-spr`, outside of the parameters given, require you to inject CSS classes to better customize.

## Loading

### In browser

```js
<script src="https://unpkg.com/@jspsych-contrib/plugin-spr@0.1.0"></script>
```

### Via NPM

```
npm install @jspsych-contrib/plugin-spr
```

```js
import jsPsychSpr from '@jspsych-contrib/plugin-spr';
```

## Compatibility

jsPsych 8.0.0

## Documentation

See [documentation](https://github.com/jspsych/jspsych-contrib/blob/main/packages/plugin-spr/docs/jspsych-spr.md)

## Author / Citation

Initial sketch by [Victor Zhang](https://github.com/vzhang03). Full implementation by [jade](https://github.com/jadeddelta).
npm package: @jspsych-contrib/plugin-stop-signal
Description: This plugin supports showing an animation and collecting user response with buttons
Author: Becca Bogstad
Latest version: 0.1.0

# plugin-stop-signal

## Overview

This plugin supports the stop signal timeline. It shows a series of 1-2 images and collects user response with buttons. We recommend you use the timeline directly instead of this plugin. 

## Loading

### In browser

```js
<script src="https://unpkg.com/@jspsych-contrib/plugin-stop-signal@0.1.0"></script>
```

### Via NPM

```
npm install @jspsych-contrib/plugin-stop-signal
```

```js
import jsPsychStopSignal from '@jspsych-contrib/plugin-stop-signal';
```

## Compatibility

jsPsych 8.0.0

## Documentation

See [documentation](https://github.com/jspsych/jspsych-contrib/blob/main/packages/plugin-stop-signal/docs/jspsych-stop-signal.md)

## Author / Citation

This plugin was created by [Becca Bogstad](https://github.com/beccaTurtle) and [Josh de Leeuw](https://github.com/jodeleeuw).

It is based on the animation and image-button-response plugins.
npm package: @jspsych-contrib/plugin-survey-grid
Description: jsPsych plugin for gathering responses to questions on a likert scale in a grid format.
Author: Sam Zorowitz
Latest version: 1.0.0

# survey-grid

## Overview

Displays a set of questions with Likert scale responses on a grid. Participants respond by selecting a radio button. Includes passive detection of careless/insufficient effort responding via honeypot questions, response timing, straightlining, and zigzagging metrics.

## Loading

### In browser

```js
<script src="https://unpkg.com/@jspsych-contrib/plugin-survey-grid@1.0.0"></script>
```

### Via NPM

```
npm install @jspsych-contrib/plugin-survey-grid
```

```js
import jsPsychSurveyGrid from '@jspsych-contrib/plugin-survey-grid';
```

## Compatibility

jsPsych v8.0.

## Documentation

See [documentation](https://github.com/jspsych/jspsych-contrib/blob/main/packages/plugin-survey-grid/docs/jspsych-survey-grid.md)

## Author / Citation

Sam Zorowitz
npm package: @jspsych-contrib/plugin-survey-likert-sd
Description: Extention of the survey-likert plugin to enable the use of the SD method.
Author: Daiichiro Kuroki
Latest version: 1.0.0

# plugin-survey-likert-sd

## Overview

Extention of the survey-likert plugin to enable the use of the SD method.

## Loading

### In browser

```html
<script src="https://unpkg.com/@jspsych-contrib/plugin-survey-likert-sd">
```

### Via NPM

```
npm install @jspsych-contrib/plugin-survey-likert-sd
```

```js
import jsPsychSurveyLikertSd from "plugin-survey-likert-sd";
```

## Compatibility

`@jspsych-contrib/plugin-survey-likert-sd` requires jsPsych v8.0.0 or later.

## Documentation

See [documentation](https://github.com/jspsych/jspsych-contrib/packages/plugin-survey-likert-sd/docs/plugin-survey-likert-sd.md)

## Author / Citation

[Daiichiro Kuroki](https://github.com/kurokida)
npm package: @jspsych-contrib/plugin-survey-number
Description: This plugin displays a survey question and collects a numeric response.
Author: Josh de Leeuw
Latest version: 2.0.0

# survey-number

## Overview

Collects a number response in a text box

## Loading

### In browser

```js
<script src="https://unpkg.com/@jspsych-contrib/plugin-survey-number@2.0.0"></script>
```

### Via NPM

```
npm install @jspsych-contrib/plugin-survey-number
```

```js
import jsPsychSurveyNumber from '@jspsych-contrib/plugin-survey-number';
```

## Compatibility

jsPsych v8.0. For compatibility with jsPsych v7.0, use version 1.0.0 of this plugin.

## Documentation

See [documentation](https://github.com/jspsych/jspsych-contrib/blob/main/packages/plugin-survey-number/docs/jspsych-survey-number.md)

## Author / Citation

Josh de Leeuw
npm package: @jspsych-contrib/plugin-survey-slider
Description: Add several analogue scales on the same page for use in questionnaires.
Author: Dominique Makowski
Latest version: 2.0.0

# survey-slider

## Overview

Add several analogue scales on the same page for use in questionnaires. 

Porting of existing code by Dominique Makowski here: https://github.com/RealityBending/JSmisc/blob/main/jspsych_extensions/plugin-survey-slider.js 
to jspsych-contrib by Max Lovell

## Loading

### In browser

```js
<script src="https://unpkg.com/@jspsych-contrib/plugin-survey-slider@2.0.0"></script>
```

### Via NPM

```
npm install @jspsych-contrib/plugin-survey-slider
```

```js
import jsPsychSurveySlider from '@jspsych-contrib/plugin-survey-slider';
```

## Compatibility

jsPsych v8.0. For compatibility with jsPsych v7.0, use version 1.0.0 of this plugin.

## Documentation

See [documentation](https://github.com/jspsych/jspsych-contrib/blob/main/packages/plugin-survey-slider/docs/jspsych-survey-slider.md)

## Author / Citation

Dominique Makowski
npm package: @jspsych-contrib/plugin-survey-vas
Description: This plugin displays a series of questions with point-and-click visual analogue scales.
Author: Isaac Kinley
Latest version: 1.0.0

# survey-vas

## Overview

This plugin displays a series of questions with point-and-click visual analogue scales.

## Loading

```js
<script src="https://unpkg.com/@jspsych-contrib/plugin-survey-vas@1.0.0"></script>
```

## Compatibility

jsPsych v8.0.

## Documentation

See [documentation](docs/jspsych-survey-vas.md)

## Author / Citation

Created by [Isaac Kinley](https://github.com/kinleyid)

Citation:

Kinley, I. (2022, March 7). "A jsPsych plugin for visual analogue scales." Retrieved from https://psyarxiv.com/avj92. DOI: 10.31234/osf.io/avj92
npm package: @jspsych-contrib/plugin-tower-of-london
Description: A jsPsych plugin for Tower of London/Hanoi style puzzle tasks. Participants move colored balls between pegs to match a goal configuration.
Author: Josh de Leeuw
Latest version: 1.0.0

# plugin-plugin-tower

## Overview

A jsPsych plugin for Tower of London/Hanoi style puzzle tasks. Participants move colored balls between pegs to match a goal configuration.

## Loading

### In browser

```html
<script src="https://unpkg.com/@jspsych-contrib/plugin-plugin-tower">
```

### Via NPM

```
npm install @jspsych-contrib/plugin-plugin-tower
```

```js
import jsPsychPluginTower from "plugin-plugin-tower";
```

## Compatibility

`@jspsych-contrib/plugin-plugin-tower` requires jsPsych v8.0.0 or later.

## Documentation

See [documentation](https://github.com/jspsych/jspsych-contrib/packages/plugin-plugin-tower/README.md)

## Author / Citation

[Josh de Leeuw](https://github.com/jodeleeuw)
npm package: @jspsych-contrib/plugin-trail-making
Description: A jsPsych plugin for the Trail Making Test (TMT), where participants connect circles in sequence. Supports Part A (numbers only) and Part B (alternating numbers and letters).
Author: Josh de Leeuw
Latest version: 0.2.0

# plugin-trail-making

A jsPsych plugin for the Trail Making Test (TMT), a neuropsychological test of visual attention and task switching. Participants connect circles in sequence as quickly as possible.

- **Part A:** Connect numbers in order (1-2-3-4...)
- **Part B:** Alternate between numbers and letters (1-A-2-B-3-C...)

## Loading

### In browser

```html
<script src="https://unpkg.com/@jspsych-contrib/plugin-trail-making"></script>
```

### Via NPM

```
npm install @jspsych-contrib/plugin-trail-making
```

```js
import jsPsychTrailMaking from "@jspsych-contrib/plugin-trail-making";
```

## Compatibility

`@jspsych-contrib/plugin-trail-making` requires jsPsych v8.0.0 or later.

## Documentation

See the [documentation](docs/plugin-trail-making.md) for parameters, data output, and usage examples.

## Author

[Josh de Leeuw](https://github.com/jodeleeuw)
npm package: @jspsych-contrib/plugin-video-hotspots
Description: A plugin for displaying a video that freezes on the final frame with clickable hotspots
Author: Josh de Leeuw
Latest version: 1.1.0

# plugin-video-hotspots

## Overview

A plugin for displaying a video that freezes on the final frame with clickable regions (hotspots). This plugin allows researchers to present a video to participants and define rectangular regions on the final frame that can be clicked like buttons. When a region is clicked or touched, visual feedback is provided and the trial records which region was selected along with response time and click coordinates.

## Loading

### In browser

```js
<script src="https://unpkg.com/@jspsych-contrib/plugin-video-hotspots@1.1.0"></script>
```

### Via NPM

```
npm i @jspsych-contrib/plugin-video-hotspots
```

```js
import jsPsychVideoHotspots from '@jspsych/plugin-video-hotspots';
```

## Compatibility

`plugin-video-hotspots` requires jsPsych v8.0.0 or later.

## Documentation

See [documentation](/packages/plugin-video-hotspots/docs/plugin-video-hotspots.md)

## Author / Citation

Claude
npm package: @jspsych-contrib/plugin-video-several-keyboard-responses
Description: jsPsych plugin for playing a video file and getting several keyboard responses
Author: Maria Emine Nylund
Latest version: 3.0.0

# plugin-video-several-keyboard-responses

## Overview

This plugin plays a video and records responses generated by the keyboard, based on [plugin-video-keyboard-response](https://www.jspsych.org/latest/plugins/video-keyboard-response). The stimulus can be displayed until the end or for a pre-determined amount of time. In addition to responses and response times, the video time is saved when a response is given using a keyboard.

## Loading

### In browser

```js
<script src="https://unpkg.com/@jspsych-contrib/plugin-video-several-keyboard-responses@3.0.0"></script>
```

### Via NPM

```
npm install @jspsych-contrib/plugin-video-several-keyboard-responses
```

```js
import jsPsychVideoSeveralKeyboardResponses from '@jspsych-contrib/plugin-video-several-keyboard-responses';
```

## Compatibility

jsPsych v8.0. For compatibility with jsPsych v7.3+, use version 2.0.0 of this plugin.

## Documentation

See [documentation](docs/jspsych-video-several-keyboard-responses.md)

## Author / Citation

This plugin was created by [marianylund](https://github.com/marianylund) with support from the [Department of Psychology](https://www.sv.uio.no/psi/english/index.html) at the University of Oslo.
npm package: @jspsych-contrib/plugin-visual-search-click-target
Description: Visual search trial with click response
Author: Josh de Leeuw
Latest version: 0.2.0

# plugin-visual-search-click-target

## Overview

Displays a set of images in a random scatter pattern along with an "Absent" button. The participant clicks on a target image or the "Absent" button if no target is present. This plugin is designed for visual search experiments where the response is a mouse click on the identified target.

## Loading

### Using CDN

```html
<script src="https://unpkg.com/@jspsych-contrib/plugin-visual-search-click-target"></script>
```

### Using NPM

```
npm install @jspsych-contrib/plugin-visual-search-click-target
```

```javascript
import jsPsychVisualSearchClickTarget from '@jspsych-contrib/plugin-visual-search-click-target';
```

## Compatibility

`@jspsych-contrib/plugin-visual-search-click-target` requires jsPsych v8.0.0 or later.

## Documentation

See [documentation](https://github.com/jspsych/jspsych-contrib/tree/main/packages/plugin-visual-search-click-target/docs/plugin-visual-search-click-target.md)

## Author / Citation

Josh de Leeuw
npm package: @jspsych-contrib/plugin-vsl-animate-occlusion
Description: he VSL (visual statistical learning) animate occlusion plugin displays an animated sequence of shapes that disappear behind an occluding rectangle while they change from one shape to another.
Author: Josh de Leeuw
Latest version: 2.0.0

# vsl-animate-occlusion plugin

## Overview

The VSL (visual statistical learning) animate occlusion plugin displays an animated sequence of shapes that disappear behind an occluding rectangle while they change from one shape to another. This plugin can be used to replicate the experiments described in:

Fiser, J., & Aslin, R. N. (2002). Statistical learning of higher-order temporal structure from visual shape sequences. *Journal of Experimental Psychology: Learning, Memory, and Cognition, 28*(3), 458.

## Loading

### In browser

```js
<script src="https://unpkg.com/snapsvg@0.5.1/dist/snap.svg-min.js"></script>
<script src="https://unpkg.com/@jspsych-contrib/plugin-vsl-animate-occlusion@2.0.0"></script>
```

### Via NPM

```
npm install @jspsych-contrib/plugin-vsl-animate-occlusion
```

```js
import jsPsychVslAnimateOcclusion from '@jspsych-contrib/plugin-vsl-animate-occlusion';
```

## Compatibility

jsPsych v8.0. For compatibility with jsPsych v7.0, use version 1.0.0 of this plugin.

## Documentation

See [documentation](docs/jspsych-vsl-animate-occlusion.md)

## Author / Citation

This plugin was created as part of the core jsPsych codebase, but moved to jspsych-contrib because of its specialized nature. There is no additional citation for its use.
npm package: @jspsych-contrib/plugin-vsl-grid-scene
Description: The VSL (visual statistical learning) grid scene plugin displays images arranged in a grid.
Author: Josh de Leeuw
Latest version: 2.0.0

# vsl-grid-scene plugin

## Overview

The VSL (visual statistical learning) grid scene plugin displays images arranged in a grid. This plugin can be used to replicate the experiments described in:

Fiser, J., & Aslin, R. N. (2001). Unsupervised statistical learning of higher-order spatial structures from visual scenes. *Psychological Science, 12*(6), 499-504.

## Loading

### In browser

```js
<script src="https://unpkg.com/@jspsych-contrib/plugin-vsl-grid-scene@2.0.0"></script>
```

### Via NPM

```
npm install @jspsych-contrib/plugin-vsl-grid-scene
```

```js
import jsPsychVslGridScene from '@jspsych-contrib/plugin-vsl-grid-scene';
```

## Compatibility

jsPsych v8.0. For compatibility with jsPsych v7.0, use version 1.0.0 of this plugin.

## Documentation

See [documentation](docs/jspsych-vsl-grid-scene.md)

## Author / Citation

This plugin was created as part of the core jsPsych codebase, but moved to jspsych-contrib because of its specialized nature. There is no additional citation for its use.
npm package: @jspsych-timelines/arrow-flanker
Description: Arrow flanker task for jsPsych
Author: Josh de Leeuw
Latest version: 0.2.0

# arrow-flanker

## Overview

This timeline shows a sequence of arrow flanker trials. Participants are supposed to respond to the arrow in the middle of the screen and ignore the flankers. Half of the trials will be congruent (flankers match the target) and half incongruent. 

## Functions

### `createTimeline`

### `timelineUnits`

### `utils`
npm package: @jspsych-timelines/bart
Description: Balloon Analog Risk Task for jsPsych
Author: Caroline Griem
Latest version: 0.1.0

# bart

## Overview

Balloon Analog Risk Task

## Loading

_Enter instructions for loading the timeline package here._

## Compatibility

`bart` requires jsPsych v8.0.0 or later.

## Documentation

### createTimeline

#### jsPsychTimelineBart.createTimeline(jsPsych, { _options_ }) ⇒ <code>timeline</code>

Description of the timeline that this plugin generates

The following parameters can be specified in the **options** parameter.

| Parameter | Type | Default | Description |
| --------- | ---- | ------- | ----------- |
| parameter | type | default | description |

### timelineUnits

### utils

## Author / Citation

Caroline Griem
npm package: @jspsych-timelines/columbia-card
Description: The Columbia Card Task measures risk preferences through choices in a card game.
Author: A. Hunter Farhat
Latest version: 0.1.0

# columbia-card

## Overview

The Columbia Card Task measures risk preferences through choices in a card game.

## Loading

### In browser

```html
<script src="https://unpkg.com/@jspsych-timelines/columbia-card">
```

### Via NPM

```
npm install @jspsych-timelines/columbia-card
```

```js
import { createTimeline, timelineUnits, utils } from "@jspsych-timelines/columbia-card"
```

## Compatibility

`@jspsych-timelines/columbia-card` requires jsPsych v8.0.0 or later.

## Documentation

### createTimeline

#### jsPsychTimelineColumbiaCard.createTimeline(jsPsych, { *options* }) ⇒ <code>timeline</code>
Generates a complete Columbia Card Task timeline including instructions, practice, main trials, block breaks, and debrief.

The following parameters can be specified in the **options** parameter.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| show_instructions | boolean | false | Whether to include instructions at the start |
| show_practice | boolean | false | Whether to include practice rounds |
| num_blocks | number | 3 | Number of experimental blocks |
| num_trials | number | 5 | Number of trials per block |
| show_debrief | boolean | false | Whether to show debrief at the end |
| show_block_summary | boolean | true | Whether to show points summary between blocks |
| num_cards | number | 32 | Number of cards in the grid |
| num_loss_cards | number | 3 | Number of loss cards |
| grid_columns | number | 8 | Number of columns in card grid |
| card_width | number | 60 | Card width in pixels |
| card_height | number | 80 | Card height in pixels |
| flip_duration | number | 300 | Card flip animation duration in ms |
| loss_value | number | -250 | Points lost per loss card |
| gain_value | number | 10 | Points gained per gain card |
| starting_score | number | 0 | Starting score for each trial |
| practice_num_cards | number | 16 | Cards in practice rounds |
| practice_num_loss_cards | number | 2 | Loss cards in practice |
| practice_gain_value | number | 5 | Points gained in practice |
| practice_loss_value | number | -50 | Points lost in practice |
| text_object | object | trial_text | Text configuration object |


### timelineUnits


### utils

## Author / Citation

A. Hunter Farhat
npm package: @jspsych-timelines/false-memory
Description: False memory task for jsPsych
Author: Cherrie Chang
Latest version: 0.2.0

# false-memory

## Overview

A timeline for the generic DRM false memory task

## Loading

### In browser

```html
<script src="https://unpkg.com/@jspsych-timelines/false-memory">
```

### Via NPM

```
npm install @jspsych-timelines/false-memory
```

```js
import { createTimeline, timelineUnits, utils } from "@jspsych-timelines/false-memory"
```

## Compatibility

`@jspsych-timelines/false-memory` requires jsPsych v7.0.0 or later.

## Documentation

### createTimeline

#### jsPsychTimelineFalseMemoryTask.createTimeline(jsPsych, { _options_ }) ⇒ <code>timeline</code>

Description of the timeline that this plugin generates

The following parameters can be specified in the **options** parameter.

| Parameter | Type | Default | Description |
| --------- | ---- | ------- | ----------- |
| parameter | type | default | description |

### timelineUnits

### utils

## Author / Citation

Cherrie Chang
npm package: @jspsych-timelines/false-memory-task
Description: False memory task for jsPsych
Author: Cherrie Chang
Latest version: 0.1.0

# false-memory-task

## Overview

A timeline for the generic DRM false memory task

## Loading

### In browser

```html
<script src="https://unpkg.com/@jspsych-timelines/false-memory-task">
```

### Via NPM

```
npm install @jspsych-timelines/false-memory-task
```

```js
import { createTimeline, timelineUnits, utils } from "@jspsych-timelines/false-memory-task"
```

## Compatibility

`@jspsych-timelines/false-memory-task` requires jsPsych v7.0.0 or later.

## Documentation

### createTimeline

#### jsPsychTimelineFalseMemoryTask.createTimeline(jsPsych, { _options_ }) ⇒ <code>timeline</code>

Description of the timeline that this plugin generates

The following parameters can be specified in the **options** parameter.

| Parameter | Type | Default | Description |
| --------- | ---- | ------- | ----------- |
| parameter | type | default | description |

### timelineUnits

### utils

## Author / Citation

Cherrie Chang
npm package: @jspsych-timelines/spatial-cueing
Description: A shareable timeline of the Posner spatial cueing task.
Author: Cherrie Chang
Latest version: 0.2.0

# spatial-cueing

## Overview

A shareable timeline of the Posner spatial cueing task.

## Loading

### In browser

```html
<script src="https://unpkg.com/@jspsych-timelines/spatial-cueing">
```

### Via NPM

```
npm install @jspsych-timelines/spatial-cueing
```

```js
import { createTimeline, timelineUnits, utils } from "@jspsych-timelines/spatial-cueing"
```

## Compatibility

`@jspsych-timelines/spatial-cueing` requires jsPsych v7.0.0 or later.

## Documentation

### createTimeline

#### jsPsychTimelineSpatialCueingTask.createTimeline(jsPsych, { *options* }) ⇒ <code>timeline</code>
Description of the timeline that this plugin generates

The following parameters can be specified in the **options** parameter.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| parameter | type | default | description |


### timelineUnits


### utils

## Author / Citation

Cherrie
npm package: @jspsych-timelines/spatial-cueing-task
Description: A shareable timeline of the Posner spatial cueing task.
Author: Cherrie Chang
Latest version: 0.1.0

# spatial-cueing-task

## Overview

A shareable timeline of the Posner spatial cueing task.

## Loading

### In browser

```html
<script src="https://unpkg.com/@jspsych-timelines/spatial-cueing-task">
```

### Via NPM

```
npm install @jspsych-timelines/spatial-cueing-task
```

```js
import { createTimeline, timelineUnits, utils } from "@jspsych-timelines/spatial-cueing-task"
```

## Compatibility

`@jspsych-timelines/spatial-cueing-task` requires jsPsych v7.0.0 or later.

## Documentation

### createTimeline

#### jsPsychTimelineSpatialCueingTask.createTimeline(jsPsych, { *options* }) ⇒ <code>timeline</code>
Description of the timeline that this plugin generates

The following parameters can be specified in the **options** parameter.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| parameter | type | default | description |


### timelineUnits


### utils

## Author / Citation

Cherrie
npm package: @jspsych-timelines/test
Description: test
Author: me
Latest version: 0.1.0

# test

## Overview

test

## Loading

### In browser

```html
<script src="https://unpkg.com/@jspsych-timelines/test">
```

### Via NPM

```
npm install @jspsych-timelines/test
```

```js
import { createTimeline, timelineUnits, utils } from "@jspsych-timelines/test"
```

## Compatibility

`@jspsych-timelines/test` requires jsPsych v7.0.0 or later.

## Documentation

### createTimeline

#### jsPsychTimelineTest.createTimeline(jsPsych, { *options* }) ⇒ <code>timeline</code>
Description of the timeline that this plugin generates

The following parameters can be specified in the **options** parameter.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| parameter | type | default | description |


### timelineUnits


### utils

## Author / Citation

me
npm package: @jspsych/extension-record-video
Description: jsPsych extension for recording video
Author: Josh de Leeuw
Latest version: 1.2.0

![jspsych logo](http://www.jspsych.org/7.0/img/jspsych-logo.jpg)

jsPsych is a JavaScript framework for creating behavioral experiments that run in a web browser.

## Extension Description

The record-video extension records video from the participant's webcam during a trial, storing it in base 64 format. This is a text-based representation of the video which can be converted into others.

## Examples

Several example experiments and plugin demonstrations are available in the `/examples` folder.
After you've downloaded the [latest release](https://github.com/jspsych/jsPsych/releases), double-click on an example HTML file to run it in your web browser, and open it with a programming-friendly text editor to see how it works.

## Documentation

Documentation for this extension is available [here](https://www.jspsych.org/latest/extensions/record-video).

## Getting help

For questions about using the library, please use the GitHub [discussions forum](https://github.com/jspsych/jsPsych/discussions).
You can also browse through the history of Q&A on the forum to find related questions.

## Contributing

We :heart: contributions!
See the [contributing to jsPsych](https://www.jspsych.org/latest/developers/contributing/) documentation page for more information about how you can help.

## Citation

If you use this library in academic work, the preferred citation is:

de Leeuw, J.R., Gilbert, R.A., & Luchterhandt, B. (2023). jsPsych: Enabling an open-source collaborative ecosystem of behavioral experiments. *Journal of Open Source Software*, *8*(85), 5351, [https://joss.theoj.org/papers/10.21105/joss.05351](https://joss.theoj.org/papers/10.21105/joss.05351).

This paper is an updated description of jsPsych and includes all current core team members. It replaces the earlier paper that described jsPsych:

de Leeuw, J.R. (2015). jsPsych: A JavaScript library for creating behavioral experiments in a Web browser. *Behavior Research Methods*, _47_(1), 1-12. doi:[10.3758/s13428-014-0458-y](http://link.springer.com/article/10.3758%2Fs13428-014-0458-y)

Citations help us demonstrate that this library is used and valued, which allows us to continue working on it.

## Contributors

jsPsych is open source project with [numerous contributors](https://github.com/jspsych/jsPsych/graphs/contributors).
The project is currently managed by the core team of Josh de Leeuw ([@jodeleeuw](https://github.com/jodeleeuw)), Becky Gilbert ([@becky-gilbert](https://github.com/becky-gilbert)), and Björn Luchterhandt ([@bjoluc](https://github.com/bjoluc)).

jsPsych was created by [Josh de Leeuw](http://www.twitter.com/joshdeleeuw).

We're also grateful for the generous support from a [Mozilla Open Source Support award](https://www.mozilla.org/en-US/moss/), which funded development of the library from 2020-2021.
npm package: @jspsych/extension-webgazer
Description: jsPsych extension for eye tracking using WebGazer.js
Author: Josh de Leeuw
Latest version: 1.2.0

![jspsych logo](http://www.jspsych.org/7.0/img/jspsych-logo.jpg)

jsPsych is a JavaScript framework for creating behavioral experiments that run in a web browser.

## Extension Description

The webgazer extension supports eye tracking through the [Webgazer](https://webgazer.cs.brown.edu/) library. For examples of how to use this extension, see the [eyetracking overview](https://www.jspsych.org/latest/overview/eye-tracking/).

## Examples

Several example experiments and plugin demonstrations are available in the `/examples` folder.
After you've downloaded the [latest release](https://github.com/jspsych/jsPsych/releases), double-click on an example HTML file to run it in your web browser, and open it with a programming-friendly text editor to see how it works.

## Documentation

Documentation for this extension is available [here](https://www.jspsych.org/latest/extensions/webgazer).

## Getting help

For questions about using the library, please use the GitHub [discussions forum](https://github.com/jspsych/jsPsych/discussions).
You can also browse through the history of Q&A on the forum to find related questions.

## Contributing

We :heart: contributions!
See the [contributing to jsPsych](https://www.jspsych.org/latest/developers/contributing/) documentation page for more information about how you can help.

## Citation

If you use this library in academic work, the preferred citation is:

de Leeuw, J.R., Gilbert, R.A., & Luchterhandt, B. (2023). jsPsych: Enabling an open-source collaborative ecosystem of behavioral experiments. *Journal of Open Source Software*, *8*(85), 5351, [https://joss.theoj.org/papers/10.21105/joss.05351](https://joss.theoj.org/papers/10.21105/joss.05351).

This paper is an updated description of jsPsych and includes all current core team members. It replaces the earlier paper that described jsPsych:

de Leeuw, J.R. (2015). jsPsych: A JavaScript library for creating behavioral experiments in a Web browser. *Behavior Research Methods*, _47_(1), 1-12. doi:[10.3758/s13428-014-0458-y](http://link.springer.com/article/10.3758%2Fs13428-014-0458-y)

Citations help us demonstrate that this library is used and valued, which allows us to continue working on it.

## Contributors

jsPsych is open source project with [numerous contributors](https://github.com/jspsych/jsPsych/graphs/contributors).
The project is currently managed by the core team of Josh de Leeuw ([@jodeleeuw](https://github.com/jodeleeuw)), Becky Gilbert ([@becky-gilbert](https://github.com/becky-gilbert)), and Björn Luchterhandt ([@bjoluc](https://github.com/bjoluc)).

jsPsych was created by [Josh de Leeuw](http://www.twitter.com/joshdeleeuw).

We're also grateful for the generous support from a [Mozilla Open Source Support award](https://www.mozilla.org/en-US/moss/), which funded development of the library from 2020-2021.
npm package: @jspsych/new-extension
Description: CLI tool to create new jsPsych extensions
Author: jsPsych Contributors
Latest version: 0.2.2

# `@jspsych/new-extension`
This package allows you to start building an extension in any directory by simply running `npx @jspsych/new-extension` from the command line.

You will be prompted to enter a name for your extension, a description, the name of the author, an optional link to the author's GitHub profile, the preferred language (TypeScript or JavaScript) for your extension, and an optional link to a `README.md` file for your extension. Your template package containing boilerplate code will then be automatically generated in your current working directory.

> [!NOTE]
> If you are running this command in the jspsych-contrib repository, you will not be prompted to enter a `README.md` link. It will be generated automatically, and your template package will also be automatically generated under the `./packages` folder.

In the generated package, you will find a `./docs` folder containing a markdown file for you to fill in technical information about your extension, e.g. additional parameters it takes in and the data it generates. You will also find an `./examples` folder where you can write simple scripts to demonstrate the functionality your extension provides. The file that contains your actual extension code should be the `index.js` file under the `./src` folder. Lastly, we also provide a `package.json` for you to list metadata about your extension so that it can be easily published to a registry like `npm`, a `README.md` and a `CITATION.cff` file. If you plan to publish your extension, we highly recommend filling out the `CITATION.cff` file as it allows your extension's users to easily cite your extension.
npm package: @jspsych/new-plugin
Description: CLI tool to create new jsPsych plugins
Author: jsPsych Contributors
Latest version: 0.3.2

# `@jspsych/new-plugin`
This package allows you to start building a plugin in any directory by simply running `npx @jspsych/new-plugin` from the command line.

You will be prompted to enter a name for your plugin, a description, the name of the author, an optional link to the author's GitHub profile, the preferred language (TypeScript or JavaScript) for your plugin, and an optional link to a `README.md` file for your plugin. Your template package containing boilerplate code will then be automatically generated in your current working directory.

> [!NOTE]
> If you are running this command in the jspsych-contrib repository, you will not be prompted to enter a `README.md` link. It will be generated automatically, and your template package will also be automatically generated under the `./packages` folder.

In the generated package, you will find a `./docs` folder containing a markdown file for you to fill in technical information about your plugin, e.g. additional parameters it takes in and the data it generates. You will also find an `./examples` folder where you can write simple scripts to demonstrate the functionality your plugin provides. The file that contains your actual plugin code should be the `index.js` file under the `./src` folder. Lastly, we also provide a `package.json` for you to list metadata about your plugin so that it can be easily published to a registry like `npm`, a `README.md` and a `CITATION.cff` file. If you plan to publish your plugin, we highly recommend filling out the `CITATION.cff` file as it allows your plugin's users to easily cite your plugin.
npm package: @jspsych/new-pwa
Description: Create offline-capable jsPsych PWA experiments
Author: jsPsych contributors
Latest version: 0.4.3

# @jspsych/new-pwa

CLI tool for creating offline-capable jsPsych experiments that work on tablets without internet connectivity.

## Usage

Create a new experiment:

```bash
npx @jspsych/new-pwa
```

The tool will prompt you for:

- **Experiment title**: Human-readable name
- **Template**: CDN (no build) or Build (TypeScript)

## Templates

### CDN Template

- ✅ No build step required
- ✅ Plain JavaScript
- ✅ CDN imports for all dependencies
- ✅ Works offline after first visit
- ✅ Easy to modify and deploy

Perfect for researchers who want simplicity.

### Build Template

- ✅ TypeScript support
- ✅ Vite build system
- ✅ npm package management
- ✅ Optimized production bundles
- ✅ Type checking

Perfect for developers who want full control.

## Workflow

1. **Create GitHub repo** and clone it
2. **Run CLI** in the repo directory: `npx @jspsych/new-pwa`
3. **Test locally**: `npm run dev`
4. **Deploy**: Push to GitHub and enable GitHub Pages
5. **Install on tablets**: Visit URL and "Add to Home Screen"

Both templates include:

- GitHub Actions workflow for automatic deployment
- PWA manifest for installability
- Service worker for offline functionality
- Admin interface for data management (`/admin`)
- jsPsych logo icons

## Project Structure

**CDN Template:**

```
my-experiment/
├── experiment.js        # Main experiment
├── index.html
├── manifest.json
├── admin/              # Data manager (/admin)
├── service/            # Service worker
└── .github/workflows/  # Auto-deploy
```

**Build Template:**

```
my-experiment/
├── src/
│   ├── experiment.ts
│   └── admin.ts
├── public/
│   ├── index.html
│   ├── admin.html
│   └── manifest.json
├── vite.config.js
└── .github/workflows/
```

## Features

- 📱 Progressive Web App - Installable on tablets
- 💾 Offline storage - Data persists locally
- 📊 Data manager - Export CSV, JSON, or ZIP
- 🚀 Auto-deploy - GitHub Actions included
- 🎨 jsPsych branding - Logo icons included

## Requirements

- Node.js 18+
- Git (for deployment workflow)
- GitHub account (for hosting)

## Documentation

- [Getting Started Guide](https://github.com/jspsych/offline-pwa/blob/main/docs/getting-started.md)
- [Deployment Guide](https://github.com/jspsych/offline-pwa/blob/main/docs/deployment.md)
- [Full Documentation](https://github.com/jspsych/offline-pwa)

## License

MIT
npm package: @jspsych/new-timeline
Description: CLI tool for creating new jsPsych timelines
Author: jsPsych Contributors
Latest version: 0.3.2

# `@jspsych/new-timeline`
This package allows you to start building a timeline in any directory by simply running `npx @jspsych/new-timeline` from the command line.

You will be prompted to enter a name for your timeline, a description, the name of the author, an optional link to the author's GitHub profile, the preferred language (TypeScript or JavaScript) for your timeline, and an optional link to a `README.md` file for your timeline. Your template package containing boilerplate code will then be automatically generated in your current working directory.


> [!NOTE]
> If you are running this command in the jspsych-timelines repository, you will not be prompted to enter a `README.md` link. It will be generated automatically, and your template package will also be automatically generated under the `./packages` folder.

In the generated package, you will find a `./docs` folder containing a markdown file for you to fill in technical information about your timeline, e.g. additional parameters it takes in and the data it generates. You will also find an `./examples` folder where you can write simple scripts to demonstrate the functionality your timeline provides. The file that contains your actual timeline code should be the `index.js` file under the `./src` folder. Lastly, we also provide a `package.json` for you to list metadata about your timeline so that it can be easily published to a registry like `npm`, a `README.md` and a `CITATION.cff` file. If you plan to publish your timeline, we highly recommend filling out the `CITATION.cff` file as it allows your timeline's users to easily cite your timeline.
npm package: @jspsych/offline-storage
Description: Offline data storage for jsPsych experiments
Author: jsPsych contributors
Latest version: 0.4.0

# @jspsych/offline-storage

Offline data storage for jsPsych experiments using IndexedDB.

## Installation

```bash
npm install @jspsych/offline-storage jspsych
```

## Usage

```javascript
import { initJsPsychOffline } from "@jspsych/offline-storage";

const jsPsych = await initJsPsychOffline({
  // Standard jsPsych options
  timeline: myTimeline,

  // Optional offline configuration
  offline: {
    dbName: "my-experiment",
    sessionMetadata: {
      experimentVersion: "1.0.0",
      condition: "control",
    },
    typicalSessionSize: 2 * 1024 * 1024, // 2MB
  },
});

await jsPsych.run(timeline);
```

## Features

- **Automatic data persistence**: Trial data automatically saved to IndexedDB after each trial
- **Session management**: Track multiple experiment sessions with metadata
- **Data export**: Export data in CSV, JSON, or ZIP formats
- **Storage warnings**: Automatic alerts when device storage is low
- **Built-in data manager**: UI for viewing, exporting, and managing collected data

## API

### `initJsPsychOffline(options)`

Initializes jsPsych with offline storage capabilities. Returns a jsPsych instance with an additional `offline` property.

**Parameters:**

- `options.offline.dbName` - Custom database name (default: "jspsych-offline")
- `options.offline.sessionMetadata` - Metadata to store with session
- `options.offline.autoShowCompletionScreen` - Show completion screen after experiment (default: true)
- `options.offline.typicalSessionSize` - Expected session size in bytes for storage warnings (default: 1MB)

**Returns:** `JsPsychOffline` instance with `offline` API

### `jsPsych.offline`

Access offline data management methods:

- `sessionId` - Current session ID
- `getSessionCount()` - Get total number of sessions
- `getCompletedSessionCount()` - Get number of completed sessions
- `getAllSessions()` - Get all session records
- `deleteSession(sessionId)` - Delete a specific session
- `clearAllData()` - Delete all sessions and data
- `exportAll(format)` - Export all data ('csv', 'json', or 'zip')
- `getStorageEstimate()` - Get storage usage information
- `checkStorageWarning()` - Check if storage is running low
- `showCompletionScreen()` - Display completion screen
- `showDataManager()` - Navigate to data manager interface

## Data Structure

Data is stored in IndexedDB with two object stores:

- **sessions**: Session metadata (ID, start/end time, trial count, completion status)
- **trials**: Individual trial data (session ID, trial index, timestamp, data)

## Documentation

- [Full Documentation](https://github.com/jspsych/offline-pwa)
- [API Reference](https://github.com/jspsych/offline-pwa/blob/main/docs/api-reference.md)
- [Deployment Guide](https://github.com/jspsych/offline-pwa/blob/main/docs/deployment.md)

## License

MIT