🚀 BallisticNG v1.3.1 gameplay using cheats

in Hive Gaming • 2 years ago

Hello! This posts shows the game BallisticNG v1.3.1 hacked with cheats created thru the program Cheat Engine 7.5.

Sample video

In this sample video I show 5 non-playable ships which can be unlocked (replacing a playable one) running in 5 different tracks.

About cheats

Activating cheats using the following hotkeys:

  • Instant random weapon (On "PgUp"/Off "PgDown").
  • Auto-pilot (On "Num1"/Off "Num0").
  • Auto-pilot speed; Hold speed increase (On "Num3"/Off "Num2").
  • Shield (On "Num5"/Off "Num4").
  • Change player name.

An important note: All cheats which are scripts are available from the first time its respective custom race began.

Also, it comes with a cheat table Lua script:

As you can see, the buttons from upside are for let the ship use always use the same weapon. This is necesary since the weapons are chosen with indexes, but these are relative.

There are many "??"s because the cheat table is not attached to any process.
"Choose next weapon (blue pointers should be built correctly):" cheat must be activated to give the indexes using its below pointer address's value.

And how can I know which weapon the index belongs to?
Easy, using the index in another pointer which leads to the weapon name:
readString(ReadQword(ReadQword(ReadQword(ReadQword(ReadQword(ReadQword(ReadQword(ReadQword(getAddress("UnityPlayer.dll")+0x01A50000)+0x30)+0x0)+0x158)+0x258)+0x10)+X*0x8+0x20)+0x10)+0x14,64,true)
Where "X" is the weapon index. The code uses many predefined functions by CheatEngine (see "https://wiki.cheatengine.org/index.php?title=Lua" for more info about it).

To let player select a specific weapon (eg. "rockets"), we execute the following function when click in "rockets" button in Lua script:

1 function ChooseWeapon0()
2 for X=0x1,0x400 do
3 if readString(ReadQword(ReadQword(ReadQword(ReadQword(ReadQword(ReadQword(ReadQword(ReadQword(getAddress("UnityPlayer.dll")+0x01A50000)+0x30)+0x0)+0x158)+0x258)+0x10)+X*0x8+0x20)+0x10)+0x14,64,true) == "rockets" then
4 WriteQword(getAddress("UnityPlayer.dll")+0x01A50008,X)
5 break
6 end
7 end
8 end

It's a small piece of the Lua script source code I wrote.

The function ChooseWeapon0() looks on all the indexes from 0x1 to 0x400 to check if the pointer readString(ReadQword(ReadQword(ReadQword(ReadQword(ReadQword(ReadQword(ReadQword(ReadQword(getAddress ("UnityPlayer.dll")+0x01A50000)+0x30)+0x0)+0x158)+0x258)+0x10)+X*0x8+0x20)+0x10)+0x14,64,true) points to the string "rockets" (in other words, it searches for the index which lets the player pick the weapon "rockets"). If it finds one (line 3) then it stores the index in the address mentioned in line 4, and stops searching (expressed in line 5 with the instruction break).
On the line 4 I use a static address which is not being used by any instruction in the game, this is for let the cheat "Choose next weapon (b..." work fine:

And as for unlocking ships, it's very easy. Just wait the game to load fully, and after, in main menu, you can click on any of the non-playable ships you want to use.
If this is the first time you use any of the mentioned toggleboxes (buttons which can be checked/unchecked) it will take a while (some seconds) to be activated, because CheatEngine scans where the directory of original ship to be replaced is located. But after it's found, it stores its address in a variable, so you can reactivate it instantly (unless you restart CheatEngine or BallisticNG).

Downloads

You can download the cheat table here.

Sort:  

Congratulations @aristak! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You received more than 1250 upvotes.
Your next target is to reach 1500 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out our last posts:

Hive Power Up Day - June 1st 2023