Lazybot is a self-hosted, feature-rich osu! bot built for Discord and QQ servers. Designed for osu! players who want powerful performance tracking, stunning visual score panels, and deep stat analysis right inside their community chat, Lazybot packs everything from BP simulation and PP+ integration to badge challenges and fun minigames — all running on your own infrastructure.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Apeuriox/lazybot-renewal/llms.txt
Use this file to discover all available pages before exploring further.
Feature Pillars
Score Lookup & Panel Rendering
Lazybot retrieves scores from the osu! API and renders beautiful, richly detailed score cards. Panels are defined as SVG templates, processed at runtime using Apache Batik for DOM manipulation, then rasterized to PNG or JPG via Resvg JNI — a Rust-native renderer bound to the JVM — for dramatically faster output than Batik’s own rasterizer. Multiple panel styles are supported (DarkScore, Moelleux, Quadra Grid, Gameboy, and more), and users can select their preferred default panel with/SetPanel.
BP Analysis & Simulation
Lazybot provides a full suite of Best Performance (BP) tools:/bp— fetch a single BP entry, up to index 200/bplist//bpcard— list or render up to 200 BP entries/bpvs— compare two players’ BPs head-to-head/nochoke//no1miss— simulate what your total PP would look like with perfect accuracy or a single miss removed/bpif(/whatif) — calculate the PP gain from a hypothetical score, with a configurable calculation limit (default 200)/filter— filter your BP 200 by arbitrary conditions/todaybp— scores set today that entered your top plays
PP+ Integration
Lazybot integrates with the PP+ service, allowing users to query detailed skill-breakdown data with/plus and view their top PP+ plays with /Pb. The Quadra Grid panel style displays both standard PP and PP+ breakdowns side by side.
Badge & Challenge System
The badge/challenge system works similarly to Map Packs. Server administrators can define a series of challenges, and players who complete all of them earn a badge. Use/badge commands to browse available challenges, check progress, and claim rewards when finished.
Fun Minigames
/Song— a random clip is cut from a player’s BP and others must guess the map title/Name— obfuscated player names are shown for others to identify/CheckIn— daily check-in with a calendar-style panel/ur— given an OD and unstable rate, estimate the accuracy distribution using a normal distribution model
Multi-Platform Support
Lazybot speaks two protocols simultaneously:
Each platform can be independently enabled or disabled in
application.yaml.
Star Moon Private Server
Lazybot includes native support for the Star Moon (星月) osu! private server, enabling players on that server to use score lookup and tracking commands.Image Rendering Stack
Prerequisites
Before running Lazybot, ensure you have the following available:Java 21
Lazybot requires Java 21 and uses Java 21 preview features (virtual threads, native access). The JAR must be launched with
--enable-preview --enable-native-access=ALL-UNNAMED.MySQL-Compatible Database
A running MySQL (or compatible) instance is required. Run
script.sql to initialise all tables before first boot.osu! API Credentials
Register an OAuth application at osu.ppy.sh/home/account/edit to obtain a client ID and client secret. These go into
lazybot.client_id and lazybot.client_secret.Discord / QQ Bot Token
A Discord bot token from the Discord Developer Portal and/or a configured OneBot-compatible QQ client (e.g. LiteLoaderQQNT + NapCatQQ) for QQ support.
Get Started
Quickstart
Clone the repo, install local Maven libraries, configure
application.yaml, and run Lazybot in under 15 minutes.Configuration Reference
Every field in
application.yaml documented — database, Discord, osu! OAuth, rate limiting, and async threading.Score Commands
Full reference for
/bp, /score, /recent, /nochoke, /bpvs, and all other score commands.Badge & Challenges
Learn how to set up badge challenge sets and how players complete them to earn rewards.
Project Background & License
Lazybot started on March 27, 2023, founded by LazyChildren. This repository (lazybot-renewal) is a complete refactor of the original codebase — new architecture, improved performance, and an actively growing command set. Current version: 1.2.0 (Spring Boot 4, Java 21).
Lazybot is released under the GNU General Public License v3.0.
Lazybot is a self-hosted bot. There is no public instance you can invite to your server. You are responsible for hosting, maintaining, and securing your own deployment, including keeping your
application.yaml credentials private.