From f5002a0d4d93d04b47741d9800ac7012dfa4f908 Mon Sep 17 00:00:00 2001 From: funman300 Date: Wed, 5 Aug 2026 11:55:07 -0700 Subject: [PATCH] fifa17-recon: serve club items -- the type names are SINGULAR and they were on the wire Arming the counters made the client name the route within seconds, exactly as it did for consumables: club?type=equippables&count=11 club?type=stadium&count=200 club?type=ball&count=200 So it IS club?type= for this family, with SINGULAR names -- stadium and ball, not stadia and balls -- and equippables as the combined club-customisation view. Those requests were being answered from STORE.items(), which holds no club items because the shelf is synthetic, so they correctly returned empty and looked like nothing was happening. Now serves the shelf: stadium 4, ball 6, badge 8, kit 8, equippables 30 (all four combined), with player untouched at 205. The cardsubtypeid values remain UNVERIFIED. cardtype 9 has no arm in the merge, so a wrong subtype cannot announce itself; whether these render is now a live question and the next screenshot answers it. 439 + 414 checks green. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01VUT92pz6RWKih9dSr8ZpxW --- fifa17-recon/tools/utas_server.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/fifa17-recon/tools/utas_server.py b/fifa17-recon/tools/utas_server.py index 8c5e0a7..80bd2aa 100755 --- a/fifa17-recon/tools/utas_server.py +++ b/fifa17-recon/tools/utas_server.py @@ -1801,6 +1801,24 @@ def club_route(h): items = [i for i in items if i.get(field) == want] log(" CLUB: %s=%d -> %d item(s)" % (param, want, len(items))) + # CLUB ITEMS. Observed live 2026-08-05, and the names are SINGULAR: the client + # asks type=stadium, type=ball and type=equippables (count=11 for the last, + # count=200 for the other two). Those were served from STORE.items(), which holds + # no club items because the shelf is synthetic, so they correctly came back empty. + # equippables is the combined view behind the club-customisation screen. + if CLUBITEMS and kind in ("stadium", "ball", "badge", "kit", "leaguelogos", + "equippables"): + import fut_clubitems + sh = fut_clubitems.shelf() + fam = {"stadium": "stadia", "ball": "balls", "badge": "badges", + "kit": "kits", "leaguelogos": "leaguelogos"}.get(kind) + if fam: + got = sh.get(fam, []) + else: + got = [i for fam_items in sh.values() for i in fam_items] + log(" CLUBITEMS: type=%s -> %d item(s)" % (kind, len(got))) + return 200, {"itemData": got} + if kind and kind not in ("player", "custom"): # cardsubtypeid 0..3 is a player (FUN_1800d8330); everything else is # staff or a manager. The save holds no non-player items (the families