| Crates.io | ltk_pki |
| lib.rs | ltk_pki |
| version | 0.1.3 |
| created_at | 2025-11-21 12:53:17.849935+00 |
| updated_at | 2025-12-02 14:43:11.354261+00 |
| description | Support code for verifying League Toolkit mod signatures |
| homepage | https://github.com/LeagueToolkit/league-mod |
| repository | https://github.com/LeagueToolkit/league-mod |
| max_upload_size | |
| id | 1943482 |
| size | 108,047 |
A comprehensive Rust-based toolkit for creating, managing, and distributing League of Legends mods using the modpkg format.
Quick install (PowerShell, no admin):
irm https://raw.githubusercontent.com/LeagueToolkit/league-mod/main/scripts/install-league-mod.ps1 | iex
This downloads the latest release, installs it to %LOCALAPPDATA%\LeagueToolkit\league-mod, and adds it to your user PATH.
Via GitHub Releases:
.modpkg files for distributionThis workspace contains the following crates:
league-mod - CLI ToolThe main command-line interface for mod developers and users.
Features:
.modpkg files.modpkg files for inspection or modificationUsage:
# Initialize a new mod project
league-mod init --name my-awesome-mod --display-name "My Awesome Mod"
# Pack a mod project
league-mod pack --config-path ./mod.config.json --output-dir ./build
# Extract a mod package
league-mod extract --file-path ./my-mod.modpkg --output-dir ./extracted
# Show mod package information
league-mod info --file-path ./my-mod.modpkg
# Configure League installation path
league-mod config auto-detect
league-mod config set-league-path "C:/Riot Games/League of Legends/Game/League of Legends.exe"
league-mod config show
ltk_modpkg - Binary Format LibraryLibrary for reading, writing, and manipulating the modpkg binary format.
Features:
project feature)ltk_mod_core - Shared Core LibraryShared utilities used by both the CLI and GUI applications.
Features:
ltk_mod_project - Configuration LibraryHandles mod project configuration files and metadata structures.
Features:
ltk-manager - Desktop GUI ApplicationA graphical desktop application for managing League of Legends mods, built with Tauri.
Features:
Status: In active development. See the design document for the full roadmap.
Configuration Example:
{
"name": "old-summoners-rift",
"display_name": "Old Summoners Rift",
"version": "1.0.0",
"description": "Brings back the classic Summoners Rift map",
"authors": [
"TheKillerey",
{ "name": "Crauzer", "role": "Contributor" }
],
"license": "MIT",
"layers": [
{
"name": "base",
"priority": 0,
"description": "Base layer of the mod"
},
{
"name": "high_res",
"priority": 10,
"description": "High resolution textures"
}
],
"transformers": [
{
"name": "tex-converter",
"patterns": ["**/*.dds", "**/*.png"]
}
]
}
A typical mod project follows this structure:
my-mod/
├── mod.config.json # Project configuration
├── content/ # Mod content organized by layers
│ ├── base/ # Base layer (priority 0)
| | ├── Aatrox.wad.client # Mods for the Aatrox wad file
│ │ | ├── data/
│ │ │ └── assets/
| | ├── Map11.wad.client # Mods for the Map11 (SR) wad file
│ │ | ├── data/
│ │ │ └── assets/
│ ├── high_res/ # High resolution layer
│ └── gameplay/ # Gameplay modifications layer
├── build/ # Output directory for .modpkg files
└── README.md # Project documentation/description
league-mod init
# Follow the interactive prompts
Place your mod files in the appropriate layer directories:
reworked-aatrox/content/base/data/characters/aatrox/skins/skin0.bin
reworked-aatrox/content/base/assets/characters/aatrox/skins/base/aatrox_base_tx_cm.tex
Edit mod.config.json to add metadata, authors, and configure layers:
{
"name": "aatrox-rework",
"display_name": "Aatrox Visual Rework",
"version": "1.0.0",
"description": "A complete visual overhaul for Aatrox",
"authors": ["Your Name"],
"layers": [
{
"name": "base",
"priority": 0,
}
]
}
league-mod pack
# Creates aatrox-rework_1.0.0.modpkg in the build/ directory
The layer system allows for modular and overrideable mod content:
Example layer configuration:
{
"layers": [
{
"name": "base",
"priority": 0,
"description": "Core modifications"
},
{
"name": "optional_sounds",
"priority": 10,
"description": "Optional sound replacements"
},
{
"name": "experimental",
"priority": 20,
"description": "Experimental features"
}
]
}
Transformers allow preprocessing of files during the packing process:
{
"transformers": [
{
"name": "tex-converter",
"patterns": ["**/*.png", "**/*.jpg"],
"options": {
"format": "dds",
"compression": "bc7"
}
},
...
]
}
Prerequisites:
Build steps:
git clone https://github.com/LeagueToolkit/league-mod.git
cd league-mod
cargo build --release
The compiled binary will be available at target/release/league-mod.exe
This project is licensed under the GNU Affero General Public License v3.0.
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
This project uses Conventional Commits for automated changelog generation and semantic versioning:
# Features (minor version bump)
git commit -m "feat: add support for custom transformers"
# Bug fixes (patch version bump)
git commit -m "fix: resolve file path handling on Windows"
# Breaking changes (major version bump)
git commit -m "feat!: change configuration file format"
# Other types: docs, style, refactor, test, chore
git commit -m "docs: update installation instructions"
All contributions go through our CI pipeline:
Releases are automated using release-plz:
For detailed documentation about the modpkg format and advanced usage, visit our GitHub Wiki.
If you encounter any issues or have questions:
Made with ❤️ for the League of Legends modding community.