Phasmophobia

Ask about cheats/tables for single player games here
Post Reply
zephirot
Expert Cheater
Expert Cheater
Posts: 72
Joined: Wed Oct 28, 2020 8:48 pm
Reputation: 50

Re: Phasmophobia

Post by zephirot »

PorcelainCobra wrote:
Fri Jan 08, 2021 8:28 pm
Are you able to update to it work with the Beta update from today?
I can check, usually beta have many updates and so it's not great to change all scripts each time..
But I will see! ;)

PorcelainCobra
Noobzor
Noobzor
Posts: 5
Joined: Fri Jan 08, 2021 8:21 pm
Reputation: 0

Re: Phasmophobia

Post by PorcelainCobra »

Much appreciated. Thanks for all your work on this table thus far.

zephirot
Expert Cheater
Expert Cheater
Posts: 72
Joined: Wed Oct 28, 2020 8:48 pm
Reputation: 50

Re: Phasmophobia

Post by zephirot »

PorcelainCobra wrote:
Fri Jan 08, 2021 9:47 pm
Much appreciated. Thanks for all your work on this table thus far.
It's a pleasure.
Please find attached the table (contains both release and beta versions)
Attachments
Phasmophobia_Zv22_Release_and_Beta.CT
(1.3 MiB) Downloaded 149 times

PorcelainCobra
Noobzor
Noobzor
Posts: 5
Joined: Fri Jan 08, 2021 8:21 pm
Reputation: 0

Re: Phasmophobia

Post by PorcelainCobra »

Works great, any plans to add a stronger flashlight?

zephirot
Expert Cheater
Expert Cheater
Posts: 72
Joined: Wed Oct 28, 2020 8:48 pm
Reputation: 50

Re: Phasmophobia

Post by zephirot »

PorcelainCobra wrote:
Sat Jan 09, 2021 4:40 pm
Works great, any plans to add a stronger flashlight?
Something I wanted to do long ago but it doesn't work.
I know that intensity of the flashlight is 0.8, the strong one is 1.0
I know the range, the angle... where to look at in the code
But changing the values has absolutely no impact... :mellow:
Also tried to check the Photon part
So it seems that if we want a better light, only way is to use the Glowstick for now.

Code: Select all

Assembly-CSharp
	PCFlashlight
		static fields
		fields
			18 : headLight (type: UnityEngine.Light)
			20 : pcPropGrab (type: PCPropGrab)
			28 : player (type: Player)
			30 : source (type: UnityEngine.AudioSource)
			38 : view (type: PhotonView)
			40 : isOn (type: System.Boolean)
			48 : inventoryLight (type: UnityEngine.Light)
			50 : isBlinking (type: System.Boolean)
			54 : lightIntensity (type: System.Single)
			58 : blinkTimer (type: System.Single)
		methods
			.ctor ():System.Void
			Awake ():System.Void
			EnableOrDisableLight (_active: bool; _isSwapping: bool):System.Void
			EnableOrDisableLightNetworked (_active: bool; _isSwapping: bool):System.Void
			GrabbedOrDroppedFlashlight (torch: Torch; grabbed: bool):System.Void
			GrabbedOrDroppedFlashlightNetworked (_intensity: single; _range: single; _angle: single):System.Void
			OnTorchUse (context: UnityEngine.InputSystem.InputAction/CallbackContext):System.Void
			TurnBlinkOnOrOff (active: bool):System.Void
			Update ():System.Void

User avatar
Cake-san
Table Makers
Table Makers
Posts: 425
Joined: Sun Mar 26, 2017 4:32 pm
Reputation: 770

Re: Phasmophobia

Post by Cake-san »

Don't know if this will work for anyone though... :sleep:
Improved Flashlight (GrabbedOrReGrabbedFlashlight)

Code: Select all

{$lua}
function getInsForJump(address,registername,destination,allocsize,SharedMemoryName)
  address = getAddressSafe(address)
  if not address then error('getInsForJump address nil') return end
  if not allocsize then allocsize=4096 end
  destination=getAddressSafe(destination)
  if not destination then
	if not SharedMemoryName then destination = allocateMemory(allocsize,address)
	else destination = allocateSharedMemory(SharedMemoryName,allocsize) end
  end
  local size = (address+5-destination>0x7FFFFFFF) and 14 or 5
  if registername then
	unregisterSymbol(registername)
	registerSymbol(registername,destination,true)
  end
  local opcodes = {}
  local i = 0
  while(i<size) do
    local ext, opc=splitDisassembledString(disassemble(address+i))
    opcodes[#opcodes+1] = opc
    i=i+getInstructionSize(address+i)
  end
  local copy = table.concat(opcodes,'\r\n')
  local readAsTable = true
  local byt = readBytes(address,i,readAsTable)
  for j=1,#byt do byt[j] = ('%02X'):format(byt[j]) end
  local bytes = table.concat(byt, ' ')
  return i,copy,bytes,size,destination
end

function enablescript(name,registername,addressname,script,disable)
    local address=getAddress(addressname)
    if disable then script=(script):format(address,registername,readBytes(registername,1))
    else
        local i,copy,bytes,size =getInsForJump(address,name)
        script=(script):format(registername, registername, name, copy, registername, i, bytes, address)..string.rep('nop\n',i-size)..'returnhere:'
    end
    local success,erro=autoAssembleCheck(script)
    if not success then print('\n'..erro..'\n')local scriptstr=createStringlist()scriptstr.Text=script for j=0,scriptstr.Count-1 do print(string.format('%u\t%s',j+1,scriptstr[j])) end
    if not disable then deAlloc(name)unregisterSymbol(name)end error(name..' autoAssemble failed')end
    autoAssemble(script)
    if disable then deAlloc(name)unregisterSymbol(name)unregisterSymbol(registername)end
end

if syntaxcheck then return end
LaunchMonoDataCollector()
[ENABLE]
enablescript('GrabbedOrDroppedFlashlight_alloc','GrabbedOrDroppedFlashlight_save','PCFlashlight.GrabbedOrDroppedFlashlight',[[
label(newmem)
label(returnhere)
label(%s)
registersymbol(%s)

%s:
newmem:
test rdx,rdx
je short @f
mov rax,[rdx+18] //Light myLight
test rax,rax
je short @f
mov rax,[rax+10]
test rax,rax
je short @f
mov rax,[rax+50]
test rax,rax
je short @f
mov [rax+3C],(float)1 //intensity
mov [rax+40],(float)200 //range
mov [rax+4C],(float)170 //spotAngle
@@:
%s
jmp returnhere
%s:
db %X %s
%X:
jmp newmem
]])

[DISABLE]

enablescript('GrabbedOrDroppedFlashlight_alloc','GrabbedOrDroppedFlashlight_save','PCFlashlight.GrabbedOrDroppedFlashlight',[[
%X:
readmem(%s+1,%u)
]],true)
Ctrl+Alt+A to open AA window in CE

PorcelainCobra
Noobzor
Noobzor
Posts: 5
Joined: Fri Jan 08, 2021 8:21 pm
Reputation: 0

Re: Phasmophobia

Post by PorcelainCobra »

zephirot wrote:
Sun Jan 10, 2021 12:30 pm
PorcelainCobra wrote:
Sat Jan 09, 2021 4:40 pm
Works great, any plans to add a stronger flashlight?
Something I wanted to do long ago but it doesn't work.
I know that intensity of the flashlight is 0.8, the strong one is 1.0
I know the range, the angle... where to look at in the code
But changing the values has absolutely no impact... :mellow:
Also tried to check the Photon part
So it seems that if we want a better light, only way is to use the Glowstick for now.

Code: Select all

Assembly-CSharp
	PCFlashlight
		static fields
		fields
			18 : headLight (type: UnityEngine.Light)
			20 : pcPropGrab (type: PCPropGrab)
			28 : player (type: Player)
			30 : source (type: UnityEngine.AudioSource)
			38 : view (type: PhotonView)
			40 : isOn (type: System.Boolean)
			48 : inventoryLight (type: UnityEngine.Light)
			50 : isBlinking (type: System.Boolean)
			54 : lightIntensity (type: System.Single)
			58 : blinkTimer (type: System.Single)
		methods
			.ctor ():System.Void
			Awake ():System.Void
			EnableOrDisableLight (_active: bool; _isSwapping: bool):System.Void
			EnableOrDisableLightNetworked (_active: bool; _isSwapping: bool):System.Void
			GrabbedOrDroppedFlashlight (torch: Torch; grabbed: bool):System.Void
			GrabbedOrDroppedFlashlightNetworked (_intensity: single; _range: single; _angle: single):System.Void
			OnTorchUse (context: UnityEngine.InputSystem.InputAction/CallbackContext):System.Void
			TurnBlinkOnOrOff (active: bool):System.Void
			Update ():System.Void
From looking around, I see that there is a trainer that does this. It states that you need to drop the flashlight and pick it back up for the effect to take place. Perhaps your code works, you just need to drop it and pick it back up?

PorcelainCobra
Noobzor
Noobzor
Posts: 5
Joined: Fri Jan 08, 2021 8:21 pm
Reputation: 0

Re: Phasmophobia

Post by PorcelainCobra »

Cake-san wrote:
Sun Jan 10, 2021 5:06 pm
Don't know if this will work for anyone though... :sleep:
Improved Flashlight (GrabbedOrReGrabbedFlashlight)

Code: Select all

{$lua}
function getInsForJump(address,registername,destination,allocsize,SharedMemoryName)
  address = getAddressSafe(address)
  if not address then error('getInsForJump address nil') return end
  if not allocsize then allocsize=4096 end
  destination=getAddressSafe(destination)
  if not destination then
	if not SharedMemoryName then destination = allocateMemory(allocsize,address)
	else destination = allocateSharedMemory(SharedMemoryName,allocsize) end
  end
  local size = (address+5-destination>0x7FFFFFFF) and 14 or 5
  if registername then
	unregisterSymbol(registername)
	registerSymbol(registername,destination,true)
  end
  local opcodes = {}
  local i = 0
  while(i<size) do
    local ext, opc=splitDisassembledString(disassemble(address+i))
    opcodes[#opcodes+1] = opc
    i=i+getInstructionSize(address+i)
  end
  local copy = table.concat(opcodes,'\r\n')
  local readAsTable = true
  local byt = readBytes(address,i,readAsTable)
  for j=1,#byt do byt[j] = ('%02X'):format(byt[j]) end
  local bytes = table.concat(byt, ' ')
  return i,copy,bytes,size,destination
end

function enablescript(name,registername,addressname,script,disable)
    local address=getAddress(addressname)
    if disable then script=(script):format(address,registername,readBytes(registername,1))
    else
        local i,copy,bytes,size =getInsForJump(address,name)
        script=(script):format(registername, registername, name, copy, registername, i, bytes, address)..string.rep('nop\n',i-size)..'returnhere:'
    end
    local success,erro=autoAssembleCheck(script)
    if not success then print('\n'..erro..'\n')local scriptstr=createStringlist()scriptstr.Text=script for j=0,scriptstr.Count-1 do print(string.format('%u\t%s',j+1,scriptstr[j])) end
    if not disable then deAlloc(name)unregisterSymbol(name)end error(name..' autoAssemble failed')end
    autoAssemble(script)
    if disable then deAlloc(name)unregisterSymbol(name)unregisterSymbol(registername)end
end

if syntaxcheck then return end
LaunchMonoDataCollector()
[ENABLE]
enablescript('GrabbedOrDroppedFlashlight_alloc','GrabbedOrDroppedFlashlight_save','PCFlashlight.GrabbedOrDroppedFlashlight',[[
label(newmem)
label(returnhere)
label(%s)
registersymbol(%s)

%s:
newmem:
test rdx,rdx
je short @f
mov rax,[rdx+18] //Light myLight
test rax,rax
je short @f
mov rax,[rax+10]
test rax,rax
je short @f
mov rax,[rax+50]
test rax,rax
je short @f
mov [rax+3C],(float)1 //intensity
mov [rax+40],(float)200 //range
mov [rax+4C],(float)170 //spotAngle
@@:
%s
jmp returnhere
%s:
db %X %s
%X:
jmp newmem
]])

[DISABLE]

enablescript('GrabbedOrDroppedFlashlight_alloc','GrabbedOrDroppedFlashlight_save','PCFlashlight.GrabbedOrDroppedFlashlight',[[
%X:
readmem(%s+1,%u)
]],true)
Ctrl+Alt+A to open AA window in CE
This Does work when injecting. You do need to drop the flashlight and pick it back up. Thanks!

zephirot
Expert Cheater
Expert Cheater
Posts: 72
Joined: Wed Oct 28, 2020 8:48 pm
Reputation: 50

Re: Phasmophobia

Post by zephirot »

Cake-san wrote:
Sun Jan 10, 2021 5:06 pm
Don't know if this will work for anyone though... :sleep:
Improved Flashlight (GrabbedOrReGrabbedFlashlight)

Code: Select all

{$lua}
function getInsForJump(address,registername,destination,allocsize,SharedMemoryName)
  address = getAddressSafe(address)
  if not address then error('getInsForJump address nil') return end
  if not allocsize then allocsize=4096 end
  destination=getAddressSafe(destination)
  if not destination then
	if not SharedMemoryName then destination = allocateMemory(allocsize,address)
	else destination = allocateSharedMemory(SharedMemoryName,allocsize) end
  end
  local size = (address+5-destination>0x7FFFFFFF) and 14 or 5
  if registername then
	unregisterSymbol(registername)
	registerSymbol(registername,destination,true)
  end
  local opcodes = {}
  local i = 0
  while(i<size) do
    local ext, opc=splitDisassembledString(disassemble(address+i))
    opcodes[#opcodes+1] = opc
    i=i+getInstructionSize(address+i)
  end
  local copy = table.concat(opcodes,'\r\n')
  local readAsTable = true
  local byt = readBytes(address,i,readAsTable)
  for j=1,#byt do byt[j] = ('%02X'):format(byt[j]) end
  local bytes = table.concat(byt, ' ')
  return i,copy,bytes,size,destination
end

function enablescript(name,registername,addressname,script,disable)
    local address=getAddress(addressname)
    if disable then script=(script):format(address,registername,readBytes(registername,1))
    else
        local i,copy,bytes,size =getInsForJump(address,name)
        script=(script):format(registername, registername, name, copy, registername, i, bytes, address)..string.rep('nop\n',i-size)..'returnhere:'
    end
    local success,erro=autoAssembleCheck(script)
    if not success then print('\n'..erro..'\n')local scriptstr=createStringlist()scriptstr.Text=script for j=0,scriptstr.Count-1 do print(string.format('%u\t%s',j+1,scriptstr[j])) end
    if not disable then deAlloc(name)unregisterSymbol(name)end error(name..' autoAssemble failed')end
    autoAssemble(script)
    if disable then deAlloc(name)unregisterSymbol(name)unregisterSymbol(registername)end
end

if syntaxcheck then return end
LaunchMonoDataCollector()
[ENABLE]
enablescript('GrabbedOrDroppedFlashlight_alloc','GrabbedOrDroppedFlashlight_save','PCFlashlight.GrabbedOrDroppedFlashlight',[[
label(newmem)
label(returnhere)
label(%s)
registersymbol(%s)

%s:
newmem:
test rdx,rdx
je short @f
mov rax,[rdx+18] //Light myLight
test rax,rax
je short @f
mov rax,[rax+10]
test rax,rax
je short @f
mov rax,[rax+50]
test rax,rax
je short @f
mov [rax+3C],(float)1 //intensity
mov [rax+40],(float)200 //range
mov [rax+4C],(float)170 //spotAngle
@@:
%s
jmp returnhere
%s:
db %X %s
%X:
jmp newmem
]])

[DISABLE]

enablescript('GrabbedOrDroppedFlashlight_alloc','GrabbedOrDroppedFlashlight_save','PCFlashlight.GrabbedOrDroppedFlashlight',[[
%X:
readmem(%s+1,%u)
]],true)
Ctrl+Alt+A to open AA window in CE
Oh very nice!
I was digging in PCFlashlight.GrabbedOrDroppedFlashlightNetworked because of the 3 arguments but maybe PCFlashlight.GrabbedOrDroppedFlashlight was the key.
Thanks for this precious code, many good things in there!

Edit:
Table updated for beta 0.23
- Professional difficulty : added a script (activate before joining maps) to turn on the fusebox as before from the beginning

I'm editing the table for 0.24.1 and later, it will take time, maybe for this weekend!
Analyzing all previous tables and bytes and changing all scripts with also aob to avoid updating them in the future (if no big change of course)
- New table complete
Testing the table on 3 versions of the game (release and beta) to see if everything is ok before uploading here
- Changing again few things..
Table ready
Attachments
Phasmophobia_Zv28_Release_and_Beta0.23.CT
(270.38 KiB) Downloaded 46 times
Last edited by zephirot on Sat Jan 16, 2021 5:17 pm, edited 1 time in total.

zephirot
Expert Cheater
Expert Cheater
Posts: 72
Joined: Wed Oct 28, 2020 8:48 pm
Reputation: 50

Re: Phasmophobia

Post by zephirot »

Alright, final table ready!

Because of some offsets for the player and ghost (difference release/beta), still have to separate the scripts.
Otherwise, most of them are working in both versions.

If you have problems, don't hesitate to give a feedback.
"Normally", shouldn't be necessary to update the table if no big changes like offsets or new things.

Note: Sometimes, Mono is not correctly activated, if you can't run a script, go in top menu "Mono" then "Activate mono features"

Beta has been updated to 0.25 and the table is still working, good news, seems it's working well! :)
- Just a little update to v5, I forgot to put the Setup Phase script back for the truck timer!
- Also added a script to turn on all lights from start.

Changes in beta 0.25.1 broke some scripts..
Updated to v6
V7.1 minor update (fixed Salt)

Many fixes in V8 because of Beta 0.25.8.1
Fixed - Fusebox will start ON on Professional
Fixed - Evidence controller
Fixed - Player Info
Fixed - Immortal
Fixed - Ghost info (new offsets)
Fixed - Show ghost
Fixed - FuseBox/Light info
Fixed - No flickering lights during hunting phase
Fixed - Setup Phase Info
Removed - Start map with all lights ON (code has changed, not possible to do the same for now...)


Edit: Offsets are a bit different in new beta version for the Player.
Coming in V8.1:
Fixed - Crosshair color
Fixed - Player Info
Fixed - Sanity
Fixed - Show Ghost
Have fun!

New beta update, new problems lol
Seems the SyncGrab method for the Glowstick is not there anymore, will have to find how to modify the light again...
In the meantime, will fix the salt, change an offset in player info and an other script not working.
Glowstick working again!
A bit different than before tho...
Have to activate the script before turning ON the glowstick to hook the light (because no more grab/ungrab)
While waiting to have better.. can use this way..
V9:
Fixed - Player Info (offset)
Fixed - Show Ghost
Fixed - Glowstick (can edit intensity and range)
Fixed - Salt
Fixed - Flickering lights


Small update in V9.1
- Fixed Immortal script in Player Info (No death)
- Fixed Infinite Salt
Attachments
Phasmophobia_Release_and_Beta_AOB_v9.1.CT
(266.51 KiB) Downloaded 46 times
Phasmophobia_Release_and_Beta_AOB_v9.CT
(257.39 KiB) Downloaded 41 times
Phasmophobia_Release_and_Beta_AOB_v8.1.CT
(497.46 KiB) Downloaded 37 times
Phasmophobia_Release_and_Beta_AOB_v8.CT
(408.72 KiB) Downloaded 38 times

lee_terry_jr
Expert Cheater
Expert Cheater
Posts: 103
Joined: Wed Oct 11, 2017 8:35 am
Reputation: 4

Re: Phasmophobia

Post by lee_terry_jr »

Seemed to be having issues with the ghost info for me on the stable version. Worked fine when I first tried it a few days ago but these past 2 days it has stopped working (has a message saying something like error while scanning for aob's ghostinfo not all results found. However, I was able to get it working again by using the ghost info that was meant for the beta version. Not sure if the beta version still uses that same ghost info but if so that means the easy fix is to move ghost info to the section meant for any version of the game or just copy/paste it so they are both the same if you prefer. All other cheats I tried seem to work fine tho. EDIT/Update: The better torch (aka flashlight) cheat from the beta section is also working in the release version for those who are interested. I will let you know if I find any others.

milangree
What is cheating?
What is cheating?
Posts: 3
Joined: Sat Mar 06, 2021 8:13 am
Reputation: 0

Re: Phasmophobia

Post by milangree »

Okichobi wrote:
Thu Sep 24, 2020 3:01 am
Only two main things I'm trying to tweak with Money and Player Level/Experience, is anyone else having any luck at all?
Cheat:
1.Level
2.Money

100 EXP = 1 Lv

img:
Image
Image

CT:
Attachments
Phasmophobia 0.2.CT
(1.01 KiB) Downloaded 42 times

jigglypuff
What is cheating?
What is cheating?
Posts: 4
Joined: Sat Mar 06, 2021 7:39 pm
Reputation: 0

Re: Phasmophobia

Post by jigglypuff »

Hey Zephirot, new update came for live server. can you help?

Image
zephirot wrote:
Sat Jan 16, 2021 5:12 pm
Alright, final table ready!

Because of some offsets for the player and ghost (difference release/beta), still have to separate the scripts.
Otherwise, most of them are working in both versions.

If you have problems, don't hesitate to give a feedback.
"Normally", shouldn't be necessary to update the table if no big changes like offsets or new things.

Note: Sometimes, Mono is not correctly activated, if you can't run a script, go in top menu "Mono" then "Activate mono features"

Beta has been updated to 0.25 and the table is still working, good news, seems it's working well! :)
- Just a little update to v5, I forgot to put the Setup Phase script back for the truck timer!
- Also added a script to turn on all lights from start.

Changes in beta 0.25.1 broke some scripts..
Updated to v6
V7.1 minor update (fixed Salt)

Many fixes in V8 because of Beta 0.25.8.1
Fixed - Fusebox will start ON on Professional
Fixed - Evidence controller
Fixed - Player Info
Fixed - Immortal
Fixed - Ghost info (new offsets)
Fixed - Show ghost
Fixed - FuseBox/Light info
Fixed - No flickering lights during hunting phase
Fixed - Setup Phase Info
Removed - Start map with all lights ON (code has changed, not possible to do the same for now...)


Edit: Offsets are a bit different in new beta version for the Player.
Coming in V8.1:
Fixed - Crosshair color
Fixed - Player Info
Fixed - Sanity
Fixed - Show Ghost
Have fun!

New beta update, new problems lol
Seems the SyncGrab method for the Glowstick is not there anymore, will have to find how to modify the light again...
In the meantime, will fix the salt, change an offset in player info and an other script not working.
Glowstick working again!
A bit different than before tho...
Have to activate the script before turning ON the glowstick to hook the light (because no more grab/ungrab)
While waiting to have better.. can use this way..
V9:
Fixed - Player Info (offset)
Fixed - Show Ghost
Fixed - Glowstick (can edit intensity and range)
Fixed - Salt
Fixed - Flickering lights


Small update in V9.1
- Fixed Immortal script in Player Info (No death)
- Fixed Infinite Salt

lee_terry_jr
Expert Cheater
Expert Cheater
Posts: 103
Joined: Wed Oct 11, 2017 8:35 am
Reputation: 4

Re: Phasmophobia

Post by lee_terry_jr »

jigglypuff wrote:
Sat Mar 06, 2021 7:43 pm
Hey Zephirot, new update came for live server. can you help?

Image
A lot of the options in the older one still work if you only use the section for the beta and the 1 for any version (ignoring the section for the stable release cheats) but some do not or are bugged.
The player inventory/lvl hack works and the ghost stats hack mostly works (no longer shows what room the ghost is in but everything else still works). So far that is all the ones I have tried tho

zephirot
Expert Cheater
Expert Cheater
Posts: 72
Joined: Wed Oct 28, 2020 8:48 pm
Reputation: 50

Re: Phasmophobia

Post by zephirot »

Hey there, I will update the stable version soon.
But indeed, as the new version is from beta, mostly all beta scripts are working but I will clean a bit and update some of them.

Table updated!
Attachments
Phasmophobia_Release_and_Beta_v10.0.CT
(407.37 KiB) Downloaded 44 times

Post Reply

Who is online

Users browsing this forum: freet1mma, genoazn, Jullusch, SemrushBot, tamasu