Global and local variables are useful when you want to compute some variable from the participant's responses and store this variable for later use.

get_global(key, state)

set_global(key, value, state, allow_dots = FALSE)

get_local(key, state)

set_local(key, value, state, allow_dots = FALSE)

assert_global_is_null(key, state)



The variable's key (character scalar).


The participant's state object.


Value to set the variable to.


Set to TRUE to allow keys beginning with periods, which are typically reserved for internal use by psychTestR.


get_global and get_local return the respective variables with key equal to key, or NULL if the variable has yet to be defined.


You can set global or local variables within expressions that are run during the participant's testing session, for example in code blocks (code_block), or during on_complete functions (see page). The variable will be preserved for the duration of the participant's testing session until it is overwritten.

For tests without modules, global and local variables behave the same. The difference between local and global variables is that local variables are encapsulated within a given module (begin_module), and are wiped at the end of the module (end_module).

Use get_global and get_local to get variables. Use set_global and set_local to set them.

assert_global_is_null throws an error if the specified global variable is not NULL. This is useful to catch cases where the code would otherwise overwrite a pre-existing variable.