+============================================+ | servers.luanti.org statistics | | 10 days (16th Aug 2026 -- 26th Aug 2026) | | Only server list fetches were counted. | +============================================+ General stats ------------- total: 1687429 IPv4 -> 1205849 71.46% IPv6 -> 481580 28.54% Browser -> 99163 05.88% other -> 1588266 94.12% Note: While visiting servers.minetest.net will redirect, the list file itself won't. So there are no distortions expected due to the rename. Non-browser user agents ----------------------- total: 711473 unique (by IP): 235879 Minetest/Luanti (or identifies as such): 5.17 -> 43004 06.04% 5.16 -> 177365 24.93% 5.15 -> 19378 02.72% 5.14 -> 5218 00.73% 5.13 -> 37896 05.33% 5.12 -> 1806 00.25% 5.11 -> 2259 00.32% 5.10 -> 11380 01.60% 5.9 -> 1893 00.27% 5.8 -> 7523 01.06% 5.7 -> 1509 00.21% 5.6 -> 8202 01.15% 5.5 -> 2105 00.30% 5.4 -> 2580 00.36% 5.3 -> 536 00.08% 5.2 -> 36 00.01% 5.1 -> 1451 00.20% 5.0 -> 12822 01.80% 0.4.17 -> 2533 00.36% 0.4.16 -> 338 00.05% 0.4.15 -> 181 00.03% 0.4.14 -> 54 00.01% 0.4.13 -> 551 00.08% 0.4.12 -> 18 00.00% 0.4.11 -> 16 00.00% 0.4.10 -> 52 00.01% 0.4.9 -> 3 00.00% 0.4.8 -> 0 00.00% series 5.x -> 337722 47.47% series 0.4.x -> 3746 00.53% dev version string -> 61663 08.67% all other user agents -> 369969 52.00% Some relevant ones of the above: KawaiiWorld -> 201014 28.25% "Luanti VOPI Engine" -> 33776 04.75% MultiCraft -> 14382 02.02% LuantiUnity -> 9599 01.35% Finecraft Hub -> 8044 01.13% Mini Worlds -> 4643 00.65% PlayBound -> 4217 00.59% Note about 5.0: All of these requests appear to be from an Android app built from a particular dev commit before the 5.0 release, making it incompatible with all servers no matter the version. Which app this is is unknown. It is suspected that the app doesn't even support multiplayer and fetching the list is a code bug/accident. Note about 0.4.13: There seems to be an old iOS app that is based on 0.4.13, since 99% of these are from iOS. Note about other user agents: These are mostly curl, python-requests and other programmatic clients plus a bunch of small Android(?) forks and cheat clients. Third party notes and links: * KawaiiWorld: by or - Version numbers suggest that these are based on old versions of the MultiCraft codebase (specifically 1.6.x) and therefore on Minetest 0.4.17. * "Luanti VOPI Engine": unclear, but the name suggests this is the same developer. Appears to be 5.15.x on either Android or iOS. * MultiCraft: - Since version 1.5.0 (Sep 2019) and newer are using MultiCraft's own server list, all clients visible here are just old remnants. * LuantiUnity: clearly automated scraping from a handful of Chinese IPs * Finecraft Hub: The app purports to be a language addon for MCPE, but actually contains Luanti 5.15 bundled with Voxelibre. * Mini Worlds: All of these are from Android, 5.15.x according to protocol. Unclear which app. * PlayBound: another scraping operation from 1900+ unique AWS IPs (why??) Protocol versions ----------------- total: 620669 By maximum version: v53 -> 41917 06.75% v52 -> 157450 25.37% v51 -> 91389 14.72% v50 -> 5226 00.84% v49 -> 2870 00.46% v48 -> 50042 08.06% v47 -> 3792 00.61% v46 -> 12558 02.02% v45 -> 550 00.09% v44 -> 1375 00.22% v43 -> 2508 00.40% v42 -> 1472 00.24% v41 -> 8238 01.33% v40 -> 2603 00.42% v39 -> 3885 00.63% v38 -> 1431 00.23% v37 -> 27 00.00% v36 -> 12801 02.06% v35 -> 5 00.00% v34 -> 0 00.00% v33 -> 0 00.00% v32 -> 218731 35.24% v31 -> 0 00.00% v30 -> 134 00.02% v29 -> 0 00.00% v28 -> 93 00.01% v27 -> 1136 00.18% v26 -> 73 00.01% v25 -> 49 00.01% v24 -> 34 00.01% By supported range: v53 -> 42197 06.80% v52 -> 199647 32.17% v51 -> 291036 46.89% v50 -> 296262 47.73% v49 -> 299132 48.20% v48 -> 349174 56.26% v47 -> 352966 56.87% v46 -> 365524 58.89% v45 -> 366074 58.98% v44 -> 367449 59.20% v43 -> 369957 59.61% v42 -> 371429 59.84% v41 -> 379667 61.17% v40 -> 382270 61.59% v39 -> 386155 62.22% v38 -> 387586 62.45% v37 -> 387613 62.45% v36 -> 12802 02.06% v35 -> 6 00.00% v34 -> 6 00.00% v33 -> 6 00.00% v32 -> 218737 35.24% v31 -> 218737 35.24% v30 -> 218871 35.26% v29 -> 218871 35.26% v28 -> 218964 35.28% v27 -> 220100 35.46% v26 -> 220173 35.47% v25 -> 220222 35.48% v24 -> 1426 00.23% Explanation: The maximum of 0.4.17 is v32, the minimum of 5.0 is v37. Versions 33 until 36 were never released (dev builds only). v53 is the latest release at the time of writing. ⚠️ Important warning ⚠️: Questionable Android apps distort these numbers a whole lot (take note of v32). For example the same survey under only Windows users shows 99.5% supporting the 5.x range. Platform stats -------------- total: 611117 x86 -> 1347 00.22% x86_64 -> 153857 25.18% armv6/7l -> 26222 04.29% aarch64 -> 306203 50.11% (Apple) -> 123041 20.13% ??? -> 447 00.07% (Linux-based) -> 408181 66.79% Windows -> 71508 11.70% Darwin -> 130710 21.39% Emscripten -> 365 00.06% *BSD -> 325 00.05% Note about Apple: This means Apple mobile devices (iPad, iPhone, iPod), which return their model instead of CPU architecture in uname(). I did not care to sort them apart. You can assume that almost all are aarch64 these days. Note about Linux-based: This figure includes both "real" Linux and Android, because they can't be clearly differentiated here. Geographic stats ---------------- total: 611117 Continents: Asia (AS) -> 238790 39.07% Europe (EU) -> 134958 22.08% North Am. (NA) -> 128294 20.99% South Am. (SA) -> 55150 09.02% Africa (AF) -> 47129 07.71% Oceania (OC) -> 6483 01.06% Countries (top 10): United States (US) -> 91001 14.89% Indonesia (ID) -> 35848 05.87% Philippines (PH) -> 30398 04.97% Germany (DE) -> 26832 04.39% Vietnam (VN) -> 25534 04.18% Brazil (BR) -> 24375 03.99% India (IN) -> 24062 03.94% Turkey (TR) -> 22742 03.72% Russia (RU) -> 22035 03.61% France (FR) -> 15509 02.54% Note about Russia: Russia dropped from 2nd place in last year's stats. There have been reports that Luanti's server list is blocked in Russia. Windows stats ------------- total: 71508 Windows 11 -> 39191 54.81% Windows 10 -> 30368 42.47% Windows 8(.1) -> 526 00.74% Windows 7 -> 1366 01.91% Windows Vista -> 0 00.00% Windows XP -> 57 00.08% older -> 0 00.00% Any Windows on ARM users? Yes, there are 4 hits in this log, so practically nobody. Platform stats (new) -------------------- total: 357572 Linux -> 66134 18.50% Android -> 200974 56.21% Windows -> 65005 18.18% Darwin -> 24773 06.93% Emscripten -> 342 00.10% *BSD -> 324 00.09% Desktop -> 139338 38.97% Android -> 200974 56.21% iOS -> 17260 04.83% Explanation: Starting with 5.9 Luanti sends a precise indication that it's running on Android (and the OS version), so these numbers only include 5.9 or newer. Note about Darwin: In the first table, Darwin includes both macOS and iOS. In the second table, Darwin is correctly split into Desktop and iOS. You can subtract the two to arrive at 7513 for macOS. Geographic stats (new) ---------------------- total: 367173 Continents: Asia (AS) -> 135945 37.02% Europe (EU) -> 102241 27.85% North Am. (NA) -> 58788 16.01% South Am. (SA) -> 33900 09.23% Africa (AF) -> 32811 08.94% Oceania (OC) -> 3296 00.90% Countries (top 10): United States (US) -> 40371 11.00% Germany (DE) -> 23037 06.27% Indonesia (ID) -> 16318 04.44% India (IN) -> 15368 04.19% Turkey (TR) -> 14986 04.08% France (FR) -> 14008 03.82% Brazil (BR) -> 13967 03.80% Philippines (PH) -> 13053 03.55% China (CN) -> 12943 03.53% Vietnam (VN) -> 11931 03.25% Note: Same as previous section this only covers 5.9 or newer. Android stats ------------- total: 200974 x86 -> 436 00.22% x86_64 -> 1989 00.99% armv6/7l -> 13326 06.63% aarch64 -> 185222 92.16% API37 -> 897 00.45% API36 -> 37814 18.82% API35 -> 34915 17.37% API34 -> 29657 14.76% API33 -> 28021 13.94% API32 -> 149 00.07% API31 -> 19503 09.70% API30 -> 18741 09.33% API29 -> 13281 06.61% API28 -> 6836 03.40% API27 -> 4940 02.46% API26 -> 1240 00.62% API25 -> 1114 00.55% API24 -> 1043 00.52% API23 -> 1769 00.88% API22 -> 955 00.48% API21 -> 99 00.05% Note: This section again relies on data that is only sent by Luanti 5.9+. Note about API levels: These correspond to Android major/minor versions, see iOS stats --------- total: 123041 iPad -> 49264 40.04% iPhone -> 73768 59.95% iPod -> 9 00.01% +========================+ | big pile of commands | +========================+ grep -Fn '[16/Aug/2026:12:12:12' raw.log | head -1 grep -Fn '[26/Aug/2026:12:12:12' raw.log | head -1 sed -n '6562757,10353896p' raw.log | grep "GET /list" > serverlist_10days.log wc -l serverlist_10days.log cat serverlist_10days.log | awk '{ if($1 !~ ":") print $0 }' | wc -l cat serverlist_10days.log | awk '{ if($1 ~ ":") print $0 }' | wc -l ## cat serverlist_10days.log | grep -Ec "Mozilla|Opera" cat serverlist_10days.log | grep -Ecv "Mozilla|Opera" cat serverlist_10days.log | grep -Ev "Mozilla|Opera" | ./wwwuniq.py game.log # the script filters out log lines from the same IP within 120s of each other ## for v in $(seq 17 -1 10); do count=$(cat game.log | cut -d '"' -f 6-7 | grep -Ec "^Luanti/5\.$v") printf '5.%d -> %-7d\n' $v $count done for v in $(seq 9 -1 0); do count=$(cat game.log | cut -d '"' -f 6-7 | grep -Ec "^Minetest/5\.$v") printf '5.%d -> %-7d\n' $v $count done for v in $(seq 17 -1 12); do count=$(cat game.log | cut -d '"' -f 6-7 | grep -Ec "^Minetest/0\.4\.$v") printf '0.4.%d -> %-7d\n' $v $count done cat game.log | cut -d '"' -f 6-7 | grep -Ec "^Minetest/(0\.4\.11|gUnknown)" cat game.log | cut -d '"' -f 6-7 | grep -Ec "^Minetest/0\.4\.10" cat game.log | cut -d '"' -f 6-7 | grep -Ec "^Minetest[/ ]0\.4\.9" cat game.log | cut -d '"' -f 6-7 | grep -Ec "^Minetest 0\.4\.8" ## cat game.log | cut -d '"' -f 6-7 | grep -Ec '^(Minetest|Luanti)/5\.' cat game.log | cut -d '"' -f 6-7 | grep -Ec '^Minetest[/ ]0\.4\.' ## cat game.log | cut -d '"' -f 6-7 | grep -Ec '^(Minetest|Luanti)/[0-9.]+-dev' ## cat game.log | cut -d '"' -f 6-7 | grep -Ev "^(Minetest|Luanti)/" | wc -l cat game.log | cut -d '"' -f 6-7 | grep -Ev "^(Minetest|Luanti)/" | \ cut -d "/" -f 1 | sort | uniq -c | sort -n cat game.log | sed -rn 's|.*\?proto_version_min=([0-9]+)&proto_version_max=([0-9]+).*|\1 \2|gp' > proto.log wc -l proto.log ## for i in $(seq 53 -1 24); do printf "v$i -> %-7d\n" $(grep -c " $i\$" proto.log) done ## for i in $(seq 53 -1 24); do printf "v$i -> %-7d\n" $(awk "{ if($i >= \$1 && $i <= \$2) print $0 }" proto.log | wc -l) done cat game.log | cut -d '"' -f 6-7 | grep -Eo '\(\S+ \S+\)" ' > newer.log cat newer.log | cut -d '(' -f 2 | cut -d ')' -f 1 | \ sed -re 's/i(Phone|Pad|Pod)[0-9,]+/apple/' > plat.log wc -l newer.log ## cat plat.log | grep -Ec "(x86|i[3-6]86)$" cat plat.log | grep -Ec "(x86_64|amd64)$" cat plat.log | grep -Ec "armv[67]l?$" cat plat.log | grep -Ec "(aarch64|armv8l?|arm64)$" cat plat.log | grep -Ec "apple$" cat plat.log | grep -Ec -v "(x86|i[3-6]86|x86_64|amd64|armv[678]l?|aarch64|arm64|apple)$" ## cat newer.log | cut '-d(' -f2 | cut '-d/' -f1 | sort | uniq -c | sort -n calc.exe cat game.log | grep -E '\(\S+ \S+\)" ' | cut -d ' ' -f 1 | ./geoiptool.py > geo.log # this script retrives continent and country for an IP, e.g. ("1.1.1.1" -> "1.1.1.1 NA US") wc -l geo.log ## cat geo.log | cut -d " " -f 2 | sort | uniq -c | sort -rn ## cat geo.log | cut -d " " -f 3 | sort | uniq -c | sort -rn | head -10 cat newer.log | cut '-d(' -f2 | grep "Windows/" | cut -d '/' -f2 | cut -d ')' -f1 > winver.log wc -l winver.log ## cat winver.log | grep -Ec "^10\.0\.2[0-9]+" cat winver.log | grep -Ec "^10\.0\.1[0-9]+" cat winver.log | grep -c "^6\.[23]" cat winver.log | grep -c "^6\.1" cat winver.log | grep -c "^6\.0" cat winver.log | grep -c "^5\.[12]" cat winver.log | grep -Ev "^(5\.[12]|6\.[0-3]|10\.0)" | wc -l cat game.log | grep -E 'proto_version_max=(4[4-9]|[5-9][0-9])\b' | cut -d '"' -f 6-7 | grep -Eo '\(\S+ \S+\)" ' > new59.log wc -l new59.log ## cat new59.log | cut '-d(' -f2 | cut '-d/' -f1 | sort | uniq -c | sort -n ## cat new59.log | grep -Ec -v "Android/| iP" cat new59.log | grep -Fc "Android/" cat new59.log | grep -Fc " iP" cat game.log | grep -E 'proto_version_max=(4[4-9]|[5-9][0-9])\b' | cut -d ' ' -f 1 | ./geoiptool.py > geo59.log wc -l geo59.log ## cat geo59.log | cut -d " " -f 2 | sort | uniq -c | sort -rn ## cat geo59.log | cut -d " " -f 3 | sort | uniq -c | sort -rn | head -10 cat new59.log | grep -o "Android/.*$" | cut -d ')' -f1 > droid.log wc -l droid.log ## cat droid.log | grep -Ec "i686$" cat droid.log | grep -Ec "x86_64$" cat droid.log | grep -Ec "armv[67]l?$" cat droid.log | grep -Ec "(aarch64|armv8l?)$" ## for i in $(seq 37 -1 21); do printf "API$i -> %-5d\n" $(awk "{ if(\$1 == \"Android/$i\") print $0 }" droid.log | wc -l) done cat newer.log | grep -E "i(Phone|Pad|Pod)" > ios.log wc -l ios.log ## cat ios.log | grep -c iPhone cat ios.log | grep -c iPad cat ios.log | grep -c iPod