Tutorial written by Narzew - Anti Cheat Engine Solution
Welcome. I want to present my solution about preventing cheating Rpg Maker [XP/VX/VXA] games using Cheat Engine.
This is scripting tutorial. You will learn how to protect but is not full script, that protect your game.
Scripting language in Rpg Maker is Ruby.
First (and all) you need is simple Integer packer.
You can use NRGSS encrypt_int method. The encrypt_int method from NRGSS library uses a key to pack values.
The Cheat Engine search region of the memory with specified value. To prevent this, you must pack the value.
For ex.
Code:
$gold = 3000
print "You have #{$gold} gold. "
This method print how much gold you have, defined of a variable.
Code:
$gold = $nrgss.encrypt_int(900, 5)
The $gold variable now has other (packed) value.
To retrieve normal value you can use :
Code:
$original_gold = $nrgss.decrypt_int($gold, 5)
This is for retreating original (non-packed) value.
Sample of usage of system:
Code:
$gold = $nrgss.encrypt_int(3000)
module Gold
def self.add_gold(x)
$gold = $nrgss.encrypt_int($nrgss.decrypt_int($gold,7).to_i + x,7)
end
def self.lose_gold(x)
$gold = $nrgss.encrypt_int($nrgss.decrypt_int($gold,7).to_i - x,7)
end
def self.get_gold
return $nrgss.decrypt_int($gold, 7).to_i
end
end
Look that second argument of $nrgss.encrypt_int and $nrgss.decrypt_int is the key. Other key generates other values Look, that the encryption key must be identical like decryption key. Using different keys for gold, exp etc. is good idea
The presented gold module has 3 functions :
- to adding gold
- to losing gold
- to getting actual gold value
It has installed prevention from cheating by Cheat Engine.
Look, that using different keys will help.
Note : The used Gold module is not Rpg Maker Gold Module!! I created it only for sample. If you want to make protect gold/exp with this (I will make script in some free time) please use algorithm to protect specified values and change adding, removing methods.