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
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'
prelaunch_command: bash $GAMEDIR/mtgo-tune.sh
prelaunch_wait: true
wine:
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-08
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."
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
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'
prelaunch_command: bash $GAMEDIR/mtgo-tune.sh
prelaunch_wait: true
wine:
overrides:
winealsa.drv: disabled
winecoreaudio.drv: disabled
wineoss.drv: disabled
winepulse.drv: disabled
slug: magic-the-gathering-online-2026-08
steamid: null
version: 2026-08
year: 2002
{
"game_slug": "magic-the-gathering-online",
"version": "2026-08",
"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.",
"name": "Magic: The Gathering Online",
"year": 2002,
"steamid": null,
"gogslug": "",
"humblestoreid": "",
"runner": "wine",
"slug": "magic-the-gathering-online-2026-08",
"installer_slug": "magic-the-gathering-online-2026-08",
"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",
"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"
},
"prelaunch_command": "bash $GAMEDIR/mtgo-tune.sh",
"prelaunch_wait": true
},
"wine": {
"overrides": {
"winealsa.drv": "disabled",
"winecoreaudio.drv": "disabled",
"wineoss.drv": "disabled",
"winepulse.drv": "disabled"
}
}
}
}