JosefNemec/Playnite · error · FileNotFoundException

EAC launcher settings not found: {settingsPath}

Error message

EAC launcher settings not found: {settingsPath}

What it means

Thrown as FileNotFoundException by EasyAntiCheat.GetLauncherSettings when the file {gameDirectory}/EasyAntiCheat/Launcher/Settings.json does not exist. This method reads the EasyAntiCheat launcher configuration to determine the real game executable, working directory, and parameters for EAC-protected games. If the game directory does not contain an EAC launcher configuration, the method cannot proceed.

Source

Thrown at source/Playnite/EasyAntiCheat.cs:49

        [JsonProperty(PropertyName = "wait_for_game_process_exit")]
        public string WaitForGameProcessExit { get; set; }

        [JsonProperty(PropertyName = "hide_splash_screen")]
        public string HideSplashScreen { get; set; }

        [JsonProperty(PropertyName = "ide_ui_controls")]
        public string IdeUiControls { get; set; }
    }

    public class EasyAntiCheat
    {
        public static EasyAntiCheatLauncherSettings GetLauncherSettings(string gameDirectory)
        {
            var settingsPath = Path.Combine(gameDirectory, "EasyAntiCheat", "Launcher", "Settings.json");
            if (!File.Exists(settingsPath))
            {
                throw new FileNotFoundException($"EAC launcher settings not found: {settingsPath}");
            }

            return Serialization.FromJson<EasyAntiCheatLauncherSettings>(File.ReadAllText(settingsPath));
        }
    }
}

View on GitHub (pinned to 5911f4e964)

Solutions

  1. Verify the game actually uses EasyAntiCheat by checking for the EasyAntiCheat folder in the game directory.
  2. Search for Settings.json under the game directory tree: the EAC folder may be nested deeper than expected.
  3. Point gameDirectory to the correct folder containing the EasyAntiCheat/Launcher structure.
  4. Reinstall or repair EasyAntiCheat via the game's EAC setup tool (EasyAntiCheat_Setup.exe).
  5. If the game doesn't use EAC, remove the EAC detection from the game's play action configuration.

Example fix

// before — assuming EAC settings exist at a fixed path
var settings = EasyAntiCheat.GetLauncherSettings(gameDir); // throws if not found

// after — check existence and locate the file dynamically
var settingsPath = Path.Combine(gameDir, "EasyAntiCheat", "Launcher", "Settings.json");
if (!File.Exists(settingsPath))
{
    // search common alternative locations
    settingsPath = Directory.GetFiles(gameDir, "Settings.json", SearchOption.AllDirectories)
        .FirstOrDefault(p => p.Contains("EasyAntiCheat"));
    if (settingsPath == null)
    {
        logger.Warn($"No EAC settings found for {gameDir}; game may not use EAC.");
        return null;
    }
}
var settings = Serialization.FromJson<EasyAntiCheatLauncherSettings>(File.ReadAllText(settingsPath));
Defensive patterns

Strategy: validation

Validate before calling

var settingsPath = Path.Combine(gameDirectory, "EasyAntiCheat", "Launcher", "Settings.json");
if (!File.Exists(settingsPath))
{
    logger.Warn($"EAC settings not found at {settingsPath}. Game may not use EAC.");
    return null;
}

Type guard

static bool HasEasyAntiCheat(string gameDirectory)
{
    return File.Exists(Path.Combine(gameDirectory, "EasyAntiCheat", "Launcher", "Settings.json"));
}

Try / catch

try
{
    var settings = EasyAntiCheat.GetLauncherSettings(gameDir);
}
catch (FileNotFoundException ex) when (ex.Message.Contains("EAC"))
{
    logger.Warn($"No EAC configuration in {gameDir}; falling back to standard launch.");
    settings = null;
}

Prevention

When it happens

Trigger: Calling GetLauncherSettings(gameDirectory) for a game that either does not use EasyAntiCheat, or whose EAC files are in a non-standard location. The expected path is a hardcoded relative path: EasyAntiCheat/Launcher/Settings.json under the game directory.

Common situations: The game was installed via a launcher (Steam, Epic) that placed EAC files in a different subdirectory. The game does not actually use EAC but the calling code assumes it does. The EAC launcher settings were deleted or not installed as part of the game. The gameDirectory parameter points to the wrong folder (e.g., the root install dir instead of the game-specific subdir). Game files were verified/repaired and EAC was not reinstalled.

Related errors


AI-assisted analysis of JosefNemec/Playnite@5911f4e964 (2026-08-13). Data as JSON: /api/errors/fc51ddf197fdcfa7. Report an issue: GitHub.