RidersPyTools
Package designed to write scripts for Sonic Riders (GameCube) and Sonic Riders: Zero Gravity (Wii). Compatible with vanilla/all mods.
Still a MAJOR work in progress, but functional at a basic level for now.
Code style
We enforce the same standards as the Sonic Riders: Tournament Edition C++ codebase for Sonic Riders, aiming to be as close as possible in syntax to the existing decompilation.
In some cases, this isn't 100% possible, but it remains the goal, as this allows us to read code similarly between C++ and python, as well as provide a bridge for newer users learning to program to jump into the C++ side of things.
Other games may have different data structures and syntax, feel free to add/modify classes as needed to fit your game.
Some concepts:
Ways to get a player pointer: Instantiate a player object in Python:
player1 = Player(0) # Instantiates a pointer to player 1, based on the current game version detected.
Instantiate a player object starting at X address:
player1Vanilla = Player(0, 0x80609440) # Vanilla address
player1TE = Player(0, TE_PLAYER_PTR) # Some addresses are given identifiers for ease of use
Things you can do:
Read data:
print(player1.rings)
Compare data:
player1 = Player(0, 0x80609440)
if player1.rings > 0:
print("You have at least one ring!")
Write data:
player1 = Player(0, 0x80609440)
player1.currentAir = 100000
player1.gearStats[int(player1.level)].boostSpeed = pSpeed(300.0)
Math operations:
player1 = Player(0, 0x80609440)
hundredRingDiff = 100 - int(player1.rings)
print(hundredRingDiff)
And you can integrate this into other scripts too!
We use hatchling to compile the builds. Build compilation instructions coming soon.
Metadata
Release files for RidersPyTools 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| riderspytools-0.0.3.tar.gz | 26.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| riderspytools-0.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 49.8 kB
Release files / riderspytools-0.0.3.tar.gz
| Download URL | riderspytools-0.0.3.tar.gz |
|---|---|
| Size | 26.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ce2fd41608db2639e8920ec20a76f7f2e07477287db56cb877c06279831629d3
|
|
BLAKE2b-256 checksum How to use checksums |
374e17a099c0ae831d817ce49e8f085415c0d451fe2ba0d9c6af18feaa30af2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / riderspytools-0.0.3-py3-none-any.whl
| Download URL | riderspytools-0.0.3-py3-none-any.whl |
|---|---|
| Size | 23.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b7c8a3ea2af314f1cdb9a9f27530826dcb16c1974e8dbf2c04a2c3edcc611889
|
|
BLAKE2b-256 checksum How to use checksums |
800afb2f8687dd09957e42915e8bd62f424678348d974ac152651d6e2f697848
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency log