blushneybusiness-glitch/roblox-omniskills/rbx-pvp-ranked
Claude Code and agent skill by blushneybusiness-glitch/roblox-omniskills
- community
Checking that the SKILL.md file is still in the repository.
Ranked systems with real ELO/MMR math — expected-score formula, tuned K-factors, placement matches, visible rank tiers with floors, and seasonal soft resets — persisted safely and computed only on the server. Use when the user says "add ranked", "ELO system", "MMR", "rank tiers", "placement matches", "start a season", or when ratings feel wrong: everyone clumps at one rank, smurfs farm beginners, or a disconnect wipes someone's rating. Do not use for the queue and match lifecycle itself — load rbx-pvp-matchmaking — or for save-slot plumbing — load rbx-data-profilestore instead.
Install
npx vskill@latest install blushneybusiness-glitch/roblox-omniskills/rbx-pvp-rankedSKILL.md
rbx-pvp-ranked
Laws
- Rating changes are computed and written server-side only, from match results the
server itself observed (Humanoid.Died it processed, score caps it counted). No remote accepts "I won"; the client's ranked UI is a mirror of replicated values, nothing more.
- One rating write per match, transactional. Apply the delta with
UpdateAsync(or the
ProfileStore session per rbx-data-profilestore), never GetAsync→SetAsync — two servers finishing matches for the same player is a lost-update bug you will not reproduce in Studio.
- Separate MMR from displayed rank. MMR is the honest float the matchmaker uses; rank
is the tiered, floor-protected presentation layer. Fusing them forces you to choose between accurate matching and player-friendly progression — keep both.
- Every rating rule is written down before tuning. K-factors, floors, and reset formula
go in one CONFIG table at the top of the rating module so a season patch is a value edit, not a code hunt.
Recipes
Core ELO — expected score Ea = 1 / (1 + 10^((Rb - Ra) / 400)); update Ra' = Ra + K * (S - Ea) where S is 1 win / 0.5 draw / 0 loss. Floor stored rating at 0, math.floor before persisting. For team modes, rate each player against the enemy team's average rating; winners split S = 1.
K-factor ladder — placements (first 10 matches): K = 64, so a smurf reaches its level in one session instead of forty. Established (11+ matches, MMR < 2400): K = 32. High MMR (≥ 2400): K = 16, top ratings stop pinballing. Store matchesPlayed next to MMR; it drives the ladder.
Placements — hide the rank badge for matches 1–10, show "Placement 4/10". Seed at 1000 MMR; after match 10, reveal the tier. Never show a rank that swings a full tier per game — players read that as broken, not converging.
Tiers and floors — map MMR to tiers in 200-point bands: Bronze 0–999, Silver 1000–1199, Gold 1200–1399, Platinum 1400–1599, Diamond 1600–1899, Champion 1900+. Rank floors at each tier boundary the player has crossed: displayed rank never drops below the highest floor reached this season, even while MMR falls (MMR keeps moving — law 3). Floors are the #1 retention lever in ranked; losing a tier you ground for is a quit event.
Season reset — soft reset toward the mean: newMMR = (oldMMR + 1000) / 2. Reset matchesPlayed to 0 to re-trigger placements, clear floors, archive last season's peak tier into the profile for the "Season 3: Diamond" badge. Season length 8–12 weeks; store seasonId with every rating so a late write from an old-version server can be rejected.
Disconnect rule — a leaver takes the full loss (S = 0) after a 60s reconnect grace; opponents take the win at half K so farming disconnects pays worse than playing. Persist the pending result immediately at abandon time, not at the match's natural end.
Performance budget
Rating math is trivial; the budget is DataStore. One UpdateAsync per player per match end, nothing per-round. Leaderboards go through an OrderedDataStore updated on match end only, read on a 60s cache — never per-join. All ranked state for connected players lives in the session profile; zero mid-match DataStore reads.
Load with
rbx-data-profilestore — rating survives the session, don't ask, include it. rbx-pvp-matchmaking feeds this skill match results and consumes its MMR for queue windows. Rank-up moment: rbx-juice-celebrations + rbx-audio-sfx — a silent promotion is a wasted season hook. Tier iconography: rbx-ui-imagery.
AI-tells
- ☐ Client reports the match result and the server believes it
- ☐ GetAsync→SetAsync rating writes (lost updates between servers)
- ☐ One K-factor for everyone — placements take 40 games, top ranks pinball
- ☐ Displayed rank == raw MMR, dropping tiers mid-losing-streak with no floor
- ☐ Hard season reset to zero instead of
(old + 1000) / 2 - ☐ Rating changes applied per-kill instead of per-match
- ☐ No
seasonIdon writes — stale servers corrupt the new season - ☐ Leaderboard hammering OrderedDataStore on every player join
Memory
Read: the game's projects.md block (existing tier names, season schedule, K values already tuned, profile schema keys). Write: the final CONFIG (K ladder, tier bands, reset formula, season dates) into the game's projects.md block when approved; the rating module path into module-library.md; season-rollover manual steps into manual steps pending: if the user defers the date.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/rbx-pvp-ranked/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/blushneybusiness-glitch/roblox-omniskills/rbx-pvp-ranked)