ltk_overlay
WAD overlay/profile builder for League of Legends mods.
Overview
ltk_overlay is a Rust library that builds WAD overlay directories from enabled mods, allowing the League of Legends patcher to load modded assets. It provides:
- Incremental rebuilds: Only rebuild WADs that have changed
- Cross-WAD matching: Distribute mod files to all affected WADs (e.g., champion assets in Map WADs)
- Layer system: Respect mod layer priorities for proper override resolution
- String overrides: Apply metadata-driven string table modifications
- Conflict resolution: Detect and resolve conflicts between multiple mods
Architecture
The overlay builder follows this workflow:
-
Index game files: Scan the
DATA/FINALdirectory and build:- WAD filename index (case-insensitive lookup)
- Hash index (path_hash → list of WADs containing that chunk)
-
Collect mod overrides: Walk enabled mods and collect all override files with their hashes
-
Distribute to WADs: Use the hash index to find all WADs that need each override
-
Build WADs: For each affected WAD:
- Load base WAD from game directory
- Apply overrides
- Write patched WAD to overlay directory
- Preserve compression types and metadata
-
Apply string overrides: Modify string tables based on mod metadata
Usage
use ;
use Utf8PathBuf;
let game_dir = from;
let profile_dir = from;
let overlay_root = profile_dir.join;
let mut builder = new
.with_progress;
builder.set_enabled_mods;
let result = builder.build?;
println!;
Integration
This crate is used by:
- ltk-manager: Tauri-based GUI mod manager
- league-mod: CLI tool for mod developers
Implementation Status
- Core types and API design
- Game indexing (Phase 1)
- WAD patching (Phase 1)
- Incremental rebuild (Phase 2)
- String overrides (Phase 3)
- Conflict resolution (Phase 4)
- Health checks (Phase 4)
See docs/overlay-implementation-plan.md for the full roadmap.
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.