Skip to main content

Overview

Fantome is the industry-standard mod format for League of Legends custom content. A .fantome file is a ZIP archive containing:
  • Metadata: Mod information (name, version, author, description)
  • WAD files: Game asset modifications
  • Preview image: Optional thumbnail for mod managers
The format is designed to be:
  • Portable: Single-file distribution
  • Human-readable: Standard ZIP format
  • Validated: Required structure for compatibility
  • Optimized: Only modified files included
The Fantome format was created by the League Toolkit organization and is used by all major League of Legends mod managers.

File Structure

A .fantome file is a ZIP archive with the following structure:
MyMod.fantome (ZIP archive)
├── META/
│   ├── info.json          # Required: Mod metadata
│   └── image.png          # Optional: Preview image
└── WAD/
    ├── champion.wad.client
    ├── skin.wad.client
    └── effects.wad.client

Directory Requirements

DirectoryRequiredPurpose
META/YesContains mod metadata and assets
META/info.jsonYesMod information and versioning
META/image.pngNoPreview thumbnail (recommended)
WAD/Yes*Contains game asset modifications
While WAD/ is technically optional, a mod without WAD files won’t modify the game.

Metadata: info.json

The META/info.json file contains structured metadata:

Schema

{
  "Name": "string (required)",
  "Version": "string (required)",
  "Author": "string (required)",
  "Description": "string (optional)",
  "Home": "string (optional, URL)",
  "Heart": "string (optional, URL)"
}

Field Specifications

Type: String
Length: 3-50 characters
Pattern: [\p{L}\p{M}\p{Pd}\p{Z}\p{N}\w]{3,50}
Description: Display name of the mod
Examples:
"Name": "Star Guardian Lux"
"Name": "High Noon Yasuo - Custom VFX"
"Name": "UI Overhaul 2024"
Cannot be empty. Must contain at least 3 characters.
Type: String
Format: Semantic versioning
Pattern: ([0-9]{1,3})(\.[0-9]{1,3}){0,3}
Description: Mod version number
Valid formats:
"Version": "1.0"
"Version": "2.5.1"
"Version": "1.0.0"
"Version": "3.2.1.0"
Invalid formats:
"Version": "v1.0"        // No 'v' prefix
"Version": "1.0-beta"    // No suffixes
"Version": "1234.0"      // Max 3 digits per segment
Type: String
Length: 3-50 characters
Pattern: Same as Name
Description: Creator’s name or username
Examples:
"Author": "SkinModder123"
"Author": "Jane Doe"
"Author": "Team Awesome"
Type: String
Length: No strict limit (recommend < 500 chars)
Description: Brief description of the mod
Example:
"Description": "Custom Star Guardian skin for Lux with new VFX and animations. Includes recall animation and updated ability effects."
Display: Shown in mod managers, typically with 2-line limit in list views.
Type: String (URL)
Pattern: ^(http(s)?:\/\/).+$
Description: Homepage, update page, or documentation URL
Examples:
"Home": "https://github.com/user/my-lol-mod"
"Home": "https://www.leagueoflegends.com/mods/my-mod"
"Home": "https://example.com/updates"
Usage: Displayed as a clickable link in mod managers (question mark icon).
Type: String (URL)
Pattern: ^(http(s)?:\/\/).+$
Description: Support/donation link or author’s social media
Examples:
"Heart": "https://ko-fi.com/modauthor"
"Heart": "https://patreon.com/modauthor"
"Heart": "https://twitter.com/modauthor"
Usage: Displayed as a clickable link in mod managers (heart icon).

Complete Example

{
  "Name": "PROJECT: Yasuo Enhanced",
  "Version": "2.1.0",
  "Author": "CoolModder",
  "Description": "Enhanced PROJECT: Yasuo skin with custom VFX, animations, and sound effects. Features include: neon windwall, cyberpunk recall, and updated ability particles.",
  "Home": "https://github.com/coolmodder/project-yasuo",
  "Heart": "https://ko-fi.com/coolmodder"
}

WAD Files

WAD (“Where’s All the Data”) files contain game assets:

Naming Convention

WAD files must use the .wad.client extension:
character_base.wad.client     ✓ Valid
lux_skin15.wad.client          ✓ Valid
mymod.wad                      ✗ Invalid (missing .client)
custom.wad.server              ✗ Invalid (wrong suffix)

File Content

WAD files contain:
  • Textures: .dds image files
  • Models: .skn, .sco mesh files
  • Animations: .anm animation data
  • VFX: .bin effect files
  • Audio: .wem, .bnk sound files
  • Other: Configuration, scripts, etc.
WAD files should only contain modified assets, not entire base game files. Use rebasing/optimization to strip unmodified entries.

Optimization

Before packaging, WAD files should be optimized:
# Using mod-tools CLI
mod-tools copy ./MyMod ./MyMod.optimized --game:"C:/Riot Games/League of Legends"
mod-tools export ./MyMod.optimized ./MyMod.fantome
Optimization:
  1. Rebases against game WADs (finds base mount)
  2. Removes unmodified files (identical to base game)
  3. Strips unknown files (if --removeUNK is set)
  4. Resolves internal conflicts
  5. Normalizes file paths and naming

Preview Image

Specifications

PropertyRequirement
LocationMETA/image.png
FormatPNG (required)
Resolution512x512 or higher (recommended)
Aspect RatioSquare (1:1) or 16:9
File Size< 1 MB (recommended)
Color SpacesRGB

Best Practices

  • Capture in-game footage at high resolution
  • Show the most impactful visual changes
  • Avoid UI elements unless they’re part of the mod
  • Use PNG compression (pngquant, TinyPNG)
  • Target 200-500 KB for best balance
  • Avoid transparency unless necessary
  • Square (1:1) works best in list views
  • 16:9 works for detailed preview dialogs
  • Avoid extreme aspect ratios

Loading in cslol-manager

// From CSLOLModsView.qml:45
Image: CSLOLUtils.toFile("./installed/" + fileName + "/META/image.png")
Images are cached and displayed in the mods list.

Creating Fantome Files

Using cslol-manager UI

1

Create or edit mod

Use the mod creation/editing interface to set up your mod.
2

Click 'Export Mod'

Click the export button (folder icon) next to your mod.
3

Choose save location

Select where to save the .fantome file.
4

Automatic optimization

cslol-manager automatically optimizes before export (if game path is set).
// From main.qml:204-210
onModExport: function(fileName) {
    if (checkGamePath()) {
        cslolDialogSaveZipFantome.modName = fileName
        cslolDialogSaveZipFantome.currentFiles = [ "file:///" + fileName + ".fantome" ]
        cslolDialogSaveZipFantome.open()
    }
}
Signal: CSLOLTools.exportMod(name, dest)

Using mod-tools CLI

# Export with optimization
mod-tools export <mod_dir> <output.fantome> --game:<game_path>

# Example
mod-tools export ./MySkin ./MySkin.fantome --game:"C:/Riot Games/League of Legends"

Manual Creation

You can manually create a .fantome file:
1

Prepare directory structure

MyMod/
├── META/
│   ├── info.json
│   └── image.png
└── WAD/
    └── *.wad.client
2

Create ZIP archive

# Linux/Mac
cd MyMod
zip -r ../MyMod.fantome META/ WAD/

# Windows (PowerShell)
Compress-Archive -Path META, WAD -DestinationPath MyMod.fantome
3

Rename to .fantome

mv MyMod.zip MyMod.fantome
Manual creation skips optimization. Use mod-tools export for best results.

Installing Fantome Files

Supported Methods

Import Button

Click the import button in mod manager and select the .fantome file.

Drag and Drop

Drag .fantome file directly into the mod list.

Installation Process

  1. Validation: Checks for required META/info.json
  2. Extraction: Unzips to installed/{Name} V{Version} by {Author}/
  3. Metadata loading: Reads info.json and image.png
  4. Registration: Adds mod to the mods list (disabled by default)
// Signal: installFantomeZip(QString path)
onInstalledMod: function(fileName, infoData) {
    cslolModsView.addMod(fileName, infoData, false)
}

File Dialog Filters

// From CSLOLDialogOpenZipFantome.qml:11
nameFilters: "Fantome Mod files (*.fantome *.zip)"
Both .fantome and .zip extensions are accepted.

Compatibility

Supported Managers

  • cslol-manager: Full support (reference implementation)
  • LTK Manager: Full support (successor project)
  • Fantome: Original mod manager (deprecated)

Version Compatibility

The Fantome format is forward compatible:
  • Older managers can read newer .fantome files (if they follow the spec)
  • Newer managers fully support older .fantome files

Game Version

Fantome mods are game version specific. WAD files from older patches may not work with newer game versions due to:
  • Asset path changes
  • File format updates
  • New game features
  • WAD structure reorganization
Best practices:
  • Test mods after game updates
  • Rebuild/rebase mods against new game files
  • Update mod version when rebuilding
  • Document compatible game versions

Advanced Topics

Conflict Resolution

When multiple mods modify the same file:
  1. Within a mod: Later WAD in alphabetical order wins
  2. Across mods: Mod order in profile determines priority
  3. Manager behavior: Can warn or auto-resolve based on settings
// From main.qml:104
cslolTools.saveProfile(name, mods, run, settings.suppressInstallConflicts, 
                       settings.verbosePatcher)
suppressInstallConflicts: Skip conflict warnings (use with caution)

Overlay Generation

The mod-tools CLI can create overlays from multiple mods:
mod-tools mkoverlay <mods_dir> <overlay_dir> --game:<path> --mods:<mod1>/<mod2>/...
Overlay process:
  1. Indexes game WADs
  2. Loads each mod in order
  3. Resolves conflicts (later mod wins)
  4. Removes unsafe entries (e.g., *.SubChunkTOC)
  5. Writes merged overlay WADs

Rebasing

Rebasing aligns mod WAD filenames to base game mounts: Without rebasing:
WAD/
└── mymod.wad.client          # Generic name
With rebasing:
WAD/
└── ezreal_base_tx_cm.wad.client   # Aligned to base mount
Benefits:
  • Smaller file sizes (strips unmodified entries)
  • Better compatibility
  • Clearer file purpose
  • Easier conflict detection

Validation Checklist

Before distributing a .fantome mod:
  • File is valid ZIP archive
  • Contains META/info.json
  • info.json has Name, Version, Author
  • Name is 3-50 characters
  • Version follows semantic versioning
  • Author is 3-50 characters
  • Contains at least one .wad.client file in WAD/

Resources

League Toolkit

Official organization for LoL modding tools

Fantome Wiki

Original Fantome format specification

mod-tools CLI

Command-line tools for mod management

Mod Creation Guide

Learn how to create mods in cslol-manager

Build docs developers (and LLMs) love