<b>Tasks</b> We provide all four tasks from the paper here. Both have been written using Josh deLeeuw's jsPsych toolbox (http://www.jspsych.org/). These tasks require communication with a PHP server in order to run. You can do this by running them on your own domain, or by using a tool like XAMPP to run the PHP server locally. In order to save the data, you will need to be able to connect to a SQL database on your server. The code has some default names for the tables it stores data in (e.g., twostep_complexity_data, twostep_complexity_subinfo, twostep_complexity_subid), but feel free to change anything about the way the data storage is managed. <b>Data</b> We provide all the raw data for the four two-step paradigms in the paper, and the functions that are used to analyze them. These functions are written in Matlab. All processed behavioral data are stored in the groupdata.mat variables in each experiment's directory, and all model fitting results are saved in each experiment's subdirectories ('model', 'model_exhaustive', etc.). These groupdata variables can also be computed on the fly using the groupanalysis.m functions in each experiment's root folder. The maximum a posteriori model-fitting procedure can be run in the subdirectories of each experiment. These procedures require the mfit package developed by Sam Gershman, which can be found here: https://github.com/sjgershm/mfit The functions that fit the data to the RL models (wrapper.m) will take a long time to finish. This process can be sped up by breaking up these analyses and running them in parallel jobs on your institution's computing cluster, or by decreasing the number of iterations in the wrapper.m starting file. <b>Simulations</b> We provide the code used to estimate the reward control tradeoffs of Experiments 1 and 3, and the exact simulation data to generate Figure 4. These functions are written in Matlab. All simulation data are stored in the data.mat variables in each experiment's subfolders. Each of the two experiment's folders contain subfolders that match the type of simulation described in the main text (i.e., for the high-effort arm, for the low-effort arm, and separately for both stages of the high-effort arm). The functions that generate these simulation data are all named wrapper.m, and will finish running quickly. <b>Contact</b> If you have any questions, please do not hesitate to contact Wouter Kool (firstname.lastname@example.org).