mirror of
https://gitlab.com/lvra/lvra.gitlab.io.git
synced 2025-04-28 10:18:29 +02:00
Merge branch 'eac-message' into 'main'
VRChat EAC: Rewrite See merge request lvra/lvra.gitlab.io!91
This commit is contained in:
commit
b3fc86f9a4
2 changed files with 39 additions and 3 deletions
|
@ -8,6 +8,8 @@ IgnoreURLs:
|
|||
# For "Edit this page" and "Last modified by":
|
||||
- "https://gitlab.com/lvra/lvra.gitlab.io/-/edit"
|
||||
- "https://gitlab.com/lvra/lvra.gitlab.io/-/commit"
|
||||
# Uses Cloudflare to block bots:
|
||||
- "https://www.pcgamingwiki.com/"
|
||||
# IgnoreDirs:
|
||||
# - "lib"
|
||||
CacheExpires: "6h"
|
||||
|
|
|
@ -5,26 +5,58 @@ title: Easy Anti-Cheat
|
|||
|
||||
# Easy Anti-Cheat
|
||||
|
||||
Sometimes, seemingly randomly, you can get an EAC error during the VRChat startup/login screen. It looks like a message box, with the title "Anti-cheat Error", no actual message text, and a single button labeled "Quit".
|
||||
Running VRChat on Linux *used to be* prone to unwarranted EAC errors. Sometimes, seemingly randomly, you would get an EAC error during the VRChat startup/login screen. It looks like a message box, with the title "Anti-cheat Error", a message referring to a filepath that failed to validate integrity, and a single button labeled "Quit". This would trigger even when all files were unmodified.
|
||||
|
||||
## Recommended Workaround
|
||||
Thankfully, at some point in October or November 2024, **these EAC errors resolved themselves**. While it is still possible to get EAC errors for other reasons, the race condition that made it a coin-flip on startup no longer plagues us.
|
||||
|
||||
If you are running into EAC errors still, try these options:
|
||||
- Trigger a reinstall of the EAC runtime by moving the [Proton prefix for VRChat](https://www.pcgamingwiki.com/wiki/VRChat#Configuration_file.28s.29_location) somewhere else, forcing Steam to regenerate it on next launch
|
||||
- Make sure you are not blocking the EAC domains, such as `modules-cdn.eac-prod.on.epicgames.com`
|
||||
- Do not set `SDL_VIDEODRIVER` env var anywhere - this breaks the splash screen
|
||||
- Do not use the `VR_OVERRIDE` env var
|
||||
|
||||
The below workaround shouldn't be necessary anymore, but is kept here in case the issue comes back someday.
|
||||
|
||||
## Workaround
|
||||
|
||||
Wrapper script for starting VRChat: [startvrc.sh on GitHub](https://gist.github.com/galister/ca63a5795694e4c839a8e7f4bb8a35bc)
|
||||
|
||||
|
||||
Set startup options for VRChat:
|
||||
`/path/to/startvrc.sh %command%`
|
||||
|
||||
If you're using extra env vars, they should go first:
|
||||
`PRESSURE_VESSEL_FILESYSTEMS_RW=/run/user/1000/monado_comp_ipc /path/to/startvrc.sh %command%`
|
||||
|
||||
<!--
|
||||
|
||||
## Root Cause
|
||||
|
||||
We are still trying to determine the cause.
|
||||
|
||||
Here is what we know:
|
||||
- The filepath in the message always refers to a file within `steamapps/common/VRChat`.
|
||||
- EAC errors can trigger even when all these files are completely pristine.
|
||||
- The triggering file can be different each time.
|
||||
- EAC doesn't care about any of the files in `AppData/LocalLow/VRChat`. This means yt-dlp.exe, logs, the local cache, etc are not subject to integrity checks.
|
||||
- Getting multiple EAC errors in a row is very possible.
|
||||
- Some EAC info is also written to the VRChat log file.
|
||||
- EAC errors can also happen on Steam Deck.
|
||||
- EAC errors can happen regardless of Proton version, kernel version, distro.
|
||||
- EAC errors can happen regardless of whether you're in in VR or desktop mode.
|
||||
- The message box used to have no actual message text. The message returned in a VRChat update, possibly on the serverside and without a steam depot update, sometime between 2024-03-25 and 2024-03-28.
|
||||
|
||||
It is likely caused by a race condition. Closing unnecessary apps or otherwise **lowering your CPU usage** before starting VRChat seems to make the EAC error happen significantly less often. It is safe to crank the CPU usage back up after the home world has loaded.
|
||||
|
||||
Some approaches we haven't tried or fully documented:
|
||||
|
||||
- Is it tied to network speed? Slow down connection to EAC servers - DNS delay or traffic shaping
|
||||
- Is it tied to filesystem? Compare between ext4, btrfs, etc
|
||||
- Analyze EAC-related network traffic
|
||||
- Blocking EAC servers
|
||||
- Slowing down IO read speed
|
||||
- Debugging with winedbg or bpftrace (because strace and gdb both trigger an immediate splash screen and disconnect)
|
||||
- REing EAC itself
|
||||
|
||||
The following sections do not fix the issue, but are still kept on the wiki to dispel rumors and record research.
|
||||
|
||||
## (Outdated) glibc dt_gnu_hash
|
||||
|
@ -44,3 +76,5 @@ As of 2024-02-09, Arch Linux no longer ships with this flag.
|
|||
- Gentoo users could enable the fix using the `hash-sysv-compat` USE flag on `sys-libs/glibc`.
|
||||
|
||||
To reiterate, this glibc flag does _not_ appear to fix VRChat's particular flavor of EAC failures.
|
||||
|
||||
-->
|
||||
|
|
Loading…
Add table
Reference in a new issue