Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/CaramelHQ/Flashback/llms.txt

Use this file to discover all available pages before exploring further.

Flashback identifies which game you are playing so it can tag every clip with the correct title and fetch the right artwork. Detection happens in real time by inspecting the foreground window — whatever is in focus is treated as the active game. Three complementary strategies are combined: Discord’s community-maintained detectable games list, Steam’s local library manifests, and a set of Minecraft-specific heuristics that cover the many Java-based launchers that do not appear in the Discord list.

How detection works

Every time Flashback needs to know the current game it follows a strict priority order against the foreground process.
1
Check the foreground window
2
Windows tells Flashback which process owns the currently focused window (GetForegroundWindowGetWindowThreadProcessId). That process ID is the starting point for all further checks.
3
Try Steam first
4
If the foreground process’s executable path contains a steamapps/common/ segment, Flashback reads the matching appmanifest_*.acf file directly from that Steam library folder. This yields both the canonical game name and the exact Steam App ID — no network request required, no ambiguity between remasters or sequels that share a name.
5
Fall back to Discord’s detectable list
6
If the process is not inside a Steam library, Flashback looks up the executable’s basename (e.g. cyberpunk2077.exe) in Discord’s detectable games list. The lookup is an exact, case-insensitive match. Executables shared by more than one game (engine helpers, anti-cheat processes, and so on) are excluded from the map at build time so they can never produce a false match.
7
Apply Minecraft heuristics
8
Java-based Minecraft clients run through javaw.exe or java.exe — both excluded from the Discord list because they host thousands of unrelated programs. When the foreground process is one of those generic runtimes, Flashback checks three additional signals in order:
9
  • The full process path contains a known launcher hint (minecraft, lunarclient, badlion, feather, labymod, tlauncher, prismlauncher, multimc, modrinth, salwyrr, pojav).
  • Any sibling process in the same session has a path containing one of those hints.
  • The foreground window class is glfw30 and the window title contains the word minecraft.
  • 10
    If any signal fires, the game is identified as Minecraft.
    11
    Persist the last known game
    12
    If the game window loses focus (you alt-tab to a browser, for example) but its process is still running, Flashback keeps reporting the same game until the process exits. This prevents the active game from disappearing during brief focus changes.

    Discord detectable games list

    The list lives at https://discord.com/api/v9/applications/detectable and is fetched once, then cached locally at:
    %LOCALAPPDATA%\com.flashback.app\detectable.json
    
    The cache is considered fresh for 7 days. If a network fetch fails and a stale cache file exists, Flashback falls back to that file automatically so detection keeps working offline.
    The list is built into a hash map at startup: only executables that unambiguously identify a single game are kept. If the same .exe name appears for multiple games (common with shared engine binaries), it is excluded entirely.

    Steam game detection

    For Steam games Flashback reads the ACF manifest directly from disk — no Steam API, no network call.
    ACF fieldWhat Flashback uses it for
    appidIdentifies the exact Steam release for artwork lookups
    nameDisplay name shown in the library and embedded in the clip
    installdirMatched against the process path to find the right manifest
    The appid is stored alongside the game name in every clip and in the seen-games list. This means remasters and sequels that happen to share a title (such as different entries in the same series) are always told apart.

    Minecraft detection

    Minecraft and its client ecosystem run on top of the Java runtime, so none of the launchers appear in Discord’s list. Flashback recognises the following clients automatically:
    Client / launcherDetection method
    Vanilla (minecraft in path)Process path hint
    Lunar ClientProcess path hint (lunarclient)
    Badlion ClientProcess path hint (badlion)
    Feather ClientProcess path hint (feather)
    LabyModProcess path hint (labymod)
    TLauncherProcess path hint (tlauncher)
    Prism LauncherProcess path hint (prismlauncher)
    MultiMCProcess path hint (multimc)
    Modrinth AppProcess path hint (modrinth)
    SalwyrrProcess path hint (salwyrr)
    PojavLauncherProcess path hint (pojav)
    Unknown GLFW clientWindow class glfw30 + title contains minecraft
    If your Minecraft installation is detected as “Unknown” or not at all, verify that the launcher executable or its working directory contains one of the path hints above. Custom installation paths that omit the client name entirely will fall through all checks.

    Clip metadata

    When a clip is saved, the detected game name is embedded as source metadata inside the MP4 container. This is what the library reads to show the game label on each clip card and to group clips by title — no external database or sidecar file is needed.

    Seen games and disabling detection

    Flashback records every game it has successfully detected in a seen_games list persisted in its settings file (%APPDATA%\com.flashback.app\settings.json). The list is sorted by most recently seen and is used to populate the game filter in the clip library. You can disable detection for a specific game if you do not want Flashback to tag clips with it. Disabled games are stored in disabled_games inside the same settings file and can be toggled from the application settings.

    What to do if your game is not detected

    Some games — especially indie titles, early-access releases, and non-Steam PC ports — may not appear in Discord’s detectable games list yet. Clips will still be recorded; they simply will not carry an automatic game label. You can rename a clip manually from the clip editor.
    The name comes from the name field in the appmanifest_*.acf file inside your Steam library. If Steam has an outdated manifest (for example after a rename or a regional variant), verifying the game’s files in Steam will refresh the manifest.
    Make sure the launcher or its installation folder contains one of the supported path hints (see the table above). Vanilla installations launched directly through the official Minecraft launcher usually resolve via the minecraft hint. If you use a custom Java path that bypasses the standard install directory, detection will not work.
    Executables shared by multiple programs are excluded from the map automatically. If a specific executable is still causing false matches, please open an issue — the disambiguation logic may need to be updated.

    Artwork Setup

    Configure hero images and icons for detected games.

    Clip Library

    Browse and filter clips by game name.

    Capture Settings

    Adjust FPS, resolution, and encoder for recording.

    Troubleshooting

    Fix common detection and recording problems.

    Build docs developers (and LLMs) love