Page 4 of 19

Re: Phasmophobia

Posted: Wed Oct 07, 2020 11:02 pm
by bigdonk
Infane wrote:
Tue Oct 06, 2020 10:34 pm
bigdonk wrote:
Tue Oct 06, 2020 9:03 pm
Infane wrote:
Tue Oct 06, 2020 10:23 am
I managed to level myself up and use greenhouses script.
For leveling up i did it manually, search value, go into game and do 1 objective, leave, re scan and i was able to level myself up higher.
This is an example of level value;
Level 3, 33xp till level up.
Value - 367

Level 3 - 300
33 xp to level 4.
400 - 33 = 367

this is indeed on 0.174 and on steam.
Sorry, Im confused. What do you mean search value?
I aint no pro, but ill try explain it better.
My character is level 3, 42 xp away from 4.
Level 4 - 400
400-42 = 358

Attach cheat engine to phasmophobia.
Select Value Type: 4 Bits
Select Scan Type: Exact Value
Your first scan will be 358.
Your "Next Scan" will be your level after 1 objective. (10 xp away from 4 - 390)
Hopefully by now, you'll have 1 result, then you can add it to the table below.
Change it to what level you want (30000 - Level 30)
Enter the play menu and back out, and your level will change.
Didn't work for me. Still confused lmao

Re: Phasmophobia

Posted: Sat Oct 10, 2020 1:24 pm
by Distoibed
viewtopic.php?f=5&t=14010
guess we can close this thread?

Re: Phasmophobia

Posted: Sat Oct 10, 2020 8:39 pm
by HollowSavant
This is how the anticheat is coded:

// AntiCheatSystem
// Token: 0x06000952 RID: 2386
public static void CheckPlayerMoney(int value)
{
if (value > 250000000)
{
FileBasedPrefs.SetInt("PlayersMoney", 1000000);
}
}


Use Dn spy or another tool to edit the anti cheat values in your favor.

Re: Phasmophobia

Posted: Sun Oct 11, 2020 4:24 am
by Wombleinc
Is there a way to identify the ghost your looking for. I'd assume that the string would populate somewhere.

Re: Phasmophobia

Posted: Thu Oct 15, 2020 10:14 pm
by John_Dong
Here's a Python implementation of the save system I wrote:
[Link]
Run the script then modify saveData.json and then run it again and it will apply it, I wrote a basic mod in there for items and experience, modify it to your liking.

Save is stored in:

Code: Select all

C:\Users\(username)\AppData\LocalLow\Kinetic Games\Phasmophobia\saveData.txt

Re: Phasmophobia

Posted: Thu Oct 22, 2020 2:09 am
by SaucyJack
So after doing couple of search tests, I found that the activity level is a float, level*50 (level 1 = 50, level 5 = 250, etc.)

There's a lag to the values; there are some floats that change immediately, there are some floats that change a second or two later. If you search for 50 three or four seconds into flat level 1 activity, then for 0 three to four seconds into flat level 0 activity, sooner or later you should find them all.

HOWEVER, setting/freezing them at 500, while it DOES show level 10 activity on the acitivity monitor, doesn't seem to affect actual ghost activity, and the monitor level keeps blipping down to its actual value. I tried to find a pointer for the float addresses, but couldn't. Tried to find possible 4byte or double values using increase/decrease value searches, but couldn't.

UPDATE: those multiple values turned out to be simply "this spot on the activity monitor is this value" - the reason why some values changed a few seconds later is because those values reflect later points on the activity monitor.

UPDATE 2: Tried to find values for the amateur/intermediate setup phase timer, starting with unknown 4byte/float/double values and then using both increase and decrease value search methods. Got some hits with 4byte starting with low value (start search between 5 and 60) and then using increasing value searches after that, but freezing them did nothing.

Re: Phasmophobia

Posted: Sun Oct 25, 2020 10:28 pm
by ShaRose
Wombleinc wrote:
Sun Oct 11, 2020 4:24 am
Is there a way to identify the ghost your looking for. I'd assume that the string would populate somewhere.
It's actually just an enum, so nope.

I've been (ab)using the mono lua api to find as much as I can, so while I have code to get it (currently, I just make it speak the type) it's fairly big. Also trying to figure out how to get mono_getStaticFieldValue working in Cheat Engine 7.2, so that the same table still works on the betas (It's already generic enough so that it can survive on older versions of the game, it's just that the beta uses IL2CPP which means mono_class_getStaticFieldAddress doesn't work).

Right now, I have run / walk speed, speak ghost type / name / state / name, go insane, fix insane, disable fusebox trips (so you can turn on ALL the lights), use fusebox (So if it turns it on you can turn it on remotely), and annoy-o-tron 6000 (Causes the ghost to flip out via causing it to fire PhraseListenerController.Answer, GhostActivity.Interact, and GhostActivity.GhostAbility 10 times a second: which leads to items getting flung about, lights to flicker constantly, and activity in general to spike. Interestingly, stops hunts!)

Re: Phasmophobia

Posted: Thu Oct 29, 2020 10:04 am
by ODimm
ShaRose wrote:
Sun Oct 25, 2020 10:28 pm
Wombleinc wrote:
Sun Oct 11, 2020 4:24 am
Is there a way to identify the ghost your looking for. I'd assume that the string would populate somewhere.
It's actually just an enum, so nope.
@ShaRose
ehhh what are you talking? :shock:
enum = a fixed Integer ID
and this game uses a enum struct...its not that hard ...

ghostAI->ghostInfo->ghostTraits->ghostType

here a sample table - for normal version - not beta -
it shows:
-
Type
Name
Age
Favourite Room
-

i could also add the current ghost location but im to lazy ... it annoys me when people say "its not possible" ...
current ghost location : levelController->currentGhostRoom
the levelController has a Instance that you can get from a lots of spots, as example Player:Update(), the instance is a 8 Byte address.
or you can attach mono stuff to get the static fields.


Edit:
Game just updated - its now obfuscated...
i've still updated my sample table to get the Type,Name,Age und Fav. Room...

Re: Phasmophobia

Posted: Sat Oct 31, 2020 10:43 pm
by yamisakura
ODimm wrote:
Thu Oct 29, 2020 10:04 am
ShaRose wrote:
Sun Oct 25, 2020 10:28 pm
Wombleinc wrote:
Sun Oct 11, 2020 4:24 am
Is there a way to identify the ghost your looking for. I'd assume that the string would populate somewhere.
It's actually just an enum, so nope.
@ShaRose
ehhh what are you talking? :shock:
enum = a fixed Integer ID
and this game uses a enum struct...its not that hard ...

ghostAI->ghostInfo->ghostTraits->ghostType

here a sample table - for normal version - not beta -
it shows:
-
Type
Name
Age
Favourite Room
-

i could also add the current ghost location but im to lazy ... it annoys me when people say "its not possible" ...
current ghost location : levelController->currentGhostRoom
the levelController has a Instance that you can get from a lots of spots, as example Player:Update(), the instance is a 8 Byte address.
or you can attach mono stuff to get the static fields.


Edit:
Game just updated - its now obfuscated...
i've still updated my sample table to get the Type,Name,Age und Fav. Room...
update plz ...

Re: Phasmophobia

Posted: Sun Nov 01, 2020 2:32 am
by Henrietta
GreenHouse wrote:
Fri Oct 02, 2020 6:57 pm
It didn't get fixed, it's just that a register did change. Try this script, it works at least in the version 0.173:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>1</ID>
      <Description>"Free Store"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end
if process and readInteger(process) ~= 0 then
    mono_initialize()
    LaunchMonoDataCollector()
else
    local msg = 'No process detected.'
    print(msg)
    error(msg)
end
{$asm}
aobscanregion(get_Price,StoreManager:BuyButton,StoreManager:BuyButton+150,48 63 49 48)
aobscanregion(get_PriceSub,StoreManager:BuyButton,StoreManager:BuyButton+150,2B D0)
registersymbol(get_Price)
registersymbol(get_PriceSub)

get_Price:
db 48 31 C9 90

get_PriceSub:
db 90 90

[DISABLE]
get_Price:
db 48 63 49 48

get_PriceSub:
db 2B D0

unregistersymbol(get_Price)
unregistersymbol(get_PriceSub)
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
I tried the script but I am unable to enable it after pasting into Cheat Engine. May I ask if they changed the registry again making it outdated? Thanks.

Re: Phasmophobia

Posted: Sun Nov 01, 2020 3:50 am
by cdtrico
ODimm wrote:
Thu Oct 29, 2020 10:04 am
ShaRose wrote:
Sun Oct 25, 2020 10:28 pm
Wombleinc wrote:
Sun Oct 11, 2020 4:24 am
Is there a way to identify the ghost your looking for. I'd assume that the string would populate somewhere.
It's actually just an enum, so nope.
@ShaRose
ehhh what are you talking? :shock:
enum = a fixed Integer ID
and this game uses a enum struct...its not that hard ...

ghostAI->ghostInfo->ghostTraits->ghostType

here a sample table - for normal version - not beta -
it shows:
-
Type
Name
Age
Favourite Room
-

i could also add the current ghost location but im to lazy ... it annoys me when people say "its not possible" ...
current ghost location : levelController->currentGhostRoom
the levelController has a Instance that you can get from a lots of spots, as example Player:Update(), the instance is a 8 Byte address.
or you can attach mono stuff to get the static fields.


Edit:
Game just updated - its now obfuscated...
i've still updated my sample table to get the Type,Name,Age und Fav. Room...
This script is great, but after the update it doesn't work anymore and I'm a pleb who can't even update scripts :oops:

Re: Phasmophobia

Posted: Mon Nov 02, 2020 12:24 am
by GreenHouse
Henrietta wrote:
Sun Nov 01, 2020 2:32 am
I tried the script but I am unable to enable it after pasting into Cheat Engine. May I ask if they changed the registry again making it outdated? Thanks.
Just as a warning, this will only work on the version v0.176.28.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>3</ID>
      <Description>"Free Store"</Description>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
GameAssembly.dll+19A844C:
db 90 90 90 90 90 90 90 90 90

GameAssembly.dll+19A84CD:
db 90 90 90

[DISABLE]
GameAssembly.dll+19A844C:
db 3B 41 18 0F 8C 68 01 00 00

GameAssembly.dll+19A84CD:
db 2B 41 18
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

Re: Phasmophobia

Posted: Mon Nov 02, 2020 6:43 am
by FluffyWafflesIX
Oh well, here's some basic stuff.
Contains Player Money + Item Amounts (<-- not all of them, still missing a few but its like 3:30am and i want to sleep)

You can change your item amounts to whatever and they should stick even after a game restart, same with Player Money.

Re: Phasmophobia

Posted: Tue Nov 03, 2020 5:20 am
by FluffyWafflesIX
And here are all items added.
I didnt realize it ...but the 2nd pointer for "Player Money (2)" was actually your Total Exp.
Omega *facepalm*

Also, added 2 nop scripts for the Photo Camera:
- Freeze Photo Camera Ammo
- Disable Photo Camera Cooldown
Because why not.

I looked into player coords but I couldnt seem to do anything with them?

Eh, keep in mind sometimes when editing some of the values the game can possibly bug out/break and reset your level back to 1, usually happened to me when I was leaving a session. If it doesnt ever happen to you when you use the CT, grats.
And if it does happen to you just simply restart your game.

EDIT: 11/5/2020 - CT is broken. (v0.176.36)

Re: Phasmophobia

Posted: Thu Nov 05, 2020 7:10 am
by CIKOMELANTIK
if u just want to edit ur exp, level, and items just go to one website that allow u to edit it

just make sure make a backup for it before u edit