Jump to content

H5GG Enhanced Menu Tutorial - JSPlug-in 101


Happy Secret

45 posts in this topic

Recommended Posts

While people start cheating with H5GG Enhanced Menu on Unity Game, they might then looking for way to execute the cheat in a convenient way.

JSPlug-in is obviously the ANSWER to this. 

JSPlug-in is a framework setup of H5GG Enhanced Menu which allow you to extend the H5GG menu with new features, such as cheat menu for a game.
Under this Framework setup, user can leverage prebuilt H5GG Enhanced Menu function in their own user cheat. This largely simplify the complexity of the script, while having amazing features in it. To name a few:
1. Direct retrieve of Unity object pointers (Covering on Scene User Object, Singleton, any object that could link from object already found)
2. Use Unity dump structure to define the cheat without the need to hard code any offset. This essentially relieve people's headache in preparing cheat updates for game updates, because there is no more script update required.
3. Javascript as base, allow easy create cheat menu 

With latest release of H5GG Enhanced Menu v1.8.4 onwards, writing JSPlug-in is getting easier. The introduction of Unity User Object wrapper, seamlessly expose Unity User Object to Javascript
- User can access to Unity User Object's Fields and Methods directly from Javascript. Get / Set / Call and return, everything becomes so initiative. 

Here let's go through a quick example to demonstrate how powerful yet easy, JSPlug-in is. 

Game: Subway Surfers (Any version) 
Cheat feature: Big Jump (jump up very high)

For those who want to know how to use H5GG Enhanced Menu to cheat this. You may see below tutorial from @impapas

Spoiler

 

There are multiple way to implement this with JSPlug-in, it is all available for you to choose from.

Option 1) Minimum number of lines of code. 3 lines only. 

Spoiler
var script = initializeUnitySupport();
var aryObj = script.call("findUnityObjectOfType", ["SYBO$RunnerCore$Character$CharacterMotor", true]);
writeFloat(readPtr(Number(aryObj[0])+Number(gUnityClasses.SYBO$RunnerCore$Character$CharacterMotor._config.offset))+Number(gUnityClasses.SYBO$RunnerCore$Character$CharacterMotorConfig.JumpHeight.offset),50)

NOTE: 
1. Line 1 initialise the Unity Support in JSPlug-in
2. Line 2 retrieve an array of Unity User Object of type - SYBO$RunnerCore$Character$CharacterMotor. This is the naming convention used in H5GG Enhanced Menu for Class. It essentially replace the dot(.) of Unity namespace and class name into dollar sign($).  
    e.g. SYBO.RunnerCore.Character.CharacterMotor -> SYBO$RunnerCore$Character$CharacterMotor
    This CharacterMotor class is a class that we can easily retrieve its runtime object pointer and has relation with the CharacterMotorConfig class that holds the data we want to cheat
3. Line 3 retrieve CharacterMotorConfig object pointer from CharacterMotor's _config field, then write new value to CharacterMotorConfig's JumpHeight field

Option 2) Easiest to understand. 7 lines (4 lines more) but more readable. 

Spoiler
var script = initializeUnitySupport();
var aryObj = script.call("findUnityObjectOfType", ["SYBO$RunnerCore$Character$CharacterMotor", true]);
var CharacterMotor = new UnityObject(aryObj[0])
CharacterMotor.loadFields(['_config'])
var CharacterMotorConfig = new UnityObject(CharacterMotor._config)
CharacterMotorConfig.loadFields(['JumpHeight'])
CharacterMotorConfig.JumpHeight = 50

NOTE: 
1. Line 1 and 2, are the same as Option 1
2. Line 3 uses Unity User Object Wrapper (UnityObject) to wrap CharacterMotor's object pointer
3. Line 4 tell JSPlug-in to load _config field's meta data and enable direct access
4. Line 5 uses Unity User Object Wrapper (Unity Object) to wrap CharacterMotorConfig's object pointer retrieved from CharacterMotor._config 
    
YES, dot(.) notation, you can use [] notation as well - CharacterMotor["_config"]
5. Line 6 tell JSPlug-in to load JumpHeight field's meta data and enable direct access
6. Line 7 write new value to CharacterMotorConfig.JumpHeight directly
    YES, dot(.) notation, you can use [] notation as well - CharacterMotorConfig["JumpHeight"] = 50

Option 3) Wrap everything with a Cheat Menu. 

Spoiler
/*
    H5GG Plugin Mod Menu logic should enable easier Mod Menu development for non-jailbroken. It preserve existing H5GG UI and features, while adding new cheat menu.
    Cheat implemented using a patch free approach, the game binary does not required to patch. 
	
    Contribute by Happy Secret on iOSGods (2023)
*/
var script = initializeUnitySupport();

//[MODIFY] Configure Cheat Here
var cheats = {
    JumpHeight: ["CharacterMotorConfig", "JumpHeight", "50", "SELF", "ON"],
};

var intervalID;
var aryObj
var cheatState = false;
var cheatMode = "recurrent";
var recurrentInterval = 1200; //try not to be small than 1000, prevent system freeze

function toogleCheat() {
    cheatState = !cheatState;
    document.getElementById("applybutton").textContent = ' Toggle OFF ';
    document.getElementById("applybutton").style.backgroundColor = '#E8E8E850';

    if (cheatState) {
        intervalID = setInterval(function () {
            if (cheatState) {
                try {
                    script = initializeUnitySupport();
					//[MODIFY]Find core object object list
                    aryObj = script.call("findUnityObjectOfType", ["SYBO$RunnerCore$Character$CharacterMotor", true]);
                } catch (e) {
                    //reset Unity Support
                    gIl2cppInit = false;
                    var script = initializeUnitySupport();
                    appendLog("Unity support crashed and reset complete");
                }

                if (!aryObj) {
                    appendLog("Cannot find object to cheat. Engine stopped.");
                    cheatState = false;
                    document.getElementById("applybutton").textContent = ' Toggle Cheat ';
                    return;
                } else if (aryObj.length == 0) {
					appendLog("Cheat waiting for core object.");
					return;
				}
				
                for (let i = 0; i < aryObj.length; i++) {
                    //[MODIFY]Start prepare core object for delink / filtering here
                    let CharacterMotor = new UnityObject(aryObj[i]);
                    //debugInfo("BattleCharacter (" + aryObj[i].toString(16) + ") with UnityObject:" + BattleCharacter, [aryObj[i]])
                    CharacterMotor.loadFields(["_config"]);
                    //debugInfo("BattleCharacter (" + aryObj[i].toString(16) + ") with player:" + BattleCharacter.Status, [aryObj[i]])
                    
                    //debugInfo("BattleCharacter (0x" + aryObj[i].toString(16) + ") with CurrentUnitType:" + BattleCharacter.CurrentUnitType, [aryObj[i]])
					
					//[MODIFY]Locate the right object to cheat (SELF)
					let isSelf = true//BattleCharacter.CurrentUnitType==100? true:false;
                    let cheatObj = {};
                    //End prepare core object for delink / filtering here
                    
                    //[MODIFY]Start prepare cheat object here
					let CharacterMotorConfig = new UnityObject(CharacterMotor._config)
					CharacterMotorConfig.loadFields(["JumpHeight"])
                    cheatObj["CharacterMotorConfig"] = CharacterMotorConfig
					
                    //End prepare cheat object
                    for (var prop in cheats) {
                        if (Object.prototype.hasOwnProperty.call(cheats, prop)) {
                            let obj;
                            let addr;
                            let oldValue = 0;
							if (isNaN(cheats[prop][2])){
								switch (cheats[prop][2]){
									case "ONE":
										cheats[prop][2] = 1
										break;
								}
							}
                            if (isSelf && cheats[prop][3] == "SELF" && cheats[prop][4] == "ON") {
                                cheatObj[cheats[prop][0]][cheats[prop][1]] = isNaN(cheats[prop][2]) ? cheatObj[cheats[prop][0]][cheats[prop][2]] : cheats[prop][2];
                            } else if (isSelf==false && cheats[prop][3] == "ENEMY" && cheats[prop][4] == "ON") {
								cheatObj[cheats[prop][0]][cheats[prop][1]] = isNaN(cheats[prop][2]) ? cheatObj[cheats[prop][0]][cheats[prop][2]] : cheats[prop][2];
                            }//end if TURN ON
                        }
                    }//end For cheat item
                }//end For core object list
				appendLog("Cheat applied successfully");
            } else {
                clearInterval(intervalID);
            }
        }, recurrentInterval);
    } else {
        //code will stop on next coming iteration
        document.getElementById("applybutton").textContent = ' Toggle Cheat ';
        appendLog("Cheat stopped");
    }

    if (cheatMode != "recurrent") clearInterval(intervalID);
}

/* Add button on H5GG UI to open the Cheat UI, if it does not exist */
if ($("#cheatpluginmodmenu").length == 0) {
    var btn = $('<button id="cheatpluginmodmenu">Cheat</button>');
    btn.attr("credit", "Happy Secret");
    btn.click(function () {
        $("#cheatpluginpage").show();
    });
    //backward compatible with standard H5GG menu
    if ($("#frontview").length == 0) {
        $('#results_count').after(btn);
    } else {
        $("#frontview").append(btn);
    }
}

/* Create the Cheat UI Layer, if it does not exist */
if ($("#cheatpluginpage").length == 0) {
    var popup_pixelfancheat_html = $('<div id="cheatpluginpage"  style="background-color: #FDFDFD; width:100%; height:100%; position:absolute; left:0; top:0; border:1px solid #B8B8B880; border-radius: 5px; padding: 0px; z-index: 99999;-webkit-user-select: all;-webkit-touch-callout: default;"></div>');
    $(document.body).append(popup_pixelfancheat_html);
}

/* Generate Clean Cheat Menu UI */
var html = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cheat by Happy Secret';
html += '<br><div style="float:right; font-size:16px; font-family: Arial, sans-serif;" onclick="closecheatpluginpage()">&nbsp;X&nbsp;</div>';

/* Prepare Cheat Item */
for (var prop in cheats) {
    if (Object.prototype.hasOwnProperty.call(cheats, prop)) {
		if (isNaN(cheats[prop][2]))
			html += '<label><input name="' + prop + '"type="checkbox" ' + '" onchange="checkchange(this)" checked/>' + prop + '<output>(' + cheats[prop][4] + ')</output></label>';
		else
        	html += '<br><label><input name="' + prop + '"type="range" min="0" max="' + cheats[prop][2] * 2 + '" value="' + cheats[prop][2] + '" style="width:50%" onchange="rangechange(this)" />' + prop + '<output>(' + cheats[prop][2] + ')</output></label>';
    }
}

html += '<p align="center"><button onclick="toogleCheat()" id="applybutton">&nbsp;Toggle Cheat&nbsp;</button>';
html += '</hr><div id="cheatpluginpagelog" class="scrollbar" ></div>';


$("#cheatpluginpage").html(html);
$("#cheatpluginpage").hide();

function closecheatpluginpage() {
    $("#cheatpluginpage").hide();
}

function rangechange(input) {
    cheats[input.name][2] = Number(input.value);

    input.nextElementSibling.value = '(' + input.value + ')';
    //input.previousElementSibling.value = '(' + input.value + ')';

    //Change Apply Button Color to remind user to press Apply
    document.getElementById("applybutton").style.backgroundColor = 'yellow';
}

function checkchange(input) {
    cheats[input.name][4] = input.checked ? "ON" : "OFF"

    input.nextElementSibling.value = '(' + cheats[input.name][4] + ')';

    //Change Apply Button Color to remind user to press Apply
    document.getElementById("applybutton").style.backgroundColor = 'yellow';
}

/* Create Cheat Log */
function appendLog(msg) {
    var oldmsg = $("#cheatpluginpagelog").html();
    if (oldmsg.length > 300) oldmsg = "";
    oldmsg = getCurTime() + ' - ' + msg + '<br>' + oldmsg;
    $("#cheatpluginpagelog").html(oldmsg);
}

NOTE: 
1. This is a simple cheat menu template. It will automatically create Slider or Checkbox for cheats. It automatically run the cheat every 1200 milliseconds.
2. You do not need to understand the entire menu code in order to use it. There essentially 5 Steps to use this template script
 

STEP 1) Define what you want to cheat with the script

//[MODIFY] Configure Cheat Here
var cheats = {
    JumpHeight: ["CharacterMotorConfig", "JumpHeight", "50", "SELF", "ON"],
};

- First JumpHeight is the label of the slider
- CharacterMotorConfig is the name of the class that hold the field you want to change
- Second JumpHeight is the field name to change
- 50 is the value to change. Use "ONE" for cheat that only need to enable/disable without a numeral value. 
- SELF is for de-link, it used to tell which group of object should apply this cheat on (Filtering condition)
- ON is a switch to turn on and off the cheat

STEP 2) Change the root object of interest, which should able to link to your other cheat object

//[MODIFY]Find core object object list
aryObj = script.call("findUnityObjectOfType", ["SYBO$RunnerCore$Character$CharacterMotor", true]);

Change the “SYBO$RunnerCore$Character$CharacterMotor” to an object class that you can find object link with Unity Static Analyzer. You need to full long name with those $.

STEP 3) Create the Unity User Object wrapper object from a Root Object instance address, and enable the linking field access

//[MODIFY]Start prepare core object for delink / filtering here
let CharacterMotor = new UnityObject(aryObj[i]);
CharacterMotor.loadFields(["_config"]);

Here create the base Unity Object, you just need to name it and identify that Field In this object you are going to use

STEP 4) Define the scope of the cheat, certain cheat we do not want to globally apply. (Filtering condition or Grouping)

//[MODIFY]Locate the right object to cheat (SELF)
let isSelf = true; //BattleCharacter.CurrentUnitType==100? true:false;

This is used to delink. Delink mean, cheat apply to certain object not all. Say, only on myself but not enemy. We want to amplify our team's attack but not enemy's team. 

STEP 5) Create the Unity User Object wrapper object from a Root Object instance address, and enable the linking field access

//[MODIFY]Start prepare cheat object here
let CharacterMotorConfig = new UnityObject(CharacterMotor._config)
CharacterMotorConfig.loadFields(["JumpHeight"])
cheatObj["CharacterMotorConfig"] = CharacterMotorConfig

Like the earlier step, you setup the cheat Unity Object here and put it under the cheatObj
If you have 3 different Unity User Objects, which holds 5 fields you want to cheat. Here, you will have 3 set of above logics with each defines one of the Unity User Object.
Just to remember, EVERY SINGLE field we use, we need to load them explicitly. 

 

With this 5 Steps, you should able to create simple Cheat Menu for Simple Unity Games.

This is obviously not for all Unity Games. Some Unity Games can't be cheated without Patching / Hooking.

New Badge  

1. As they are JSPlug-in, in order to enable autoload on these script when H5GG startup and trigger. You need to define the name with prefix "H5JSPlugin - " with extension ".js".
e.g. H5JSPlugin - Subway Surfers.js
2. And you will need to put this Javascript file either in Document folder or .app folder (app bundle). 

Please read Release note of H5GG Enhanced Menu for detail

 

Updated by Happy Secret
  • Like 20
  • Winner 1
  • Thanks 1
  • Agree 2
  • Informative 3
Link to comment
Share on other sites

 

Spoiler

JSError in:Index line:4310 column:52
 TypeError: undefined is not an object
 (evaluating 'this._objectDetails ["field-
 Details"')

does anyone know how to solve? the object is the correct PlayerManager, but the script says no

Upd:error in spoiler

Updated by Gay 228
A
Link to comment
Share on other sites

4 hours ago, Gay 228 said:

 

  Hide contents

JSError in:Index line:4310 column:52
 TypeError: undefined is not an object
 (evaluating 'this._objectDetails ["field-
 Details"')

does anyone know how to solve? the object is the correct PlayerManager, but the script says no

Upd:error in spoiler

This normally happens when you have wrong object pointer, class name, or field name.

Link to comment
Share on other sites

1 hour ago, Gay 228 said:

I did everything like normal, the name of the object is CCDrivenController and the name of the field is m_JumpHeight
not work(

Can you share your few lines of code to wrap the object and load the field? Or simply share the entire script

Link to comment
Share on other sites

24 минуты назад Happy Secret сказал:

Можете ли вы поделиться своими несколькими строками кода, чтобы обернуть объект и загрузить поле? Или просто поделитесь всем сценарием

Спойлер


/*
    H5GG Plugin Mod Menu logic should enable easier Mod Menu development for non-jailbroken. It preserve existing H5GG UI and features, while adding new cheat menu.
    Cheat implemented using a patch free approach, the game binary does not required to patch. 
    
    Contribute by Happy Secret on iOSGods (2023)
*/
var script = initializeUnitySupport();

//[MODIFY] Configure Cheat Here
var cheats = {
    JumpHeight: ["CCDrivenController", "m_JumpHeight", "50", "SELF", "ON"],
};

var intervalID;
var aryObj
var cheatState = false;
var cheatMode = "recurrent";
var recurrentInterval = 1200; //try not to be small than 1000, prevent system freeze

function toogleCheat() {
    cheatState = !cheatState;
    document.getElementById("applybutton").textContent = ' Toggle OFF ';
    document.getElementById("applybutton").style.backgroundColor = '#E8E8E850';

    if (cheatState) {
        intervalID = setInterval(function () {
            if (cheatState) {
                try {
                    script = initializeUnitySupport();
                    //[MODIFY]Find core object object list
                    aryObj = script.call("findUnityObjectOfType", ["Oxide$CCDrivenController", true]);
                } catch (e) {
                    //reset Unity Support
                    gIl2cppInit = false;
                    var script = initializeUnitySupport();
                    appendLog("Unity support crashed and reset complete");
                }

                if (!aryObj) {
                    appendLog("Cannot find object to cheat. Engine stopped.");
                    cheatState = false;
                    document.getElementById("applybutton").textContent = ' Toggle Cheat ';
                    return;
                } else if (aryObj.length == 0) {
                    appendLog("Cheat waiting for core object.");
                    return;
                }
                
                for (let i = 0; i < aryObj.length; i++) {
                    //[MODIFY]Start prepare core object for delink / filtering here
                    let CharacterMotor = new UnityObject(aryObj[i]);
                    //debugInfo("BattleCharacter (" + aryObj[i].toString(16) + ") with UnityObject:" + BattleCharacter, [aryObj[i]])
                    CharacterMotor.loadFields(["_config"]);
                    //debugInfo("BattleCharacter (" + aryObj[i].toString(16) + ") with player:" + BattleCharacter.Status, [aryObj[i]])
                    
                    //debugInfo("BattleCharacter (0x" + aryObj[i].toString(16) + ") with CurrentUnitType:" + BattleCharacter.CurrentUnitType, [aryObj[i]])
                    
                    //[MODIFY]Locate the right object to cheat (SELF)
                    let isSelf = true//BattleCharacter.CurrentUnitType==100? true:false;
                    let cheatObj = {};
                    //End prepare core object for delink / filtering here
                    
                    //[MODIFY]Start prepare cheat object here
                    let CharacterMotorConfig = new UnityObject(CharacterMotor._config)
                    CharacterMotorConfig.loadFields(["m_JumpHeight"])
                    cheatObj["CCDrivenController"] = CharacterMotorConfig
                    
                    //End prepare cheat object
                    for (var prop in cheats) {
                        if (Object.prototype.hasOwnProperty.call(cheats, prop)) {
                            let obj;
                            let addr;
                            let oldValue = 0;
                            if (isNaN(cheats[prop][2])){
                                switch (cheats[prop][2]){
                                    case "ONE":
                                        cheats[prop][2] = 1
                                        break;
                                }
                            }
                            if (isSelf && cheats[prop][3] == "SELF" && cheats[prop][4] == "ON") {
                                cheatObj[cheats[prop][0]][cheats[prop][1]] = isNaN(cheats[prop][2]) ? cheatObj[cheats[prop][0]][cheats[prop][2]] : cheats[prop][2];
                            } else if (isSelf==false && cheats[prop][3] == "ENEMY" && cheats[prop][4] == "ON") {
                                cheatObj[cheats[prop][0]][cheats[prop][1]] = isNaN(cheats[prop][2]) ? cheatObj[cheats[prop][0]][cheats[prop][2]] : cheats[prop][2];
                            }//end if TURN ON
                        }
                    }//end For cheat item
                }//end For core object list
                appendLog("Cheat applied successfully");
            } else {
                clearInterval(intervalID);
            }
        }, recurrentInterval);
    } else {
        //code will stop on next coming iteration
        document.getElementById("applybutton").textContent = ' Toggle Cheat ';
        appendLog("Cheat stopped");
    }

    if (cheatMode != "recurrent") clearInterval(intervalID);
}

/* Add button on H5GG UI to open the Cheat UI, if it does not exist */
if ($("#cheatpluginmodmenu").length == 0) {
    var btn = $('<button id="cheatpluginmodmenu">Cheat</button>');
    btn.attr("credit", "Happy Secret");
    btn.click(function () {
        $("#cheatpluginpage").show();
    });
    //backward compatible with standard H5GG menu
    if ($("#frontview").length == 0) {
        $('#results_count').after(btn);
    } else {
        $("#frontview").append(btn);
    }
}

/* Create the Cheat UI Layer, if it does not exist */
if ($("#cheatpluginpage").length == 0) {
    var popup_pixelfancheat_html = $('<div id="cheatpluginpage"  style="background-color: #FDFDFD; width:100%; height:100%; position:absolute; left:0; top:0; border:1px solid #B8B8B880; border-radius: 5px; padding: 0px; z-index: 99999;-webkit-user-select: all;-webkit-touch-callout: default;"></div>');
    $(document.body).append(popup_pixelfancheat_html);
}

/* Generate Clean Cheat Menu UI */
var html = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cheat by Happy Secret';
html += '<br><div style="float:right; font-size:16px; font-family: Arial, sans-serif;" onclick="closecheatpluginpage()">&nbsp;X&nbsp;</div>';

/* Prepare Cheat Item */
for (var prop in cheats) {
    if (Object.prototype.hasOwnProperty.call(cheats, prop)) {
        if (isNaN(cheats[prop][2]))
            html += '<label><input name="' + prop + '"type="checkbox" ' + '" onchange="checkchange(this)" checked/>' + prop + '<output>(' + cheats[prop][4] + ')</output></label>';
        else
            html += '<br><label><input name="' + prop + '"type="range" min="0" max="' + cheats[prop][2] * 2 + '" value="' + cheats[prop][2] + '" style="width:50%" onchange="rangechange(this)" />' + prop + '<output>(' + cheats[prop][2] + ')</output></label>';
    }
}

html += '<p align="center"><button onclick="toogleCheat()" id="applybutton">&nbsp;Toggle Cheat&nbsp;</button>';
html += '</hr><div id="cheatpluginpagelog" class="scrollbar" ></div>';


$("#cheatpluginpage").html(html);
$("#cheatpluginpage").hide();

function closecheatpluginpage() {
    $("#cheatpluginpage").hide();
}

function rangechange(input) {
    cheats[input.name][2] = Number(input.value);

    input.nextElementSibling.value = '(' + input.value + ')';
    //input.previousElementSibling.value = '(' + input.value + ')';

    //Change Apply Button Color to remind user to press Apply
    document.getElementById("applybutton").style.backgroundColor = 'yellow';
}

function checkchange(input) {
    cheats[input.name][4] = input.checked ? "ON" : "OFF"

    input.nextElementSibling.value = '(' + cheats[input.name][4] + ')';

    //Change Apply Button Color to remind user to press Apply
    document.getElementById("applybutton").style.backgroundColor = 'yellow';
}

/* Create Cheat Log */
function appendLog(msg) {
    var oldmsg = $("#cheatpluginpagelog").html();
    if (oldmsg.length > 300) oldmsg = "";
    oldmsg = getCurTime() + ' - ' + msg + '<br>' + oldmsg;
    $("#cheatpluginpagelog").html(oldmsg);
}

yes, of course, the script is in the spoiler

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below. For more information, please read our Posting Guidelines.
Reply to this topic... Posting Guidelines

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Our picks

    • [Free] Asphalt 8: Airborne Hack v7.8.0 +4 Cheats
      Modded/Hacked App: Asphalt 8: Airborne by Gameloft
      Bundle ID: com.gameloft.asphalt8
      iTunes Store Link: https://apps.apple.com/us/app/asphalt-8-airborne/id610391947


      Hack Features:
      - Unlimited Nitro Use / Nitro Doesn't Decrease
      - No Car Crash / No Wrecks
      - Anti-Ban -> Does not mean you can abuse the hack.
      - No Rank Required to do Mastery Missions

      This hack only works on x64 or ARM64 iDevices: iPhone 5s, 6, 6 Plus, 6s, 6s Plus, 7, 7 Plus, 8, 8 Plus, X, iPod Touch 6G, iPad Air, Air 2, Pro & iPad Mini 2, 3, 4 and later. This hack is an In-Game Mod Menu (iGMM). In order to activate the Mod Menu, tap on the iOSGods button found inside the app.

      ViP version of this hack with more features: https://iosgods.com/topic/39095-vip-asphalt-8-airborne-v321-13-cheats/
      Non-Jailbroken version of this hack: https://iosgods.com/topic/38140-hack-asphalt-8-airborne-v310-4-cheats-for-jailed-idevices-ios-10/
      For more fun, check out the Club(s): https://iosgods.com/clubs/
      • 8,808 replies
    • [Hack] Asphalt 8: Airborne v7.8.0 +3 Cheats for Jailed iDevices! [ iOS 18 ]
      Modded/Hacked App: Asphalt 8: Airborne By Gameloft
      Bundle ID: com.gameloft.asphalt8
      iTunes Link: https://itunes.apple.com/us/app/asphalt-8-airborne/id610391947

      Hack Features:
      - Unlimited Nitro Use. Use Unlimited Nitro!
      - No Car Crash/Wreck
      - All Cars Unlocked
      - Unlimited Coins -> Coins will still decrease and go negative after buying and turning the hack off. Caused issues after uninstalling the hack. Removed.
      - Free Store - Buy any item for free which cost coins Patched. Removed.
      This hack only works on x64 or ARM64 iDevices: iPhone 5s, 6, 6 Plus, 6s, 6s Plus, 7, 7 Plus, 8, 8 Plus, X, SE, iPod Touch 6G, iPad Air, Air 2, Pro & iPad Mini 2, 3, 4 and later.

      Jailbroken version of this hack: https://iosgods.com/topic/23005-free-asphalt-8-airborne-hack-v321-4-cheats/
      • 682 replies
    • [ViP] Asphalt 8: Airborne v7.8.0 +13 Cheats!
      Modded/Hacked App: Asphalt 8: Airborne By Gameloft
      Bundle ID: com.gameloft.asphalt8
      iTunes Link: https://itunes.apple.com/us/app/asphalt-8-airborne/id610391947


      Hack Features:
      - Unlimited Nitro Use / Nitro Doesn't Decrease
      - 0 Coin Cost to buy Decals
      - All Seasons Unlocked
      - Tag Season Unlocked
      - Coins Hack (Enter your own amount in settings)
      - 0 Cost to Apply ProKits
      - Free Store (only works with coins. Blue tokens cost is server sided)
      - Mastery Unlocked at any Level (choose the amount of stars you want in settings to unlock early)
      - Anti-Ban -> Does not mean you can abuse the hack.
      - No Rank Required to do Mastery Missions
      - All Cars Unlocked
      - No Speed Limit
      - No Car Crash
       
      Free Version of this hack: https://iosgods.com/topic/23005-updated-asphalt-8-airborne-hack-v260-13-cheats/
      ViP No-Jailbreak Version of this Hack: https://iosgods.com/forum/78-vip-non-jailbroken-hacks-cheats/
      For more fun, check out the Club(s): https://iosgods.com/clubs/
      • 2,120 replies
    • Amikin Survival: Anime RPG v0.4.0 +3 Jailed Cheats [ Durability / Split / Level ]
      Modded/Hacked App: Amikin Survival: Anime RPG By HELIO LTD
      Bundle ID: com.heliogames.amikin.survival
      iTunes Store Link: https://apps.apple.com/us/app/amikin-survival-anime-rpg/id6478102304?uo=4


      Hack Features:
      - Unlimited Weapon Durability
      - Split Hack
      - Max Level -> Earn some XP.


      Jailbreak required hack(s): [Mod Menu Hack] Amikin Survival: Anime RPG v0.2.3 +6 Cheats [ God Mode ] - Free Jailbroken Cydia Cheats - iOSGods
      Modded Android APK(s): https://iosgods.com/forum/68-android-section/
      For more fun, check out the Club(s): https://iosgods.com/clubs/
      • 149 replies
    • Amikin Survival: Anime RPG v0.4.0 +6 Cheats [ God Mode  ]
      Modded/Hacked App: Amikin Survival: Anime RPG By HELIO LTD
      Bundle ID: com.heliogames.amikin.survival
      iTunes Store Link: https://apps.apple.com/us/app/amikin-survival-anime-rpg/id6478102304?uo=4


      Hack Features:
      - God Mode
      - Pet God Mode
      - Unlimited Weapon Durability
      - Split Hack
      - Speed Multiplier
      - Max Level -> Earn some XP.


      Non-Jailbroken & No Jailbreak required hack(s): [Non-Jailbroken Hack] Amikin Survival: Anime RPG v0.2.3 +3 Jailed Cheats [ Durability / Split / Level ] - Free Non-Jailbroken IPA Cheats - iOSGods
      Modded Android APK(s): https://iosgods.com/forum/68-android-section/
      For more fun, check out the Club(s): https://iosgods.com/clubs/
      • 52 replies
    • Idle Ghost Girl: AFK RPG v1.02.012 +2 Jailed Cheats [ God & O-HK ]
      Modded/Hacked App: Idle Ghost Girl: AFK RPG By Ndolphin Connect
      Bundle ID: com.nadadigital.idleghostgirl
      iTunes Store Link: https://apps.apple.com/us/app/idle-ghost-girl-afk-rpg/id6446347964?uo=4


      Hack Features:
      - God Mode
      - One-Hit Kill


      Jailbreak required hack(s): [Mod Menu Hack] Idle Ghost Girl: AFK RPG v1.02.008 +2 Cheats [ Damage & Defence ] - Free Jailbroken Cydia Cheats - iOSGods
      Modded Android APK(s): https://iosgods.com/forum/68-android-section/
      For more fun, check out the Club(s): https://iosgods.com/clubs/
      • 19 replies
    • Grow Shooter : Survivor RPG v1.0.23 +2 Jailed Cheats [ Unlimited Currencies ]
      Modded/Hacked App: Grow Shooter : Survivor RPG By DongSik Moon
      Bundle ID: com.eastmoon.growshooterlive
      iTunes Store Link: https://apps.apple.com/us/app/grow-shooter-survivor-rpg/id6480362458?uo=4


      Hack Features:
      - Unlimited Coins -> Will not decrease.
      - Unlimited Rubies -> Will not decrease.


      Jailbreak required hack(s): [Mod Menu Hack] Grow Shooter : Survivor RPG v1.0.10 +4 Cheats [ Damage ] - Free Jailbroken Cydia Cheats - iOSGods
      Modded Android APK(s): https://iosgods.com/forum/68-android-section/
      For more fun, check out the Club(s): https://iosgods.com/clubs/
      • 32 replies
    • Grow Shooter : Survivor RPG v1.0.23 +4 Cheats [ Damage ]
      Modded/Hacked App: Grow Shooter : Survivor RPG By DongSik Moon
      Bundle ID: com.eastmoon.growshooterlive
      iTunes Store Link: https://apps.apple.com/us/app/grow-shooter-survivor-rpg/id6480362458?uo=4


      Hack Features:
      - Damage Multiplier
      - Move Speed Multiplier
      - Unlimited Coins -> Will not decrease.
      - Unlimited Rubies -> Will not decrease.


      Non-Jailbroken & No Jailbreak required hack(s): [Non-Jailbroken Hack] Grow Shooter : Survivor RPG v1.0.10 +2 Jailed Cheats [ Unlimited Currencies ] - Free Non-Jailbroken IPA Cheats - iOSGods
      Modded Android APK(s): https://iosgods.com/forum/68-android-section/
      For more fun, check out the Club(s): https://iosgods.com/clubs/
      • 48 replies
    • Idle Outpost: Business Game v0.14.83 +1++ Jailed Cheat [ Free Shopping ]
      Modded/Hacked App: Idle Outpost: Business Game By AppQuantum Publishing Ltd
      Bundle ID: com.rockbite.zombieoutpost
      iTunes Store Link: https://apps.apple.com/us/app/idle-outpost-business-game/id6463128982?uo=4


      Hack Features:
      - Free Shopping -> Currencies will go negative.


      Jailbreak required hack(s): [Mod Menu Hack] Idle Outpost: Business Game v0.14.53 +1++ Cheat [ Free Shopping ] - Free Jailbroken Cydia Cheats - iOSGods
      Modded Android APK(s): https://iosgods.com/forum/68-android-section/
      For more fun, check out the Club(s): https://iosgods.com/clubs/
      • 25 replies
    • Idle Outpost: Business Game v0.14.83 +1++ Cheat [ Free Shopping ]
      Modded/Hacked App: Idle Outpost: Business Game By AppQuantum Publishing Ltd
      Bundle ID: com.rockbite.zombieoutpost
      iTunes Store Link: https://apps.apple.com/us/app/idle-outpost-business-game/id6463128982?uo=4


      Hack Features:
      - Free Shopping -> Currencies will go negative.


      Non-Jailbroken & No Jailbreak required hack(s): [Non-Jailbroken Hack] Idle Outpost: Business Game v0.14.53 +1++ Jailed Cheat [ Free Shopping ] - Free Non-Jailbroken IPA Cheats - iOSGods
      Modded Android APK(s): https://iosgods.com/forum/68-android-section/
      For more fun, check out the Club(s): https://iosgods.com/clubs/
      • 29 replies
    • Idle Ghost Girl: AFK RPG v1.02.012 +2 Cheats [ Damage & Defence ]
      Modded/Hacked App: Idle Ghost Girl: AFK RPG By Ndolphin Connect
      Bundle ID: com.nadadigital.idleghostgirl
      iTunes Store Link: https://apps.apple.com/us/app/idle-ghost-girl-afk-rpg/id6446347964?uo=4


      Hack Features:
      - Damage Multiplier
      - Defence Multiplier


      Non-Jailbroken & No Jailbreak required hack(s): [Non-Jailbroken Hack] Idle Ghost Girl: AFK RPG v1.02.008 +2 Jailed Cheats [ God & O-HK ] - Free Non-Jailbroken IPA Cheats - iOSGods
      Modded Android APK(s): https://iosgods.com/forum/68-android-section/
      For more fun, check out the Club(s): https://iosgods.com/clubs/
      • 17 replies
    • Merge Clash: Tower Defense v12.4 +4 Jailed Cheats [ Unlimited Currencies ]
      Modded/Hacked App: Merge Clash: Tower Defense By Block Puzzle Games Inc.
      Bundle ID: merge.clash
      iTunes Store Link: https://apps.apple.com/us/app/merge-clash-tower-defense/id1506854108?uo=4


      Hack Features:
      - Unlimited Coins -> Earn or spend some.
      - Unlimited Gems -> Earn or spend some.
      - Unlimited Event Tickets -> Earn or spend some.
      - Battle Pass Purchased


      Jailbreak required hack(s): [Mod Menu Hack] Merge Clash: Tower Defense v12.3 +4 Cheats [ Unlimited Currencies ] - Free Jailbroken Cydia Cheats - iOSGods
      Modded Android APK(s): https://iosgods.com/forum/68-android-section/
      For more fun, check out the Club(s): https://iosgods.com/clubs/
      • 8 replies
×
  • Create New...

Important Information

We would like to place cookies on your device to help make this website better. The website cannot give you the best user experience without cookies. You can accept or decline our cookies. You may also adjust your cookie settings. Privacy Policy - Guidelines