Finding movement speed
Finding movement speed
What is the easiest way to determine movement speed in a game? I am making a table for Vigil: The Longest Night, but I can't find the movement speed. The game engine is Unity, but there is nothing to indicate that. There is an item in the game that increases movement speed, but I can't find the increased value.
Re: Finding movement speed
Hero::xSpeedScale float val (default) 1
Litus.Physic.PhysicObj:doMoveX+4d - D9 5F 64 - fstp dword ptr [edi+64]
Litus.Physic.PhysicObj:doMoveX+4d - D9 5F 64 - fstp dword ptr [edi+64]
Last edited by MBRKiNG on Thu Feb 20, 2025 11:27 am, edited 1 time in total.
Re: Finding movement speed
Checked out the game. Speed is held in Litus.Physic.PhysicObj. Specifically at Litus.Physic.PhysicObj:doMoveX, which is shared with all other entities.patka wrote: ↑Thu Feb 20, 2025 10:21 amWhat is the easiest way to determine movement speed in a game? I am making a table for Vigil: The Longest Night, but I can't find the movement speed. The game engine is Unity, but there is nothing to indicate that. There is an item in the game that increases movement speed, but I can't find the increased value.
So, if you go to Night.Hero:isStandOrIdle or any method constantly accessing Night.Hero, and write a value to xSpeedScale, you're good to go.
Working script that only affects the Player.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>4</ID>
<Description>"Enable Movement Modifier"</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>
[ENABLE]
//Send@FearlessRevolution
aobscanregion(hero_movement,Night.Hero:isStandOrIdle,Night.Hero:isStandOrIdle+24,8B 45 08 8B 80 80 01 00 00 8B 0D)
alloc(newmem,$1000)
registersymbol(speedscale)
label(code return speedscale)
newmem:
push ecx
mov ecx,[speedscale]
mov [eax+64],ecx
code:
pop ecx
mov eax,[ebp+08]
mov eax,[eax+00000180]
jmp return
speedscale:
dd (float)2
hero_movement:
jmp newmem
nop 4
return:
registersymbol(hero_movement)
[DISABLE]
hero_movement:
db 8B 45 08 8B 80 80 01 00 00
unregistersymbol(*)
dealloc(*)
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>5</ID>
<Description>"Set Hero Speed"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Float</VariableType>
<Address>speedscale</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
Last edited by Send on Thu Mar 06, 2025 12:25 pm, edited 1 time in total.
Re: Finding movement speed
Sorry ,but i don't really understand this part. I'm quite new at this. I'll figure it out somehow, I don't want to bother anybody about it.
Re: Finding movement speed
try this one
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>105191</ID>
<Description>"xSpeedScale"</Description>
<Options moHideChildren="1"/>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>define(address,Litus.Physic.PhysicObj:work+1b4 )
define(bytes,D9 00 D9 43 50)
[ENABLE]
assert(address,bytes)
alloc(newmem,$1000)
label(mSpeed)
label(code)
label(return)
registersymbol(mSpeed)
newmem:
code:
fld dword ptr [eax]
fld dword ptr [ebx+50]
movss xmm7,[mSpeed]
movss [ebx+64],xmm7
jmp return
mSpeed:
dq (float)1
address:
jmp newmem
return:
[DISABLE]
address:
db bytes
dealloc(*)
unregistersymbol(*)
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>105192</ID>
<Description>"Current Speed"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Float</VariableType>
<Address>mSpeed</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
Re: Finding movement speed
Thank you very much. It works perfectly!MBRKiNG wrote: ↑Thu Feb 20, 2025 11:58 am
try this one
Code: Select all
<?xml version="1.0" encoding="utf-8"?> <CheatTable> <CheatEntries> <CheatEntry> <ID>105191</ID> <Description>"xSpeedScale"</Description> <Options moHideChildren="1"/> <LastState/> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>define(address,Litus.Physic.PhysicObj:work+1b4 ) define(bytes,D9 00 D9 43 50) [ENABLE] assert(address,bytes) alloc(newmem,$1000) label(mSpeed) label(code) label(return) registersymbol(mSpeed) newmem: code: fld dword ptr [eax] fld dword ptr [ebx+50] movss xmm7,[mSpeed] movss [ebx+64],xmm7 jmp return mSpeed: dq (float)1 address: jmp newmem return: [DISABLE] address: db bytes dealloc(*) unregistersymbol(*) </AssemblerScript> <CheatEntries> <CheatEntry> <ID>105192</ID> <Description>"Current Speed"</Description> <ShowAsSigned>0</ShowAsSigned> <VariableType>Float</VariableType> <Address>mSpeed</Address> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatTable>
Re: Finding movement speed
Can this also be done by jumping and air dash? There is one for 'bRefreshDoubleJump' and 'bRefreshAirDash'. It defaults to 1, if I double jump it will be 0. I cannot freeze this either, because it does not work
Re: Finding movement speed
Game use Unity Engine! You can try Search Class or Methode example movement or speed

Who is online
Users browsing this forum: No registered users