Choose a party

Keep a separate party per save file or playthrough you're running at once.

Moving from another device? Open Settings → Transfer to another device on that device first to get a link or file, then use the button above here.

← All parties

My Pokémon

No Pokémon added yet — tap “Add a Pokémon” above to start tracking EVs.

← Roster
← Back

Settings

App info

Version

Storage

Effortdex caches its own files and sprite images so it keeps working offline.

Transfer

Move your parties and roster to another device via a shareable link.

← Back

Transfer to another device

Move your parties and roster to or from another device.

Export

Turn this device's roster into a shareable link.

Import

Paste a shared link, or load a saved transfer file.

← Back

Export

← Back

Storage

Effortdex caches its own files (and PokéAPI lookups, including sprite images) so it keeps working offline. "Clear cache" wipes all of it at once — it gets rebuilt fresh on the next load.

Your parties, roster and battle history are safe. They live separately in this browser's storage and are never touched by anything on this page.

By generation

Warm up (or clear) sprites for a specific game or generation instead of everything at once. Some titles share the exact same sprite artwork on PokéAPI (e.g. Ruby & Sapphire) — those are listed as one row, since caching or clearing one always does the same to the other.

Notifications

Caching a whole generation can take a couple of minutes — get a notification when a "Cache" or "Cache all" run finishes, even if you've switched away from this tab in the meantime.

Developer: disable caching

Turns off the service worker and all offline caching entirely — every reload then always hits the real files on the server, never a cached copy. Only useful while actively developing Effortdex itself; the app stops working offline while this is on, so leave it off otherwise. Takes effect immediately (reloads the page).

← Back

Import

New party

Advanced: override this game's rules

Each rule follows the base game by default. Only change one if this is a ROM hack or house rule that plays differently — a real title's own mechanics are already applied automatically.

Shows this title's sprites for the roster instead of the base game's — e.g. play a Ruby ROM hack but see Emerald's sprites. Any species missing from that title's sprites falls back to the modern default.

Restricts the battle-log and add-Pokémon pickers to species from up to the chosen generation, instead of following the base game's own — for a ROM hack/mod whose dex doesn't match its base game's real generation.

Add Pokémon

Its stats (optional)

Filter & sort roster

Level
Trained status