Skip to content

LeagueToolkit Wiki — What's Over There

Everything Khada depends on for file-format knowledge lives in the upstream LeagueToolkit wiki. This page is a curated index — what each section covers and when we care.

Source: github.com/LeagueToolkit/wiki. The wiki is built with Astro + Starlight and is authored in MDX with Svelte interactive components (hash calculator, binary-structure diagrams, version matrices).

When to go there vs. stay here

You're looking for…Go
Byte-level spec of a Riot file formatUpstream wiki → Reference → File Formats
Hash algorithm details + interactive calculatorUpstream wiki → Reference → Hashing
Khada-specific implementation notes, shader profiles, material extrasStay here
LTK Manager / mod manager usageUpstream wiki → Getting Started / Tools (not relevant to us; keep for context)
Rust / C# library API referenceSource code — upstream wiki's library pages are placeholders

Reference sections on the wiki

File formats

Authoritative per-format binary layouts, version diffs, and implementation references:

  • WADRW, xxHash64 chunk paths, v1/v2/v3 signature differences, compression types.
  • BINPROP/PTCH, 28 property types, FNV-1a property hashes, PTCH data overrides.
  • Ritobin — text form of BIN, #PROP_text header, type annotations.
  • SKN — skinned mesh, versions 0.1 / 2.1 / 4.1, Basic/Color/Tangent vertex layouts.
  • SKL — skeleton, modern vs r3d2sklt legacy, 100-byte joints, influence list.
  • ANM — compressed r3d2canm (Catmull-Rom, jump caches, 48-bit quantized quats) and uncompressed r3d2anmd v3/v4/v5.
  • TEX0x00584554, BGRA8/BC1/BC3/ETC1/ETC2_EAC, mip chain stored smallest→largest.
  • MapGeoOEGM v5–v18, shared vertex/index buffers, scene graph, bucketed geometry. Versions 8/10/16 are unsupported.
  • WGEO — legacy world geometry (2D bucket grid, no lightmaps).
  • SCB/SCO — static meshes (binary + ASCII).
  • Legacy — INIBIN, AiMesh, MOB, DSC, LIGHT, MATLIB, FX, Particles.dat, Shader TOC, RST string table, preload, Wwise BNK/WPK.

Hashing

  • Algorithms — FNV-1a (parameters: offset basis 0x811c9dc5, prime 0x01000193), xxHash64 (seed 0), ELF, SDBM. Includes an interactive hash calculator — fastest way to spot-check a property name hash.

Metaclasses

  • Overview — the type system behind BIN class hashes. Names and property schemas are extracted from the game binary via lol-meta-classes; metaclass dictionaries are what turn 0xA1B2C3D4 back into ChampionStatData.

Tools ecosystem

Downstream tooling built on the same file-format layer. Useful to be aware of even though Khada doesn't use them directly:

ToolRepoStack
LTK Managerltk-managerTauri v2 — Rust + React. Mod manager; successor to cslol-manager. Windows-only today, macOS Q2/Summer 2026.
wadtoolswadtoolsRust CLI for WAD extract / list / diff. Fast; uses the same community hashtables we do.
league-toolkitleague-toolkitRust library workspace: ltk_wad, ltk_meta, ltk_mesh, ltk_anim, ltk_texture, ltk_mapgeo, ltk_ritobin, ltk_hash, ltk_modpkg, ltk_overlay.
LeagueToolkit (C#)SameThe C# library we vendor into packages/extractor/OfficialLeagueToolkit/.
lol-meta-classesSameMetaclass extraction toolchain — produces the BIN class/property dictionaries.

What the wiki says about modding (not relevant to us)

A big chunk of the wiki is about mod creation (LTK Manager's Creator Workshop, .modpkg format, .fantome legacy format, layers, profiles, patcher internals). Khada is a viewer, not a mod manager. Skim these pages if you're curious about the overlay-injection mechanism, but none of them apply to our pipeline.

Community

Version matrix — things Riot changed recently

The wiki tracks these; keep an eye out when a new patch breaks our extractor:

  • WAD v3.4+ (current): packed type_subchunk_packed u32 replaces separate compression_type / is_duplicated / subchunk_start / subchunk_count fields.
  • MapGeo: active range is v5–v18; latest additions (v15+) include visibility-controller path hashes and per-sampler texture overrides. Versions 8/10/16 are internal/transitional and unsupported.
  • SKN: v4.1 is the current format; we still see v2.1 and v0.1 on older assets.
  • ANM: r3d2canm v3 is the current compressed format; uncompressed r3d2anmd v5 for anything newer.

Contributing upstream

If you discover something the wiki is missing or wrong, the wiki repo accepts PRs at github.com/LeagueToolkit/wiki. Pages live at src/content/docs/**/*.mdx. Authoring conventions are in wiki-authoring (use BinaryStructure for byte layouts, Collapsible for optional detail, Mermaid for diagrams, VersionMatrix for version-feature tables).

Khada-specific findings — shader gotchas, per-champion workarounds, joint-snap baking — belong here, not upstream. The split point is: "would any tool reading this format care?" (upstream) vs. "only our extractor does this?" (local).

Built for engineers and AI assistants working on Khada.