- C# 100%
| .gitignore | ||
| PhasmoAntiModBypass.csproj | ||
| Plugin.cs | ||
| README.md | ||
Anti-Detection Phasmophobia
Mod BepInEx qui empeche Phasmophobia de detecter et de detruire les sessions moddees.
Pourquoi ce mod existe
Depuis les mises a jour 2026, Phasmophobia scanne son propre dossier au demarrage (depuis
l'ecran titre) a la recherche des fichiers des chargeurs de mods : winhttp.dll (Doorstop /
BepInEx), doorstop_config.ini, .doorstop_version, BepInEx, MelonLoader, dotnet.
Des qu'il en trouve un :
- il loggue
<fichier> | version : <steamid>et appelleCloudEvents.SelfReport(detection)pour signaler les fichiers au serveur ; - il tue le processus (
UnityEngine.Diagnostics.Utils.ForceCrash, SIGABRT) ; - si le crash est bloque, il ferme proprement la session (
Application.Quit) — le jeu tourne mais le menu ne se charge jamais (ecran noir).
Tout mod charge par BepInEx se fait donc detruire au lancement, y compris un mod purement cosmetique.
Ce que fait ce mod
Aveugler le scanner (approche identique au bypass communautaire PhasBypass de LelouBil,
verifiee fonctionnelle) : le scanner tourne normalement mais ne trouve RIEN.
File.Exists / Directory.Exists renvoient false et Directory.GetFiles /
GetDirectories / GetFileSystemEntries retirent de leurs resultats les fichiers du
chargeur. Le scanner ne declenche donc aucune detection : pas de rapport, pas de crash,
pas de fermeture, le menu se charge normalement.
Les fichiers legitimes du jeu (sauvegardes, configs, assets) ne sont jamais touches : seuls les noms de fichiers/dossiers du chargeur sont masques.
En secours (si une detection passait malgre l'aveuglement, par exemple apres une mise a jour du jeu qui ajouterait un nouveau fichier a detecter) :
- le contenu du rapport
SelfReportest vide avant envoi ; - l'appel
ForceCrashest ignore ; Application.Quit/Environment.Exitsont bloques dans les 90 s suivant une detection (votre fermeture manuelle du jeu reste normale).
Installation
- Installez BepInEx 6 IL2CPP a la racine du jeu (dossier contenant
Phasmophobia.exe). - Placez
PhasmoAntiModBypass.dlldansBepInEx\plugins\. - Lancez le jeu.
Ce mod doit etre installe en plus de vos autres mods (WikiGhostJournal, etc.) : il ne contient aucune fonctionnalite de jeu, uniquement le contournement. Il profite a TOUS les mods installes (les patchs sont globaux au processus).
Configuration
Apres le premier lancement, BepInEx\config\com.emitlinks.phasmo.antimodbypass.cfg :
| Cle | Defaut | Effet |
|---|---|---|
AveuglerScanner |
true | Masque les fichiers du chargeur au scanner (correctif principal) |
NeutraliserRapport |
true | Vide le rapport de detection envoye au serveur |
EmpecherCrashForce |
true | Ignore la tentative de kill du processus |
EmpecherQuitter |
true | Bloque la fermeture automatique post-detection (90 s) |
Verification
Dans BepInEx\LogOutput.log, au demarrage :
[Info :Anti-Detection Phasmophobia] Patch applique (prefix) : Boolean Exists(String path)
...
[Info :Anti-Detection Phasmophobia] Anti-Detection Phasmophobia : 12 point(s) neutralise(s). Scanner aveugle actif.
Et dans AppData\LocalLow\Kinetic Games\Phasmophobia\Player.log : aucune ligne
| version : (le scanner ne signale plus rien).
Compilation
dotnet build -c Release -p:GameDir="C:\chemin\vers\Phasmophobia"
Le projet ne depend d'AUCUNE DLL interop du jeu (tous les types du jeu sont resolus a
l'execution via AccessTools.TypeByName) : seules les DLL de BepInEx\core sont
necessaires, ce qui le rend insensible aux changements d'obfuscation entre les builds du
jeu.
Licence / credits
Technique d'aveuglement identique a celle de PhasBypass (LelouBil, MIT). Implementation independante en C# avec les garde-fous de fermeture.