Debug Keys And You
Ever wonder how some games in Flashpoint seem to have their own cheat keys? Or why some games that you are certain you have grabbed all the files for just refuse to work? This page might provide some help.
This guide does not cover hacked games from websites such as arcadeprehacks, hackedarcadegames, or other similar sites. Those are created by people who know the ActionScript 3 programming language, and trying to teach those kinds of things is way out-of-scope for this article.
The Basics
The first question you probably have is: Can I enable Debug Keys in (insert game here)? There are no defined boundaries for what will and won't be possible, but if your game:
- Has a config.xml, properties.xml, or other similar file
- Was created by a professional company
- Is a web demo for the full version of a game that has the same name
Then chances will be high that there are some options available.
To get started you will need a text editor, (Notepad++ is recommended, but even something generic like Notepad will work) and, of course, the game files.
If you open up the game "Bejeweled 3" in Flashpoint Infinity, then right-click "Open File Location" you will see many files, including one called "data.xml" Opening that up will present you with this:
<?xml version="1.0" encoding="UTF-8"?> <data> <plugins> </plugins> <!-- External way of controlling the game's saved data. --> <saveData> <!-- Determines whether or not game data can be persisted to disk --> <canSave>true</canSave> <!-- Determines whether or not game data can be retrieved from disk --> <canLoad>true</canLoad> </saveData> <upsells> <url>http://www.popcap.com/games/bejeweled3/</url> <enabled>true</enabled> <video>true</video> <lang>en-US</lang> </upsells> <MSN> <enabled>false</enabled> <!-- This value should be in MILLISECONDS --> <!-- The minimum value is 1000 --> <loadBroadcastRate>3000</loadBroadcastRate> <scoreBroadcastRate>5000</scoreBroadcastRate> </MSN> <commands> <enabled>true</enabled> <!-- Framework controls --> <bind keyCombo="F1">ToggleDebugInfo</bind> <!-- Pauses framework updates, or advances the framework by one update. --> <bind keyCombo="F9">StepUpdates</bind> <!-- Resumes framework updates. --> <bind keyCombo="Shift+F9">ResumeUpdates</bind> <bind keyCombo="Right">IncUpdatesPerTick</bind> <bind keyCombo="Left">DecUpdatesPerTick</bind> <!-- Blitz3 cheats --> <bind keyCombo="i">InfoCheat</bind> <bind keyCombo="NUM_1">RedGemCheat</bind> <bind keyCombo="NUM_2">OrangeGemCheat</bind> <bind keyCombo="NUM_3">YellowGemCheat</bind> <bind keyCombo="NUM_4">GreenGemCheat</bind> <bind keyCombo="NUM_5">BlueGemCheat</bind> <bind keyCombo="NUM_6">PurpleGemCheat</bind> <bind keyCombo="NUM_7">WhiteGemCheat</bind> <bind keyCombo="f">FlameGemCheat</bind> <bind keyCombo="s">StarGemCheat</bind> <bind keyCombo="r">RainbowGemCheat</bind> <bind keyCombo="m">MultiplierGemCheat</bind> <bind keyCombo="n">NormalGemCheat</bind> <bind keyCombo="Backspace">RemoveGemCheat</bind> <bind keyCombo="Delete">ShatterGemCheat</bind> <bind keyCombo="b">BlazingSpeedCheat</bind> <bind keyCombo="c">SpawnCoinTokenCheat</bind> <bind keyCombo="g">ForceRareGemCheat</bind> <bind keyCombo="e">ForceGameEnd</bind> <bind keyCombo="p">AddPoints</bind> <bind keyCombo="l">LevelUp</bind> </commands> </data>
There are many options here, but I'm only going to highlight two of them for this example:
<MSN> <enabled>false</enabled>
This controls whether the MSN API is enabled. If you see a switch that looks like this, always set it to false. The MSN API is a special interface exclusive to the MSN Games website that allows things like high score submission, badges (before they were removed), and showing up as "Playing the game" on the front page. None of these will work in Flashpoint, and, more importantly, leaving it on will introduce a mandatory requirement to use the Basilisk Browser in order for the game to start. This also means many extra files will need to be included in a curation, increasing the file size and making it more complicated in general. Setting it to false will allow you to play a lot of these games in the flash projector, which is always preferred.
<commands> <enabled>true</enabled>
This is where the magic happens. Setting this to true will enable the debug hotkeys, which can introduce a multitude of fun effects to a game, such as:
- Infinite score
- Complete control over the game board
- Finishing a level instantly
- Swapping between levels without having to manually complete them
- Unlimited Resources
Really, the sky is the limit.
Most games, however, will not have the commands spelled out for you like this. Instead, one would have to go into the game and manually try every single key in order to find out everything.