Page 1 of 1
[REQUEST] Beat Blast
Posted: Thu Nov 04, 2021 1:11 am
by Qwark909
Game Name: Beat Blast
Game Engine: Unity
I just want to be able to edit the bits(currency). Tried it myself, but it either doesnt stick or crashes. Been looking everywhere for some sort of CT or trainer for it, but it looks like it doesnt exist yet. Super fun little rhythm game. Would love some help
Heres a link
Re: [REQUEST] Beat Blast
Posted: Thu Nov 04, 2021 6:20 pm
by Qwark909
+1
Re: [REQUEST] Beat Blast
Posted: Mon Nov 08, 2021 11:16 pm
by Qwark909
+1
Re: [REQUEST] Beat Blast
Posted: Tue Nov 09, 2021 1:04 am
by LeFiXER
I released a table for this
here
Re: [REQUEST] Beat Blast
Posted: Tue Nov 09, 2021 2:23 am
by Qwark909
LeFiXER wrote: ↑Tue Nov 09, 2021 1:04 am
I released a table for this
here
Thank you LeFIXER. It doesnt work, but thank you for trying
Re: [REQUEST] Beat Blast
Posted: Tue Nov 09, 2021 4:54 am
by Cake-san
Here... Add Currency & Invincible & isDebugBuild
If dev doesn't remove DeveloperHotkeys in current release you can use "shift+k to add note" & "shift+h to add hp" while script is activated.
copy/paste the script directly into CE addresslist part
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>0</ID>
<Description>"Add Currency & Invincible & isDebugBuild"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{$lua}
function findAddress(Symbol,number,Address,size)
Address=getAddressSafe(Address)
if not size then size=0x200 end
local addr,i,j={},0,1
while(i<size) do
local ext, opc, byt, add=splitDisassembledString(disassemble(Address+i))
if ext~="" then
if(opc:find(",")~=nil)then opc=opc:sub(opc:find(",")+1,opc:len())
else opc=opc:sub(opc:find(" ")+1,opc:len())end
if tonumber(opc:gsub("%[",""):gsub("]",""),16)then addr[j]=opc:gsub("%[",""):gsub("]","") j=j+1 end
end
if opc:find('],') then
opc=opc:sub(opc:find("%[")+1,opc:find("]")-1)
if tonumber(opc,16) then addr[j]=opc j=j+1 end
end
i=i+getInstructionSize(Address+i)
end
if number<=0 then return addr end
unregisterSymbol(Symbol)
registerSymbol(Symbol,getAddressSafe(addr[number]),true)
end
function U_SymbolLookupCallback(symbol)
if not U_Member then
U_Member={}
local asm,result,fields=mono_enumAssemblies()
for i=1,#asm do
result=mono_image_enumClasses(mono_getImageFromAssembly(asm[i]))
for j=1,#result do
if string.find(result[j].classname,'PlayerCharacter')then
for j=1,#result do
fields=mono_class_enumFields(result[j].class, true)
for k=1,#fields do
U_Member[(result[j].classname..'.'..fields[k].name):lower()]=fields[k].offset
--print(fields[k].offset..':'..result[j].classname..'.'..fields[k].name)
end
end
goto done
end
end
end
::done::
end
return U_Member[symbol:lower()]
end
if syntaxcheck then return end
LaunchMonoDataCollector()
[ENABLE]
if not U_SymbolLookupCallbackID then U_SymbolLookupCallbackID=registerSymbolLookupCallback(U_SymbolLookupCallback,slNotSymbol)end
if not readPointer(readPointer('GlobalVars')) then findAddress('GlobalVars',1,'GlobalVars:Awake')
else mono_invoke_method(mono_enumDomains()[1],mono_findMethod('', 'GlobalVars', 'CollectCurrency'), readPointer('GlobalVars'),{{value=999,type=vtDword}})end
if not readPointer(readPointer('PlayerCharacter')) then findAddress('PlayerCharacter',1,'PlayerCharacter:Awake')
else writeBytes(getAddress('[PlayerCharacter]+PlayerCharacter.invincible'),1) end
writeBytes('UnityEngine:Debug:get_isDebugBuild',0xB0,0x01,0xC3)
[DISABLE]
writeBytes('UnityEngine:Debug:get_isDebugBuild',0x55,0x48,0x8B)
if readPointer(readPointer('PlayerCharacter')) then writeBytes(getAddress('[PlayerCharacter]+PlayerCharacter.invincible'),0)end
unregisterSymbolLookupCallback(U_SymbolLookupCallbackID)
U_SymbolLookupCallbackID=nil
miMonoActivateClick(sender)
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
Re: [REQUEST] Beat Blast
Posted: Tue Nov 09, 2021 9:35 am
by LeFiXER
Qwark909 wrote: ↑Tue Nov 09, 2021 2:23 am
Thank you LeFIXER. It doesnt work, but thank you for trying
It would be helpful if you said what exactly doesn't work. If you right-click on the entries within the table there may/may not be an error at the top of the popup menu, if so, tell me what it is.
Re: [REQUEST] Beat Blast
Posted: Tue Nov 09, 2021 8:33 pm
by Qwark909
Hey FIXER I managed to get it working. Turns out I had to activate mono features which was off by default and they started working! Thank you!
LeFiXER wrote: ↑Tue Nov 09, 2021 9:35 am
Qwark909 wrote: ↑Tue Nov 09, 2021 2:23 am
Thank you LeFIXER. It doesnt work, but thank you for trying
It would be helpful if you said what exactly doesn't work. If you right-click on the entries within the table there may/may not be an error at the top of the popup menu, if so, tell me what it is.
Re: [REQUEST] Beat Blast
Posted: Wed Nov 10, 2021 1:58 am
by LeFiXER
Qwark909 wrote: ↑Tue Nov 09, 2021 8:33 pm
Hey FIXER I managed to get it working. Turns out I had to activate mono features which was off by default and they started working! Thank you!
Glad to hear it. Please show your support by rating the initial post.
Re: [REQUEST] Beat Blast
Posted: Fri May 20, 2022 6:21 pm
by 2xTialos
Cake-san wrote: ↑Tue Nov 09, 2021 4:54 am
Here... Add Currency & Invincible & isDebugBuild
If dev doesn't remove DeveloperHotkeys in current release you can use "shift+k to add note" & "shift+h to add hp" while script is activated.
copy/paste the script directly into CE addresslist part
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>0</ID>
<Description>"Add Currency & Invincible & isDebugBuild"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{$lua}
function findAddress(Symbol,number,Address,size)
Address=getAddressSafe(Address)
if not size then size=0x200 end
local addr,i,j={},0,1
while(i<size) do
local ext, opc, byt, add=splitDisassembledString(disassemble(Address+i))
if ext~="" then
if(opc:find(",")~=nil)then opc=opc:sub(opc:find(",")+1,opc:len())
else opc=opc:sub(opc:find(" ")+1,opc:len())end
if tonumber(opc:gsub("%[",""):gsub("]",""),16)then addr[j]=opc:gsub("%[",""):gsub("]","") j=j+1 end
end
if opc:find('],') then
opc=opc:sub(opc:find("%[")+1,opc:find("]")-1)
if tonumber(opc,16) then addr[j]=opc j=j+1 end
end
i=i+getInstructionSize(Address+i)
end
if number<=0 then return addr end
unregisterSymbol(Symbol)
registerSymbol(Symbol,getAddressSafe(addr[number]),true)
end
function U_SymbolLookupCallback(symbol)
if not U_Member then
U_Member={}
local asm,result,fields=mono_enumAssemblies()
for i=1,#asm do
result=mono_image_enumClasses(mono_getImageFromAssembly(asm[i]))
for j=1,#result do
if string.find(result[j].classname,'PlayerCharacter')then
for j=1,#result do
fields=mono_class_enumFields(result[j].class, true)
for k=1,#fields do
U_Member[(result[j].classname..'.'..fields[k].name):lower()]=fields[k].offset
--print(fields[k].offset..':'..result[j].classname..'.'..fields[k].name)
end
end
goto done
end
end
end
::done::
end
return U_Member[symbol:lower()]
end
if syntaxcheck then return end
LaunchMonoDataCollector()
[ENABLE]
if not U_SymbolLookupCallbackID then U_SymbolLookupCallbackID=registerSymbolLookupCallback(U_SymbolLookupCallback,slNotSymbol)end
if not readPointer(readPointer('GlobalVars')) then findAddress('GlobalVars',1,'GlobalVars:Awake')
else mono_invoke_method(mono_enumDomains()[1],mono_findMethod('', 'GlobalVars', 'CollectCurrency'), readPointer('GlobalVars'),{{value=999,type=vtDword}})end
if not readPointer(readPointer('PlayerCharacter')) then findAddress('PlayerCharacter',1,'PlayerCharacter:Awake')
else writeBytes(getAddress('[PlayerCharacter]+PlayerCharacter.invincible'),1) end
writeBytes('UnityEngine:Debug:get_isDebugBuild',0xB0,0x01,0xC3)
[DISABLE]
writeBytes('UnityEngine:Debug:get_isDebugBuild',0x55,0x48,0x8B)
if readPointer(readPointer('PlayerCharacter')) then writeBytes(getAddress('[PlayerCharacter]+PlayerCharacter.invincible'),0)end
unregisterSymbolLookupCallback(U_SymbolLookupCallbackID)
U_SymbolLookupCallbackID=nil
miMonoActivateClick(sender)
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
Hi, I'm new to using CE, and do not know what you mean by "copy/paste the script directly into CE addresslist part". I've tried googling it and following those directions, but that did not provide anything.
Re: [REQUEST] Beat Blast
Posted: Fri May 20, 2022 8:06 pm
by LeFiXER
2xTialos wrote: ↑Fri May 20, 2022 6:21 pm
Hi, I'm new to using CE, and do not know what you mean by "copy/paste the script directly into CE addresslist part". I've tried googling it and following those directions, but that did not provide anything.
Copy what Cake-san posted then right-click the lower half of the Cheat Engine window (the white area) and select Paste. Searching Google would not have helped anymore than reading the initial post as the instructions were there.