'Are you sure?' popup based on the user's input Assign a player to the treatment with the fewest datapoints Assign players to groups defined in a CSV file Back button for multiple instructions pages Basic 1-player game (BMI calculator) Block mobile browsers Calculation based on user's input Chat implementation from scratch (easier to customize) Chat with experimenter Complex form layout Comprehension test (quiz you must pass to proceed) Comprehension test (simple version) Constant-sum input (3 numbers that add up to 100) Configurable players_per_group (doesn't work in demo mode) Count button clicks (hidden input) CSS to style timer and chat box Dropout detection for single-player game Dropout detection for multiplayer game (end game if has dropout) Experimenter input during the experiment (e.g. entering a random drawing) Factorial balanced treatment design getattr() to access numbered fields like player.num1, player.num2, ..., player.num9 group_by_arrival_time and group-level treatments group_by_arrival_time and group-level treatments (complex version) group by arrival time, but in each round assign to a new partner. group_by_arrival_time: Preserve same groups as a previous app that used group_by_arrival_time. group_by_arrival_time timeout (continue with solo task) History table Images in radio button choices Live volunteer's dilemma (first player to click moves everyone forward). Longitudinal study (2-part study taking place across days/weeks) Menu with an 'other' option that lets you type in a valueInput manually Minimum time on a page Multi-select widget (a.k.a. multiple choice / multiple answer) Multi-select widget (flexible version with custom labels & 'select at least N') Pass data between apps Pay a randomly selected app Pay a randomly selected round Persist raw HTML form inputs on reload (sliders, checkboxes, etc). Practice rounds Progress bar Quiz questions loaded from CSV spreadsheet + custom_export Quiz + post-quiz explanation. Re-display the previous page's form as read-only, with answers/explanation. Radio button table with single switching point (strategy method) Radio buttons in various layouts, looping over radio choices Random number of rounds Random number of rounds for multiplayer (random stopping rule) Randomize order of questions Randomize order of different tasks Rank players Rank/reorder form widget Ranking your top N choices from a list of options. Redirect the user to another website and pass their data Sandwich design (App A -> App B -> App A) Sequential game Sequential game (symmetric) Showing other players' decisions from previous rounds Slider with live updating label Slider that changes an image (e.g. happy to sad scale) Supergames consisting of multiple rounds each Timeout on a WaitPage (exit the experiment) Timeout spanning multiple pages Timer: replacing the default timer with your own Translate an app to multiple languages (e.g. English and German) Treatments defined in a spreadsheet Wait only for specific people
Recipes for common tasks in oTree