Rose is an open-source automatic skin changer for League of Legends that enables seamless access to all skins in the game. The application runs silently in the system tray and automatically detects skin selections during champion select, injecting the chosen skin when the game loads.
Built on the Pengu Loader framework, Rose integrates JavaScript extensions into the League Client to enable modular UI interactions. It strictly modifies local rendering variables to display custom models and textures. It is designed purely as an exploration of client-side asset management, providing no manipulation of network data, memory states, or gameplay mechanics, thereby offering zero competitive advantage.
Rose consists of three main components:
Rose sends a pseudonymous, randomly generated installation ID and the app version
to https://analytics.rosekeys.site/ when analytics are enabled. The ID is not derived
from the Windows Machine GUID. Analytics can be disabled with
ANALYTICS_ENABLED = False in config.py.
The analytics API and dashboard are maintained separately from this public client repository. Only aggregate usage metrics are exposed through the dashboard; raw activity and server credentials remain private.
Rose includes a suite of JavaScript plugins that extend the League Client UI:
ROSE-SkinMonitor detects the selection and sends it to the Python backendDue to DMCA restrictions, Rose cannot distribute the injection DLL file. You must obtain this file yourself from an authorized source and sign it with your own code signing certificate.
On first launch, Rose will prompt you to provide this file and open the folder where it should be placed.
Rose builds the Pengu Loader executable from the vendored source in
vendor/PenguLoader-1.1.6/ as part of the normal Rose build. You do not need
to download or commit a prebuilt Pengu Loader.exe.
Clone the repository and enter its directory:
git clone https://github.com/Alban1911/Rose.git
cd Rose
Install the Python dependencies first:
python -m pip install -r requirements.txt
Build the loader by itself, if needed:
python scripts/build_pengu_loader.py
Build Rose and automatically rebuild the loader:
python scripts/build_pyinstaller.py
The packaged application is written to dist/Rose/. To build both Rose and
the Windows installer in one step:
python scripts/build_all.py
The installer is written to installer/Rose_Setup.exe. Use
scripts/build_pyinstaller.py or scripts/build_all.py instead of invoking
pyinstaller Rose.spec directly, because the Rose build scripts compile
Pengu Loader first.
Rose uses the official Pengu Loader project. Its source is vendored and built as part of Rose, with Rose-specific lifecycle integration added around the loader. Please see the official Pengu Loader license and credit the Pengu Loader contributors.
See CONTRIBUTING.md for development setup and project structure.
This project is not endorsed by or affiliated with Riot Games. Riot Games and all related properties are trademarks or registered trademarks of Riot Games, Inc.
Custom skins are allowed under Riot's terms of service and are not detected. Do not discuss or advertise skin tools in game. Users proceed at their own risk.
If you enjoy Rose and want to support its development:
Your support helps keep the project alive and motivates continued development!
Rose - League, unlocked.
Python
58.8%
JavaScript
40.2%
Rose is an open-source automatic skin changer for League of Legends that enables seamless access to all skins in the game. The application runs silently in the system tray and automatically detects skin selections during champion select, injecting the chosen skin when the game loads.
Built on the Pengu Loader framework, Rose integrates JavaScript extensions into the League Client to enable modular UI interactions. It strictly modifies local rendering variables to display custom models and textures. It is designed purely as an exploration of client-side asset management, providing no manipulation of network data, memory states, or gameplay mechanics, thereby offering zero competitive advantage.
Rose consists of three main components:
Rose sends a pseudonymous, randomly generated installation ID and the app version
to https://analytics.rosekeys.site/ when analytics are enabled. The ID is not derived
from the Windows Machine GUID. Analytics can be disabled with
ANALYTICS_ENABLED = False in config.py.
The analytics API and dashboard are maintained separately from this public client repository. Only aggregate usage metrics are exposed through the dashboard; raw activity and server credentials remain private.
Rose includes a suite of JavaScript plugins that extend the League Client UI:
ROSE-SkinMonitor detects the selection and sends it to the Python backendDue to DMCA restrictions, Rose cannot distribute the injection DLL file. You must obtain this file yourself from an authorized source and sign it with your own code signing certificate.
On first launch, Rose will prompt you to provide this file and open the folder where it should be placed.
Rose builds the Pengu Loader executable from the vendored source in
vendor/PenguLoader-1.1.6/ as part of the normal Rose build. You do not need
to download or commit a prebuilt Pengu Loader.exe.
Clone the repository and enter its directory:
git clone https://github.com/Alban1911/Rose.git
cd Rose
Install the Python dependencies first:
python -m pip install -r requirements.txt
Build the loader by itself, if needed:
python scripts/build_pengu_loader.py
Build Rose and automatically rebuild the loader:
python scripts/build_pyinstaller.py
The packaged application is written to dist/Rose/. To build both Rose and
the Windows installer in one step:
python scripts/build_all.py
The installer is written to installer/Rose_Setup.exe. Use
scripts/build_pyinstaller.py or scripts/build_all.py instead of invoking
pyinstaller Rose.spec directly, because the Rose build scripts compile
Pengu Loader first.
Rose uses the official Pengu Loader project. Its source is vendored and built as part of Rose, with Rose-specific lifecycle integration added around the loader. Please see the official Pengu Loader license and credit the Pengu Loader contributors.
See CONTRIBUTING.md for development setup and project structure.
This project is not endorsed by or affiliated with Riot Games. Riot Games and all related properties are trademarks or registered trademarks of Riot Games, Inc.
Custom skins are allowed under Riot's terms of service and are not detected. Do not discuss or advertise skin tools in game. Users proceed at their own risk.
If you enjoy Rose and want to support its development:
Your support helps keep the project alive and motivates continued development!
Rose - League, unlocked.
Python
58.8%
JavaScript
40.2%