fc26/squad-gen

EA Sports FC 26 · Ultimate Team

The best XI your club can actually field.

Upload your club, set the constraints you care about, and get the squad that maximizes it. No prompts, no guessing — every control maps to a solver primitive, so the answer is reproducible and you can see why it won.

ST 91 LW 87 RW 88 CAM 89 CM 85 CM 86 LB 84 CB 88 CB 87 RB 83 GK 89

4-3-3 · team rating 87 · chemistry 33/33

The filter panel

Constraints, not suggestions.

Each control below is a hard constraint handed straight to the solver. If a squad satisfying all of them exists in your club, you get the best one. If none exists, you get told which constraint made it impossible.

nation BRA 4

Count constraints on nation, league, club, card class or rating — with ≥, = or ≤.

slot 7 = GER CAM

Pin a single position to a nationality, club or minimum rating without fixing the rest of the XI.

chem 30

Hold chemistry at a floor and maximize stats underneath it. This is the constrained search path.

rating 84

Minimum team rating, for when you are building toward an SBC requirement rather than raw quality.

formation = any

Search every formation and keep the best result, instead of committing to one shape up front.

priority = stats, chem

Lexicographic goals: maximize stats first, then squeeze chemistry without giving any stats back.

Two solvers, picked automatically

Exact where it can be, annealed where it can't.

Squad building is two different problems wearing one coat. Without chemistry constraints it is a clean assignment problem with an optimal answer. Add chemistry and it stops being separable — so the tool switches method rather than pretending one fits both.

Unconstrained objectives

Min-cost max-flow

Players are scored per position, then assigned to slots by an exact min-cost max-flow pass. The result is provably optimal for that objective, and it runs in milliseconds. It also seeds the annealer with a strong starting point.

Chemistry constrained

Simulated annealing

Chemistry couples every slot to every other, so exact assignment no longer applies. A seeded annealer explores swaps under the active constraint floors. Same seed, same squad — runs are reproducible.