diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml deleted file mode 100644 index 2beec7f..0000000 --- a/.github/workflows/cla.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: "CLA Assistant" -on: - issue_comment: - types: [created] - pull_request_target: - types: [opened, closed, synchronize] - -permissions: - actions: write - contents: write - pull-requests: write - statuses: write - -jobs: - CLAssistant: - runs-on: ubuntu-latest - if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' - steps: - - name: "CLA Assistant" - uses: contributor-assistant/github-action@v2.6.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - path-to-signatures: 'signatures/cla.json' - path-to-document: 'https://github.com/Auto-Tournament/packs/blob/main/CLA.md' - branch: 'cla-signatures' - allowlist: 'sivert-io,grytchat,dependabot[bot],github-actions[bot],copilot-swe-agent[bot],claude*' diff --git a/CLA.md b/CLA.md index e3e710e..6d3c992 100644 --- a/CLA.md +++ b/CLA.md @@ -1,14 +1,18 @@ # Contributor License Agreement +This is a copyright assignment. What you contribute becomes the Maintainer's. + Thank you for contributing to Auto Tournament game packs ("the Project"), owned by Sivert Gullberg Hansen ("the Maintainer"). -By signing this agreement (by commenting on your pull request as the CLA bot asks), you agree to the following for every contribution you submit to the Project, now or later: +By signing this agreement (by commenting on your pull request as the CLA bot asks), you agree to the following for every contribution you submit to the Project, now or later, and for any you submitted before: 1. **You own it or may submit it.** Your contribution is your original work, or you have the right to submit it under this agreement. If your employer has rights to your work, you have their permission. -2. **Copyright licence.** You grant the Maintainer a perpetual, worldwide, non-exclusive, royalty-free, irrevocable licence to use, copy, modify, publish, distribute, sublicense and relicense your contribution, under any terms, including the Project's licence and commercial licences. -3. **Patent licence.** You grant the Maintainer and recipients of the Project a perpetual, worldwide, non-exclusive, royalty-free, irrevocable patent licence for any of your patents that your contribution necessarily infringes, to make, use, sell and distribute the Project with your contribution. -4. **You keep your rights.** You keep the copyright in your contribution and may use it however you like. -5. **No warranty.** Your contribution is provided "as is". You don't have to support it. -6. **Why this exists.** The Project is free for non-commercial use and sold under commercial licences; this agreement lets the Maintainer include your contribution in both. +2. **You give the copyright to the Maintainer.** You assign to the Maintainer all copyright and other economic rights in your contribution, worldwide, for as long as those rights last. From then on the Maintainer owns your contribution and can use, change, license, relicense and sell it under any terms, including the Project's licence and commercial licences. +3. **Where an assignment isn't possible.** If the law where you live doesn't allow part of that assignment, you instead grant the Maintainer an exclusive, perpetual, worldwide, royalty-free, irrevocable and transferable licence to do everything listed in section 2, with the right to sublicense. +4. **Moral rights.** Rights the law says always stay with you, such as being named as an author, stay with you. As far as the law allows, you agree not to assert them against the Maintainer or anyone who receives the Project. +5. **Patent licence.** You grant the Maintainer and recipients of the Project a perpetual, worldwide, non-exclusive, royalty-free, irrevocable patent licence for any of your patents that your contribution necessarily infringes, to make, use, sell and distribute the Project with your contribution. +6. **It's a donation.** You get no payment or other compensation for your contribution, including from commercial licences sold with it in, and the Maintainer doesn't have to use it. +7. **No warranty.** Your contribution is provided "as is". You don't have to support it. +8. **Why this exists.** The Project is free for non-commercial use and sold under commercial licences. This agreement means the Maintainer owns all of its code, so it can be licensed and sold as a whole. Questions: ask in the Auto Tournament Discord (https://discord.gg/n7gHYau7aW) before signing. diff --git a/LICENSE b/LICENSE deleted file mode 100644 index b4a795a..0000000 --- a/LICENSE +++ /dev/null @@ -1,75 +0,0 @@ -Required Notice: Copyright (c) 2026 Sivert Gullberg Hansen (https://autotournament.gg) - -# PolyForm Noncommercial License 1.0.0 - - - -## Acceptance - -In order to get any license under these terms, you must agree to them as both strict obligations and conditions to all your licenses. - -## Copyright License - -The licensor grants you a copyright license for the software to do everything you might do with the software that would otherwise infringe the licensor's copyright in it for any permitted purpose. However, you may only distribute the software according to [Distribution License](#distribution-license) and make changes or new works based on the software according to [Changes and New Works License](#changes-and-new-works-license). - -## Distribution License - -The licensor grants you an additional copyright license to distribute copies of the software. Your license to distribute covers distributing the software with changes and new works permitted by [Changes and New Works License](#changes-and-new-works-license). - -## Notices - -You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms or the URL for them above, as well as copies of any plain-text lines beginning with `Required Notice:` that the licensor provided with the software. For example: - -> Required Notice: Copyright Yoyodyne, Inc. (http://example.com) - -## Changes and New Works License - -The licensor grants you an additional copyright license to make changes and new works based on the software for any permitted purpose. - -## Patent License - -The licensor grants you a patent license for the software that covers patent claims the licensor can license, or becomes able to license, that you would infringe by using the software. - -## Noncommercial Purposes - -Any noncommercial purpose is a permitted purpose. - -## Personal Uses - -Personal use for research, experiment, and testing for the benefit of public knowledge, personal study, private entertainment, hobby projects, amateur pursuits, or religious observance, without any anticipated commercial application, is use for a permitted purpose. - -## Noncommercial Organizations - -Use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization, or government institution is use for a permitted purpose regardless of the source of funding or obligations resulting from the funding. - -## Fair Use - -You may have "fair use" rights for the software under the law. These terms do not limit them. - -## No Other Rights - -These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent the licensor from granting licenses to anyone else. These terms do not imply any other licenses. - -## Patent Defense - -If you make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company. - -## Violations - -The first time you are notified in writing that you have violated any of these terms, or done anything with the software not covered by your licenses, your licenses can nonetheless continue if you come into full compliance with these terms, and take practical steps to correct past violations, within 32 days of receiving notice. Otherwise, all your licenses end immediately. - -## No Liability - -***As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.*** - -## Definitions - -The **licensor** is the individual or entity offering these terms, and the **software** is the software the licensor makes available under these terms. - -**You** refers to the individual or entity agreeing to these terms. - -**Your company** is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. **Control** means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect. - -**Your licenses** are all the licenses granted to you for the software under these terms. - -**Use** means anything you do with the software requiring one of your licenses. diff --git a/README.md b/README.md deleted file mode 100644 index 92f1315..0000000 --- a/README.md +++ /dev/null @@ -1,58 +0,0 @@ -
-

Auto Tournament game packs

-

Games for Auto Tournament, as data files you can review and import

-

- License: PolyForm Noncommercial - Docs - Discord -

-
- -
- -A game pack describes one game for [Auto Tournament](https://github.com/Auto-Tournament/auto-tournament): its name, its square tile and how a result gets reported. Nothing in a pack runs. It is data for a module the platform already has, which is what makes a pack safe to review in a pull request and import from a stranger. - -A pack is for a game the platform can't watch: the teams know the result and report it (Rocket League, chess, a fighting game on a console). A game the platform watches by reading a game server, like Counter-Strike 2, needs code and is a different kind of module. - -## Features - -- Packs for games without a server integration, run on the `manual-report` engine -- Results confirmed by the other captain or by an admin, with a timeout -- Optional per-player stats (kills, goals, ...) for each game -- A square tile per game, drawn for this project, and the game's own app icon where one is allowed -- `index.json` and `catalog.json`, so an instance can list every pack without downloading them all - -## Install - -In your Auto Tournament instance, open **Modules** and browse the game packs, then import the ones you want. You can also download a pack file from `packs/` and upload it on the same page. - -## Documentation - -Full docs at **[docs.autotournament.gg](https://docs.autotournament.gg)**. In this repo: - -- [Pack format, tiles, app icons and repo layout](docs/FORMAT.md) - -## Contributing - -To add a game: - -1. Write `packs/.json` ([format](docs/FORMAT.md)). -2. Put its tile at `icons/.svg` and point `icon` at `../icons/.svg`. -3. If the game has a square app icon, put it at `app-icons/.webp` (128 × 128, at most 25 KB), point `appIcon` at `../app-icons/.webp`, and add a row to `app-icons/SOURCES.md`. -4. Add the game to `index.json` and to `packs` in `catalog.json`, with `icon` as `icons/.svg` (and `appIcon` as `app-icons/.webp`). -5. Open a pull request. - -Only add a game you would actually run a tournament for, with a tile you drew or have the right to share. Before your first pull request is merged you'll be asked to sign the [Contributor License Agreement](CLA.md). - -## Sponsors - -Auto Tournament is built by one person. A sponsorship pays for development and test servers: [GitHub Sponsors](https://github.com/sponsors/sivert-io) or [Ko-fi](https://ko-fi.com/sivert). - - - - -## License - -The pack files and the tiles (`icons/`) are licensed under the [PolyForm Noncommercial License 1.0.0](LICENSE). Copyright (c) 2026 Sivert Gullberg Hansen. - -**Not covered:** the app icons in `app-icons/` are the games' own icons and their owners' trademarks. They are not ours to license, and the license above does not apply to them. They are used only to show which game a pack is for; no endorsement is implied. [app-icons/SOURCES.md](app-icons/SOURCES.md) says where each came from, and a rights holder who wants theirs removed only has to open an issue. Game names are their owners' trademarks too. Free for non-commercial use; a Platform license covers the packs used with it, see [pricing](https://autotournament.gg/pricing). Packs published here before 24 September 2026 were MIT and stay MIT. diff --git a/app-icons/SOURCES.md b/app-icons/SOURCES.md deleted file mode 100644 index 6c0ae5f..0000000 --- a/app-icons/SOURCES.md +++ /dev/null @@ -1,79 +0,0 @@ -# App icon sources - -Where every file in this folder came from. Each is the game's own square -icon — the one players see on their phone, desktop or launcher — scaled to -128 × 128 and saved as WebP (at most 25 KB). Nothing here is a slice of a -wordmark. - -**Game icons are trademarks of their owners.** They are used only to -identify the game a player picks; no endorsement is implied, and a rights -holder who wants theirs removed only has to open an issue. - -Sources, in order of preference — all public, no API key, nothing behind a -login: - -1. **Steam client icon.** `https://api.steamcmd.net/v1/info/` → - `common.clienticon` → `https://shared.fastly.steamstatic.com/community_assets/images/apps//.ico` - (the older `https://cdn.cloudflare.steamstatic.com/steamcommunity/public/images/apps//.ico` - path still answers for older games but 404s for newer ones, such as - Battlefield 6); the largest frame (256 or 512 px). The small `common.icon` - JPEG is 32 px and not used. Where the `.ico` is gone, - `common.linuxclienticon` (a zip of PNGs). -2. **App Store icon** for mobile-first games. `https://itunes.apple.com/lookup?id=` - → `artworkUrl512` (requested at 256 px, PNG). -3. **Nintendo eShop square image** for Nintendo-only games — the square - picture the Switch shows for the game. Nintendo of Europe's game search - (`searching.nintendo-europe.com`), field `image_url_sq_s`. -4. Otherwise, a square icon published by the game's own store page, its - launcher or Wikimedia Commons, noted per game below. Where that is a mark - on a transparent background, it is set on the colour the game's launcher - tile uses, the way the launcher shows it. -5. **Chess** has no brand — it is a game, not a product — so its icon is ours: - a knight drawn in the same flat, faceted style and palette as the pack's - tile (`icons/chess.svg`). - -Wikidata has no square-icon statement (P2910) for any of these games, and its -logo (P154) is the wide wordmark, so it is not a source except where the logo -is itself the square icon (osu!). - -| Game | File | Source | URL | -| --- | --- | --- | --- | -| age-of-empires-ii | `age-of-empires-ii.webp` | Steam client icon (app 813780, 256px frame of `common.clienticon`) | | -| apex-legends | `apex-legends.webp` | Steam client icon (app 1172470, 256px frame of `common.clienticon`) | | -| battlefield-6 | `battlefield-6.webp` | Steam client icon (app 2807960, 256px frame of `common.clienticon`; the old Cloudflare path 404s for it) | | -| brawl-stars | `brawl-stars.webp` | App Store icon, "Brawl Stars" by Supercell Oy (iTunes Lookup id 1229016807) | | -| call-of-duty | `call-of-duty.webp` | Steam client icon (app 1938090, 256px frame of `common.clienticon`) | | -| chess | `chess.webp` | Our own: a chess knight in the pack tile's flat, faceted style, on the tile's orange #FA632A | — | -| clash-royale | `clash-royale.webp` | App Store icon, "Clash Royale" by Supercell Oy (iTunes Lookup id 1053012308) | | -| counter-strike-2 | `counter-strike-2.webp` | Steam client icon (app 730, 512px frame of `common.clienticon`) | | -| deadlock | `deadlock.webp` | Steam client icon (app 1422450, 256px frame of `common.clienticon`) | | -| dota-2 | `dota-2.webp` | Steam Linux client icon (app 570, `dota_256.png` from `common.linuxclienticon`) | | -| ea-sports-fc-25 | `ea-sports-fc-25.webp` | Steam client icon (app 2669320, 256px frame of `common.clienticon`) | | -| fortnite | `fortnite.webp` | App Store icon, "Fortnite" by Epic Games Sweden AB (iTunes Lookup id 6483539426) | | -| guilty-gear-strive | `guilty-gear-strive.webp` | Steam client icon (app 1384160, 256px frame of `common.clienticon`) | | -| halo-infinite | `halo-infinite.webp` | Steam client icon (app 1240440, 256px frame of `common.clienticon`) | | -| hearthstone | `hearthstone.webp` | App Store icon, "Hearthstone" by Blizzard Entertainment, Inc. (iTunes Lookup id 625257520) | | -| league-of-legends | `league-of-legends.webp` | The League "L" crest from leagueoflegends.com's own site icon (SVG), set on League's dark blue #0A1428 — the tile the Riot Client shows. Not on Steam or the App Store; the Epic Games Store listing has only box art and the wordmark | | -| mario-kart-8-deluxe | `mario-kart-8-deluxe.webp` | Nintendo eShop square image (Nintendo of Europe game search, `image_url_sq_s`) | | -| marvel-rivals | `marvel-rivals.webp` | Steam client icon (app 2767030, 256px frame of `common.clienticon`) | | -| minecraft | `minecraft.webp` | App Store icon, "Minecraft: Play with Friends!" by Mojang AB (iTunes Lookup id 479516143) | | -| mobile-legends-bang-bang | `mobile-legends-bang-bang.webp` | App Store icon, "Mobile Legends: Bang Bang" by YOUNGJOY TECHNOLOGY LIMITED (iTunes Lookup id 1160056295) | | -| mortal-kombat-1 | `mortal-kombat-1.webp` | Steam client icon (app 1971870, 256px frame of `common.clienticon`) | | -| osu | `osu.webp` | Wikimedia Commons, "Osu! logo 2024.png" (Wikidata Q307441, P154); the circle logo is the game's own app icon | | -| overwatch-2 | `overwatch-2.webp` | Steam client icon (app 2357570, 256px frame of `common.clienticon`) | | -| pubg-battlegrounds | `pubg-battlegrounds.webp` | Steam client icon (app 578080, 256px frame of `common.clienticon`) | | -| rainbow-six-siege | `rainbow-six-siege.webp` | Steam client icon (app 359550, 256px frame of `common.clienticon`) | | -| rocket-league | `rocket-league.webp` | Steam client icon (app 252950, 256px frame of `common.clienticon`) | | -| splatoon-3 | `splatoon-3.webp` | Nintendo eShop square image (Nintendo of Europe game search, `image_url_sq_s`) | | -| starcraft-ii | `starcraft-ii.webp` | Battle.net shop game icon (SVG, the SC mark the Battle.net launcher lists the game with), set on dark blue #0C1524. Battle.net only, not on Steam | | -| street-fighter-6 | `street-fighter-6.webp` | Steam client icon (app 1364780, 256px frame of `common.clienticon`) | | -| super-smash-bros-ultimate | `super-smash-bros-ultimate.webp` | Nintendo eShop square image (Nintendo of Europe game search, `image_url_sq_s`) | | -| team-fortress-2 | `team-fortress-2.webp` | Steam client icon (app 440, 512px frame of `common.clienticon`) | | -| teamfight-tactics | `teamfight-tactics.webp` | App Store icon, "TFT: Teamfight Tactics" by Riot Games (iTunes Lookup id 1480616748) | | -| tekken-8 | `tekken-8.webp` | Steam client icon (app 1778820, 256px frame of `common.clienticon`) | | -| trackmania | `trackmania.webp` | Microsoft Store square box art, "Trackmania" (product 9N01MR5LF53S, `BoxArt`); Steam only has a 32 px icon | | -| valorant | `valorant.webp` | Epic Games Store product icon (`ic1`, white V mark), cropped to the V and set on VALORANT red #FF4655 — the tile the Riot Client shows | | - -`counter-strike-2.webp` is here for the record; the platform ships it with the -CS2 module (`client/public/games/counter-strike-2-app-icon.webp`), since CS2 is -a code module, not a pack. diff --git a/app-icons/age-of-empires-ii.webp b/app-icons/age-of-empires-ii.webp deleted file mode 100644 index e9c26ad..0000000 Binary files a/app-icons/age-of-empires-ii.webp and /dev/null differ diff --git a/app-icons/apex-legends.webp b/app-icons/apex-legends.webp deleted file mode 100644 index 406b4ff..0000000 Binary files a/app-icons/apex-legends.webp and /dev/null differ diff --git a/app-icons/battlefield-6.webp b/app-icons/battlefield-6.webp deleted file mode 100644 index 146760e..0000000 Binary files a/app-icons/battlefield-6.webp and /dev/null differ diff --git a/app-icons/brawl-stars.webp b/app-icons/brawl-stars.webp deleted file mode 100644 index b1bf3e5..0000000 Binary files a/app-icons/brawl-stars.webp and /dev/null differ diff --git a/app-icons/call-of-duty.webp b/app-icons/call-of-duty.webp deleted file mode 100644 index 6a001de..0000000 Binary files a/app-icons/call-of-duty.webp and /dev/null differ diff --git a/app-icons/chess.webp b/app-icons/chess.webp deleted file mode 100644 index d90f480..0000000 Binary files a/app-icons/chess.webp and /dev/null differ diff --git a/app-icons/clash-royale.webp b/app-icons/clash-royale.webp deleted file mode 100644 index c420620..0000000 Binary files a/app-icons/clash-royale.webp and /dev/null differ diff --git a/app-icons/counter-strike-2.webp b/app-icons/counter-strike-2.webp deleted file mode 100644 index 2ebcc0d..0000000 Binary files a/app-icons/counter-strike-2.webp and /dev/null differ diff --git a/app-icons/deadlock.webp b/app-icons/deadlock.webp deleted file mode 100644 index f4f9327..0000000 Binary files a/app-icons/deadlock.webp and /dev/null differ diff --git a/app-icons/dota-2.webp b/app-icons/dota-2.webp deleted file mode 100644 index 192bdcf..0000000 Binary files a/app-icons/dota-2.webp and /dev/null differ diff --git a/app-icons/ea-sports-fc-25.webp b/app-icons/ea-sports-fc-25.webp deleted file mode 100644 index 26fee3f..0000000 Binary files a/app-icons/ea-sports-fc-25.webp and /dev/null differ diff --git a/app-icons/fortnite.webp b/app-icons/fortnite.webp deleted file mode 100644 index bf1a5e5..0000000 Binary files a/app-icons/fortnite.webp and /dev/null differ diff --git a/app-icons/guilty-gear-strive.webp b/app-icons/guilty-gear-strive.webp deleted file mode 100644 index 011c74e..0000000 Binary files a/app-icons/guilty-gear-strive.webp and /dev/null differ diff --git a/app-icons/halo-infinite.webp b/app-icons/halo-infinite.webp deleted file mode 100644 index 82c2f7c..0000000 Binary files a/app-icons/halo-infinite.webp and /dev/null differ diff --git a/app-icons/hearthstone.webp b/app-icons/hearthstone.webp deleted file mode 100644 index 1676e89..0000000 Binary files a/app-icons/hearthstone.webp and /dev/null differ diff --git a/app-icons/league-of-legends.webp b/app-icons/league-of-legends.webp deleted file mode 100644 index aafdbf2..0000000 Binary files a/app-icons/league-of-legends.webp and /dev/null differ diff --git a/app-icons/mario-kart-8-deluxe.webp b/app-icons/mario-kart-8-deluxe.webp deleted file mode 100644 index fc4d36d..0000000 Binary files a/app-icons/mario-kart-8-deluxe.webp and /dev/null differ diff --git a/app-icons/marvel-rivals.webp b/app-icons/marvel-rivals.webp deleted file mode 100644 index 65ebbfa..0000000 Binary files a/app-icons/marvel-rivals.webp and /dev/null differ diff --git a/app-icons/minecraft.webp b/app-icons/minecraft.webp deleted file mode 100644 index a35687c..0000000 Binary files a/app-icons/minecraft.webp and /dev/null differ diff --git a/app-icons/mobile-legends-bang-bang.webp b/app-icons/mobile-legends-bang-bang.webp deleted file mode 100644 index 58f2901..0000000 Binary files a/app-icons/mobile-legends-bang-bang.webp and /dev/null differ diff --git a/app-icons/mortal-kombat-1.webp b/app-icons/mortal-kombat-1.webp deleted file mode 100644 index 016dbf3..0000000 Binary files a/app-icons/mortal-kombat-1.webp and /dev/null differ diff --git a/app-icons/osu.webp b/app-icons/osu.webp deleted file mode 100644 index 7238715..0000000 Binary files a/app-icons/osu.webp and /dev/null differ diff --git a/app-icons/overwatch-2.webp b/app-icons/overwatch-2.webp deleted file mode 100644 index 63e63b2..0000000 Binary files a/app-icons/overwatch-2.webp and /dev/null differ diff --git a/app-icons/pubg-battlegrounds.webp b/app-icons/pubg-battlegrounds.webp deleted file mode 100644 index 398f36d..0000000 Binary files a/app-icons/pubg-battlegrounds.webp and /dev/null differ diff --git a/app-icons/rainbow-six-siege.webp b/app-icons/rainbow-six-siege.webp deleted file mode 100644 index e1b7f76..0000000 Binary files a/app-icons/rainbow-six-siege.webp and /dev/null differ diff --git a/app-icons/rocket-league.webp b/app-icons/rocket-league.webp deleted file mode 100644 index 12dbd3c..0000000 Binary files a/app-icons/rocket-league.webp and /dev/null differ diff --git a/app-icons/splatoon-3.webp b/app-icons/splatoon-3.webp deleted file mode 100644 index 82fb579..0000000 Binary files a/app-icons/splatoon-3.webp and /dev/null differ diff --git a/app-icons/starcraft-ii.webp b/app-icons/starcraft-ii.webp deleted file mode 100644 index 96d1313..0000000 Binary files a/app-icons/starcraft-ii.webp and /dev/null differ diff --git a/app-icons/street-fighter-6.webp b/app-icons/street-fighter-6.webp deleted file mode 100644 index 76ab5b6..0000000 Binary files a/app-icons/street-fighter-6.webp and /dev/null differ diff --git a/app-icons/super-smash-bros-ultimate.webp b/app-icons/super-smash-bros-ultimate.webp deleted file mode 100644 index 3252d56..0000000 Binary files a/app-icons/super-smash-bros-ultimate.webp and /dev/null differ diff --git a/app-icons/team-fortress-2.webp b/app-icons/team-fortress-2.webp deleted file mode 100644 index 8b4251c..0000000 Binary files a/app-icons/team-fortress-2.webp and /dev/null differ diff --git a/app-icons/teamfight-tactics.webp b/app-icons/teamfight-tactics.webp deleted file mode 100644 index d6d55a6..0000000 Binary files a/app-icons/teamfight-tactics.webp and /dev/null differ diff --git a/app-icons/tekken-8.webp b/app-icons/tekken-8.webp deleted file mode 100644 index ad6de65..0000000 Binary files a/app-icons/tekken-8.webp and /dev/null differ diff --git a/app-icons/trackmania.webp b/app-icons/trackmania.webp deleted file mode 100644 index 66722fd..0000000 Binary files a/app-icons/trackmania.webp and /dev/null differ diff --git a/app-icons/valorant.webp b/app-icons/valorant.webp deleted file mode 100644 index 146c20a..0000000 Binary files a/app-icons/valorant.webp and /dev/null differ diff --git a/catalog.json b/catalog.json deleted file mode 100644 index 71234e9..0000000 --- a/catalog.json +++ /dev/null @@ -1,378 +0,0 @@ -{ - "schema": 1, - "packs": [ - { - "slug": "age-of-empires-ii", - "name": "Age of Empires II", - "igdbId": 55056, - "version": "1.0.2", - "engine": "manual-report", - "description": "Real-time strategy. Report games won.", - "file": "packs/age-of-empires-ii.json", - "icon": "icons/age-of-empires-ii.svg", - "appIcon": "app-icons/age-of-empires-ii.webp" - }, - { - "slug": "apex-legends", - "name": "Apex Legends", - "igdbId": 114795, - "version": "1.0.2", - "engine": "manual-report", - "description": "Three-a-side battle royale. Placement and kills each match.", - "file": "packs/apex-legends.json", - "icon": "icons/apex-legends.svg", - "appIcon": "app-icons/apex-legends.webp" - }, - { - "slug": "battlefield-6", - "name": "Battlefield 6", - "igdbId": 317407, - "version": "1.0.2", - "engine": "manual-report", - "description": "Squad shooter, reported by the result of each map.", - "file": "packs/battlefield-6.json", - "icon": "icons/battlefield-6.svg", - "appIcon": "app-icons/battlefield-6.webp" - }, - { - "slug": "brawl-stars", - "name": "Brawl Stars", - "igdbId": 55945, - "version": "1.0.2", - "engine": "manual-report", - "description": "Three-a-side mobile brawler, reported by the events played.", - "file": "packs/brawl-stars.json", - "icon": "icons/brawl-stars.svg", - "appIcon": "app-icons/brawl-stars.webp" - }, - { - "slug": "call-of-duty", - "name": "Call of Duty", - "version": "1.0.2", - "engine": "manual-report", - "description": "Search and Destroy, Hardpoint and Control, reported by the teams that played them.", - "file": "packs/call-of-duty.json", - "icon": "icons/call-of-duty.svg", - "appIcon": "app-icons/call-of-duty.webp" - }, - { - "slug": "chess", - "name": "Chess", - "version": "1.0.2", - "engine": "manual-report", - "description": "One board, two players. A win is 1, a draw is a half each.", - "file": "packs/chess.json", - "icon": "icons/chess.svg", - "appIcon": "app-icons/chess.webp" - }, - { - "slug": "clash-royale", - "name": "Clash Royale", - "igdbId": 15707, - "version": "1.0.2", - "engine": "manual-report", - "description": "One-on-one mobile card battler. Report games won in the set.", - "file": "packs/clash-royale.json", - "icon": "icons/clash-royale.svg", - "appIcon": "app-icons/clash-royale.webp" - }, - { - "slug": "deadlock", - "name": "Deadlock", - "igdbId": 301298, - "version": "1.0.3", - "engine": "manual-report", - "description": "Six-a-side hero shooter MOBA.", - "file": "packs/deadlock.json", - "icon": "icons/deadlock.svg", - "appIcon": "app-icons/deadlock.webp" - }, - { - "slug": "dota-2", - "name": "Dota 2", - "igdbId": 2963, - "version": "1.0.3", - "engine": "manual-report", - "description": "Five-a-side MOBA. One map per game.", - "file": "packs/dota-2.json", - "icon": "icons/dota-2.svg", - "appIcon": "app-icons/dota-2.webp" - }, - { - "slug": "ea-sports-fc-25", - "name": "EA Sports FC", - "igdbId": 308698, - "version": "1.0.2", - "engine": "manual-report", - "description": "Football. Report the scoreline.", - "file": "packs/ea-sports-fc-25.json", - "icon": "icons/ea-sports-fc-25.svg", - "appIcon": "app-icons/ea-sports-fc-25.webp" - }, - { - "slug": "fortnite", - "name": "Fortnite", - "igdbId": 1905, - "version": "1.0.3", - "engine": "manual-report", - "description": "Battle royale. Report placement and eliminations each match.", - "file": "packs/fortnite.json", - "icon": "icons/fortnite.svg", - "appIcon": "app-icons/fortnite.webp" - }, - { - "slug": "guilty-gear-strive", - "name": "Guilty Gear -Strive-", - "igdbId": 125764, - "version": "1.0.2", - "engine": "manual-report", - "description": "Fighting game. Report games won in the set.", - "file": "packs/guilty-gear-strive.json", - "icon": "icons/guilty-gear-strive.svg", - "appIcon": "app-icons/guilty-gear-strive.webp" - }, - { - "slug": "halo-infinite", - "name": "Halo Infinite", - "igdbId": 103281, - "version": "1.0.2", - "engine": "manual-report", - "description": "Four-a-side arena shooter, reported by the maps played.", - "file": "packs/halo-infinite.json", - "icon": "icons/halo-infinite.svg", - "appIcon": "app-icons/halo-infinite.webp" - }, - { - "slug": "hearthstone", - "name": "Hearthstone", - "igdbId": 1279, - "version": "1.0.2", - "engine": "manual-report", - "description": "One-on-one digital card game. Report games won in the set.", - "file": "packs/hearthstone.json", - "icon": "icons/hearthstone.svg", - "appIcon": "app-icons/hearthstone.webp" - }, - { - "slug": "league-of-legends", - "name": "League of Legends", - "igdbId": 115, - "version": "1.0.2", - "engine": "manual-report", - "description": "Five-a-side MOBA. One map per game.", - "file": "packs/league-of-legends.json", - "icon": "icons/league-of-legends.svg", - "appIcon": "app-icons/league-of-legends.webp" - }, - { - "slug": "mario-kart-8-deluxe", - "name": "Mario Kart 8 Deluxe", - "igdbId": 26764, - "version": "1.0.2", - "engine": "manual-report", - "description": "Kart racing. Report finishing position and points each race.", - "file": "packs/mario-kart-8-deluxe.json", - "icon": "icons/mario-kart-8-deluxe.svg", - "appIcon": "app-icons/mario-kart-8-deluxe.webp" - }, - { - "slug": "marvel-rivals", - "name": "Marvel Rivals", - "igdbId": 294041, - "version": "1.0.2", - "engine": "manual-report", - "description": "Six-a-side hero shooter, reported by the maps played.", - "file": "packs/marvel-rivals.json", - "icon": "icons/marvel-rivals.svg", - "appIcon": "app-icons/marvel-rivals.webp" - }, - { - "slug": "minecraft", - "name": "Minecraft", - "igdbId": 135400, - "version": "1.0.2", - "engine": "manual-report", - "description": "Whatever the host builds on it. The captains report who won.", - "file": "packs/minecraft.json", - "icon": "icons/minecraft.svg", - "appIcon": "app-icons/minecraft.webp" - }, - { - "slug": "mobile-legends-bang-bang", - "name": "Mobile Legends: Bang Bang", - "igdbId": 79392, - "version": "1.0.2", - "engine": "manual-report", - "description": "Five-a-side mobile MOBA. One map per game.", - "file": "packs/mobile-legends-bang-bang.json", - "icon": "icons/mobile-legends-bang-bang.svg", - "appIcon": "app-icons/mobile-legends-bang-bang.webp" - }, - { - "slug": "mortal-kombat-1", - "name": "Mortal Kombat 1", - "igdbId": 272491, - "version": "1.0.2", - "engine": "manual-report", - "description": "Fighting game. Report games won in the set.", - "file": "packs/mortal-kombat-1.json", - "icon": "icons/mortal-kombat-1.svg", - "appIcon": "app-icons/mortal-kombat-1.webp" - }, - { - "slug": "osu", - "name": "osu!", - "igdbId": 3012, - "version": "1.0.2", - "engine": "manual-report", - "description": "Rhythm game. Report maps won.", - "file": "packs/osu.json", - "icon": "icons/osu.svg", - "appIcon": "app-icons/osu.webp" - }, - { - "slug": "overwatch-2", - "name": "Overwatch 2", - "igdbId": 125174, - "version": "1.0.2", - "engine": "manual-report", - "description": "Five-a-side hero shooter, reported by maps won.", - "file": "packs/overwatch-2.json", - "icon": "icons/overwatch-2.svg", - "appIcon": "app-icons/overwatch-2.webp" - }, - { - "slug": "pubg-battlegrounds", - "name": "PUBG: Battlegrounds", - "igdbId": 27789, - "version": "1.0.2", - "engine": "manual-report", - "description": "Squad battle royale. Placement and eliminations each match.", - "file": "packs/pubg-battlegrounds.json", - "icon": "icons/pubg-battlegrounds.svg", - "appIcon": "app-icons/pubg-battlegrounds.webp" - }, - { - "slug": "rainbow-six-siege", - "name": "Rainbow Six Siege", - "igdbId": 7360, - "version": "1.0.2", - "engine": "manual-report", - "description": "Five-a-side tactical shooter, reported by rounds won.", - "file": "packs/rainbow-six-siege.json", - "icon": "icons/rainbow-six-siege.svg", - "appIcon": "app-icons/rainbow-six-siege.webp" - }, - { - "slug": "rocket-league", - "name": "Rocket League", - "igdbId": 11198, - "version": "1.0.3", - "engine": "manual-report", - "description": "Car soccer. Captains report the score; goals, assists, saves and shots per player.", - "file": "packs/rocket-league.json", - "icon": "icons/rocket-league.svg", - "appIcon": "app-icons/rocket-league.webp" - }, - { - "slug": "splatoon-3", - "name": "Splatoon 3", - "igdbId": 143613, - "version": "1.0.2", - "engine": "manual-report", - "description": "Four-a-side team shooter, reported by the maps played.", - "file": "packs/splatoon-3.json", - "icon": "icons/splatoon-3.svg", - "appIcon": "app-icons/splatoon-3.webp" - }, - { - "slug": "starcraft-ii", - "name": "StarCraft II", - "igdbId": 239, - "version": "1.0.2", - "engine": "manual-report", - "description": "One-on-one real-time strategy. Report games won in the set.", - "file": "packs/starcraft-ii.json", - "icon": "icons/starcraft-ii.svg", - "appIcon": "app-icons/starcraft-ii.webp" - }, - { - "slug": "street-fighter-6", - "name": "Street Fighter 6", - "igdbId": 191692, - "version": "1.0.2", - "engine": "manual-report", - "description": "Fighting game. Report games won in the set.", - "file": "packs/street-fighter-6.json", - "icon": "icons/street-fighter-6.svg", - "appIcon": "app-icons/street-fighter-6.webp" - }, - { - "slug": "super-smash-bros-ultimate", - "name": "Super Smash Bros. Ultimate", - "igdbId": 90101, - "version": "1.0.2", - "engine": "manual-report", - "description": "Platform fighter. Report games won in the set.", - "file": "packs/super-smash-bros-ultimate.json", - "icon": "icons/super-smash-bros-ultimate.svg", - "appIcon": "app-icons/super-smash-bros-ultimate.webp" - }, - { - "slug": "team-fortress-2", - "name": "Team Fortress 2", - "igdbId": 891, - "version": "1.0.3", - "engine": "manual-report", - "description": "Six-a-side class shooter, reported by rounds won.", - "file": "packs/team-fortress-2.json", - "icon": "icons/team-fortress-2.svg", - "appIcon": "app-icons/team-fortress-2.webp" - }, - { - "slug": "teamfight-tactics", - "name": "Teamfight Tactics", - "igdbId": 120176, - "version": "1.0.2", - "engine": "manual-report", - "description": "Eight-player auto battler. Report finishing placement each game.", - "file": "packs/teamfight-tactics.json", - "icon": "icons/teamfight-tactics.svg", - "appIcon": "app-icons/teamfight-tactics.webp" - }, - { - "slug": "tekken-8", - "name": "Tekken 8", - "igdbId": 217590, - "version": "1.0.2", - "engine": "manual-report", - "description": "Fighting game. Report games won in the set.", - "file": "packs/tekken-8.json", - "icon": "icons/tekken-8.svg", - "appIcon": "app-icons/tekken-8.webp" - }, - { - "slug": "trackmania", - "name": "Trackmania", - "igdbId": 133807, - "version": "1.0.2", - "engine": "manual-report", - "description": "Racing. The score is whatever format the host runs — points, rounds or times.", - "file": "packs/trackmania.json", - "icon": "icons/trackmania.svg", - "appIcon": "app-icons/trackmania.webp" - }, - { - "slug": "valorant", - "name": "Valorant", - "igdbId": 126459, - "version": "1.0.2", - "engine": "manual-report", - "description": "Five-a-side tactical shooter, reported by rounds won.", - "file": "packs/valorant.json", - "icon": "icons/valorant.svg", - "appIcon": "app-icons/valorant.webp" - } - ], - "modules": [] -} diff --git a/docs/FORMAT.md b/docs/FORMAT.md deleted file mode 100644 index 01d279b..0000000 --- a/docs/FORMAT.md +++ /dev/null @@ -1,149 +0,0 @@ -# Pack format - -The pack file, tiles, app icons and how the repo is laid out. - -## The format - -```json -{ - "schema": 1, - "slug": "call-of-duty", - "name": "Call of Duty", - "engine": "manual-report", - "aliases": ["cod"], - "version": "1.0.0", - "description": "One line. Shown on the Modules page.", - "icon": "../icons/call-of-duty.svg", - "report": { "confirmation": "opponent", "confirmTimeoutMin": 60 }, - "stats": [ - { "key": "kills", "label": "Kills", "type": "integer", "scope": "player" } - ] -} -``` - -| Field | Required | What it is | -| --- | --- | --- | -| `schema` | yes | `1`. An instance refuses a schema it does not read. | -| `slug` | yes | `lower-case-with-hyphens`. The game's usual slug (`counter-strike-2`, `rocket-league`), so search enriches the same row instead of adding a second. | -| `name` | yes | What people call the game. | -| `igdbId` | no | Legacy. Game search used IGDB before 3.0 and uses Wikidata now. This id only links games that an older instance added through IGDB search to this pack. New packs leave it out. | -| `engine` | yes | The module that runs it. `manual-report` today. | -| `aliases` | no | Extra search terms. | -| `version` | no | Your own version string. Re-importing the same slug updates it. | -| `description` | no | One line, at most 300 characters. | -| `icon` | no | Where the tile lives, relative to this file — `../icons/.svg`. A path, never markup and never a URL. Without one the app shows the game's text mark. | -| `appIcon` | no | Where the game's own square app icon lives, relative to this file — `../app-icons/.webp`. A PNG or WebP, never a URL. Without one the small game pills show the game's initials. | -| `report.confirmation` | no | `opponent` (the other captain agrees) or `admin`. | -| `report.confirmTimeoutMin` | no | How long the opponent has before it goes to an admin. | -| `stats` | no | Up to 40 fields. `type` is `integer`, `decimal` or `text`; `scope` is `player` or `team`. | -| `account` | no | The account players need for this game, as a sign-in provider: `steam`, `epic`, `discord`, `google`, `github`, `twitch` or `oidc`. It lists the game under that account on people's connections page (Rocket League → Epic Games). Leave it out when the game is on several platforms. Needs an instance that knows the field (older 3.0 betas refuse it). | - -Unknown fields are refused rather than ignored, so a pack written for a newer -schema fails loudly instead of quietly doing less than it says. - -## Tiles - -A tile is a square SVG, full bleed, drawn in the Auto Tournament palette — -every fill written as `fill="var(--at-ember, #ff6a3d)"` with a hex fallback, -so the tile follows whatever theme the instance is using and still looks right -opened on its own. The variables are listed in the platform repo under -`brand/modules/README.md`. - -Tiles are checked on import against a strict allowlist of elements and -attributes, and **rejected, not stripped**, if they contain anything else. A -tile is inlined into the admin's page, so a `