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.