Open-source project
PenguLoader/PenguLoader avatar
PenguLoader/PenguLoader

Pengu Loader: injecting JavaScript plugins into the League of Legends client

The ultimate JavaScript plugin loader, build your unmatched LoL Client.

747 stars86 forksC++MIT

At a glance

What is it?
Pengu Loader, formerly League Loader, is a C++ plugin loader for the League of Legends client that injects JavaScript into the running client so plugins can restyle it, add features and pull in content. It ships built-in DevTools, a simplified API with hooks, and is MIT licensed with free Windows code signing through SignPath.
Who is it for?
Adopt Pengu Loader if you want to modify the League of Legends client itself rather than work around it, since the loader is the layer that lets a plugin run inside the client and reach the same APIs the interface uses.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 74 days ago.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A loader for the client, not a companion app next to it

Pengu Loader, formerly League Loader, is a plugin loader tailored for the League of Legends client, and the project describes it as enabling limitless customization and personalization. The description is short because the category is narrow: it loads JavaScript plugins directly into the client so that you can transform its appearance, add features and integrate custom content.

That distinction is the one worth being clear about. The loader does not sit beside the client as a separate overlay or a companion window with its own API. It injects into the client, which means a plugin runs in the same context the interface runs in and can work with the same surfaces. The repository topics make the same point from the other side, with league-client, league-loader, lcu and lcu-api, which is the League Client Update API, the interface channel the client exposes for its own front end.

The primary language is C++, and the tree is split into core/, loader/ and plugins/, with a makefile, a solution file named pengu.sln, and a .gitmodules file, so the plugin sources are a separate set of repositories pulled in as submodules. The homepage is pengu.lol, and the project also runs a chat server at chat.pengu.lol, which is where the community side of a plugin loader lives in practice.

Five features, and the ones that matter for a plugin author

The feature list is short, and each item says something about the intended use.

Plugin support to customize the client is the headline, and personalise and theme with flexible web stacks is its concrete form, since the League client is a web interface and a plugin that can restyle it has to work with the same web stack the client uses. Modern JavaScript compatibility is the third item, and it matters more than it sounds: a loader that only supported the JavaScript dialect of a given era would age badly, so the claim is that you can write plugins with contemporary syntax and tooling rather than being held to what the client's embedded engine happened to support.

The other two are developer features. Built-in DevTools for easier debugging means a plugin author gets an inspector into the client without attaching separate tooling, and simplified API access and hooks means there is a defined surface for talking to the client rather than every plugin reaching into internals. Hooks are the mechanism that lets a plugin observe or alter behaviour at defined points, and the simplified API is what keeps plugins from depending on the client's internal structure in a way that breaks on the next patch.

The repository name of the earlier project, nomi-san/league-loader, still appears in the licence badge, which is a useful hint about the project's lineage and how the rename was handled.

Installation is deliberately not documented in the repository

The getting started section is three lines long and points at the homepage, which is where the installation steps live.

The README gives no commands, no flags and no configuration file, and the instruction is to visit https://pengu.lol/ to begin. That is a real editorial decision rather than an omission, and it is the one part of this repository that is hard to evaluate from the code alone. For a loader that attaches to a running game client, the installation has to account for where the client keeps its files, how the loader persists across updates and how plugins get registered, and a per-release guide is more maintainable than instructions embedded in a README that describe an artefact rather than a source build.

What the repository does document is the shape of the delivery. The releases page carries downloadable builds, and the recent tags show the version scheme in use. There is a v1.1.6 tagged in December 2024, and then two July 2026 artifacts, v1.1.6-main-ready.325.1, which carries a build number in the name, and v1.2.0-dev.328.1, described as a Tauri Dev build.

The presence of a Tauri build in the release list is worth noting, since it suggests the loader ships a native desktop application around the injection mechanism rather than only a background process, and the dev suffix means the newest line is explicitly not the stable one.

Code signing and a disclaimer that says the risk is yours

Two pieces of the repository deal with responsibility rather than code, and both are worth reading before you install anything.

The first is the sponsor table, which records that free code signing on Windows is provided by SignPath.io, with the certificate from the SignPath Foundation. Signing matters more for this project than for an ordinary utility, because the loader attaches to a game client, and an unsigned executable that injects into a running process is exactly the shape of thing antivirus software and Windows itself treat with suspicion. A signature from a recognised foundation reduces the friction of running it on a normal machine, and the fact that the project needed to solve that problem says something about the operating environment.

The second is the disclaimer, which is written in the strong form. The program is provided as is, without warranty of any kind, the licensor does not warrant that the functions will meet your requirements or that operation will be uninterrupted or error free, and makes no warranties respecting any harm caused by malicious use of the software. It also states that Pengu Loader is not endorsed by Riot Games and does not reflect the views of Riot Games, and that Riot Games and associated properties are trademarks of Riot Games, Inc.

That last point is the practical boundary. A tool that modifies a commercial game client without the publisher's involvement is a different proposition from a tool that extends an application designed for extension, and the disclaimer is the project stating that in writing rather than leaving it to be inferred.

Maintenance that is recent in the tree and old in the tags

The maintenance picture has a split that is easy to read wrongly, so it is worth taking the two dates separately.

The repository is not archived and the last push was on 2026-08-10, so there has been work in the tree within the last few months. The release list tells a different story. The stable v1.1.6 was published on 2024-12-02, and the two July 2026 releases are v1.1.6-main-ready.325.1 and v1.2.0-dev.328.1, both dated 2026-07-31. The suffix in the first one says it is main ready, and the second carries a dev marker and a Tauri Dev description.

So the pattern is a stable line that has not been cut since December 2024 and a development line that has been moving through the summer of 2026. If you want the stable artefact, v1.1.6 is what the tags give you; if you want the current work, the main-ready and dev builds are where it is, with the understanding that a dev build is by definition not the thing you would want to sit on for a long time.

The licence is MIT, so using, modifying and redistributing the code carries no fee, and the FOSSA badge in the README points at a licence analysis for the earlier nomi-san/league-loader repository. For a plugin loader whose value is in the ecosystem around it rather than in a single codebase, the plugin side is where you would spend your attention, and the plugins/ directory with its submodule wiring is the entry point for that.

Editorial conclusion

Adopt Pengu Loader if you want to modify the League of Legends client itself rather than work around it, since the loader is the layer that lets a plugin run inside the client and reach the same APIs the interface uses. Do not adopt it expecting a supported extension ecosystem, because Riot does not endorse it and the plugin surface depends on a client that changes, and check the release you are installing, since the tagged v1.1.6 is from December 2024 while the newer v1.1.6-main-ready and v1.2.0-dev builds are development channel artifacts. Before you write a plugin, read the API and hook documentation on the project homepage, because that is where the supported surface is described.

Frequently asked questions

What is Pengu Loader and what does it do?

Pengu Loader, formerly League Loader, is a plugin loader for the League of Legends client that loads JavaScript plugins directly into the client, so they can change its appearance, add features and integrate custom content. Its features include theming with flexible web stacks, modern JavaScript compatibility, built-in DevTools and a simplified API with hooks.

How do I install Pengu Loader?

The repository does not give installation steps and points you to the project homepage at https://pengu.lol/ to begin. Downloadable builds are published on the GitHub releases page, and the Windows binaries are code signed through SignPath.io with a certificate from the SignPath Foundation.

Is Pengu Loader allowed by Riot Games?

The project states in its disclaimer that Pengu Loader is not endorsed by Riot Games and does not reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties, and that Riot Games and all associated properties are trademarks of Riot Games, Inc. The licence is MIT and the software is provided as is, without warranty of any kind.

Which Pengu Loader version should I install?

The tagged stable release is v1.1.6 from 2024-12-02, while the July 2026 artifacts are v1.1.6-main-ready.325.1 and v1.2.0-dev.328.1, the latter described as a Tauri Dev build. Pick the stable tag for long term use and the dev build only if you want the current work in exchange for a moving target.

What is the difference between Pengu Loader and the old League Loader?

They are the same project under a new name, since the README describes Pengu Loader as formerly League Loader. The earlier repository nomi-san/league-loader still appears in the licence badge in the README, and the code is MIT licensed.

Official sources

  1. License: MIT
  2. PenguLoader/PenguLoader on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/penguloader-penguloader.svg)](https://hysenlabs.com/projects/penguloader-penguloader)

Was this useful?