A tool for tracking FL Studio project playback status, BPM, pitch, and other metrics in real-time.
The tracker works by reading FL Studio's memory in real-time to extract information about the current project:
- Memory Scanning: Scans FL Studio's engine module (
FLEngine_x64.dll) for known patterns to locate BPM, pitch, metronome state, playback status, song position, and song/pattern mode. - Value Reading: Reads values directly from FL Studio's process continuously.
- Discord RPC Update: Updates your Discord profile with the current project details according to the template in
config.json. - Customizable Display: Use placeholders (
{Project},{BPM},{Pitch},{Metronome},{Mode},{Status},{Position}) for dynamic, real-time presence information.{Position}follows FL Studio's activeM:S:CSorB:S:Ttime-display mode.
This tool utilizes AOB (Array of Bytes) scanning, allowing it to dynamically locate memory addresses even after minor software updates. It has been officially tested and verified on the following versions of FL Studio:
| FL Studio Version | Build Number | Status |
|---|---|---|
| 26.1.6 | 5639 | ✅ Confirmed |
| 26.1.4 | 5589 | ✅ Confirmed |
| 26.1.2 | 5557 | ✅ Confirmed |
| 26.1.0 | 5530 | ✅ Confirmed |
| 25.2.5 | 5319 | ✅ Confirmed |
| 25.2.4 | 5242 | ✅ Confirmed |
| 25.2.3 | 5171 | ✅ Confirmed |
| 25.2.2 | 5154 | ✅ Confirmed |
| 25.1.6 | 4997 | ✅ Confirmed |
| 25.1.5 | 4976 | ✅ Confirmed |
| 25.1.4 | 4951 | ✅ Confirmed |
| 25.1.1 | 4879 | ✅ Confirmed |
| 24.2.2 | 4597 | ✅ Confirmed |
| 24.2.1 | 4526 | ✅ Confirmed |
| 24.2.0 | 4503 | ✅ Confirmed |
| 24.1.2 | 4430 | ✅ Confirmed |
| 21.2.3 | 4004 | ✅ Confirmed |
| 21.1.1 | 3750 | ✅ Confirmed |
| 21.0.3 | 3517 | ✅ Confirmed |
| 20.9.2 | 2963 | ✅ Confirmed |
| 20.8.4 | 2576 | ✅ Confirmed |
| 20.6.2 | 1549 | ✅ Confirmed |
Important
While the tool is designed to be version-independent, internal memory structures can change. If you encounter issues or incorrect data with a specific build, please create an issue in this repository.
All settings are stored in config.json in the project folder. Example:
{
"discordAppId": "YOUR_APP_ID",
"largeImageKey": "flstudio",
"refreshInterval": 2,
"defaultProjectName": "Untitled",
"playingImageKey": "play",
"stoppedImageKey": "stop",
"presence": {
"details": "{Project} | BPM: {BPM} | Pitch: {Pitch} | Metronome: {Metronome} | Mode: {Mode}",
"state": "Playback: {Status} | Position: {Position}"
}
}If you prefer not to run the tracker separately, you can enable Discord RPC automatically using the version.dll proxy:
- Download
version.dllfrom the releases page, or buildFLDRPC/FLDRPC.vcxprojinRelease|x64. The build generates bothFLDRPC.exeandversion.dllinFLDRPC/x64/Release. - Copy
version.dllinto the same folder asFL64.exe. - Optionally copy
config.jsoninto the same folder to customize the presence; otherwise the built-in defaults are used. - Launch FL Studio normally. The proxy forwards FL Studio's Windows Version API calls and starts Discord RPC automatically.
Important
This tool reads memory from a running FL Studio process.
Use at your own risk. The author is not responsible for any crashes, data loss, or other issues caused by using this tracker.
alessandromrc - Helped with RE fundamentals and discovered several memory patterns.
This project is made possible by the following open-source libraries:
| Library | License | Usage |
|---|---|---|
| nlohmann/json | MIT | Configuration file parsing |
| Discord-RPC | MIT | Communication with Discord client |
| MinHook | BSD-2-Clause | API Hooking for log interception |