A powerful, modern tool for extracting and modifying League of Legends champion skins and assets.
Flint is a desktop application that lets you:
- Extract champion skins and assets from League of Legends game files
- Preview 3D models, textures, BIN files, and animations in real-time
- Edit game property files (BIN) with syntax highlighting
- Recolor textures with smart filtering and multiple blending modes
- Export custom mods compatible with popular mod managers (Fantome, Modpkg)
- Browse the entire game archive without extracting anything
Built with Rust (Tauri 2) backend for performance and React + TypeScript frontend for a modern UI.
Create custom animated loading screens from video files:
- Video-to-Spritesheet: Converts MP4/WebM to optimized spritesheets
- 16k Texture Budget: Automatic grid optimization for WebGL limits
- Frame Control: Adjustable FPS, trimming, and scaling
- Live Preview: See your animation before exporting
- Auto-injection: Automatically patches game UI BIN files
Browse the entire game's WAD archive library in a virtual filesystem. Lazy-load chunks on demand, search with regex, and preview files instantlyβall without extracting to disk.
- 3D Models: SKN/SKL meshes with textures, animations (ANM), and skeleton visualization
- Textures: DDS/TEX decoding with BC1, BC3, ETC format support
- BIN Editor: VS Code-style syntax highlighting for game property files
- Hex Viewer: Binary file inspection with offset display
Batch recolor textures with Hue Shift, Colorize, or Grayscale + Tint modes. Smart filtering automatically skips distortion maps and preserves transparency.
Create named snapshots of your project. Restore to any checkpoint instantly or compare changes between versions.
Export to .fantome (cslol-manager) or .modpkg (League Mod Tools) with:
- Refathering: Custom asset paths to prevent mod conflicts
- BIN Concatenation: Merge linked BINs for better compatibility
- Auto-update support with secure signature verification
Work on multiple projects simultaneously. Open project tabs, individual WAD sessions, and the WAD Explorer side-by-side without losing state.
- LMDB Cache: Lightning Memory-Mapped Database stores 4M+ hash mappings
- 1 GB Virtual Address Space: Memory-mapped for instant lookups (~5-20 MB real RAM)
- Parallel Processing: Multi-threaded BIN conversion with rayon
- DataDragon API: Auto-fetches champion/skin metadata from Riot's CDN
π See all features in detail
# Clone the repository
git clone https://github.com/LeagueToolkit/Flint
cd "Flint - Asset Extractor"
# Install dependencies
npm install
# Run in development mode
npm run tauri dev# Create optimized build with NSIS installer
npm run tauri buildInstaller output: src-tauri/target/release/bundle/nsis/Flint_{version}_x64-setup.exe
| Layer | Technology |
|---|---|
| Frontend | React 18, TypeScript, Vite 5 |
| State Management | Zustand 4 (docs) |
| Backend | Rust, Tauri 2.0 |
| 3D Rendering | Three.js, React Three Fiber |
| Hash Resolution | LMDB (via heed), memmap2 |
| Parallel Processing | rayon, tokio |
| BIN Parsing | ltk_ritobin, ltk_meta |
| WAD Handling | league-toolkit, memmap2 |
| Texture Decoding | ltk_texture (DDS/TEX/BC1/BC3) |
| Mesh Parsing | ltk_mesh, ltk_anim |
| Mod Export | ltk_fantome, ltk_modpkg |
| Champion Data | DataDragon/CommunityDragon API |
- Features - Comprehensive feature documentation
- Architecture - Project structure and data flow
- State Management - Zustand store architecture
- BNK Editor & Texture Parsing - Audio and texture technical details
| Feature | Status |
|---|---|
| 3D Model Preview | β Working (SKN/SKL/SCB/SCO) |
| Animation Preview | β Working (ANM) |
| Animated Loading Screens | β Working (Videoβspritesheet) |
| BIN Editing | β Working (Full read/write) |
| Refathering | β Working (Asset path rewriting) |
| BIN Concatenation | β Working (Linked BIN merging) |
| WAD Explorer | β Working (VFS browser) |
| LMDB Hash Cache | β Working (Memory-mapped DB) |
| Parallel BIN Conversion | β Working (Multi-threaded) |
| Sound Bank Editing | π Planned (BNK/WPK) |
Flint supports custom color themes! Copy src/themes/default.css and modify the CSS variables:
:root {
--accent-primary: #your-color;
--accent-secondary: #your-secondary-color;
/* ... */
}Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is for educational purposes. League of Legends and all related assets are property of Riot Games.
Made with β€οΈ for the League modding community