Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. {{indexmenu_n>3}} ====== JSON Structure ====== ====== Game ====== Globally, the game JSON consists of several large sections: <code JavaScript [enable_line_numbers="false"]> { "game": {} /* Game settings, such as start time and passage sequence */, "gbonuses": [] /* List of global bonuses in the game */, "lines": [] /* List of passage lines */, "tasks": [] /* List of game levels */, } </code> ===== Game Settings ===== <code JavaScript [enable_line_numbers="false"]> { "game": { "type": "1", /* Winner is determined by: "0": Points "1": Time */ "stat": "5", /* Statistics: "0": Open "1": Open without bonuses "2": Closed during the game "4": Summary only "5": Closed always "6": Completed tasks */ "team_limit": 0, /* Limit of players in the team */ "name": "#New Unnamed Game", /* Name */ "description": "", /* Description */ "finish_text": "", /* Finish text */ "html_header": "", /* Common HTML header */ "image": "", /* Image */ "start_time": "2021-10-17 12:00:00", /* Start */ "end_time": "2022-10-17 12:00:00", /* Finish */ "status": "3", /* Roster entry: "0": Automatically all "1": Automatically paid "2": Automatically all as testers "3": Manually */ "start_type": "0", /* Game start: "0": Simultaneous "1": Individual start time */ "price": 0, /* Price */ "currency": "UAH", /* Currency of price: "UAH" "USD" "EUR" "RUB" */ "kind": "0", /* Game type: "0": other "1": green "2": yellow "3": red "4": virtual */ "scenario": "0", /* Scenario: "0": Closed "1": Open in archive "2": Open in archive, but only to those who played "3": Open to teams that finished the game */ "answer_prefix": "ff", /* Code prefix */ "default_line": "" /* Default line (name) */ } } </code> ===== Global Bonuses ===== <code JavaScript [enable_line_numbers="false"]> { "gbonuses": [ /* List of global bonuses in the game. Multiple items can be separated by commas */ { "code": "cc, dd", /* Answers */ "time": 0, /* Bonus time for completion */ "description": "", /* Task details */ "hint": "", /* Text after solution */ "first_task_n": 1, /* Available from task */ "last_task_n": 2 /* Available up to task */ } ] } </code> ===== Lines ===== <code JavaScript [enable_line_numbers="false"]> { "lines": [ /* List of lines in the game. Multiple items can be separated by commas */ { "title": "Line 2", /* Line name */ "task_order": "1,2,3+4,5-7" /* Order */ } ] } </code> ===== Level ===== A level in the game also has a composite structure: <code JavaScript [enable_line_numbers="false"]> { "task": {}, /* Level settings, such as name or auto-transition time */ "codes": [], /* List of sectors or codes in the level. Multiple items can be separated by commas */ "bonuses": [], /* List of bonuses in the level */ "hints": [], /* List of hints in the level */ } </code> ==== Level Settings ==== <code JavaScript [enable_line_numbers="false"]> { "task": { "number": 1, /* № */ "max_time": 3600, /* Auto-transition (seconds) */ "score": 10, /* Penalty/Score for no auto-transition */ "time_k": 1.0, /* Time multiplier x */ "delay": 0, /* Delay (for storm levels) */ "working_name": "Title", /* Name in the game */ "name": "In statistics", /* Name in statistics */ "surrender_code": "GiveUp", /* Skip Code */ "task": "Test", /* Task text */ "script": "alert(1)", /* Task script */ "answer": "Word in English", /* Answer format */ "answers_limit": 10, /* Input limit */ "answers_per_time": 60, /* per time interval */ "answers_limit_penalty": 10, /* penalty for each extra try */ "codes": 0, /* Codes needed for completion */ "code_bonus_time": 0, /* Auto-transition reduction (seconds) */ "code_bonus": 0, /* Bonus (in seconds) */ "finish_confirmation": "1", /* Close task: "0": Forcefully "1": Reasonably */ "hidden_bonuses": "0", /* Bonuses: Display in task: "0": List format "1": Compact in one line */ "bonuses_kind": "0" /* Bonuses: Open order: "0": Any "1": In order */ } } </code> ==== Sectors ==== <code JavaScript [enable_line_numbers="false"]> { "codes": [ /* List of sectors or codes in the level. Multiple items can be separated by commas */ { "name": "Sector 1", "code": "a, b" /* Synonym codes separated by commas */ }, { "name": "Sector 2", "code": "c, d" /* Synonym codes separated by commas */ } ], } </code> ==== Bonuses ==== <code JavaScript [enable_line_numbers="false"]> { "bonuses": [ /* List of bonuses in the level. Multiple items can be separated by commas */ { "number": 1, /* Sequence number of the bonus */ "code": "c, d", /* Answers */ "time": 0, /* Bonus time for completion */ "description": "", /* Bonus task description */ "hint": "", /* Text after solution */ "delay": 0, /* Delay of bonus appearance */ "duration": 0, /* Duration */ "duration_k": 0 /* Multiplier for remaining time */ } ] } </code> ==== Hints ==== <code JavaScript [enable_line_numbers="false"]> { "hints": [ /* List of hints in the level. Multiple items can be separated by commas */ { "number": 1, /* Sequence number of the hint */ "info": "", /* Hint description */ "hint": "", /* Hint text */ "delay": 0, /* Time delay */ "penalty": 0 /* Penalty cost */ } ] } </code> ====== Example of a Whole Game ====== Description of fields is [[en:authors_main:admin_api:admin_api_json#game|here]]. Example without descriptions: <code JavaScript game_example.json> { "game": { "type": "1", "stat": "5", "team_limit": 0, "name": "#New Unnamed Game", "description": "", "finish_text": "", "html_header": "", "image": "", "start_time": "2021-10-17 12:00:00", "end_time": "2022-10-17 12:00:00", "status": "3", "start_type": "0", "price": 0, "currency": "UAH", "kind": "0", "scenario": "0", "answer_prefix": "ff", "default_line": "" }, "tasks": [ { "task": { "number": 1, "max_time": 3600, "score": 10, "time_k": 1.0, "delay": 0, "working_name": "Title", "name": "In statistics", "surrender_code": "GiveUp", "task": "Test", "script": "alert(1)", "answer": "Word in English", "answers_limit": 10, "answers_per_time": 60, "answers_limit_penalty": 10, "codes": 0, "code_bonus_time": 0, "code_bonus": 0, "finish_confirmation": "1", "hidden_bonuses": "0", "bonuses_kind": "0" }, "codes": [ { "name": "Sector 1", "code": "a, b" } ], "bonuses": [ { "number": 1, "code": "c, d", "time": 0, "description": "", "hint": "", "delay": 0, "duration": 0, "duration_k": 0 } ], "hints": [ { "number": 1, "info": "", "hint": "", "delay": 0, "penalty": 0 } ] } ], "gbonuses": [ { "code": "cc, dd", "time": 0, "description": "", "hint": "", "first_task_n": 1, "last_task_n": 2 } ], "lines": [ { "title": "Line 2", "task_order": "1,2,3+4,5-7" } ] } </code> ====== Example of a Whole Level ====== Description of fields is [[en:authors_main:admin_api:admin_api_json#level|here]]. Example without descriptions below: <code JavaScript level_example.json> [ { "task": { "number": 1, "max_time": 3600, "score": 10, "time_k": 1.0, "delay": 0, "working_name": "Title", "name": "In statistics", "surrender_code": "GiveUp", "task": "Test", "script": "alert(1)", "answer": "Word in English", "answers_limit": 10, "answers_per_time": 60, "answers_limit_penalty": 10, "codes": 0, "code_bonus_time": 0, "code_bonus": 0, "finish_confirmation": "1", "hidden_bonuses": "0", "bonuses_kind": "0" }, "codes": [ { "name": "Sector 1", "code": "a, b" } ], "bonuses": [ { "number": 1, "code": "c, d", "time": 0, "description": "", "hint": "", "delay": 0, "duration": 0, "duration_k": 0 } ], "hints": [ { "number": 1, "info": "", "hint": "", "delay": 0, "penalty": 0 } ] } ] </code> en/authors_main/admin_api/admin_api_json.txt Last modified: 2026/06/11 22:34(external edit)