The Mixer — live round-robin generator

Launching the mixer with URL parameters

Pre-load a roster and settings into the mixer with URL query parameters — what each one does, how they are encoded, and what happens when players already exist.

URL query parameters let you pre-populate the mixer's roster and algorithm settings on load — handy for a bookmark, or a shareable setup link you build yourself. (Launching from the dashboard doesn't need any of this: it hands your saved group's players straight to the mixer.)

After the parameters are applied, the mixer strips them from the address bar, so a later refresh won't re-trigger the import.

Player data parameters

These four parameters work as parallel arrays: the Nth value in each list applies to the Nth player in players.

Parameter Type What it sets
players Comma-delimited names The roster. URL-encode the list; spaces may be + or %20.
ratings Comma-delimited numbers Starting rating for each player. Blank slot or 0 → no rating (null).
gender Comma-delimited flags Gender for each player: m or male, f or female. Blank → unset.
link_names Comma-delimited names Fixed-partner name for each player. Blank slot → no partner link.

A link_names entry names the partner's display name as it appears in players, not a player ID. If the named partner isn't found, the link is skipped with a warning.

Example

/mixer?players=Ali+Johnson,Andre+V,Petra+L,Sam+W
       &ratings=1420,1385,,1501
       &gender=f,m,f,m
       &link_names=,,,

Ali gets rating 1420 (female), Andre 1385 (male), Petra has no rating (female), Sam 1501 (male), and nobody is linked to a fixed partner.

Court count

Parameter Type Range Default
num_courts Integer 1–20 3

How many courts are active when the mixer opens.

Algorithm weight parameters

All weight parameters accept integers 0–99 — except mix_quality, which is a search-depth setting and accepts 1–40. They map to the same sliders found in Mixer settings.

Parameter What it controls Default
sitting_out_weight Priority for rotating sit-outs fairly 98
played_with_weight Avoid repeating partners 4
played_vs_weight Avoid repeating opponents 1
mixed_weight Preference for mixed-doubles courts 0
rating_weight Balance opponent teams by rating 0
partner_rating_weight Balance partners by rating 0
highest_rated_partner_weight Pair stronger players with weaker partners 40
court_number_weight Spread players across court numbers 0
court_side_weight Balance which net side players occupy 0
max_algorithmic_sitters Cap how many players sit out per round 0
mix_quality Search depth, 1–40 (higher = better mix, slower) 15

Boolean flag parameters

Use 1 for on, 0 for off.

Parameter What it controls Default
duplicate_dissuasion Penalize repeating the exact same four-player court 1 (on)
participant_diversity Spread which players get paired together 1 (on)
mixed_doubles_courts Allow mixed-gender courts 1 (on)
all_men_women_courts Allow same-gender courts 1 (on)
sort_courts_by_rating Sort court cards by average rating 0 (off)

Bad court

Parameter Type What it sets
bad_court_number Integer 0–10 The court number to treat as the "bad court" (e.g. a cracked surface). 0 clears the setting.

What happens when the mixer already has players

If your current session has players in the roster, a dialog appears before any new players are added:

Existing Players Found

You are bringing in N new player(s): … BUT you already have M player(s) in your roster: … You can either combine them all into one session OR start a brand new session using only the new players you just launched with.

Combine — adds the URL players to the existing roster. Duplicate names are skipped with a warning. If you have existing game history, a second prompt titled Existing Games Found asks whether to Keep Games or Clear Games before adding the new players.

Start New — clears the current roster and game history automatically (no second prompt), then loads the URL players fresh.

Closing the dialog cancels the import; nothing changes.

Settings (court count and algorithm weights) are applied before the player dialog fires, regardless of which option you pick.

On a free account — or with no account — the names in a players URL aren't added to the roster automatically. They arrive in the "These players need to be added manually" list above the roster, each with a Copy button, and you add the ones you want. The list says so in as many words — that player links don't auto-load on a free account — so a link that looks like it did nothing never goes unexplained. Court count and the algorithm weights still apply exactly as described above, and the roster you build from the list mixes like any other — nothing about mixing is capped. Lite and above load the whole list straight into the roster.

Launching the mixer from the dashboard is unaffected: your own saved group's players always import in full.

Building a launch URL

Append a query string to /mixer:

https://picklefriend.net/mixer
  ?players=Name+One,Name+Two,Name+Three,Name+Four
  &num_courts=2
  &ratings=1500,1480,1510,1460
  &sitting_out_weight=98
  &played_with_weight=20

Spaces in names encode as + or %20. The comma between players is a literal delimiter — only encode it as %2C when a comma appears inside a name itself.

Ratings of 0, null, or a blank slot (e.g. 1500,,1510) are treated as "no rating" — the player lands on the roster unrated.

What's next

  • Save a named setup so you can reload it without rebuilding the URL every time — see Presets.
  • Understand how the algorithm weights interact — see Mixer settings reference.
  • Manage multiple mixer setups — see Sessions.