English | 한국어 | 日本語 | 中文(简体) | ไทย | Português | Bahasa Indonesia | Español | Français | Italiano | Deutsch
Update [26.03.01]: 4 lanes are now a universal language. (Added support for 11 languages! 🌍)
- v1.7.0 play video 1 : https://youtu.be/kdtN0erNST0
- v1.7.0 play video 2 : https://youtu.be/ji6ta4Gegb4
7 keys? No thanks.
This is a Pygame-based BMS driver that forcefully rearranges all BMS charts into 4 keys (DFJK) for playback.
Only4BMS was created for 4-key purists who face complex BMS charts like 7-key or 14-key and think, “How am I supposed to play all this?”
This project uses Pygame to parse BMS files and provides an environment where you can enjoy any chart format remapped into 4 lanes along with key sounds.
Forced 4-Key Mapping: Automatically assigns 5-key, 7-key, 10-key, and 14-key charts to 4 lanes (D, F, J, K) using mathematical algorithms.
Density Checker: Checks and visualizes note density when 7-key charts are consolidated into 4-key.
Language: Python 3.x
Library: Pygame (Sound & Rendering)
Format: Be-Music Script (.bms, .bme, .bml)
- Get the Game: Download the pre-built
Only4BMS.exeor build it yourself. - Launch: Simply run
Only4BMS.exefrom any folder. - The
bmsFolder: Upon launching, the game automatically creates abmsfolder in the same directory as the executable. If no songs are found, it generates a basic mock demo song. - Adding Your Own Songs:
- Download BMS/BME/BML files and their associated media (audio/BGA videos).
- Extract them into their own subfolders inside the
bms/directory. - Example structure:
[Directory containing Only4BMS.exe] ├── Only4BMS.exe └── bms/ ├── Awesome Track/ │ ├── song.bms │ ├── audio.wav │ └── video.mp4 └── Another Track/ └── ...
Tired of the same songs? Enter Course Mode, an endless procedural training mode!
- Procedurally generated charts that differ every time.
- Progressive difficulties: Novice (BPM 80
110), Intermediate (BPM 120160), Advanced (BPM 160~200). - Encounter long notes and BPM gimmicks (speed changes) as you rank up.
- Each stage lasts ~30 seconds. Survive and see what comes next!
Only4BMS features an AI Multiplayer mode powered by Reinforcement Learning (PPO).
- The AI is trained using
stable-baselines3on procedurally generated rhythm tracks and royalty-free demo songs. - Legal Compliance: To ensure ethical standards, official releases bundle models trained exclusively on non-commercial data during the CI/CD process.
- Difficulties:
- NORMAL: Trained for 25,000 steps. High accuracy but occasional human-like errors.
- HARD: Trained for 40,000 steps. Near-perfect timing and combo maintenance.
If you wish to train your own models locally:
- Install dependencies:
pip install stable-baselines3 shimmy gymnasium torch - Run the training script:
python -m only4bms.ai.train - The generated
model_normal.zipandmodel_hard.zipwill be saved insrc/only4bms/ai/.
Our GitHub Actions workflow automatically retrains the AI models from scratch using the bundled Mock Song Demo for every release. This ensures that the binary distributed to users is always "clean" and optimized.
Only4BMS is a passionate solo project.
To streamline the production process, I’ve incorporated AI-assisted technology for code.
This allowed me to push the boundaries of what a single person can create, ensuring that the final game feels polished and complete.
Bug reports and feature suggestions from 4-key users are always welcome!
MIT License - Feel free to modify and distribute. Just please keep the peace for 4-key users.
