Skip to content

Latest commit

 

History

History
201 lines (149 loc) · 8.04 KB

File metadata and controls

201 lines (149 loc) · 8.04 KB

Flint banner

Release Tauri Rust React MIT

Typing banner

⚡ instant WAD browsing  •  🎮 live 3D previews  •  🎞 video-to-loadscreen  •  🧠 Hematite auto-fix



🎯 What is Flint?

Flint is a desktop IDE for building League of Legends mods — from pulling raw assets out of the game, to previewing them, editing them, and shipping a finished .fantome / .modpkg. Everything lives in one window. No CLI chains, no folder juggling.

  WAD  ─▶  Extract  ─▶  Preview  ─▶  Edit  ─▶  Validate  ─▶  Export
  (game)   (project)   (3D/2D/BIN)  (Monaco)  (Hematite)    (ship it)

✨ Features

🗂 WAD Explorer

Lazy-loaded virtual filesystem over the entire game archive. Browse 4M+ files with instant folder expand and optional background indexing.

🖼 Live Previews

  • 3D — SKN/SKL/SCB/SCO meshes with animations & skeletons
  • Textures — DDS/TEX (BC1/BC3/BC5/ETC)
  • BIN / LuaBin / TroyBin — syntax-highlighted
  • Audio — BNK/WPK with waveform + zoom

🎞 Animated Loading Screens

Drop a video in, get a working loadscreen out. Auto spritesheet packing, 16k texture budget, FPS trim, live preview, UI BIN auto-patch.

🎨 Texture Recolor

Batch hue-shift, colorize, or tint. Skips distortion maps, preserves alpha.

🧠 Hematite v2

Plugged into Hematite's rule engine — detects broken references, missing shaders, bad materials, and fixes them in one click. Rules hot-update from GitHub.

💾 Checkpoints

Git-lite for your project. Snapshot, diff, restore. Survives dev restarts.

📤 Export Everywhere

Ship to .fantome, .modpkg, or one-click sync into LTK Manager. Refathering, BIN concat, and thumbnail embedding are all built in.

🔌 Jade & Quartz Interop

Swap the BIN engine to Jade, or hand a texture off to Quartz paint mode. JSON interop, no file juggling.

LMDB Hash Cache

Memory-mapped 4M+ hash DB. ~5-20 MB RAM, instant lookups, bulk resolve for fast WAD extraction.


🚀 Quick Start

# Clone
git clone https://github.com/RitoShark/Flint
cd "Flint/Flint - Asset Extractor"

# Install + run
npm install
npm run tauri dev
📦 Prerequisites
Tool Version
Rust 1.75+ (rustup)
Node v20+ (nodejs.org)
OS Windows 10 / 11
📀 Building a release installer
npm run tauri build

Output: src-tauri/target/release/bundle/nsis/Flint_{version}_x64-setup.exe


🏗 Architecture

┌─────────────────────────────────────────────────────────────┐
│  React 18 + TypeScript + Vite  ←→  Zustand stores           │
└─────────────────────────────────────────────────────────────┘
                         ▲
                         │  Tauri 2 IPC
                         ▼
┌─────────────────────────────────────────────────────────────┐
│  src-tauri/  (binary crate)  ─  Tauri commands + state      │
│  crates/flint-ltk/  (library) ─  14 domain modules:         │
│     bin · wad · hash · mesh · audio · repath · export       │
│     champion · league · validation · project · checkpoint   │
│     hud · error                                             │
└─────────────────────────────────────────────────────────────┘
                         ▲
                         │
┌─────────────────────────────────────────────────────────────┐
│  league-toolkit (Rust) · Hematite v2 · LMDB · rayon         │
└─────────────────────────────────────────────────────────────┘
Layer Stack
Frontend React 18 · TypeScript · Vite 5 · Zustand 4
3D Three.js · React Three Fiber
Editor Monaco (custom Ritobin language)
Backend Rust · Tauri 2 · rayon · tokio
LTK core league-toolkit v0.4 (rev 6137083)
Hashing LMDB via heed + memmap2
Validation hematite-core · hematite-ltk
Export ltk_fantome · ltk_modpkg · ltk_mod_core

🎨 Theming

Flint ships with full CSS-variable theming. Copy src/themes/default.css and override:

:root {
  --accent-primary:   #EF4444;
  --accent-hover:     #DC2626;
  --accent-secondary: #F87171;
  --accent-muted:     #991B1B;
}

🤝 Contributing

PRs welcome. Keep commits conventional — feat:, fix:, perf:, refactor: — they feed the changelog via git-cliff.

git checkout -b feat/your-feature
# hack hack hack
git commit -m "feat(scope): short imperative message"

📜 License

MIT — do whatever, just don't sue.

League of Legends, all champion art, and all referenced game assets are property of Riot Games, Inc. Flint is an unofficial community tool and is not endorsed by Riot Games.


footer

🔥 Made for the League modding community · Not affiliated with Riot Games