From 0a76463f3920d403a80e2eebf41b4ae40912e9f3 Mon Sep 17 00:00:00 2001 From: Sivert Date: Fri, 25 Sep 2026 10:50:47 +0200 Subject: [PATCH] feat(packs): square app icons for 30 packs, plus CS2 The small game pills showed a sliver of each game's wide Wikidata wordmark ("AGI GEN", "ROC LEA"). A pack can now name the game's own square app icon with `appIcon` (`../app-icons/.webp`): 128 x 128 WebP, at most 25 KB, checked by its bytes on import. Sources, all public and key-free: Steam client icons (256/512 px frames of the .ico), App Store icons (iTunes Lookup), Nintendo eShop square images, and one each from the Microsoft Store (Trackmania), the Epic Games Store (Valorant) and Wikimedia Commons (osu!). Each file's origin is in app-icons/SOURCES.md. Battlefield 6, Chess, League of Legends and StarCraft II have no square icon from such a source and get none. The 30 packs that gained one move to x.y.2, so installs pick it up. Co-Authored-By: Claude Opus 5.5 --- README.md | 31 ++++- app-icons/SOURCES.md | 78 ++++++++++++ app-icons/age-of-empires-ii.webp | Bin 0 -> 5780 bytes app-icons/apex-legends.webp | Bin 0 -> 1230 bytes app-icons/brawl-stars.webp | Bin 0 -> 5372 bytes app-icons/call-of-duty.webp | Bin 0 -> 1430 bytes app-icons/clash-royale.webp | Bin 0 -> 4974 bytes app-icons/counter-strike-2.webp | Bin 0 -> 1608 bytes app-icons/deadlock.webp | Bin 0 -> 3904 bytes app-icons/dota-2.webp | Bin 0 -> 5618 bytes app-icons/ea-sports-fc-25.webp | Bin 0 -> 4750 bytes app-icons/fortnite.webp | Bin 0 -> 4868 bytes app-icons/guilty-gear-strive.webp | Bin 0 -> 2770 bytes app-icons/halo-infinite.webp | Bin 0 -> 4488 bytes app-icons/hearthstone.webp | Bin 0 -> 4342 bytes app-icons/mario-kart-8-deluxe.webp | Bin 0 -> 8970 bytes app-icons/marvel-rivals.webp | Bin 0 -> 2024 bytes app-icons/minecraft.webp | Bin 0 -> 780 bytes app-icons/mobile-legends-bang-bang.webp | Bin 0 -> 6586 bytes app-icons/mortal-kombat-1.webp | Bin 0 -> 4636 bytes app-icons/osu.webp | Bin 0 -> 4444 bytes app-icons/overwatch-2.webp | Bin 0 -> 3650 bytes app-icons/pubg-battlegrounds.webp | Bin 0 -> 4890 bytes app-icons/rainbow-six-siege.webp | Bin 0 -> 5586 bytes app-icons/rocket-league.webp | Bin 0 -> 4476 bytes app-icons/splatoon-3.webp | Bin 0 -> 9086 bytes app-icons/street-fighter-6.webp | Bin 0 -> 3512 bytes app-icons/super-smash-bros-ultimate.webp | Bin 0 -> 9696 bytes app-icons/team-fortress-2.webp | Bin 0 -> 1582 bytes app-icons/teamfight-tactics.webp | Bin 0 -> 6618 bytes app-icons/tekken-8.webp | Bin 0 -> 2754 bytes app-icons/trackmania.webp | Bin 0 -> 4324 bytes app-icons/valorant.webp | Bin 0 -> 826 bytes catalog.json | 150 ++++++++++++++--------- index.json | 150 ++++++++++++++--------- packs/age-of-empires-ii.json | 3 +- packs/apex-legends.json | 3 +- packs/brawl-stars.json | 3 +- packs/call-of-duty.json | 3 +- packs/clash-royale.json | 3 +- packs/deadlock.json | 3 +- packs/dota-2.json | 3 +- packs/ea-sports-fc-25.json | 3 +- packs/fortnite.json | 3 +- packs/guilty-gear-strive.json | 3 +- packs/halo-infinite.json | 3 +- packs/hearthstone.json | 3 +- packs/mario-kart-8-deluxe.json | 3 +- packs/marvel-rivals.json | 3 +- packs/minecraft.json | 3 +- packs/mobile-legends-bang-bang.json | 3 +- packs/mortal-kombat-1.json | 3 +- packs/osu.json | 3 +- packs/overwatch-2.json | 3 +- packs/pubg-battlegrounds.json | 3 +- packs/rainbow-six-siege.json | 3 +- packs/rocket-league.json | 3 +- packs/splatoon-3.json | 3 +- packs/street-fighter-6.json | 3 +- packs/super-smash-bros-ultimate.json | 3 +- packs/team-fortress-2.json | 3 +- packs/teamfight-tactics.json | 3 +- packs/tekken-8.json | 3 +- packs/trackmania.json | 3 +- packs/valorant.json | 3 +- 65 files changed, 344 insertions(+), 155 deletions(-) create mode 100644 app-icons/SOURCES.md create mode 100644 app-icons/age-of-empires-ii.webp create mode 100644 app-icons/apex-legends.webp create mode 100644 app-icons/brawl-stars.webp create mode 100644 app-icons/call-of-duty.webp create mode 100644 app-icons/clash-royale.webp create mode 100644 app-icons/counter-strike-2.webp create mode 100644 app-icons/deadlock.webp create mode 100644 app-icons/dota-2.webp create mode 100644 app-icons/ea-sports-fc-25.webp create mode 100644 app-icons/fortnite.webp create mode 100644 app-icons/guilty-gear-strive.webp create mode 100644 app-icons/halo-infinite.webp create mode 100644 app-icons/hearthstone.webp create mode 100644 app-icons/mario-kart-8-deluxe.webp create mode 100644 app-icons/marvel-rivals.webp create mode 100644 app-icons/minecraft.webp create mode 100644 app-icons/mobile-legends-bang-bang.webp create mode 100644 app-icons/mortal-kombat-1.webp create mode 100644 app-icons/osu.webp create mode 100644 app-icons/overwatch-2.webp create mode 100644 app-icons/pubg-battlegrounds.webp create mode 100644 app-icons/rainbow-six-siege.webp create mode 100644 app-icons/rocket-league.webp create mode 100644 app-icons/splatoon-3.webp create mode 100644 app-icons/street-fighter-6.webp create mode 100644 app-icons/super-smash-bros-ultimate.webp create mode 100644 app-icons/team-fortress-2.webp create mode 100644 app-icons/teamfight-tactics.webp create mode 100644 app-icons/tekken-8.webp create mode 100644 app-icons/trackmania.webp create mode 100644 app-icons/valorant.webp diff --git a/README.md b/README.md index d13e760..4c18b03 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,7 @@ different kind of module. | `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 fall back to the IGDB cover, then 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`. | @@ -86,12 +87,30 @@ tile is inlined into the admin's page, so a `