Stats Linking and Migration
Every queue writes its player stats into a named stats bucket. Two queues pointing at the same bucket share one leaderboard, one MMR pool, and one win/loss record. Two queues pointing at different buckets are completely independent.
This guide explains how NeatQueue picks that bucket, and gives step-by-step recipes for changing it without losing history.
A stats bucket belongs to a name, not to a queue. Deleting or renaming a queue never deletes the bucket — it just changes which bucket the queue reads. That is why almost every "our stats disappeared" report is really a queue pointing at the wrong name.
How NeatQueue Picks the Bucket
For any queue, the bucket name is resolved in this order. The first match wins:
- Server-wide stats - If
/leaderboardconfig sharedstats serverwideis enabled, every queue in the server uses the single server-wide name. Per-queue settings are ignored entirely. - Shared stats name - Otherwise, if the queue has one set with
/leaderboardconfig sharedstats set, that name is used. - Queue name - Otherwise, the queue's own name (from
/queuename) is used. This is the default.
While server-wide stats are on, /leaderboardconfig sharedstats set is blocked and will refuse to run. You must disable server-wide stats first. This is the single most common source of confusion — see Separating one queue's stats.
Checking What a Queue Uses
Run /info in the queue's channel to see its current stats configuration, then /leaderboard to confirm the data looks right.
Common Changes
Separating one queue's stats
Use this when you added a second queue (for example a 1v1 alongside your 3v3) and discovered they share one leaderboard.
If server-wide stats are on, both queues are pinned to the same bucket. Turning it off alone is not enough — your original queue would fall back to its queue name, which is usually an empty bucket. You must re-point it at the name the history was actually recorded under.
- Find your current server-wide name with
/info. If you never set one, it isplayer_stats. - Turn off server-wide stats:
/leaderboardconfig sharedstats serverwide toggle:Disabled
- In the channel of the queue that should keep the existing history, pin it back to that name:
/leaderboardconfig sharedstats set name:player_stats
- Do nothing to the new queue. It falls back to its own queue name and starts a fresh, separate bucket.
- Run
/leaderboardin each channel to confirm: the original is intact, the new one is empty.
After step 2 and before step 3, the original leaderboard will read as empty. Nothing has been deleted — the queue is simply pointing at a bucket with no games in it yet. Step 3 restores it. Because sharedstats set is blocked while server-wide is on, this order cannot be avoided.
Merging two queues onto one leaderboard
Point both queues at the same name:
/leaderboardconfig sharedstats set name:Competitive
Run it in each queue's channel with the same name. Both then read and write one bucket.
Pointing two queues at a new shared name gives them a shared bucket going forward — it does not merge the stats they each accumulated separately. To combine existing records, use /managestats (below) before switching.
Renaming a queue without losing stats
Renaming only matters if the queue was relying on rule 3 (its queue name). If it has a shared stats name set, or server-wide is on, renaming changes nothing about its stats.
Otherwise:
- Rename the queue:
/queuename name:New Name - Point it back at the old bucket:
/leaderboardconfig sharedstats set name:Old Name
Turning server-wide stats on
/leaderboardconfig sharedstats serverwide toggle:Enabled name:Competitive
If you omit name, NeatQueue picks the most common stats name already in use across your queues. If your queues are deliberately separate, this can silently merge ladders you just finished splitting apart. Pass name explicitly so you know exactly which bucket everything lands in.
Turning server-wide stats off
Follow the same sequence as Separating one queue's stats, but repeat step 3 in every queue that should keep the shared history. Any queue you skip falls back to its queue name and starts empty.
Moving Stats Between Names
/managestats operates on bucket names, not on queues. This is the tool for consolidating or rescuing history:
/managestats copy old_name:A new_name:B- Copy stats from bucket A to bucket B; A is preserved/managestats move old_name:A new_name:B- Move stats from bucket A to bucket B; A is cleared
Both commands overwrite whatever is already stored under new_name, and neither can be undone. Use copy to test the result before you use move.
Seasons and Monthly Stats
If monthly or custom seasons are enabled with /leaderboardconfig monthly, the active season is prefixed onto the bucket name, so each season is stored separately from the all-time bucket. Linking rules apply exactly the same way — the season prefix is added after the name is resolved.
Troubleshooting
Our leaderboard suddenly shows nobody.
The queue is pointing at an empty bucket. This almost always follows a rename or a server-wide toggle. Re-point it with /leaderboardconfig sharedstats set name:<old name>. The data is still there.
sharedstats set says it is not allowed.
Server-wide stats are enabled. Disable them first with /leaderboardconfig sharedstats serverwide toggle:Disabled.
Two queues that should be separate share one leaderboard.
Either server-wide stats are on, or both queues have the same name or the same shared stats name. Check with /info in each channel.
A new queue inherited an existing leaderboard. Server-wide stats are on, so the new queue was pinned to the server-wide bucket the moment it was created.
Best Practices
- Decide before you launch - Changing linking after games are played always means a migration step
- Always pass
nameexplicitly - Never let server-wide or shared stats auto-pick a bucket for you - Only use server-wide for one ladder - If you ever plan a second, separate queue, prefer per-queue shared stats names from the start
- Copy before you move - Test with
/managestats copyso the original survives a mistake - Verify with
/leaderboard- After any linking change, check every affected channel before announcing it
Run /config save before making linking changes so you can restore your configuration if something goes wrong.
For general leaderboard setup and display options, see Leaderboard and Stats.