New Ripple's score server

Giuseppe Guerra f630f449de 1.13.1 1 month ago
common @ 32a02e4d56 132ce39440 Update submodules 1 month ago
constants fae9b20eea .SCORES. Use levbod rather than bloodcat in osu!direct beatmaps listing/search 5 months ago
handlers d45f50903d Implemented country leaderboards 1 month ago
helpers 3d381b9b22 Don't update global and country leaderboards if user is restricted or banned 1 month ago
objects 99f147c8d5 Moved global leaderboards to redis 1 month ago
pp 10fe21a79e .SCORES. General refactoring 5 months ago
pubSubHandlers 7726a018aa .SCORES. Cythonized some files 5 months ago
.gitignore a979180555 .SCORES. Add distutils setup file 5 months ago
.gitmodules 128cabe205 .HIDE. Change submodule url to new git server and use HTTPS instead of SSH - Nyo 4 months ago
.landscape.yaml 47810bd960 .HIDE. Update landscape config file 5 months ago
LICENSE 3480771dfd Update README and LICENSE 10 months ago fdb7b79807 Update README, add .landscape.yaml 5 months ago 1a9f412ddb First (uncomplete) release 1 year ago 1b483029f5 Add full build script 5 months ago 38d555c566 print -> log, remove unused import 1 month ago f7547a64c3 .SCORES. .HIDE. Log personal best stuff as debug 6 months ago
requirements.txt 0f4117e6a7 .HIDE. Update requirements.txt 6 months ago
runserver.bat ddfc0e5afc .SCORES. More error checks in ripp 1 year ago a979180555 .SCORES. Add distutils setup file 5 months ago 10fe21a79e .SCORES. General refactoring 5 months ago 10fe21a79e .SCORES. General refactoring 5 months ago
version f630f449de 1.13.1 1 month ago

LETS Code Health

  • Origin:
  • Mirror:

Latest Essential Tatoe Server

This server handles every non real time client feature, so:

  • Ingame scoreboards
  • Score submission
  • PP calculation through oppai (std) and wifipiano2 (mania)
  • Screenshots
  • Replays
  • osu!direct
  • Tillerino-like API


  • Python 3.5
  • Cython
  • C compiler
  • MySQLdb (mysqlclient)
  • Tornado
  • Bcrypt
  • Progressbar2 (only for )
  • Raven
  • Datadog
  • oppai

How to set up LETS

First of all, initialize and update the submodules

$ git submodule init && git submodule update

afterwards, install the required dependencies with pip

$ pip install -r requirements.txt

compile all *.pyx files to *.so or *.dll files using (distutils file)

$ python3 build_ext --inplace

then, run LETS once to create the default config file and edit it

$ python3
$ nano config.ini

finally, configure oppai as described below.

How to set up oppai with LETS

LETS uses lolisamurai's oppai as pp calculator for std. We use a slightly modified version of oppai, you can find it here.
Go one directory above LETS (in the same directory where you have old-frontend,, lets and so on) and clone oppai inside the oppai folder, compile it with make and create the maps folder:

$ cd ..
$ git clone
$ cd oppai
$ make
$ chmod +x oppai
$ mkdir maps

Note: wifipiano (mania pp calculator) is tailor-made for LETS and doesn't require any configuration. is a tool that allows you to calculate pp for specific scores. It's extremely useful to do mass PP recalculations if you mess something up. It uses lets' config and packages, so make sure lets is installed and configured correctly before using it.
tomejerry supports a lot of parameters, the main ones are:

  • -r, to recalculate PP for every score on every game mode (only std and mania are supported at the moment)
  • -z to calculate PP for scores with 0 pp
  • -g x to recalculate PP for scores for x gamemode (0: std, 3: mania)
  • -i x to recalculate PP for score with x id
  • -n x to recalculate PP for scores submitted by user with x username
    For a full list of all the arguments supported by tomejerry, run python3 --help


This project is licensed under the GNU AGPL 3 License.
See the "LICENSE" file for more information.
This project contains code taken by reference from osu-performance by Tom94.