From f0918891e9b1292bd42f28ddc9de9d2951b88082 Mon Sep 17 00:00:00 2001
From: Dominic Seung
Date: Mon, 14 Sep 2026 06:14:23 +0000
Subject: [PATCH 1/5] Add player counts and names to SMP archive
Label each world with the number of unique players that ever joined,
counted from stats/advancements/playerdata UUIDs in the world downloads.
Hovering a count shows the player names, resolved via server whitelists
and the Mojang API.
---
src/pages/smp-archive.astro | 72 +++++++++++++++++++++++++++++--------
1 file changed, 57 insertions(+), 15 deletions(-)
diff --git a/src/pages/smp-archive.astro b/src/pages/smp-archive.astro
index 45bb807..81be65c 100644
--- a/src/pages/smp-archive.astro
+++ b/src/pages/smp-archive.astro
@@ -24,7 +24,9 @@ const smps = [
version: "1.12.2",
image: firstSMP,
date: "2017-10-06",
- size: "8.7 MB"
+ size: "8.7 MB",
+ players: 2,
+ playerNames: ["DSNS", "Max_AS"]
},
{
name: "Chromocraft Season 1",
@@ -32,7 +34,9 @@ const smps = [
version: "1.12.2",
image: chromocraftSeason1,
date: "2017-10-18",
- size: "20.5 MB"
+ size: "20.5 MB",
+ players: 3,
+ playerNames: ["DSNS", "Max_AS", "unknown (1280ef39…)"]
},
{
name: "Chromocraft Season 2",
@@ -41,7 +45,9 @@ const smps = [
image: chromocraftSeason2,
date: "2019-02-18",
missing: true,
- size: null
+ size: null,
+ players: null,
+ playerNames: []
},
{
name: "Chromocraft Season 3",
@@ -50,7 +56,9 @@ const smps = [
image: chromocraftSeason3,
date: "2019-04-28",
missing: false,
- size: "2.9 GB"
+ size: "2.9 GB",
+ players: 58,
+ playerNames: ["300mittens", "666z", "_NikiV", "aka_Henri", "blakebishop", "Bombsquad", "captinsause", "Cavalry_Scout", "ChanPlague", "Chvorka", "Craytex", "da_kuben", "Daan_", "DannySwift", "DollyDearie", "DSNS", "FannyPack", "GarretCMK", "GrandiiTwo", "grouchypoo", "Hazerz", "iCummy", "iftw", "ItzAndrewPvp", "jiebi", "jocabXD", "JustOof", "knobiknallfrosch", "KWaB_", "LagMaster1000", "lilynp", "lyb_euh", "Matzgo", "Max_AS", "Mayday44", "MeIsJordon", "MischiefCarrot", "Mudbesj", "OGMASTERKUSH420", "OMG_Its_Danger", "Orbert__", "papanowuh", "pluse", "seanppage", "Shumil", "skabetty", "skurt37", "SleepyBears7", "spiritofsilver", "TheFishingMaster", "ThousandDegree", "timpictor", "vicariamente", "Villager314", "WearBlackAllDay", "wizrow", "x4element", "Yggdrasil__God"]
},
{
name: "Earth 1:4000 SMP",
@@ -58,7 +66,9 @@ const smps = [
version: "1.16.1",
image: earth14000Smp,
date: "2020-08-06",
- size: "855.9 MB"
+ size: "855.9 MB",
+ players: 7,
+ playerNames: ["CityBoyGuy", "DSNS", "idot7", "jiebi", "Max_AS", "Node13", "Retsed"]
},
{
name: "Chromocraft Season 4",
@@ -66,7 +76,9 @@ const smps = [
version: "1.16.4",
image: chromocraftSeason4,
date: "2020-11-30",
- size: "958.6 MB"
+ size: "958.6 MB",
+ players: 20,
+ playerNames: ["0rAnGe___", "_DArtagnan_", "aldrynn", "B0B643", "BadLxck", "Cardassia", "DSNS", "GoofBallBoi", "idot7", "jiebi", "Kaenoone", "LonelySouls", "Max_AS", "MunchieThePig", "Node13", "ploplo_", "Retsed", "saegu_", "x4element", "yumns"]
},
{
name: "CitySMP",
@@ -74,7 +86,9 @@ const smps = [
version: "1.16.5",
image: citySmp,
date: "2021-01-14",
- size: "1.0 GB"
+ size: "1.0 GB",
+ players: 32,
+ playerNames: ["AmKale", "Anthropical", "BadLxck", "buildersoup", "Challenger3511", "ChaseThePenguin", "DSNS", "eggvry", "Getbaldedd", "GoofBallBoi", "hero_brain_2008", "idot7", "jakeybakers", "jiebi", "jlne", "Kaweo", "koriodo", "LonelySouls", "Max_AS", "Mikaxla22", "Mqxw3ll", "Node13", "ploplo_", "Retsed", "saegu_", "Siddu911", "Storling", "theebayuser", "UsinIsAwesome", "v_oo", "Xd_Oink", "yumns"]
},
{
name: "1.17 SMP",
@@ -82,7 +96,9 @@ const smps = [
version: "1.17",
image: one17Smp,
date: "2021-06-15",
- size: "1.3 GB"
+ size: "1.3 GB",
+ players: 19,
+ playerNames: ["Anthropical", "BadLxck", "ChaseThePenguin", "DSNS", "Finchiee", "GoofBallBoi", "idot7", "ImSoBadOmg", "jiebi", "LonelySouls", "Matthews4813", "Max_AS", "Node13", "Retsed", "saegu_", "UrpyBurpy", "UsinIsAwesome", "Xd_Oink", "yumns"]
},
{
name: "1.18 Snapshot SMP (21w40a)",
@@ -90,7 +106,9 @@ const smps = [
version: "21w40a",
image: one18SnapshotSmp,
date: "2021-10-10",
- size: "370.4 MB"
+ size: "370.4 MB",
+ players: 9,
+ playerNames: ["Anthropical", "ChaseThePenguin", "daweedjam", "DSNS", "idot7", "jiebi", "Max_AS", "Node13", "Retsed"]
},
{
name: "mc.dsns.dev",
@@ -99,7 +117,9 @@ const smps = [
version: "1.20-1.20.1",
image: mcDsnsDevPart1,
date: "2023-06-07",
- size: "4.0 GB"
+ size: "4.0 GB",
+ players: 19,
+ playerNames: ["Agedfish", "Anthropical", "Armster15", "B0B643", "BadLxck", "ConservativeNews", "DSNS", "GoofBallBoi", "HockeyGamr", "jakeybakers", "jiebi", "jschlattstan", "LonelySouls", "matscan", "Max_AS", "Node13", "ploplo_", "Retsed", "saegu_"]
},
{
name: "mc.dsns.dev",
@@ -108,7 +128,9 @@ const smps = [
version: "1.20.6-1.21",
image: mcDsnsDevPart2,
date: "2024-06-11",
- size: "2.6 GB"
+ size: "2.6 GB",
+ players: 15,
+ playerNames: ["Anthropical", "Archer2305", "Armster15", "B0B643", "BadLxck", "ConservativeNews", "Dark_Rider_ii", "DSNS", "jakeybakers", "jiebi", "jschlattstan", "LonelySouls", "Max_AS", "ploplo_", "Retsed"]
},
{
name: "Delicious SMP",
@@ -116,7 +138,9 @@ const smps = [
version: "1.21",
image: deliciousSmp,
date: "2025-04-08",
- size: "994.2 MB"
+ size: "994.2 MB",
+ players: 4,
+ playerNames: ["DSNS", "jiebi", "Max_AS", "Retsed"]
},
{
name: "A New Beginning SMP",
@@ -124,7 +148,9 @@ const smps = [
version: "1.21.10",
image: aNewBeginningSmp,
date: "2025-12-07",
- size: "419.8 MB"
+ size: "419.8 MB",
+ players: 9,
+ playerNames: ["Anthropical", "DSNS", "GoofyGoober_27", "jiebi", "KarmaScout", "Max_AS", "ploplo_", "Retsed", "Timeclock_"]
},
{
name: "Max's SMP",
@@ -132,7 +158,9 @@ const smps = [
version: "26.2",
image: maxsmp,
date: "2026-07-14",
- size: "8.9 GB"
+ size: "8.9 GB",
+ players: 24,
+ playerNames: ["_BonkerMoose", "Anthropical", "badthew3", "chiefpegasus", "cyber_penguinn", "Darielicious", "daweedjam", "DSNS", "Eatsand614", "FakeDeveloper11", "HammerMan_", "jiebi", "kylerpoopoo", "LilTanbark", "LLamaTurtleFish", "magio0", "Max_AS", "N00byz", "NL4P", "OlivesInABox", "pigsteppy", "Retsed", "WHIT3D", "Wowza0618"]
}
];
@@ -153,6 +181,9 @@ margins.push(0);
Download the .zip and drag it into
Prism Launcher to play.
+
+ Player counts are the number of unique players that ever joined, based on the world's stats, advancements, and playerdata.
+
@@ -202,9 +233,20 @@ margins.push(0);
{smp.name}
{smp.subtitle &&
{smp.subtitle}}
{smp.missing &&
No World Available}
-
+
{smp.version && {smp.version}}
{smp.size && {smp.size}}
+ {smp.players != null && (
+
+ {smp.players} {smp.players === 1 ? "player" : "players"}
+ {smp.playerNames.length > 0 && (
+
+ Players
+ {smp.playerNames.join(", ")}
+
+ )}
+
+ )}
{!smp.missing && (
From 54cb5109fb970d06c76c60567ea03815833aa7e1 Mon Sep 17 00:00:00 2001
From: Dominic Seung
Date: Sun, 13 Sep 2026 23:40:36 -0700
Subject: [PATCH 2/5] Update smp-archive.astro
---
src/pages/smp-archive.astro | 3 ---
1 file changed, 3 deletions(-)
diff --git a/src/pages/smp-archive.astro b/src/pages/smp-archive.astro
index 81be65c..fc58d7f 100644
--- a/src/pages/smp-archive.astro
+++ b/src/pages/smp-archive.astro
@@ -181,9 +181,6 @@ margins.push(0);
Download the .zip and drag it into
Prism Launcher to play.
-
- Player counts are the number of unique players that ever joined, based on the world's stats, advancements, and playerdata.
-
From 2ce0e3bdf7ac406dfef8cc94b46483e8ca87a996 Mon Sep 17 00:00:00 2001
From: Dominic Seung
Date: Sun, 13 Sep 2026 23:41:32 -0700
Subject: [PATCH 3/5] Remove duplicate size display in smp-archive
---
src/pages/smp-archive.astro | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pages/smp-archive.astro b/src/pages/smp-archive.astro
index fc58d7f..594c260 100644
--- a/src/pages/smp-archive.astro
+++ b/src/pages/smp-archive.astro
@@ -232,7 +232,6 @@ margins.push(0);
{smp.missing && No World Available}
{smp.version && {smp.version}}
- {smp.size && {smp.size}}
{smp.players != null && (
{smp.players} {smp.players === 1 ? "player" : "players"}
@@ -244,6 +243,7 @@ margins.push(0);
)}
)}
+ {smp.size && {smp.size}}
{!smp.missing && (
From aa1d97d47c2006ec942da44836213980b018cce0 Mon Sep 17 00:00:00 2001
From: Dominic Seung
Date: Sun, 8 Nov 2026 19:51:48 -0800
Subject: [PATCH 4/5] Fix player count tooltip being cut off
- Remove overflow-hidden from card so tooltip can escape the card bounds
- Widen tooltip to w-80 and anchor left to avoid viewport overflow on mobile
- Render player names as wrapped chips instead of a comma-separated blob
- Make tooltip scrollable (pointer-events auto) so long lists are reachable
- Drop the duplicate native title tooltip
- Add focus/touch support so the tooltip works on mobile and keyboard
---
src/pages/smp-archive.astro | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/src/pages/smp-archive.astro b/src/pages/smp-archive.astro
index 594c260..caaab72 100644
--- a/src/pages/smp-archive.astro
+++ b/src/pages/smp-archive.astro
@@ -206,9 +206,9 @@ margins.push(0);
href={smp.url}
target="_blank"
rel="noopener noreferrer"
- class="block overflow-hidden rounded-xl bg-viola-100 shadow-lg transition-all duration-300 hover:scale-[1.02] hover:shadow-xl"
+ class="block rounded-xl bg-viola-100 shadow-lg transition-all duration-300 hover:scale-[1.02] hover:shadow-xl"
>
-
+
{smp.image ? (
) : (
@@ -233,12 +233,20 @@ margins.push(0);
{smp.version && {smp.version}}
{smp.players != null && (
-
+ 0 ? 0 : undefined}
+ aria-label={smp.playerNames.length > 0 ? `Players: ${smp.playerNames.join(", ")}` : undefined}
+ >
{smp.players} {smp.players === 1 ? "player" : "players"}
{smp.playerNames.length > 0 && (
-
- Players
- {smp.playerNames.join(", ")}
+
+ Players
+
+ {smp.playerNames.map((playerName) => (
+ {playerName}
+ ))}
+
)}
From f29cbfb9c299f1ba2f2abccceeb84a521d1939c5 Mon Sep 17 00:00:00 2001
From: Dominic Seung
Date: Mon, 9 Nov 2026 16:27:39 -0800
Subject: [PATCH 5/5] Replace hover tooltip with expandable player list in card
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Player names now live in a native section at the bottom of
each card: tap the row to show all players as wrapped chips — no
hover precision needed, works on touch and keyboard, and no name is
ever clipped or hidden behind a viewport edge
- Count badge stays in the meta row for at-a-glance info
- Whole card still links to the archive; the players section sits
outside the link so toggling never navigates
---
src/pages/smp-archive.astro | 49 ++++++++++++++++---------------------
1 file changed, 21 insertions(+), 28 deletions(-)
diff --git a/src/pages/smp-archive.astro b/src/pages/smp-archive.astro
index caaab72..8bb0764 100644
--- a/src/pages/smp-archive.astro
+++ b/src/pages/smp-archive.astro
@@ -202,15 +202,11 @@ margins.push(0);