{"id":47597548,"url":"https://github.com/alephtwo/tragedy-looper-generator","last_synced_at":"2026-04-01T18:26:41.702Z","repository":{"id":47594546,"uuid":"330462722","full_name":"alephtwo/tragedy-looper-generator","owner":"alephtwo","description":"Generate somewhat randomized plots for Tragedy Looper.","archived":false,"fork":false,"pushed_at":"2026-03-23T15:58:48.000Z","size":4237,"stargazers_count":6,"open_issues_count":7,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-24T13:35:32.616Z","etag":null,"topics":["board-games","random-generation"],"latest_commit_sha":null,"homepage":"https://alephtwo.github.io/tragedy-looper-generator","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alephtwo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-01-17T18:49:22.000Z","updated_at":"2026-03-23T15:58:30.000Z","dependencies_parsed_at":"2024-01-12T08:42:11.784Z","dependency_job_id":"45deb526-3e2a-49cb-8117-3bc954793b22","html_url":"https://github.com/alephtwo/tragedy-looper-generator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alephtwo/tragedy-looper-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alephtwo%2Ftragedy-looper-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alephtwo%2Ftragedy-looper-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alephtwo%2Ftragedy-looper-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alephtwo%2Ftragedy-looper-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alephtwo","download_url":"https://codeload.github.com/alephtwo/tragedy-looper-generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alephtwo%2Ftragedy-looper-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290851,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["board-games","random-generation"],"created_at":"2026-04-01T18:26:41.033Z","updated_at":"2026-04-01T18:26:41.677Z","avatar_url":"https://github.com/alephtwo.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tragedy Looper Generator\n\n[Tragedy Looper (惨劇 RoopeR)](https://boardgamegeek.com/boardgame/148319/tragedy-looper)\nis a scenario-based deduction game where players take the roles of time\nloopers attempting to prevent a tragedy.\n\n## Impetus\n\nOne of the players takes on the role of the Mastermind, the overseer who is\nresponsible for running the game from the antagonist's standpoint. In order\nto perform their tasks, the Mastermind follows a script which includes a\ncast, a series of incidents, and various plots. Enterprising Masterminds are\nable to use the rules of the game to write their own scripts and tell a\nvariety of stories.\n\nThe game provides numerous scripts throughout its base game and two expansions.\nHowever, once a script has been played, it's essentially spoiled. At a\ncertain point, continuing to play the game will require effort from the\nMastermind to write a new script. This is not conducive to impromptu \"game\nnight\" play.\n\n## Have a computer make scripts for you\n\nUse the generator to randomly create a script.\n\nWhenever possible, the published rules of the game are respected. For example,\nif the \"Sign with me!\" plot is chosen, the Key Person is guaranteed to be a\nGirl. Things that are known to deviate from this are documented on the\n[issue tracker](https://github.com/alephtwo/tragedy-looper-generator/issues).\n\nThe number of loops is calculated from the published rules of the game, with\na minimum of two loops (just to be sporting). Users should feel encouraged to\nmodify this as they see fit to alter the difficulty of their game.\n\n## Parameters\n\nThe user has a few handles by which to determine the \"feel\" of the game:\n\n- Tragedy Set\n- Cast Size (6-11)\n- Number of Incidents (Between 0 and the minimum of days or cast size)\n- Number of Days per Loop\n\nA couple of things to note:\n\n- If the plot/roles require more incidents than have been requested, more\n  incidents will be added.\n- If there are more incidents than characters that can fulfill them, more\n  characters will be added.\n\n## Cheatsheet\n\nCheatsheets are a helpful way for the mastermind to get an overview of all\nrelevant triggers and abilities that they will need during the game. This\nsaves the effort of looking through a small-print reference card and can\ngreatly speed up the resolution of said abilities.\n\n## Development\n\nTo start a local development server, just run:\n\n```shell\nnpm start\n```\n\nCode linting can be done with:\n\n```shell\n# Autoformat using Prettier\nnpm run format\n\n# Ensure everything is linted\nnpm run lint\n```\n\nTo build the production bundle, run:\n\n```shell\nnpm run build\n```\n\n## Acknowledgements\n\nLast Liar and Another Horizon are Tragedy Sets that do not have an official\nEnglish translation. As a result, this implementation relies on a fan\ntranslation provided by [@andrewshen123](https://boardgamegeek.com/user/andrewshen123)\n[over on BoardGameGeek](https://boardgamegeek.com/thread/2770511/article/38982680#38982680).\nBe sure to give them your thanks if you get use out of it!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falephtwo%2Ftragedy-looper-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falephtwo%2Ftragedy-looper-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falephtwo%2Ftragedy-looper-generator/lists"}