Skip to content

Latest commit

 

History

History
32 lines (22 loc) · 2.62 KB

README.md

File metadata and controls

32 lines (22 loc) · 2.62 KB

5D Chess With Multiverse Time Travel Data Interface

An unofficial C# (.Net Standard 2.0) library providing runtime memory-access to 5D Chess With Multiverse Time Travel.

Disclaimer

While it should be stable for the most part, this library may still cause crashes/desyncs or other unexpected/unwanted behaviour, hence why the developers of this project cannot be held liable for any damage caused.

Important notes

While reading data is always possible without errors, writing data may cause stability issues.

The modification of multiplayer game data is possible, if both players make the same changes at roughly the same time, otherwise a desync is likely.

As a side note, cheating will never be possible, because of how the game is structured: All moves are checked clientside and invalid moves are simply discarded, meaning if you moved a rook diagonally, it would not move at all on the other player's screen. Ontop of that, the goal of this project is not to create cheats for the game, instead it is aimed to support creating useful tools, such as a chess clock that automatically switches when a player submits their moves.

Example of using the library

The main object that is being used is the DataInterface object. Creating works as follows:

  • You can create it using the 'new'-keyword, passing a System.Diagnostics.Process object, which will link the DataInterface object to that process.
  • It's also possible to have the library automatically resolve the Game-process, but only if only if there is exactly one 5D Chess With Multiverse Time Travel process is running:
    • Call DataInterface.CreateAutomatically(), which will either return an instance if everything worked, or throw an exception.
    • Call DataInterface.TryCreateAutomatically(), which returns true on success, and passes back the created DataInterface object via an out parameter. Optionally it can also return the number of running game-processes, which will be 1 if true is returned.

Once you have acquired a DataInterface object, you can call its non-static methods, currently allowing you to read:

  • The number of chessboards that exist currently: DataInterface.GetChessBoardAmount()
  • (Not implemented yet) A list of all chessboard of the current game: DataInterface.GetChessBoards()
  • The size of all chessboard: DataInterface.GetChessBoardSize()
  • The current player's turn: DataInterface.GetCurrentPlayersTurn()