Skip to main content

Stats library for SSBM replay files

Project description

SlippiStats

pip install slippistats

Please refer to the wiki for quick start and API reference. Also check out StatsExamples jupyter notebooks, which contain some example stat generations from ~1400 of my own replays.

SlippiStats is a Python parser for .slp game replay files for Super Smash Brothers Melee for the Nintendo GameCube. These replays are generated by Jas Laferriere's Project Slippi, which runs on a Wii or the Dolphin emulator.

Overview

SlippiStats is a library for slippi replay parsing and automatic stat/combo generation. It is based heavily on both slippi-js and py-slippi, though with some modifications.

The goal of SlippiStats is to provide a set of more useful, accurate, and detailed statistics than what slippi-js currently offers. The stats are targeted towards competitive players, with a notable absence of some "novelty" stats like APM. The output integrates easily with existing data science libraries and can provide indications for where a player should improve, as well as tracking that improvement over time.

Features

  • Combo generation with an enhanced algorithm and togglable criteria (with clippi/dolphin-compatible json output)

  • Stat generation with useful, high detail fields

  • ~70-90% faster replay parsing compared to py-slippi

image

  • Effortless conversion to Pandas/Polars DataFrames

Differences from Py-Slippi

SlippiStats originated as a fork of py-slippi, which was meant to be merged in at some point. Unfortunately, the scope increased a lot, the dev behind py-slippi has shifted focus from python to rust's Peppi parser, and the changes required to make stats work resulted in more and more breaking changes from py-slippi's existing framework. Thus the decision was made to make this its own project. Below are some of the major changes:

  • Support for all slippi replay features through version 3.14.0

  • Minimum python version 3.7 -> 3.10

  • Live parsing is no longer supported

  • All slippi file metrics are present in the output regardless of adjacent stats (e.g. hitstun -> misc_timer, no longer requires hitstun bitflag to populate)

  • More robust enums including character-specific states and ground ID's for tournament legal stages.

  • Many variables renamed to keep consistency with community and/or slippi file spec (e.g. damage -> percent)

  • Some class structures have been flattened (e.g. slippi.version -> slippi_version, metadata.player[i].netplay.code -> metadata.player[i].connect_code)

  • Parsing code has been heavily modified to maximize speed

  • Additional dependencies for data processing support

Known issues/limitations

  • Stats/combo generation support only games with 2 players. Doubles stats/combos are not supported.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slippistats-0.1.1.tar.gz (68.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slippistats-0.1.1-py3-none-any.whl (72.9 kB view details)

Uploaded Python 3

File details

Details for the file slippistats-0.1.1.tar.gz.

File metadata

  • Download URL: slippistats-0.1.1.tar.gz
  • Upload date:
  • Size: 68.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for slippistats-0.1.1.tar.gz
Algorithm Hash digest
SHA256 929617261359eecd36358d2521f6d6d538da97751756907a17400d520eb41db0
MD5 0bd22bd6016decb99dca945e42bc4751
BLAKE2b-256 ff31535dcd63e326e037d9bd4b354b263a14db5ef5d97ab497b005681bdeebbb

See more details on using hashes here.

File details

Details for the file slippistats-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: slippistats-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 72.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for slippistats-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 39f886b2d8728216429335a4f4d0449e88726eb4b19083e4ccfc961c158310b8
MD5 31aef5d559afef5423d59a1ca3d719a8
BLAKE2b-256 7c98d4668610196b2c4b8343fc7915a1ebcf1d76ab64d06f36e1663a62b32dcf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page