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. The dashboard's Launch button uses this mechanism when you have a saved group — it builds a URL with your players and settings baked in, then navigates to the mixer. You can also construct the URL yourself to create a shareable setup link.

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.

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.