openskill
Multiplayer Rating System. No Friction.
What it is and what it does
Openskill is a Bayesian multiplayer rating system designed as a faster, open-source alternative to Microsoft's TrueSkill. It calculates player skill ratings based on match outcomes and can handle complex scenarios like multiple teams of unequal size, draws, and partial participation. The package is written in pure Python with C-compiled wheels for performance, supports both CPython and PyPy, and includes five different rating models (such as PlackettLuce and Weng-Lin variants) to suit different game structures.
You use it by instantiating a model, creating initial ratings for players, and then calling the model's rate method with match results to update those ratings. It's designed for gaming platforms that need to balance matches fairly and rank players accurately without the overhead or licensing constraints of TrueSkill.
Use it for:
- Calculate and update player ratings in competitive multiplayer games to enable skill-based matchmaking.
- Rank teams of unequal size in asymmetric game modes where traditional Elo or TrueSkill may not fit.
- Predict match outcomes (win, draw, or specific rank) based on current player ratings before a game starts.
- Integrate a lightweight, open-source rating system into a game server without external dependencies or licensing fees.
- Experiment with different Bayesian rating models to find the best fit for your game's skill distribution and match structure.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Openskill is a multiplayer rating system that calculates and updates player skill ratings in competitive games, supporting multiple teams, asymmetric team sizes, and various outcome types (win, draw, rank).
Yes. Openskill is actively maintained, has no runtime dependencies, supports current Python versions, carries a permissive MIT license, and has no known vulnerabilities. It's a solid choice if you need a multiplayer rating system for game matchmaking or skill tracking and want to avoid TrueSkill's licensing or performance constraints.
Install
openskill on PyPI
pip
pip install openskilluv
uv add openskillpoetry
poetry add openskillInstalling openskill
Before you install
Installation is straightforward with no runtime dependencies and low friction. The package is actively maintained with recent commits and supports current Python versions (3.10–3.14) on both CPython and PyPy.
License in practice
Licensed under MIT (permissive), so you can use, modify, and distribute the package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install openskill
from openskill.models import PlackettLuce
model = PlackettLuce()
r = model.rating
[[a, b], [x, y]] = [[r(), r()], [r(), r()]]
[[a, b], [x, y]] = model.rate([[a, b], [x, y]])
print(a) # Updated rating for player a
Requires Python 3.10 or later (specified by requires_python ~=3.10).
Verify before relying
- Whether the claimed 150% performance improvement over TrueSkill holds across all model types and input sizes.
- How the five separate models differ in accuracy, speed, and suitability for different game types.
- Whether partial-play and fine-grained parameter control are documented with concrete examples.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (~=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 215 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 187,119/month — #9,970 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: openskill-6.2.0-py3-none-any.whl
Keywords: ranking, trueskill, statistics, rating, math, rank
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
glicko2Implements the Glicko-2 rating system, a…
permissive · top 15,000 on PyPI
trueskillImplements the TrueSkill rating algorithm to…
permissive · top 15,000 on PyPI
TextArenaTextArena provides a framework of 100+…
permissive · top 15,000 on PyPI
open-spielOpenSpiel provides game environments and…
permissive · top 15,000 on PyPI
nashpyNashpy computes Nash equilibria and simulates…
permissive · top 5,000 on PyPI
mcstatusQueries Minecraft servers (Java, Legacy, and…
permissive · top 15,000 on PyPI
properscoringProperscoring provides strictly proper scoring…
permissive · top 15,000 on PyPI
rank-bm25Implements BM25 ranking algorithms (Okapi BM25,…
permissive · top 5,000 on PyPI
skills-refValidates, parses, and generates…
permissive · top 15,000 on PyPI
smolagentssmolagents lets you build and run AI agents…
unclear · top 15,000 on PyPI