• Follow our Instagram!
  • Curious about what we're currently doing about bots? Check out the latest updates from staff in this thread.

Discussion Bots are now capable of suspect reqs, do we care?

freezai

Live for the Applause
is a Social Media Contributoris a Tiering Contributoris a Tournament Director Alumnusis a Forum Moderator Alumnus
1787700905023.png
The Foul Play bot, released last year, is the latest attempt at a Pokémon Showdown playing bot. What sets it apart is that it's passable even in non-random formats. I configured an instance of this bot, gave it a sample team, and put it on the LC Ladder 24/7 for 3 days to see if it could obtain LC Suspect Reqs in the ongoing Aipom Suspect.

It could. In fact, it even beat some SCL players during its ladder run!



1787697926691.png

The bot had 11 disconnect losses, I estimate its strength at around ~76-77 GXE
​
For most of Pokémon Showdown history, ladder bots have been a curiosity, a research topic about what could be, but never a real threat in the way that, for example, chess bots threaten online chess. Obviously, a ~75 GXE is not very good by tournament standards. Anecdotally, when looking at the games its played, it doesn't feel particularly strong either (besides its apparent mastery of Foongus endgames!). However, under our current suspect reqs in lower tiers, this is more than capable of gaining the qualifications required to vote on a lower tier suspect test. In the most tame of circumstances a 'good' player could bot so they don't waste time laddering. In the most nefarious of circumstances, you can imagine that someone could run a bot to get reqs multiple times on different accounts and influence the outcome of a vote. A person running even say, 4 bots, could swing a lower tier suspect test that has 30 voters.

Do we care, and if so, what do we do?

Simply banning the use of bots for suspect reqs is a start, but bots are, at a fundamental level, undetectable. If someone gets reqs with a bot running on their IP address, there is no way you can say that they used a bot with any amount of confidence. I think it's a discussion worth having. For example, some options are


  • Raise the GXE requirements for suspect reqs back to 80+, revisit this once bots get good enough to clear that bar​
  • Move towards phasing out ladder reqs entirely?!​
  • Look for a technological fix. Every reqs account is already linked to a Smogon account, so that linkage could surface suspicious patterns.​
  • Do nothing; this is a pretty low risk vector overall.​
I have attached a full replay list below: here are some notable replays vs SCL players

VS tazz https://replay.pokemonshowdown.com/gen9lc-2667449393-uh9q3u3cuky0txxbryuv1tvpo6nswxcpw
VS Eniigma https://replay.pokemonshowdown.com/gen9lc-2670160681-g2sdfx5o0jc0m3vu68uqgpwup453c6epw
VS Greedy_eb https://replay.pokemonshowdown.com/gen9lc-2670313941

Code:
# gen9lc Ladder Replays — Cosmicdelphox
Generated 2026-08-25 19:08
Peak Elo **1486** (Top 50) · Final Elo **1335**
Missing losses are due to disconnection and other miscellaneous errors
| # | Date | Opponent | Result | Elo | Replay |
|---:|---|---|---|---|---|
| 1 | 08-19 16:36 | Incog Aipom | Win | 1000 → 1040 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667442153-m4a6xxirvrtj1csi794bm65xklauu10pw) |
| 2 | 08-19 16:57 | acaeca | Win | 1040 → 1101 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667449393-uh9q3u3cuky0txxbryuv1tvpo6nswxcpw) |
| 3 | 08-19 17:00 | FluxTrainerIV | Win | 1101 → 1119 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667455320) |
| 4 | 08-19 17:01 | Atropo3 | Win | 1119 → 1139 | _not uploaded_ |
| 5 | 08-19 17:23 | SrChocolatinho | Win | 1114 → 1144 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667463057) |
| 6 | 08-19 17:32 | knownlol1 | Win | 1144 → 1170 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667466595-pt1jde4airhfed2uwd97bscdipr1100pw) |
| 7 | 08-19 17:39 | sheating | Loss | 1170 → 1145 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667470573-guem8cjrn294uyp76o33guhq3h43xe5pw) |
| 8 | 08-19 17:48 | B1G_VKIE | Win | 1145 → 1160 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667473208-ckun0tu5glb8cbvfiwpewhppvk6dk50pw) |
| 9 | 08-19 17:48 | aifree | Unfinished | — | _not uploaded_ |
| 10 | 08-19 18:04 | sheating | Win | 1144 → 1178 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667479484-nn78qgolp3m11o0k5i83subujg9egg4pw) |
| 11 | 08-19 18:08 | fishpickles | Win | 1178 → 1195 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667483326) |
| 12 | 08-19 18:18 | sheating | Win | 1195 → 1224 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667485077-xbs4tbq0km43k2ghjhv5rhrc2xlcwoopw) |
| 13 | 08-19 18:23 | Starsoul94 | Win | 1224 → 1235 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667488891) |
| 14 | 08-19 18:32 | lcalt102 | Loss | 1235 → 1208 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667490754-dc4t3hd2ggcv0je6kjwaqjfbtianaigpw) |
| 15 | 08-19 18:42 | aifree | Loss | 1208 → 1194 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667494458-m7a8g0jgvw5x3ud4kq1i7nbm8mp683mpw) |
| 16 | 08-19 18:54 | poopoostinkybutt | Loss | 1194 → 1178 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667498520-kcb2koov215n2vfg0ocjasmngu25w30pw) |
| 17 | 08-19 18:56 | monkey to success | Loss | 1177 → 1164 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667503296-r8stj941a922i4of34wu8fodcyni3l1pw) |
| 18 | 08-19 18:59 | Guest 29115930  lcalt102 | Win | 1228 → 1239 | _not uploaded_ |
| 19 | 08-19 19:14 | allfredooo | Win | 1164 → 1198 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667506449) |
| 20 | 08-19 19:15 | slowpoke14 | Win | 1198 → 1210 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667510591) |
| 21 | 08-19 19:21 | evilman12 | Win | 1210 → 1224 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667511077) |
| 22 | 08-19 19:29 | monkey to success | Win | 1224 → 1260 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667513331-71axdw4nv66sbi7d0k45h6suoxbi0ojpw) |
| 23 | 08-19 19:31 | Mamamia_IV | Win | 1260 → 1270 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667516073-x8fjpdnpakyd2r5vsr7igb87ppcnex8pw) |
| 24 | 08-19 20:35 | Crimsonbacon38 | Unfinished | — | _not uploaded_ |
| 25 | 08-19 20:49 | Reyna my waifu | Win | 1214 → 1228 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667542855-3li5wai3pcnhi3tbaxrjmflmxy04ou1pw) |
| 26 | 08-19 20:52 | minccino _ aipom | Win | 1228 → 1210 | _not uploaded_ |
| 27 | 08-19 20:57 | SupremeFsh | Win | 1179 → 1172 | _not uploaded_ |
| 28 | 08-20 07:55 | Daniewise | Loss | 1172 → 1145 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667738022) |
| 29 | 08-20 08:08 | Atropo3 | Loss | 1145 → 1118 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667740585) |
| 30 | 08-20 08:11 | BlockFew | Win | 1118 → 1139 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667744973) |
| 31 | 08-20 08:20 | m0thbruh | Win | 1139 → 1158 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667746025) |
| 32 | 08-20 08:27 | Atropo3 | Win | 1158 → 1183 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667748905) |
| 33 | 08-20 08:35 | vywxiwjxjwk | Win | 1183 → 1199 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667751576) |
| 34 | 08-20 08:41 | popular hamster | Win | 1199 → 1241 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667754513) |
| 35 | 08-20 08:52 | BlockFew | Win | 1241 → 1254 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667756705) |
| 36 | 08-20 08:55 | eorhjoh | Win | 1254 → 1263 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667760588-7x6wl30evv20cfvu4lf5ybu3gxkf2aopw) |
| 37 | 08-20 09:02 | wes233455 | Win | 1263 → 1272 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667761926) |
| 38 | 08-20 09:12 | suture98 | Loss | 1272 → 1252 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667764755) |
| 39 | 08-20 09:22 | minccino _ aipom | Win | 1252 → 1229 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667768764) |
| 40 | 08-20 09:29 | B1G_VKIE | Win | 1229 → 1240 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667772803-jom3byqo8m8kghoyos6665nq7lv2vxtpw) |
| 41 | 08-20 09:41 | Atropo3 | Win | 1240 → 1258 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667775461) |
| 42 | 08-20 09:51 | spicysaucebottle | Win | 1258 → 1269 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667780538) |
| 43 | 08-20 10:02 | minccino _ aipom | Win | 1269 → 1296 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667784798) |
| 44 | 08-20 10:12 | lpl freeer | Win | 1296 → 1323 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667789589-ki5yhjxcwdx26tqdfm1k8712xfrudaxpw) |
| 45 | 08-20 10:22 | picklesdog2018 | Loss | 1323 → 1291 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667793967) |
| 46 | 08-20 10:27 | Metric12345 | Win | 1291 → 1316 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667798736) |
| 47 | 08-20 10:39 | sakuraba nnno | Win | 1316 → 1324 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667800894-149bt1ggqbgdwqhqx7y593ije81e57gpw) |
| 48 | 08-20 10:46 | LCCHAMP420 | Win | 1324 → 1329 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667806045) |
| 49 | 08-20 10:50 | sakuraba nnno | Loss | 1329 → 1297 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667809360-lod9ewt4gni3359q38fbs9c38u9esh7pw) |
| 50 | 08-20 10:53 | fing my foongus | Win | 1297 → 1328 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667811228) |
| 51 | 08-20 10:58 | sakuraba nnno | Loss | 1328 → 1299 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667812533-31808001yvfx9eadfui1cbrhegxhf4opw) |
| 52 | 08-20 11:08 | eoirhjoij | Loss | 1299 → 1261 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667814828-jw5m223fqmsp8ak59mai53ek76vatb2pw) |
| 53 | 08-20 11:11 | Jdehvdfyf | Win | 1261 → 1272 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667819684) |
| 54 | 08-20 11:14 | uiygthijo | Win | 1272 → 1281 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667821291) |
| 55 | 08-20 11:17 | Atropo3 | Win | 1281 → 1298 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667822613) |
| 56 | 08-20 11:21 | sakuraba nnno | Loss | 1298 → 1266 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667824062-onaf0c5okfj08fniq6k9n53su6y066ppw) |
| 57 | 08-20 11:25 | lpl freeer 2 | Win | 1266 → 1285 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667825848-x8sv6urwbywhvrk4ph0toc2vqk1h4wjpw) |
| 58 | 08-20 11:32 | eoirhjoij | Loss | 1285 → 1255 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667827753-tdfy8mvkib5kbh2t21pqhnoiuwa4ey5pw) |
| 59 | 08-20 11:42 | Half0dds | Win | 1255 → 1294 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667831294-qwnmoqi6pk7s03k5nqyhoid9laas4y4pw) |
| 60 | 08-20 11:49 | sakuraba nnno | Loss | 1294 → 1262 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667835769-pf3a3ym220jejkguonldav47lbdcukkpw) |
| 61 | 08-20 11:59 | Half0dds | Loss | 1262 → 1250 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667839346-sroa8bfj61taclelu27mh3gg29odfy4pw) |
| 62 | 08-20 12:08 | acaeac | Loss | 1250 → 1212 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667843722-has2oqy78b3qoswk60b3gscp4fmnpixpw) |
| 63 | 08-20 12:14 | sakuraba nnno | Loss | 1212 → 1188 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667848359-7q5onwd33t0flw21uqxq1hsdrrfw698pw) |
| 64 | 08-20 12:19 | Primixxaria | Win | 1188 → 1201 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667851253) |
| 65 | 08-20 12:26 | honkshooah | Loss | 1201 → 1174 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667853582-fuhtk37jocynohqydl1rro76y4a4embpw) |
| 66 | 08-20 12:33 | sakuraba nnno | Loss | 1174 → 1153 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667857130-w39iex6kt12ribayefc7w1wi1bvqkx0pw) |
| 67 | 08-20 12:43 | elissafarman | Loss | 1153 → 1128 | [watch](https://replay.pokemonshowdown.com/gen9lc-2667860154) |
| 68 | 08-20 19:35 | Atropo3 | Unfinished | — | [watch](https://replay.pokemonshowdown.com/gen9lc-2667864825) |
| 69 | 08-20 19:39 | kanako-kun | Unfinished | — | _not uploaded_ |
| 70 | 08-24 19:59 | BookCharizard | Win | 1086 → 1117 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670023384) |
| 71 | 08-24 20:09 | my little bork | Win | 1117 → 1139 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670027579-e5r4p7ruq39ogwff7lv8ednqygfdouvpw) |
| 72 | 08-24 20:21 | lcalt12345 | Win | 1139 → 1180 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670031349-rlltb7nntti2lqyk626gimyk6ufdwf2pw) |
| 73 | 08-24 20:26 | slowking1087 | Win | 1180 → 1213 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670036076-ipv337qsd37o9eihyjqylw54jwsv6dupw) |
| 74 | 08-24 20:35 | m0thbruh | Win | 1213 → 1239 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670037921) |
| 75 | 08-24 21:05 | lcalt12345 | Win | 1239 → 1271 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670041408-uffjiirygnca70bkt608ry7xs58ws2mpw) |
| 76 | 08-24 21:13 | wesben5467 | Win | 1271 → 1280 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670052811-vu8jcbnev5govggeq6dv2wfj2xquso1pw) |
| 77 | 08-24 21:16 | springtraz | Win | 1280 → 1297 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670055837) |
| 78 | 08-24 21:29 | lcalt12345 | Loss | 1297 → 1273 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670057296-k2r32t0avm7kjpqgyrhwf3swno91t6jpw) |
| 79 | 08-24 21:38 | spiritcomma | Win | 1273 → 1284 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670062314-3lvmeydgklgaf5lyinjlku7n1cb9xoopw) |
| 80 | 08-24 21:40 | Honaj | Win | 1284 → 1294 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670065575) |
| 81 | 08-24 21:45 | Sparrow's Grace | Win | 1294 → 1316 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670066517) |
| 82 | 08-24 22:02 | lcalt12345 | Win | 1316 → 1335 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670068601-1moc8o89iiwrabl0kid9satefh8fanopw) |
| 83 | 08-24 22:04 | spiritcomma | Win | 1335 → 1341 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670074932-lxal4jil0jmvyemcnb68t66o8sij3qspw) |
| 84 | 08-24 22:17 | lcalt12345 | Win | 1341 → 1360 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670075537-nox2kiybgr8f9mfpp8h3o6jo54y0sthpw) |
| 85 | 08-24 22:38 | Greediest_eb | Loss | 1360 → 1341 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670080336) |
| 86 | 08-24 22:49 | Dear You and Me | Loss | 1341 → 1313 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670088078-7l5rq5nmp1de5691djbh4bsp3hq62papw) |
| 87 | 08-24 23:01 | lcalt12345 | Win | 1313 → 1334 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670092292-beqlvwwmgghm650mqf5ey9cqvtenoiwpw) |
| 88 | 08-24 23:09 | kanako-kun | Win | 1334 → 1346 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670096591-jfwcarkwc7y7np3g96wa4nhviaj8picpw) |
| 89 | 08-24 23:20 | lcalt12345 | Loss | 1346 → 1321 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670099280-gmjsj835njxfobut7n0irwd93ylnedbpw) |
| 90 | 08-24 23:34 | kanako-kun | Win | 1321 → 1336 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670103181-2be8cqn0a6628c9fhrcrniy0kw6ngmppw) |
| 91 | 08-24 23:55 | lcalt12345 | Win | 1336 → 1354 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670107610-rlob5pvvg1lpjl229gay44mj13hn4v1pw) |
| 92 | 08-25 00:03 | pastard | Win | 1354 → 1359 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670114317-dt47wisuwcrtdvy1clbv9m0nc08i50fpw) |
| 93 | 08-25 00:26 | lcalt12345 | Win | 1359 → 1376 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670116656-qvm59r2aowd5hylcglsh1ibxi0hr842pw) |
| 94 | 08-25 00:37 | tcl0k | Win | 1376 → 1382 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670123665) |
| 95 | 08-25 00:54 | lcalt12345 | Win | 1382 → 1396 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670126659-s7qg5ql6j7kuwwk43ph4vn8pjk47mxspw) |
| 96 | 08-25 01:00 | kanako-kun | Win | 1396 → 1405 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670131452-r5occ8tdbuqq2rnc71x1pwh899d1exvpw) |
| 97 | 08-25 01:11 | lcalt12345 | Loss | 1405 → 1377 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670133156-ha39vn67kiubs3ab46f6xw3y9c573t5pw) |
| 98 | 08-25 01:19 | PsyduckMode | Win | 1377 → 1392 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670135852) |
| 99 | 08-25 02:17 | lcalt12345 | Win | 1392 → 1408 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670137908-yvhlspy9yb1gr01gc9gluq36nly4oc5pw) |
| 100 | 08-25 02:26 | imsobad23 | Win | 1408 → 1416 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670152300) |
| 101 | 08-25 02:37 | lcalt12345 | Win | 1416 → 1430 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670154438-wi9twhuk8fha4m5xiedh6k238ustbswpw) |
| 102 | 08-25 02:53 | Kisx | Loss | 1430 → 1414 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670156875-ems1iwo2p6v51d18q0ovai1htl3ftwwpw) |
| 103 | 08-25 03:19 | Eniigma | Win | 1414 → 1432 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670160681-g2sdfx5o0jc0m3vu68uqgpwup453c6epw) |
| 104 | 08-25 03:35 | girlie pop | Win | 1432 → 1436 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670166936) |
| 105 | 08-25 03:48 | Pleasings sur | Win | 1436 → 1439 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670170778) |
| 106 | 08-25 03:58 | SANDANiel | Win | 1439 → 1444 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670173795-51a6xb3r3pdquqhw9notddvbxq90fyrpw) |
| 107 | 08-25 04:24 | Javi3scuritomovil | Win | 1444 → 1448 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670176328-0jph715rau2i27dbxaf7tcn1nynoyvcpw) |
| 108 | 08-25 04:50 | Jouls_98 | Win | 1448 → 1451 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670182491-bm0pg70s92turogkw3l2dtahsxdc047pw) |
| 109 | 08-25 05:08 | iuyhnbvcdfgng | Win | 1451 → 1454 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670189045) |
| 110 | 08-25 05:25 | bassa frequenza | Loss | 1454 → 1420 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670193630-t4cncxmowbu1iojbfr62rbpr08kyt6epw) |
| 111 | 08-25 05:41 | lcalt12345 | Win | 1420 → 1433 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670198002-bpu7e1ix60sof5w3rxei4uso1buvnnlpw) |
| 112 | 08-25 05:49 | dihsharp | Win | 1433 → 1436 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670202343) |
| 113 | 08-25 05:59 | Suckeritor | Win | 1436 → 1449 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670204370) |
| 114 | 08-25 06:09 | lcalt12345 | Loss | 1449 → 1418 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670206994-nfv3edv0nqlhhsa5ogh25h89egew0qvpw) |
| 115 | 08-25 06:30 | AipomCalyrex | Win | 1418 → 1425 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670209843-o0o9440t34gecqv766jqqfgyi2656ghpw) |
| 116 | 08-25 07:03 | MrTortoise12456 | Win | 1425 → 1430 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670215438) |
| 117 | 08-25 07:13 | chandan 1300 | Win | 1430 → 1434 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670224968) |
| 118 | 08-25 07:31 | m0thbruh | Win | 1434 → 1442 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670227918) |
| 119 | 08-25 07:42 | Platano09 | Win | 1442 → 1445 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670233440) |
| 120 | 08-25 07:48 | CBs Lover | Win | 1445 → 1449 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670236902-brhxygvx9cxpjimnrkcd5j5a41u02cfpw) |
| 121 | 08-25 08:06 | Half0dds | Loss | 1449 → 1425 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670239025-grdg4tndq1sm7l1lptvetbiolrrdc47pw) |
| 122 | 08-25 08:13 | Jon_oconn | Win | 1425 → 1429 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670244678) |
| 123 | 08-25 08:24 | m0thbruh | Loss | 1429 → 1397 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670247113) |
| 124 | 08-25 08:32 | Guysbeforefrys | Win | 1397 → 1408 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670251019-ykej4aue5ad1bei3dym1bubmrpsmbkmpw) |
| 125 | 08-25 08:40 | OUVILwok82134 | Win | 1408 → 1413 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670254001) |
| 126 | 08-25 08:54 | wesh papillon | Win | 1413 → 1437 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670257134-yawfif2o5b469o6t1df9qnpgbunxvcspw) |
| 127 | 08-25 08:58 | ky123456 | Win | 1437 → 1443 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670262277) |
| 128 | 08-25 09:07 | suture98 | Win | 1443 → 1459 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670263740) |
| 129 | 08-25 09:29 | wesh papillon | Loss | 1459 → 1441 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670267519-qhundgaghqbjymvriij2kf9xoqt8bj6pw) |
| 130 | 08-25 09:36 | m0thbruh | Win | 1441 → 1451 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670276821) |
| 131 | 08-25 09:45 | kanako-kun | Win | 1451 → 1458 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670280096-khru4udpgh6ps0rd4ohwyhc4nqg5euhpw) |
| 132 | 08-25 09:59 | imsobad23 | Win | 1458 → 1464 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670284262) |
| 133 | 08-25 10:10 | suture98 | Win | 1464 → 1479 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670290413) |
| 134 | 08-25 10:39 | abjectguineapig | Win | 1445 → 1419 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670295407) |
| 135 | 08-25 10:46 | suture98 | Win | 1419 → 1434 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670309077) |
| 136 | 08-25 10:49 | Dear You and Me | Win | 1434 → 1449 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670312109-7o7hflkycen344xx3isb5dptlq21ga8pw) |
| 137 | 08-25 11:02 | Greediest_eb | Win | 1449 → 1466 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670313941) |
| 138 | 08-25 11:13 | m0thbruh | Win | 1466 → 1475 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670319954) |
| 139 | 08-25 11:28 | minccino _ aipom | Win | 1475 → 1486 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670325214) |
| 140 | 08-25 11:40 | Greediest_eb | Loss | 1486 → 1461 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670332024) |
| 141 | 08-25 11:52 | Dear You and Me | Win | 1461 → 1475 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670337870-kaqqjo2yuk1fy59761ehn33yi7assvepw) |
| 142 | 08-25 12:03 | nightislike | Win | 1475 → 1480 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670343709-96ti4b48t9fs4qj2jt2usw46tgi3d7ipw) |
| 143 | 08-25 13:02 | posterboy2 | Win | 1453 → 1426 | _not uploaded_ |
| 144 | 08-25 13:08 | minccino _ aipom | Win | 1354 → 1378 | [watch](https://replay.pokemonshowdown.com/gen9lc-2670378911) |
| 145 | 08-25 16:12 | Dear You and Me | Win | 1358 → 1335 | _not uploaded_ |
| 146 | 08-25 17:30 | aibuns | Unfinished | — | _not uploaded_ |
```
Update September 16th, 2026:

1789610351161.png
 

Attachments

  • 1789573573648.png
    1789573573648.png
    21.3 KB · Views: 53
  • 1789581624947.png
    1789581624947.png
    19.2 KB · Views: 66
Last edited:
Simply banning the use of bots for suspect reqs is a start
For the record, this is already the case. Using a bot to get your suspect reqs already counts as cheating in a suspect test and voids your reqs.

I will leave it to tech admins to address how easily we can catch botters with the tools we implemented after the Kyurem test, but if the answer is “easily” then this is already covered by existing rules and technology.

If it’s not easily, well, then this is a much more annoying conversation.
 
My suspicion is that it will be very easy to detect pure volume based bot play without much effort at obfuscation. For now, while the best bots are probably slightly weaker than humans, that is likely enough to prevent abuse.

From experience in online chess and poker however, once bots become substantially better than humans, it will become very difficult to stop people from getting ghosted / illegal assistance which will probably present issues for suspect tests as well as more obviously in tournament scenarios. I do think it may make sense to address what external tools are deemed acceptable and which ones aren't before it becomes an issue.
 
The Foul Play bot, released last year, is the latest attempt at a Pokémon Showdown playing bot. What sets it apart is that it's passable even in non-random formats. I configured an instance of this bot, gave it a sample team, and put it on the LC Ladder 24/7 for 3 days to see if it could obtain LC Suspect Reqs in the ongoing Aipom Suspect.

It could. In fact, it even beat some SCL players during its ladder run!

For most of Pokémon Showdown history, ladder bots have been a curiosity, a research topic about what could be, but never a real threat in the way that, for example, chess bots threaten online chess. Obviously, a ~75 GXE is not very good by tournament standards. Anecdotally, when looking at the games its played, it doesn't feel particularly strong either (besides its apparent mastery of Foongus endgames!). However, under our current suspect reqs in lower tiers, this is more than capable of gaining the qualifications required to vote on a lower tier suspect test. In the most tame of circumstances a 'good' player could bot so they don't waste time laddering. In the most nefarious of circumstances, you can imagine that someone could run a bot to get reqs multiple times on different accounts and influence the outcome of a vote. A person running even say, 4 bots, could swing a lower tier suspect test that has 30 voters.

Do we care, and if so, what do we do?
as someone who has noticed the rise of ladder bots and considered it a problem in the past, i don't think we need to be alarmed about the case of suspects in particular. both of the use cases you listed, a good player botting so they don't waste time and a person running multiple accounts, are already against the rules. the usage of bots on ladder in general is definitely an issue we should be trying to address, though, and it's good to bring this to everyone's attention again
Simply banning the use of bots for suspect reqs is a start, but bots are, at a fundamental level, undetectable. If someone gets reqs with a bot running on their IP address, there is no way you can say that they used a bot with any amount of confidence. I think it's a discussion worth having.
it definitely is a discussion worth having, which is why a similar discussion about the usage of bots in general was had last year. the problem we were having about usage stats seems to have been resolved, but the fact that there seems to be no technological way to automatically detect a bot is a major problem that i don't think is actually solvable in showdown's current form, or possibly at all. in practice, though, this is kind of just an extension of ghosting, which is also undetectable if done competently and we have no proactive countermeasure against. anyone can hop in a private call with someone who's better than them at the game and take directions and no one can do anything about it; the only difference with this is that it's a robot giving the directions instead of a second person. one could argue that foul play bot is more accessible to the average ladderer than a player of equal skill, but like... is it? does the average ladderer even know how to install the thing? would the average ladderer who's willing to cheat rather do that than ask for someone on discord to ghost them? i don't know, and i don't know if there's any way to address it if the answer is "yes", but if anyone has an answer i'd really like to hear it
Raise the GXE requirements for suspect reqs back to 80+, revisit this once bots get good enough to clear that bar
this is just kicking the can down the road and i don't think we should be looking at this as an answer. if this is a problem to be solved, we should solve it as quickly as possible, before bots start getting better
Move towards phasing out ladder reqs entirely?!
i don't think this should be entertained as an option unless the problem gets tf2 levels of bad, and if the problem ever gets that bad we're probably going to have to make major changes to how laddering works in general
Look for a technological fix. Every reqs account is already linked to a Smogon account, so that linkage could surface suspicious patterns.
this is probably our best bet, if we were to do something, but what the nature of this technological fix would be i can't even begin to guess. i doubt it's possible to throw up a "hey this person is playing/acting like a bot" flag in a game this complex without ending up with an intolerable number of false positives, and that feels like the only way to even begin to approach the issue in a non-superficial manner
Do nothing; this is a pretty low risk vector overall.
honestly kind of sounding like a decent option

has anyone considered contacting the programmer of foul play bot and sharing our concerns with them? maybe they could implement something that will ping us to the fact that the bot is being used. the bot being open-source means that won't immediately fix every issue, but it would be a start
 
Maybe I'm too pessimistic, but in the end, I don't think there is really a solution to detecting bots because:
  • In terms of connectivity and message exchange, I could simply have the bot read the battle log and show me the best move to make, while I manually enter the actions in the client. Hecate is probably the most qualified person to talk about this. -> https://www.smogon.com/forums/threads/ladder-bots-and-usage-based-tiering.3774656/#post-10793247
  • In terms of gameplay, it's also almost impossible. The comparison with chess is not a very good one because chess is a deterministic game with full-information, and there are evaluators capable of identifying the best moves in almost every situation (technically, in chess, there is always a best move, even if we can't calculate it yet). Some of these moves are not typical of human players, so when a user makes them consistently, they become easier to detect.
    On the other hand, Pokémon is mostly about risk management because of the inherent non-determinism, hidden information, and simultaneous actions. There isn't a single best move, but rather a probability distribution over the possible actions, indicating how strongly each one is recommended. And that distribution is itself heuristic, not universal. This makes it (I dare to say) impossible to define what AI-like behavior would look like. And unlike in chess, even the best AIs would still lose games against human players.
 
Last edited:
In terms of connectivity and message exchange, I could simply have the bot read the battle log and show me the best move to make, while I manually enter the actions in the client.
Echoing this, when the foulplay bot was first introduced, I did a very quick try for fun and managed to incorporate it into showdex by suggesting best action each turn instead of clicking buttons, which avoided using any PS API. I didn't end up using it or keep maintaining because it didn't function as good as I hoped, but it is a very easily accessible option.

I think in the end of day as bots are inevitably getting better and better, we have to just have faith on users not using them. It's essentially ghosting and to be honest, I don't think we have the perfect monitoring system for ghosters as well.
 
I think we should care.
I do think it may make sense to address what external tools are deemed acceptable and which ones aren't before it becomes an issue.
In short, this sums up my opinion very well.

In addition to the points already mentioned, I want to take this oppurtunity to talk about the bigger implications of bots on the ladder.
As Hydrametr0nice pointed out, there is no "objective" correct move in our game. This is something that is at the very essence of what it means to play Pokemon, and I fear that we maybe damping the moral flame by allowing things to progress as they are.

Just recently, 'Freaki Nikki' reigned terror on the OLT ladder during cycle3. Initially it was very funny, but soon you had a bunch of people waiting to queue at the exact moment its games ended, given the in-game play was very linear/straightforward. Heck, I'd say Axzel won atleast 150 points off the bot throughout the entire cycle. If the bots become "too good" you may see the tables being turned completely in this regard, where people wait to queue. I think this is just one of the many reasons why this is a can of worms we should not get into.

Playing trainer AI is fundamentally no longer the same game imo. A bit of a stretch, but I would hate to find detailed guides out there for showdown ladder bots like this. You'd no longer be "playing the game", you'd be gaming the system. While that is its own unique experience (involving some very difficult decision-making at that), I think they are intrinsically different enough to warrant keeping them seperate.

Point blank, since we are already able to track ladder usage stats and the like, I simply dont find any need for there to be bots on the ladder. Here is my suggestion: To all the people that are really fascinated with the idea of creating a chess-esque engine for Pokemon, make it a challengable bot like Scrappie. People that are interested can engage and play v/s it. (This is a plea, given that it cant be enforced).

I am aware of the challenges associated with "identifying" bots. I agree with the ghosting comparisons (of using bots to "tell you the best move"). Therefore, since it cant be explicitly policed, I think we should actively discourage the usage and development of bots for the ladder.
As it stands, community driven social stigmatization is one of our best bets at addressing this issue.
 
Last edited:
Agree with discouraging bots as much as technologically possible in both ladder and tournament settings (although, if you get ghosted by a bot in a tour game and lose, that's just pocket monsters Darwinism)

Ladder:
I can appreciate the intrinsic desire to use bots to gather data and "optimize" teambuilding and/or in-game decision making, but playing ladder should be all about the competitive aspect of queuing into other live people and seeing who can manage the in-game best against one another. As Spitfire alluded to, people understanding what bot typically does what in-game is not competitive and akin to boosting.

A conversation should be had about PS! implementing a separate bot-friendly ladder that lets you practice vs bots or test your own bots out, there is probably some value in that sort of environment for both the players and the programmers. But as it is now, ladder should be person vs person.

There is also the element of ladder usage being skewed by bots which is a massive implication for lower tiers. It's bad enough that some people can no life a dead ladder and disrupt shifts, bots spamming games and causing rises that don't otherwise belong was a hot topic for multiple shifts in a row and presumably had a lot of influence on tiering actions, including the freeze.

Tournaments:
Using a bot is ghosting I mean it's that simple right. I also think using a bot to scout ladder 24/7 is plain stupid and makes playing ladder even riskier, which discourages people playing ladder, which inherently makes ladder settings worse, etc.

--
I want to end by saying that a lot of people who are using bots probably aren't doing it to be malicious and are just scratching some itch to make their Pokemon Stockfish equivalent, but there should be a greater emphasis on people playing people in the most fair and competitive way possible and that just means bots have to be discouraged across the board.
 
Smogon as a community should definitely give up on suspect test ladder reqs.

Ladders' activity has been plummeting for years and it's not entirely on SV fatigue. There is a cultural shift towards playing more tournaments and less ladder that gen10 won't change. Suspect ladder reqs have been very unpopular for as long as I've been on this site, as it tests your dedication and patience more than your skill; especially with the recent change to COILs allowing terrible accounts to qualify (73.3% gxe is a joke to qualify with). I disgress with that point as other COIL parameters would make it impossible to qualify with such GXE, but the comment is more of a testament of the suspect test culture. Ladders are so terrible that we've been given up on tier rises for the rest of the generation.

Effectively detecting bots is impossible and as they get better, it will become harder and harder to detect them.

I can only see one solution that would solve both issues; totally give up on ladder for tiering. Smogon moved to usage based shifts in gen 4; this was 20 years ago. This system keeps proving itself ineffective to face modern problems and it's about time it gets reformed.
 
Last edited:
Just want to make a quick aside: while it is currently true that Foul Play and its lineage often play semi-predictable argmax type strategies that are exploitable, this is very much not a permanent limitation. Implementing game theory and mixed strategy aspects is nontrivial and sometimes hard to measure the value of in small samples, but other games have shown us repeatedly that computers tend to far exceed humans in this area.

For example, in poker, computers so far exceed humans at approximating unexploitable play that virtually every top player spends large amounts of time studying and trying to mimic computer frequencies. I suspect we will eventually find something similar in mons where human players are running extremely exploitable strategies.

So I don't expect it to steal the soul of our game exactly (we probably will actually learn some interesting things), but I do think that the cheating risk is real and should not be underestimated. I also think people not wanting to play the current genre of bots on ladder is extremely valid (particularly ones that run the same team and make the same moves every time while spamming 20 games at a time). I will say, in my experience of running a local bot for test games in a tier without a ladder, making some small adjustments to the methods can make for a generally human opponent like experience that is useful for test games.
 
If the bot is so good it can get reqs, why not challenge the bot 30 times to get reqs instead of laddering. Solves everyone’s problems and continues data gathering for science. More seriously there is a world where in several years this sounds less outlandish and is a valid reqs method superior to laddering.
 
If the bot is so good it can get reqs, why not challenge the bot 30 times to get reqs instead of laddering. Solves everyone’s problems and continues data gathering for science. More seriously there is a world where in several years this sounds less outlandish and is a valid reqs method superior to laddering.
the very obvious problem here is it gives you no idea of what the meta is like lmao. Whoever runs the bot decides what teams it uses, and theres a lot of obvious ways that could bias how someone votes
 
I think in 5-10 years bots will be as good as anyone and there will be too little trust leading to a lot of people quitting or caring more about in person tournaments. Smogon should look more into VGC as the playerbase is gonna largely quit / start playing VGC / think of everything as mickey mouse. The player base for doubles and singles barely overlap so I believe 2 doubles slots can be added to SPL (one or both being VGC) without decreasing the quality of the tournament with it attracting people who wouldn't play otherwise. It's possible it would even increase the quality of the players.

As for suspect tests they are really stupid and get a lot of people to burn time rarely for a different result. Just replace them with a small oligarchy of the most accomplished players. It is in the best players interest to make the game as competitive as possible which is ultimately the goal of suspect testing. The nine most recent trophy winners or w/e deciding everything would be fine (I wouldn't actually do my example, but even that would be better than our current system). What are we scared of? Lobbying??? Idts. More centralized decision making wouldn't harm smogon's goal of future growth (or rather diminished death) as players who want to do well would understand and the others aren't core.
 
Maybe I'm too pessimistic, but in the end, I don't think there is really a solution to detecting bots because:
  • In terms of connectivity and message exchange, I could simply have the bot read the battle log and show me the best move to make, while I manually enter the actions in the client. Hecate is probably the most qualified person to talk about this. -> https://www.smogon.com/forums/threads/ladder-bots-and-usage-based-tiering.3774656/#post-10793247
  • In terms of gameplay, it's also almost impossible. The comparison with chess is not a very good one because chess is a deterministic game with full-information, and there are evaluators capable of identifying the best moves in almost every situation (technically, in chess, there is always a best move, even if we can't calculate it yet). Some of these moves are not typical of human players, so when a user makes them consistently, they become easier to detect.
    On the other hand, Pokémon is mostly about risk management because of the inherent non-determinism, hidden information, and simultaneous actions. There isn't a single best move, but rather a probability distribution over the possible actions, indicating how strongly each one is recommended. And that distribution is itself heuristic, not universal. This makes it (I dare to say) impossible to define what AI-like behavior would look like. And unlike in chess, even the best AIs would still lose games against human players.
my question is, if we all seem to agree that the presence of bots on ladder shouldn't be accepted or tolerated, and we all seem to agree that it's impossible to do anything meaningful about it... then what even are our options? every response if we have no technological solution ranges from absurd to unthinkable. do we just give up and let the bots take over ladder? abandon showdown and build a new site from the ground up? shut down every ladder and shutter most of our metas? somehow convince github to take down every showdown bot program, cough up the ips of everyone who's installed them, and blacklist the lot of them? if our only option is to shrug and say "welp nothin we can do" then we have to either turn to extremes or reevaluate the usefulness of even existing as a community

so what i'm saying is, we better come up with a real solution before this thread is closed
 
Last edited:
Ok I decided to return to this to give some actual thoughts. To me, it seems there are two major issues to address:
1. Suspect Tests
2. Quality of Ladder

The cheating/ghosting thing will probably be a problem at some point, but frankly right now I don't think it fits the scope of the discussion. It seems pretty clear to me that we are unable to do anything to identify bots on ladder, so as long as suspect tests are based on ladder results I don't think there is a meaningful solution to the problem. In tiers with fewer players getting reqs, it is simply too easy to bias a result even with just a handful of bots. Someone above said that it would need to be "TF2 levels of bad", but for lower tiers it really only needs a small amount for someone to heavily bias the tier decisions. People here have suggested a variety of solutions, with a couple being viable. The first would be getting reqs through other methods - if there's a stable enough tournament circuit, that is of course one option. The second, and imo the easiest, would be using a similar approach to what we do in tiers that no longer rely on usage (oldgens, no ladder tiers, etc.). This would involve councils that evaluate the metagame, and then use community interfaces like surveys to make decisions. I think there is a lot more to discuss with what the specifics would look like, and this would be a major shift for CG stuff, but I think at this point we can see the trajectory of the issue and have to start making decisions.

Quality of ladder is a much more nebulous issue to deal with. It affects both serious tournaments like OLT, as well as the casual experience on ladder. In turn, both affect how much people want to remain playing these formats. As Mareep said, it seems pretty reasonable that the people making bots, at least at this point, aren't bad actors. They simply are working on bots because bots and game theory are quite interesting, and there's plenty of precedent from other games like chess and poker for them. Assuming this is true, I think the suggestion to make spaces for them so they don't feel the need to use ladder so extensively is probably our best solution. I think there are two easy steps we could take toward this:
1. Create a space to publicly register bots, which people then can challenge at will. This encourages bot devs to be transparent with us, in return for getting players to practice against. I think as long as we can clearly communicate both here and on PS that this is preferred, a significant chunk of the devs would be willing to work with us rather than be at odds. I think if we do this, it could also be reasonable to make rules against bots on ladder in general - we don't necessarily expect to catch a ton, but it gives a further incentive for people to use a method that doesn't risk them getting kicked or whatever we decide a punishment would be.
2. We should organize space on Smogon to host something similar to the TCEC (Top Chess Engine Championship). This may seem counterintuitive. However, making a public space for people to do something fun and competitive with their bot further encourages transparency and cooperation with the site. If someone wants to compete, they need to be public about their bot, and they need to be in good standing with smogon. This would increase the efficacy of the first addition of a public registry.

Obviously, neither of these solutions deals with the problem of a dedicated bad actor trying to mess with something specific. However, I think they do effectively deal with a majority of the problem as it currently stands, and help create buffers against people who may otherwise decide to do something dumb just because they think they can.
 
A game limit should be introduced for suspects to curb the immediate effect of bots on the tiering process. Bots are primarily a technical problem handled by the PS Admins, but we should still work to reduce collateral damage until a more permanent decision can be made.

The issue with bots is the sheer amount of games, more so than quality of play. Limiting the maximum games you can have in a suspect test should prevent people from endlessly farming the necessary COIL/ELO via bot, without penalizing actual players looking to engage with the process in good faith. The tier leaders can set the maximum game values for each suspect based on data from past suspect tests.
 
Smogon should look more into VGC as the playerbase is gonna largely quit / start playing VGC / think of everything as mickey mouse. The player base for doubles and singles barely overlap so I believe 2 doubles slots can be added to SPL (one or both being VGC) without decreasing the quality of the tournament with it attracting people who wouldn't play otherwise.
People have already been quitting to play VGC with the launch of Champions so we should be doing this regardless of an existential bot crisis tbh.
 
It seems pretty clear to me that we are unable to do anything to identify bots on ladder, so as long as suspect tests are based on ladder results I don't think there is a meaningful solution to the problem. In tiers with fewer players getting reqs, it is simply too easy to bias a result even with just a handful of bots. Someone above said that it would need to be "TF2 levels of bad", but for lower tiers it really only needs a small amount for someone to heavily bias the tier decisions. People here have suggested a variety of solutions, with a couple being viable. The first would be getting reqs through other methods - if there's a stable enough tournament circuit, that is of course one option. The second, and imo the easiest, would be using a similar approach to what we do in tiers that no longer rely on usage (oldgens, no ladder tiers, etc.). This would involve councils that evaluate the metagame, and then use community interfaces like surveys to make decisions. I think there is a lot more to discuss with what the specifics would look like, and this would be a major shift for CG stuff, but I think at this point we can see the trajectory of the issue and have to start making decisions.
i'm heavily against entirely replacing ladder reqs with council votes or tour reqs right now, given the extant problems with council detachment from their metas and communities and similar issues with exclusively handing out reqs based on tour results. if we want to do either of these, it is imperative to set a hard-and-fast quantitative baseline for ladder activity and community engagement among the people who are doing the voting to prove that they actually know what's going on with the meta and what the community thinks, and setting that baseline for ladder activity would probably just amount to them having to get ladder reqs anyway, and that just loops back around to the problem that the ladder has bots on it. we can't just discount the existence of ladders entirely when they're an inherent part of what we tier for
 
i'm heavily against entirely replacing ladder reqs with council votes or tour reqs right now, given the extant problems with council detachment from their metas and communities and similar issues with exclusively handing out reqs based on tour results. if we want to do either of these, it is imperative to set a hard-and-fast quantitative baseline for ladder activity and community engagement among the people who are doing the voting to prove that they actually know what's going on with the meta and what the community thinks, and setting that baseline for ladder activity would probably just amount to them having to get ladder reqs anyway
I agree that councils should have requirements to meet, but I think long-term activity in the metagame and on forums is basically unaffected by bots on ladder. A single suspect test can be hugely influenced, a long-term view of the metagame based on continuous play and interaction is significantly sturdier.
 
I don't think its possible to win the war on ladder bots considering what Hydrametr0nice and Spreek said

As far as I can tell, bots are laddering because its the best way to amass a large amount of test data against a wide range of players of varying skill, while also providing a clear achievement and results at the end of the test period. There won't be an equivalent to give the ML students a conclusion to their project and studies as effectively (I don't think anyone here is going to go out of their way to challenge a bot to give it enough data for an A). A second ladder would definitely be something, but then you end up causing a split hurting both ladders, or the bot ladder just being bots vs bots because noone wants to go to the bot ladder, which in turn the ML students will just go the main ladder since that's where more humans are to test against, and more people = more data.

You can attempt to give the ML students a research grant that allows them to ladder with an "I solemnly swear I am not going to be evil with it" agreement, but that just swamps PS staff with more work and bureaucracy for little benefit, since you know, easy enough to spin up a bot on a user account and have it ladder under everyone's noses anyways.

Now if you really wanna disable bots full stop, its time for Pokemon Showdown to become a downloadable executable packaged with its own kernel level anti cheat
 
I don't think its possible to win the war on ladder bots considering what Hydrametr0nice and Spreek said

As far as I can tell, bots are laddering because its the best way to amass a large amount of test data against a wide range of players of varying skill, while also providing a clear achievement and results at the end of the test period. There won't be an equivalent to give the ML students a conclusion to their project and studies as effectively (I don't think anyone here is going to go out of their way to challenge a bot to give it enough data for an A). A second ladder would definitely be something, but then you end up causing a split hurting both ladders, or the bot ladder just being bots vs bots because noone wants to go to the bot ladder, which in turn the ML students will just go the main ladder since that's where more humans are to test against, and more people = more data.

You can attempt to give the ML students a research grant that allows them to ladder with an "I solemnly swear I am not going to be evil with it" agreement, but that just swamps PS staff with more work and bureaucracy for little benefit, since you know, easy enough to spin up a bot on a user account and have it ladder under everyone's noses anyways.

Now if you really wanna disable bots full stop, its time for Pokemon Showdown to become a downloadable executable packaged with its own kernel level anti cheat
I think by making the challenge a bot function integrated into PS somehow, and publicizing it, you could definitely make it attractive to people. Add to that a rule that makes people a bit more wary of dropping their bot on ladder, and I think you can significantly shift the tide. Most people don't want to actually piss anyone off or cause problems, and if we approach it cooperatively I think we're liable to get better results in the end.
 
the very obvious problem here is it gives you no idea of what the meta is like lmao. Whoever runs the bot decides what teams it uses, and theres a lot of obvious ways that could bias how someone votes
I mean, we could fix this via policy. There's no reason that we can't force the bot to run some defined pool of the top teams from recent tours, as one example. Obviously tours and ladder have slightly different metagames/incentives. If we're unhappy with ladder reqs and think tours are better longterm, though, that's probably a good thing! This isn't the only way to implement that proposal, but I think we should seriously consider it, or another method of choosing teams for CPU reqs. If and when the bots start to outplay humans consistently, it will have many advantages.

This also solves my personal problem with switching to 100% tour reqs: playing in big tours seems miserable. I don't want to do it! Many top players, demonstrably, don't want to do it! If you want to play well, tours are an even bigger time sink than ladder. They are also, by far, the most toxic part of the site. That's not a jab at anyone specific -- I wouldn't even know who to jab at. But look into your heart of hearts, and tell me that trophy tours aren't full of toxicity. I absolutely think we should have tours, and tour reqs! I just don't think we should be obligated to play in tours if we want to have a voice.


I am aware of the challenges associated with "identifying" bots. I agree with the ghosting comparisons (of using bots to "tell you the best move"). Therefore, since it cant be explicitly policed, I think we should actively discourage the usage and development of bots for the ladder.
As it stands, community driven social stigmatization is one of our best bets at addressing this issue.
I personally think this is a horrible idea.
- Smogon is, at best, only kind of effective at social pressure. Does the social pressure around ghosting stop people from doing that? Shit man, with engines, you don't even risk having your friend rat on you.
- As someone who's interested in bot development, but too busy to do it, I don't think this would move the needle at all for me. I know people who have developed engines for other games (not to cheat), and I think they'd be actively defiant of it.
- The vast majority of players do not have an account on this site, so almost certainly someone would make an engine anyway.
- Finally, if I can present one positive argument: maybe engine analysis would be a good thing? I mean, calcs have been hugely positive. Following the rise of engine analysis, Poker and Chess have both seen massive spikes in popularity. We occasionally have threads talking about how the site is dying, and how the tools for beginners to learn are sparse and inaccessible. Engine analysis is a great tool that addresses this in other games! And looking at other games, this is embraced. No top player in Chess or Poker would seriously argue that the occasional cheating scandal means we should ostractize engine programmers. Instead, they use the engines to learn as players. These engines don't even come with the environmental issues of LLMs! Nobody is building a Pokémon (Data) Center. This is stuff that gets run on personal hardware, or sometimes rental hardware.

(Edited for clarity)
 
Last edited:
I just don't think we should be obligated to play in tours if we want to have a voice.
The point of this site is competitive pokemon, I don't understand why one would want a say in voting but simultaneously choose to not engage with the competition aspect. In a perfect world where the ladder and suspect tests reqs are just as competitive then yes there's no harm in forgoing tours. But the drop in quality of ladder games now compared to 4 or 5 years ago is pretty dire, even without factoring in the bot accounts. Pretty clear that it's on a track path to just not be equally competitive to tournament reqs unless you jack up the suspect requirements to much higher levels (which I'm down to do tbf). And even then it probably only delays the issue for a couple of years and we'll be back where we started when Stockfish: PS! Edition drops. Embracing these bots, more than fine. I think concepts like engine analysis is great to bring to the table and giving these bots recognition and respect in the future is important, but it's simply foolish to let ladder-based tours and suspects live in its current state without adding more safeguards.
 
Last edited:
The point of this site is competitive pokemon, I don't understand why one would want a say in voting but simultaneously choose to not engage with the competition aspect.
If you honestly think that reaching reqs on ladder doesn't involve "real competition," I don't know what to tell you. It does, and I think you probably know it does, even if it's a level of competition you think is below you.

Anyway, to answer your question, the reasons I don't want to play tours:
- I have a full-time job, and even playing in a casual tour requires devoting multiple hours per week to prep and matches. With ladder, I have no obligation to play if I have a busy work week.
- Every time I've played in a tour with even nominal stakes (we're talking like a $20 pot), I've had to deal with someone ruining my day over it.
- I literally only play one format that Smogon hosts tours for. By far the biggest tournaments for that format don't even qualify for tour reqs, because they're off-site! The other formats I play get brought up perennially in tour policy threads as mickey mouse formats that people only mention to clown on.
- At the end of the day: I enjoy trying my best to compete on the ladder. I do not enjoy playing tours. I have a finite life on this planet, and some of that life involves having opinions about competitive Pokemon. I know you don't understand why anyone would not want to be a part of the community you help lead, but please just take my word for it. I can play Pokemon competitively without wanting to participate in the very specific subset-of-a-subset-of-a-subset that is Smogon official tours.
 
This is a solution to the problem of AI in tournaments. I do not have a solution to the suspect problem beyond what was already said in this thread (make them harder or stop holding them in the ladder).

This will sound backwards but I think the only long term solution, assuming that pokémon playing AI will continue to improve to the point it can compete in tournaments and we can’t get rid of the bots, then the way to go is to eliminate the asymmetrical advantage it provides by supplying the AI ourselves. From the perspective of the ladder, the existence of bots at all is a problem, but for the tournament standpoint the problem is the asymmetry it introduces when only some people have access to it.

What i’m envisioning is that we work with whoever is building the cutting edge bot to integrate it into PS so that both players always have access to it. I don’t know if this is technologically feasible, but if not, then advertising the bot the way we do the calc to make it accessible to anyone that bothers to look has a similar effect.

This essentially turns our tournaments into Centaur pokémon, with the bot advising and the human choosing what to click. The human + AI team will be advantaged against the solo AI by dint of unpredictability added by the human element and if both players are using the same AI there’s nothing unfair about it. The stronger player would still win more often.

It’s a big change to how we relate to the game but not nearly as big a change as the invention of replays and all games being public was, and we adapted to that just fine. In case you don’t know, back in the day, every player had the 1 team they used every single game, and even if you happened to catch a game live, and thus knew the team that guy was associated with, it was considered distasteful to counterteam it instead of just using your own pet team should you find yourself playing them next week, so no one did it. (For example, in WCOP finals many moons ago, Earthworm happened to get a great matchup vs his opponent and crushed him in like 15 turns, then had to spend the next week vehemently defending himself from accusations of counterteaming, including calling witnesses to testify that he had been using the team he brought to that game for a while). Contrast that to now, where over the course of an SPL season a player is expected to build 9 bespoke teams, one for each opponent. Compared to that, the move to Centaur pokémon doesn’t seem so drastic. Consider that the heuristics of a strong player and the probability matrix provided by a strong AI would be very similar on the vast majority of turns anyway.

All that being said, we’re not at the point yet where this is necessary in tournaments, but I urge the community to consider this solution for when that day inevitably (?) comes. Right now the problem bots pose to tournaments is people farming Freaki Nicki on the ladder, and if people are capable of identifying an account as a bot to farm it, then PS admins/TDs are capable of identifying it too and easily have its Elo reset.
 
Back
Top