Skip to main content

Stats library for SSBM replay files

Project description

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.0.tar.gz (68.7 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.0-py3-none-any.whl (72.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: slippistats-0.1.0.tar.gz
  • Upload date:
  • Size: 68.7 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.0.tar.gz
Algorithm Hash digest
SHA256 dbfef02cf4d680f34b803be73933ec8139726f892b54d90aeedd152f6231d637
MD5 3e21f1f1db02c42f53344faf4eb686d8
BLAKE2b-256 615e83eb59b69b8a1cd57a6d9b7b678779ada25b7cd2d33db868410124b11db4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: slippistats-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e313d61123e7cb52dd4961884a7d1b095b1d0e38e057048aedb9f64e88fb39b6
MD5 51b5245c59adbc862656a2a802abd0dc
BLAKE2b-256 d74dc323300b5e418dc5b9d9cc5df1bcb6cf0d0ea202a266a0acf848b650295b

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