A player made and maintained cheat detection tool for osu!. Provides support for detecting replay stealing, remodding, relax, and aim correction from a profile, map, or set of osr files.
Project description
Circlecore
Circlecore is a utilities library for osu!. Features include:
- Unstable Rate calculation
- Hits calculation (all places where a player hit a hitobject)
- Similarity calculation between two replays, for replay stealing detection
- Frametime calculation, for timewarp detection
- Jerky, suspicious movement detection (called Snaps)
Circlecore is used by Circleguard, a replay analysis tool.
Circlecore is developed and maintained by:
Installation
Circlecore can be installed from pip:
pip install circleguard
This documentation refers to the project as circlecore
to differentiate it from our organization Circleguard and the replay analysis tool Circleguard. However, circlecore
is installed from pypi with the name circleguard
, and is imported as such in code (import circleguard
).
Links
Github: https://github.com/circleguard/circlecore
Documentation: https://circleguard.github.io/circlecore/
Discord: https://discord.gg/VNnkTjm
Usage
We have a full tutorial and documentation at https://circleguard.github.io/circlecore/. If you really want to jump right in, below is a quickstart guide:
from circleguard import *
# replace "key" with your api key
cg = Circleguard("key")
# replay on http://osu.ppy.sh/b/221777 by http://osu.ppy.sh/u/2757689
replay = ReplayMap(221777, 2757689)
print(cg.ur(replay)) # unstable rate
print(cg.frametime(replay)) # average frametime
print(cg.frametimes(replay)) # full frametime list
print(cg.hits(replay)) # where the replay hits hitobjects
print(cg.snaps(replay)) # any jerky/suspicious movement
replay2 = ReplayMap(221777, 4196808)
print(cg.similarity(replay, replay2)) # how similar the replays are
# ReplayMap isn't the only way to represent replays; we can also
# get a beatmap's top 3 plays
map_ = cg.Map(221777, span="1-3")
# or a User's fifteenth and twentieth best plays
user = cg.User(124493, span="15, 20")
# or a local replay
replay3 = ReplayPath("/path/to/local/osr/replay.osr")
# and more. You can find them all at
# https://circleguard.github.io/circlecore/appendix.html#circleguard.loadables.Loadable
# maps and users can be iterated over
for r in map_:
print(cg.ur(r))
Contributing
Join our discord and ask how you can help, or look around for open issues which interest you and tackle those. Pull requests are welcome!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file circleguard-5.0.3.tar.gz
.
File metadata
- Download URL: circleguard-5.0.3.tar.gz
- Upload date:
- Size: 49.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2a85b4fb4419d39652f501a8e49ecc65c8c7a0df243d9c3f4196ba471566486 |
|
MD5 | 94f55c1f0d04e098ee11558bc52313bb |
|
BLAKE2b-256 | d77d73c6ab76e7b289233672b8c49c7f09f908c9a473ad1964f1fc1f287e4071 |
File details
Details for the file circleguard-5.0.3-py3-none-any.whl
.
File metadata
- Download URL: circleguard-5.0.3-py3-none-any.whl
- Upload date:
- Size: 68.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31bc818f5b53de2f2e62c99bdf633e3b7ac9393e43010250e62c507fcb0b9d19 |
|
MD5 | fe1c25c4821a538155ed9529718c3c95 |
|
BLAKE2b-256 | 929406521bd2122b2f4ed349ea4fa89113df67f055f4d7e6007ae42932b4d06d |