The Mixer

Launching the mixer with URL parameters

How to pre-load a roster and settings into the mixer using query string parameters — what each param does, how they are encoded, and what happens when the mixer already has players.

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. 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 (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.