forum

I've made yet another osu recommend bot :D

posted
Total Posts
8
Topic Starter
Dynam1cNET

Why?


Let's first get the 'why' out of the way. I have a long-term project that's collecting statistics about me and others in osu! For proper calculations, I needed a database of around 1.7-1.8 million beatmaps (not beatmap sets, but individual beatmaps), including, in most cases, the .osu files.

I also was not satisfied with what Tillerino hands out to me. (That's the 'why.')

My brain then combined these two, and out came the bot idea.

So, after a bit of tinkering, I've made a bot.

How to use the bot?


Since i had a few ppl ask me, this is NOT a farm bot, thats tillerinos job ^^.

Find the Bot (Dynam1cBOT) in osu
Upon receiving its initial command ("!r"), the bot will prompt you to log in with your osu! account. This authentication process follows the OAuth2 protocol for the v2 API. This step is necessary as the bot requires access to your top plays, and I prefer not to utilize the v1 API. Upon successful login, you'll be presented with a (I apologize for the term) visually appealing, white interface, which I invested a significant amount of time perfecting.


After that, the bot initiates the calculation process. Please be patient, as this process is not currently multithreaded, meaning it handles one user at a time. Don't worry; the bot will notify you when the calculation is complete.

After the calculation, you can utilize the following commands:

  1. "!r" will provide a nomod request (I personally prefer this as an nm player, eliminating the need to specify "nomod" or "NM").
  2. "!r <mod>" The available mods for use are HD, HR, and DT, in various combinations.
At present, these are the primary functions of the bot. I intentionally designed it to focus on a single task for the time being.

It's important to note that the calculation process is set to run automatically every week. You won't observe any visible changes, but the new data is seamlessly integrated with your existing data.

The bot (or my stats project) also actively monitors new maps each day, allowing it to recommend fresh maps within your skill range.

How does it work?




After signing in (OAuth2), the bot will calculate a fingerprint of your top 100. These will save the general map statistics like AR, OD, CS, BPM, play length...
Next, the bot will look at the osu! files of your maps and examine what patterns you play, timings, spacing, and so on. It will also generate a fingerprint out of those.
In the third step, the bot will look at the default osu! PP and difficulty attributes. It will also create a fingerprint.

(All of the values will look at the 40th percentiles for now. I still need to figure out better values with your feedback.)

Now the bot goes to the database, which also has these values but precalculated. It will search for maps similar to your fingerprints and give them back as requests. In fact, the bot will create three pools.
Pool one has a 7% chance to be picked; this is an "Easy" pool. In there are maps that you should be EASY able to FC.
Pool two is the regular pool and has an 83% chance to be picked. In there are maps which are similar to your playstyle; you may even be able to FC those. Sometimes... :D
Pool three is an improvement pool. Since the bot kind of sees your playstyle, I try to calculate what you are not able to play. Guess what. At 7% chance, you can get these too! I want you (and myself) to improve.
(i really made it so i dont get stuck in one thing only)

All of the above was nearly perfect for me, but it might not be for you. I already know that DT picks are a bit off and do not represent DT players very well. I've never received real feedback for HD and HR.

Speaking of feedback


Give me feedback on requests (either via DM or here in the forum). Tell me why you don't like it. For example, if a map with mod xy has too high AR, I'd like to know. It's possible that my bot might be assigning too much weight to certain factors, or there may be inaccuracies in the map parameters stored in my database. The more feedback I receive, the better we can fine-tune this system together.

Where to go?


As for the future, I have ambitious plans. If this project gains a user base, I intend to implement the following features:
  1. '/np me' to retrieve PP values. While this may not be a critical feature for the osu! community, it's a convenience I'd like to offer.
  2. '!r <username>' to access recommendations from other players.
  3. Filter options such as '--AR >9 <10' or '--BPM =200.'
  4. A web-based user interface (UI) for creating custom commands and alias commands. For example, you could create a custom command like 'custom command !speed=!r --BPM >240 <300 --AR=9.8.'
  5. The ability to manipulate fingerprints within the web UI, with a list of live updating sample requests.
  6. CtB, mania, taiko support (in that order)

Updates


  1. I've got a bot account. So the bot moved :)
Voidedosu
I would love for PP values to be added. Obviously especially for SS plays. I don't think I'd use it for much else (I have my own path to Downloading maps, though it might be useful for DT/HR practice), but I appreciate the effort.
anaxii
Sounds cool!
Uranium
Wow this sounds great cant wait to give it a try

edit - So i tried it out and wow, it actually gives great recommendations for what I play, NM - Streams and DT - Finger control. Already this is 10x better than tillerino lmao.

Also it works very fast once it loads your profile which is very convenient. Good stuff
AccountWontWork
bot 4/5 of the time gives me only +5 mins maps... sounds about right!
anaxii
Damn, I should really use it to see if it's worth it
Nodal
It's NICE. The beatmap recommended by this bot is very interesting!
I think the system of selecting from 3 pools is a very nice one.
Hope your project goes well~
__scripting
damn its work pretty good for me.

good job man
Please sign in to reply.

New reply