Installer magic-the-gathering-online-2026-10

files:
- setup: https://mtgo.patch.daybreakgames.com/patch/mtg/live/client/setup.exe
game:
  arch: win64
  exe: $GAMEDIR/setup.exe
  prefix: $GAMEDIR
installer:
- execute:
    command: "if [ -n \"$(ls -A \"$GAMEDIR\" 2>/dev/null)\" ]; then\n  echo \"ERROR:\
      \ $GAMEDIR is not empty.\"\n  echo \"This installer only supports installing\
      \ into a new, empty folder.\"\n  echo \"Remove the existing game (with files)\
      \ from your Lutris library, or delete the folder by hand, then reinstall.\"\n\
      \  echo \"See docs/DESIGN-NOTES.md, section 'Redoing an install', to patch an\
      \ existing install instead of a full reinstall.\"\n  exit 1\nfi\n"
- task:
    arch: win64
    name: create_prefix
    prefix: $GAMEDIR
- task:
    app: corefonts dotnet48 d3dcompiler_47
    name: winetricks
    prefix: $GAMEDIR
- task:
    app: sound=disabled
    name: winetricks
    prefix: $GAMEDIR
- task:
    app: renderer=gdi
    name: winetricks
    prefix: $GAMEDIR
- copy:
    dst: $GAMEDIR
    src: setup
- write_file:
    content: "#!/usr/bin/env bash\n# Re-applies the WPF flags that stop MTGO's collection\
      \ view from\n# pinning a CPU core / freezing the UI. Safe to run any number\
      \ of\n# times; silently does nothing if the config file isn't there yet.\nset\
      \ -uo pipefail\nGAMEDIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\
      \nfind \"$GAMEDIR\" -path '*Apps/2.0*' -iname 'MTGO.exe.config' -exec sed -i\
      \ -E \\\n  's/(\"(DisableAutomationPeer|PurgeAutomationEvents|DisableStylusInput|DisableTabletDevices)\"\
      \ value=\")false/\\1true/g' \\\n  {} + 2>/dev/null\nexit 0\n"
    file: $GAMEDIR/mtgo-tune.sh
- execute:
    command: chmod +x $GAMEDIR/mtgo-tune.sh
system:
  env:
    PROTON_NO_NTSYNC: '1'
    RADV_PERFTEST: sam
    WPF_DISABLE_HW_ACCELERATION: '0'
    __GL_THREADED_OPTIMIZATIONS: '1'
  limit_cpu_count: '4'
  prelaunch_command: bash $GAMEDIR/mtgo-tune.sh
  prelaunch_wait: true
  single_cpu: true
wine:
  dxvk: false
  esync: false
  fsync: false
  overrides:
    winealsa.drv: disabled
    winecoreaudio.drv: disabled
    wineoss.drv: disabled
    winepulse.drv: disabled
description: ''
game_slug: magic-the-gathering-online
gogslug: ''
humblestoreid: ''
installer_slug: magic-the-gathering-online-2026-10
name: 'Magic: The Gathering Online'
notes: "First launch takes longer than usual: the MTGO client itself (~640 MB) is\
  \ not downloaded during install. The first time you click Play, setup.exe runs its\
  \ ClickOnce bootstrapper, shows an \"Application Install - Security Warning\" dialog\
  \ (click Install), downloads and deploys the client, then opens the login screen.\
  \ Every later Play launches MTGO directly.\r\n\r\nRequires installing into a new,\
  \ empty game folder \u2014 the installer will refuse to run if $GAMEDIR already\
  \ has files in it (e.g. from a previous failed install). Remove the game from your\
  \ Lutris library (with files) or empty the folder by hand before retrying.\r\n\r\
  \nThere are some new optimizations from thedevnull github repo, to forcing WPS and\
  \ .NET application to render properly, via enviroment variables and Wine parameters,\
  \ feel free to change if you need."
runner: wine
script:
  files:
  - setup: https://mtgo.patch.daybreakgames.com/patch/mtg/live/client/setup.exe
  game:
    arch: win64
    exe: $GAMEDIR/setup.exe
    prefix: $GAMEDIR
  installer:
  - execute:
      command: "if [ -n \"$(ls -A \"$GAMEDIR\" 2>/dev/null)\" ]; then\n  echo \"ERROR:\
        \ $GAMEDIR is not empty.\"\n  echo \"This installer only supports installing\
        \ into a new, empty folder.\"\n  echo \"Remove the existing game (with files)\
        \ from your Lutris library, or delete the folder by hand, then reinstall.\"\
        \n  echo \"See docs/DESIGN-NOTES.md, section 'Redoing an install', to patch\
        \ an existing install instead of a full reinstall.\"\n  exit 1\nfi\n"
  - task:
      arch: win64
      name: create_prefix
      prefix: $GAMEDIR
  - task:
      app: corefonts dotnet48 d3dcompiler_47
      name: winetricks
      prefix: $GAMEDIR
  - task:
      app: sound=disabled
      name: winetricks
      prefix: $GAMEDIR
  - task:
      app: renderer=gdi
      name: winetricks
      prefix: $GAMEDIR
  - copy:
      dst: $GAMEDIR
      src: setup
  - write_file:
      content: "#!/usr/bin/env bash\n# Re-applies the WPF flags that stop MTGO's collection\
        \ view from\n# pinning a CPU core / freezing the UI. Safe to run any number\
        \ of\n# times; silently does nothing if the config file isn't there yet.\n\
        set -uo pipefail\nGAMEDIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\
        \nfind \"$GAMEDIR\" -path '*Apps/2.0*' -iname 'MTGO.exe.config' -exec sed\
        \ -i -E \\\n  's/(\"(DisableAutomationPeer|PurgeAutomationEvents|DisableStylusInput|DisableTabletDevices)\"\
        \ value=\")false/\\1true/g' \\\n  {} + 2>/dev/null\nexit 0\n"
      file: $GAMEDIR/mtgo-tune.sh
  - execute:
      command: chmod +x $GAMEDIR/mtgo-tune.sh
  system:
    env:
      PROTON_NO_NTSYNC: '1'
      RADV_PERFTEST: sam
      WPF_DISABLE_HW_ACCELERATION: '0'
      __GL_THREADED_OPTIMIZATIONS: '1'
    limit_cpu_count: '4'
    prelaunch_command: bash $GAMEDIR/mtgo-tune.sh
    prelaunch_wait: true
    single_cpu: true
  wine:
    dxvk: false
    esync: false
    fsync: false
    overrides:
      winealsa.drv: disabled
      winecoreaudio.drv: disabled
      wineoss.drv: disabled
      winepulse.drv: disabled
slug: magic-the-gathering-online-2026-10
steamid: null
version: 2026-10
year: 2002
{
  "game_slug": "magic-the-gathering-online",
  "version": "2026-10",
  "description": "",
  "notes": "First launch takes longer than usual: the MTGO client itself (~640 MB) is not downloaded during install. The first time you click Play, setup.exe runs its ClickOnce bootstrapper, shows an \"Application Install - Security Warning\" dialog (click Install), downloads and deploys the client, then opens the login screen. Every later Play launches MTGO directly.\r\n\r\nRequires installing into a new, empty game folder \u2014 the installer will refuse to run if $GAMEDIR already has files in it (e.g. from a previous failed install). Remove the game from your Lutris library (with files) or empty the folder by hand before retrying.\r\n\r\nThere are some new optimizations from thedevnull github repo, to forcing WPS and .NET application to render properly, via enviroment variables and Wine parameters, feel free to change if you need.",
  "name": "Magic: The Gathering Online",
  "year": 2002,
  "steamid": null,
  "gogslug": "",
  "humblestoreid": "",
  "runner": "wine",
  "slug": "magic-the-gathering-online-2026-10",
  "installer_slug": "magic-the-gathering-online-2026-10",
  "script": {
    "files": [
      {
        "setup": "https://mtgo.patch.daybreakgames.com/patch/mtg/live/client/setup.exe"
      }
    ],
    "game": {
      "arch": "win64",
      "exe": "$GAMEDIR/setup.exe",
      "prefix": "$GAMEDIR"
    },
    "installer": [
      {
        "execute": {
          "command": "if [ -n \"$(ls -A \"$GAMEDIR\" 2>/dev/null)\" ]; then\n  echo \"ERROR: $GAMEDIR is not empty.\"\n  echo \"This installer only supports installing into a new, empty folder.\"\n  echo \"Remove the existing game (with files) from your Lutris library, or delete the folder by hand, then reinstall.\"\n  echo \"See docs/DESIGN-NOTES.md, section 'Redoing an install', to patch an existing install instead of a full reinstall.\"\n  exit 1\nfi\n"
        }
      },
      {
        "task": {
          "arch": "win64",
          "name": "create_prefix",
          "prefix": "$GAMEDIR"
        }
      },
      {
        "task": {
          "app": "corefonts dotnet48 d3dcompiler_47",
          "name": "winetricks",
          "prefix": "$GAMEDIR"
        }
      },
      {
        "task": {
          "app": "sound=disabled",
          "name": "winetricks",
          "prefix": "$GAMEDIR"
        }
      },
      {
        "task": {
          "app": "renderer=gdi",
          "name": "winetricks",
          "prefix": "$GAMEDIR"
        }
      },
      {
        "copy": {
          "dst": "$GAMEDIR",
          "src": "setup"
        }
      },
      {
        "write_file": {
          "content": "#!/usr/bin/env bash\n# Re-applies the WPF flags that stop MTGO's collection view from\n# pinning a CPU core / freezing the UI. Safe to run any number of\n# times; silently does nothing if the config file isn't there yet.\nset -uo pipefail\nGAMEDIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\nfind \"$GAMEDIR\" -path '*Apps/2.0*' -iname 'MTGO.exe.config' -exec sed -i -E \\\n  's/(\"(DisableAutomationPeer|PurgeAutomationEvents|DisableStylusInput|DisableTabletDevices)\" value=\")false/\\1true/g' \\\n  {} + 2>/dev/null\nexit 0\n",
          "file": "$GAMEDIR/mtgo-tune.sh"
        }
      },
      {
        "execute": {
          "command": "chmod +x $GAMEDIR/mtgo-tune.sh"
        }
      }
    ],
    "system": {
      "env": {
        "PROTON_NO_NTSYNC": "1",
        "RADV_PERFTEST": "sam",
        "WPF_DISABLE_HW_ACCELERATION": "0",
        "__GL_THREADED_OPTIMIZATIONS": "1"
      },
      "limit_cpu_count": "4",
      "prelaunch_command": "bash $GAMEDIR/mtgo-tune.sh",
      "prelaunch_wait": true,
      "single_cpu": true
    },
    "wine": {
      "dxvk": false,
      "esync": false,
      "fsync": false,
      "overrides": {
        "winealsa.drv": "disabled",
        "winecoreaudio.drv": "disabled",
        "wineoss.drv": "disabled",
        "winepulse.drv": "disabled"
      }
    }
  }
}
Back to game