Skip to content

A software development kit (SDK) for inspecting and interacting with the Magic: The Gathering Online (MTGO) client.

License

Notifications You must be signed in to change notification settings

videre-project/MTGOSDK

Repository files navigation

MTGOSDK icon MTGOSDK

License .NET MTGO Build

Warning

This project is still under construction and is not production-ready!

This SDK provides common APIs for accessing the Magic: The Gathering Online (MTGO) client's game state and player information, as well as internal states of the game engine useful for building tools that can assist with gameplay, such as deck trackers, or for analyzing game data for research purposes.

Explore:

  • Refer to the project's examples for demo applications built with the SDK.

Learn More:

  • For more in-depth information on the SDK's APIs, refer to the project documentation.
  • Consult the FAQ for common questions about the SDK.

Building this Project

This project requires the .NET 8 SDK to be installed with Visual Studio 2017 or newer. This also be installed separately with the above installers or when installing Visual Studio with the Visual Studio Installer.

To build this project, run either of the below commands from the root of the repository:

# Build using the .NET CLI
$ dotnet build -c Release

# Build using MSBuild in Visual Studio
$ msbuild /t:Build /p:Configuration=Release

The MTGOSDK project will automatically build reference assemblies for the latest version of MTGO, even if no existing MTGO installation exists. This helps ensure that the SDK is always up-to-date with the latest versions of MTGO.

To build the project in watch-mode, you can use the dotnet watch command with the MTGOSDK project instead of the solution file:

# Automatically rebuild MTGOSDK when file changes are detected
$ dotnet watch --project MTGOSDK/MTGOSDK.csproj build -c Release

This will pick up changes to dependent MTGOSDK.MSBuild and MTGOSDK.Win32 projects as well. As build evaluation is rooted from the MTGOSDK .csproj file, all logs from the build will be stored under the MTGOSDK/logs directory.

License

This project is licensed under the Apache-2.0 License.

Disclaimer

Note

This project is protected under U.S., Section 103(f) of the Digital Millennium Copyright Act (DMCA) (17 USC § 1201 (f)) protections for reverse-engineering for the purpose of enabling ‘interoperability’.

Section 12.1(b) of MTGO's End User License Agreement (EULA) prohibits any modification, reverse engineering, or decompilation of the client 'except to the extent that such restriction is expressly prohibited by applicable law'.

However, for such purposes protected under Section 103(f) of the DMCA, this EULA clause is statutorily preempted by federal copyright law and rendered null and void; see also ML Genius Holdings LLC v. Google LLC, No. 20-3113 (2d Cir. Mar. 10, 2022). All other provisions of the EULA remain in full force and effect unless otherwise prohibited by law.

Usage of this project for purposes prohibited by MTGO EULA and applicable law is not condoned by the project authors. The project authors are not responsible for any consequences of such usage.

Releases

No releases published

Packages

No packages published

Languages