GameMaker (2.3)
Icon

GMGuard - Anti Cheat

Fntrck

You must be logged in to obtain assets

Description

GMGuard 1.0.0

GMGuard is a toolkit designed to protect your games from common cheating techniques - without too much setup required and with only couple lines of code.

  • Protects against memory editing
  • Protects against speed-hacking
  • Protects your save files and binaries from being tampered with outside the game
  • Provides deterministic pseudo-random generator resistant against common unrandomizers
  • Customize callbacks depending on which area of the game got compromised
  • Fully cross-platform, written in GML 2.3+
  • Lightweight, documented, maintained and customizable plug-n-play library
  • Reverse-compatible updates in the future

Memory editing

Protect memory from being edited by debuggers such as Cheat Engine. You can supply a callback method which is triggered when a change outside of game logic is detected.

Example:

//////////////////////////////////////////////////////////////
// Init and lock
map = new gmguard.lockmap_create();     // create storage
gold = 100;                             // set some value
map.lock("gold", gold);                 // lock the value

map.callback_set(function() { game_end(); } );  // Optional: set a custom callback method or script

//////////////////////////////////////////////////////////////
// On change
map.unlock("gold", gold);               // unlock
gold += 100;                            // change
map.lock("gold", gold);                 // lock

Speedhack

Prevent the game-loop from exceeding desired framerate by re-syncing the game step.

Example:

//////////////////////////////////////////////////////////////
// Step event (call only once per step)
gmguard.speedsync();    // sync the game step

if (gmguard.speedsync_fps_get() > 60) { // get true fps
    game_end();
}

File tampering

Secure game-files which are sensitive to tampering. Optionally flag files to keep their backups as replacement in cases where GMGuard detects they've been tampered with.

Example:

//////////////////////////////////////////////////////////////
// Save file
var _fname = "score.dat",
    _key = "mysavefile";

ini_open(_fname);   // Save some data to ini
ini_write_real("score", "gold", gold);
ini_close();

gmguard.file_auth_update(_fname, _key);     // Update auth
gmguard.file_auth_backup(_fname, _key);     // Optional: backup to overwrite tampered files

//////////////////////////////////////////////////////////////
// Load file
var _fname = "score.dat",
    _key = "mysavefile";

if !gmguard.file_auth_validate(_fname, "savefile") {    // Check authenticity
    game_end();
}   else    {
    ini_open(_fname);   // Load data from ini
    gold = ini_read_real("score", "gold", 0);
    ini_close();
}

Misc.

  • Cross-platform deterministic random number generator
  • Secure UUIDv4 key generator
  • Get unique device ID
  • Domain white-listing for HTML5
  • Extensive logging with multiple settings, easy to debug

Disclaimer

  • Software tends to be vulnerable no matter the effort put into protecting it, this toolkit when used correctly will prevent 99% of usual client-side cheating. It is not a magic-bullet tool but a formidable layer that's easy to add into your existing or future projects while being simple to use and still preventing players from exploiting your game's mechanics, systems, leaderboards and savefiles in most common ways
  • Do not rely just on client-side cheating prevention for centralized multiplayer games, instead ensure the server has the authority over game-states
  • Asset price will go up as new features are added
  • Supports GameMaker Studio: 2.3 and above

End User Licence Agreement (EULA).

Age Rating: 4+

Version

GMS2.3 - Version 1.0.0. Published September 16, 2020

Loading, please wait

Package contents

Loading, please wait

What is the issue?

Loading, please wait