appcopy: Sandwich design (App A -> App B -> App A) are_you_sure: 'Are you sure?' popup based on the user's input audio_alert: Audio alert (speak some text to get the participant's attention, after a wait page) back_button: Back button for multiple instructions pages balance_treatments_for_dropouts: Assign a player to the treatment with the fewest datapoints bmi_calculator: Basic 1-player game (BMI calculator) chat_from_scratch: Chat implementation from scratch (easier to customize) complex_form_layout: Complex form layout comprehension_test_complex: Comprehension test (quiz you must pass to proceed) comprehension_test_simple: Comprehension test (simple version) configurable_players_per_group: Configurable players_per_group (doesn't work in demo mode) constant_sum: Constant-sum input (3 numbers that add up to 100) count_button_clicks: Count button clicks css: CSS to style timer and chat box custom_export_groups: custom_export: 1 row for each group detect_mobile: Block mobile browsers dropout_detection: Dropout detection for single-player game dropout_end_game: Dropout detection for multiplayer game (end game if has dropout) experimenter_input: Experimenter input during the experiment (e.g. entering a random drawing) factorial_treatments: Factorial balanced treatment design gbat_fallback_smaller_group: group_by_arrival_time: fall back to a smaller group if not enough people show up gbat_fallback_solo_task: group_by_arrival_time: skip the multiplayer task if no other players show up gbat_keep_same_groups: group_by_arrival_time: Preserve same groups as a previous app that used group_by_arrival_time. gbat_new_partners: group by arrival time, but in each round assign to a new partner. gbat_treatments: group_by_arrival_time and group-level treatments gbat_treatments_complex: group_by_arrival_time and group-level treatments (complex version) getattr_setattr: getattr() to access numbered fields like player.num1, player.num2, ..., player.num9 groups_csv: Assign players to groups defined in a CSV file history_table: History table image_choices: Images in radio button choices input_calculation: Immediate calculation so the user can see the potential result of their decision live_volunteer: Live volunteer's dilemma (first player to click moves everyone forward). longitudinal: Longitudinal study (2-part study taking place across days/weeks) min_time_on_page: Minimum time on a page multi_language: Translate an app to multiple languages (e.g. English and German) multi_page_timeout: Timeout spanning multiple pages multi_select: Multi-select widget (a.k.a. multiple choice / multiple answer) multi_select_complex: Multi-select widget (flexible version with custom labels & 'select at least N') other_player_previous_rounds: Showing other players' decisions from previous rounds pass_data_between_apps: Pass data between apps pay_random_app: Pay a randomly selected app pay_random_round: Pay a randomly selected round persist_raw: Persist raw HTML form inputs on reload (sliders, checkboxes, etc). practice_rounds: Practice rounds progress_bar: Progress bar question_with_other_option: Menu with an 'other' option that lets you type in a valueInput manually questions_from_csv: Quiz questions loaded from CSV spreadsheet (complex version) questions_from_csv_simple: Quiz questions loaded from CSV spreadsheet (simple version) quiz_with_explanation: Quiz + post-quiz explanation. Re-display the previous page's form as read-only, with answers/explanation. radio: Radio buttons in various layouts, looping over radio choices radio_switching_point: Radio button table with single switching point (strategy method) random_num_rounds: Random number of rounds random_num_rounds_multiplayer: Random number of rounds for multiplayer (random stopping rule) random_question_order: Randomize order of questions random_task_order: Randomize order of different tasks rank_players: Rank players rank_topN: Ranking your top N choices from a list of options. rank_widget: Rank/reorder form widget redirect_to_other_website: Redirect the user to another website and pass their data save_wrong_answers: Save the history of invalid responses a user made. sequential: Sequential game sequential_symmetric: Sequential game (symmetric) slider_graphic: Slider that changes an image (e.g. happy to sad scale) slider_live_label: Slider with live updating label supergames: Supergames consisting of multiple rounds each timer_custom: Timer: replacing the default timer with your own treatments_from_spreadsheet: Treatments defined in a spreadsheet wait_for_specific_people: Wait only for specific people wait_page_timeout: Timeout on a WaitPage (exit the experiment)
Recipes for common tasks in oTree