English | 日本語Note: This project is a customized version based on LeagueRecord. This project is a customized clone of LeagueRecord, based on v2.1.1. All modifications and new features have been built upon this version.
I am a beginner and still getting familiar with GitHub etiquette. I'm doing my best to learn as I go. Huge thanks to the original creator for the inspiration and the codebase. Please also note that this project is being developed with the help of AI.
The following changes have been implemented in this version:
- UI: Modified user interface and aesthetics.
- Manual Recording: Start/Stop recording manually via hotkeys.
- Status Visibility: Taskbar icon changes to reflect the current recording status.
- Game Mode Filtering: Option to record only specific modes (Ranked, ARAM, Arena, etc.).
- Playback Control: Automatically Play, Stop, or Select recordings based on game status.
- Video Tools: A-B Loop repeat and clip creation (requires FFmpeg).
- Configuration: Expanded hotkey and general settings.
FFmpeg is required to use the Clip feature. Please install FFmpeg and add it to your system's PATH, or specify the executable path in the application settings.
Download LeagueRecord Setup (latest)
or browse all versions: GitHub Releases
A-B Loop & Clipping Define a specific segment to review or export:
- Set Points: Use the default hotkeys to set the start point (A) and end point (B).
- Toggle Loop: Press L to start or cancel the repeat playback between points A and B.
- Create Clip: Click the Clip button to export the segment between A and B as a new video file.
Auto Mode Settings Configure automatic behavior based on game status:
- Stop: Automatically stops video playback when a new game session begins.
- Play: Automatically starts playing a recording as soon as it is selected.
- Select: Automatically selects the most recent recording immediately after a game ends.
- PopUp: Automatically opens the player window when a recording finishes.
Mouse & Keyboard Controls
- Back / Forward Buttons: Rewind or Fast Forward by 5 seconds.
- Modifier Key + Scroll: Fine-tune scrubbing or frame advance (depending on configuration).
- Scroll: Adjust playback speed in 0.1x increments.
- Middle Click: Reset playback speed to 1.0x.
Scoreboard Tracker
- Click on any summoner name in the scoreboard to view their profile on your configured tracker site (e.g., OP.GG).
The following features were planned but could not be implemented due to current API restrictions:
- Role Quest Progress: Real-time tracking of support/jungle item quests is not available.
- Real-time CS & Gold: CS and Gold values can only be updated every 60 seconds.
- Summoner Spell Cooldowns: Live cooldown tracking on the scoreboard is not supported.
- Bounty Display: Champion bounties cannot be retrieved live.
- Baron Power Play: Calculating precise gold gained during the Baron buff is not possible.
- Accurate Role Detection: Role assignments may be inaccurate in non-Standard modes like Practice Tool or Co-op vs. AI.
If the UI does not reflect changes as expected, press F5 to refresh the view.
In case you have any problems, questions or suggestions feel free to open an issue or contact me. arasan1115525@gmail.com
Below is the original documentation from the base project for your reference.
LeagueRecord launches minimized to the windows tray to get out of your way.
By default Windows puts the icon into the tray-icon drawer.
It possible to drag the LeagueRecord icon out of the drawer (see next image). Right-clicking the LeagueRecord tray-icon opens a menu.
- The topmost grayed out "Recording" entry has a checkmark next to it if your game is currently being recorded.
- The 'Settings' button opens the LeagueRecord settings in the windows text editor. See Settings for more information.
- The 'Open' button opens a window that shows you all your recordings.
- The 'Quit' button stops LeagueRecord completely.
Double left-clicking the LeagueRecord tray icon or clicking 'right-click' -> 'Open' in the tray menu opens a window that shows all your recordings.
There are 3 parts to the window.
- In the top left corner there is an info-box where you can see how much space your recordings take up as well as a button that opens the folder in which your recordings are stored.
- On the left side under the info-box there is a list of all you recordings. The inital name of each recording is the timestamp of the game (can be adjusted in Settings). Clicking on a recording shows it in the right part of the window. When moving your mouse over a recording there are buttons to mark a recording as a 'favorite' (see Settings), rename a recording and delete a recording.
- The right part of the window shows the currently selected recording with some information about the game at the bottom. The timeline of the video shows colored markers for the most important events that happened in the game. In case you don't want to see ALL events because they clutter the timeline you can show/hide eventtypes (Kills, Deaths, Assists, ...) by clicking the corresponding checkbox on the bottom right.
Just closing the window doesn't completely stop LeagueRecord because it needs to run in the background to record your games. In order to completely stop LeagueRecord you have to right-click the tray-icon at the bottom right of your screen and click the 'Quit' button.
[!NOTE]s A bunch of stuff can be customized in the Settings. Video resolution, framerate, only record ranked games, record voice-comms or only game audio, autostart LeagueRecord when you turn on your PC, ...
Note
In case LeagueRecord only records a black screen instead of the game, try running the software as Admin. That should fix the Problem!
| Key | Function |
|---|---|
| Space | Play/Pause |
| Arrow Right | +5 seconds |
| Arrow Left | -5 seconds |
| Shift + Arrow Right | next event |
| Shift + Arrow Left | previous event |
| Arrow Up | +10% volume |
| Arrow Down | -10% volume |
| f | toggle fullscreen |
| m | toggle mute |
| > | +0.25 playbackrate |
| < | -0.25 playbackrate |
| Esc | exit fullscreen |
It is possible to adjust the settings via the settings button in the tray menu.
It opens the settings file in the windows text editor.
Settings get applied as soon as you save and close the text editor.
If you write an invalid setting or delete an entry it gets reset to the default value.
| Name | Value | Default | Description |
|---|---|---|---|
| recordingsFolder | String (only characters that can be in a filename) | {System Video Folder}/league_recordings | The name of the folder in which the recordings are stored. Relative paths are appended to your default video folder. |
| filenameFormat | String (with special placeholders) | %Y-%m-%d_%H-%M.mp4 | Format string for naming new recordings. Can contain special placeholders in order to make each name unique. If a new recording has the same name as an already existing recording, the old recording gets overwritten! |
| encodingQuality | positive whole number from 0-50 | 30 | Determines the size vs. quality tradeoff for the mp4 files. Zero means best encoding quality with a big filesize. 50 means heavily compressed with a small filesize. |
| outputResolution | ['480p', '720p', '1080p', '1440p', '2160p', '4320p'] | null | null | Sets the output resolution of the recordings to a fixed resolution. If null uses the resolution of the LoL ingame window. |
| outputFramerate | [whole number > 0, whole number > 0] | 30 | Sets the framerate of the recordings as a fraction (numerator/denominator). e.g. [30, 1] => 30fps, [30, 2] => 15fps |
| recordAudio | 'NONE' | 'APPLICATION' | 'SYSTEM' | ALL | APPLICATION | Determines what audio gets recorded. 'NONE' records no audio. 'APPLICATION' records only the games' audio. 'SYSTEM' records all sound output of your pc (e.g music in the background). 'ALL' records everything that 'SYSTEM' records but also your microphone input. |
| markerFlags | { 'kill', 'death', 'assist', 'structure', 'dragon', 'herald', 'atakhan', 'baron' } : true | false | all true | Choose which events are shown by default in the timeline when playing a recording. |
| checkForUpdates | true | false | true | Determines if on start LeagueRecord checks for new releases on GitHub |
| debugLog | true | false | false | If true prints logs to the console and saves it to a log file names after the current date in %APPDATA%/fx.LeagueRecord/logs/ |
| autostart | true | false | false | If true runs LeagueRecord when you start your PC |
| onlyRecordRanked | true | false | false | If true only records Solo/DuoQ and FlexQ games |
| maxRecordingAgeDays | positive numbers | null | null | Recordings that are not marked as favorites (golden star) get deleted after X days. null means disabled. |
| maxRecordingsSizeGb | positive numbers | null | null | Recordings that are not marked as favorites (golden star) get deleted if the size of all your recordings exceeds this number (in Gigabytes). null means disabled. |
| confirmDelete | true | false | true | Ask before actually deleting a file. |
| hightlightHotkey | String (e.g. "Ctrl + H" or "F1") | null | Keyboard shortcut that marks the current ingame-time in the replay timeline with a marker. |
LeagueRecord takes up ~75MB of your disk space with most of that coming from the libobs dependency.
On a system with a Ryzen 3600 CPU and RX5700 GPU these are the performance numbers measured with Windows Taskmanager.
| CPU | RAM | GPU | |
|---|---|---|---|
| idle | ~0% | ~5MB | 0% |
| record | ~3% | ~50MB | ~4% |
| watch recording | ~2.5% | ~160MB | ~2.5% |
The high RAM usage when watching a recording is due to using a WebView2 Window for the UI, which basically is a Chromium version that is pre-installed on most windows PCs. UIs are easy to make with HTML + some CSS. It also keeps the program size small and the common case - running hidden in the taskbar - efficient.
This is just a rough estimate with the default settings so you can get a sense for how much resources LeagueRecord uses.
There is a release for Windows-x64, but you can build the project on your own.
In order to build the project you need to have the nightly Rust toolchain and Bun installed.
From the root folder of the project run bun install and then bun x tauri dev to run the project in debug mode or bun x tauri build to build in release-mode and create the installer.
In order to package the compiled files into a standalone archive, run one of the following commands after a successful bun x tauri build:
# outputs 'LeagueRecord.tar.gz' in the project root folder
tar -czv -f LeagueRecord.tar.gz LICENSE.txt licenses -C ./src-tauri/target/ libobs -C ./release/ LeagueRecord.exeor
# outputs 'LeagueRecord.zip' in the project root folder
cd src-tauri/target/release && 7z a -tzip ../../../LeagueRecord.zip LeagueRecord.exe ../libobs licenses LICENSE.txt && cd ../../..This project (LeagueRecord) is distributed under the GNU General Public License v3 (or any later version).
I want to release this project under an open-source license but that license needs to comply with the licenses of all my dependencies. GPLv3+ seems to be the way to do that.
obs-studio/libobsis licensed under the GNU General Public License v2 (GPLv2).videojsis licensed under the Apache License v2.0videojs-markersis licensed under the MIT License.



