So I’ve gone through the dump and log files. Short version: it’s not your machine and nothing you can change client-side will fix it.
What your dump files show: It’s a real access violation, not just a hang. Exception 0xC0000005, write (param[0] = 1) to address 0xDEED, at citizen-devtools.dll+0x2CCD6. The “FiveM has stopped responding” watchdog message is the symptom — the fault happens first, the crash handler takes over, the main thread stops pumping, and the watchdog fires. Your log lines up with that: watchdog at 1189469ms, DumpServer capture ~8s later.
Why none of your fixes have worked: I walked the stack on the faulting thread. It’s a background thread created by citizen-devtools.dll itself and every frame on it is inside citizen-devtools.dll --No game code, no scripts, no resources anywhere on the call path. The only other frames are adhesive’s exception handler catching it.
The instruction that faults (per the disassembly in #3758) is ‘mov dword ptr [0DEEDh],0’ – 0xDEED is hardcoded into the instruction as an absolute address, it’s not a null pointer, or a corrupted pointer, it’s a constant baked into the shipped binary code. GPU, drivers, GTA Reinstall, mods, update channel, OneSync mode --None of it can affect that. Your module list is also clean (No injected DLLs) which certainly backs up your no-mods claim.
It’s not just you: Same offset (+0x2CCD6), same 0xDEED write, reported here after a full PC factory reset; and that one’s on RedM, so it’s shared CitizenFX code across both FiveM and RedM:Freeze/crash after 10-30 minutes – citizen-devtools.dll+2CCD6 (ResourceMonitor)
And the 18-20 minute version across 10+sessions and two servers: FiveM client crash: INVALID_POINTER_WRITE in citizen-devtools.dll ResourceMonitor after ~18-20 min of gameplay (100% reproducible)
2 Things worth testing:
1: Join a near-empty FXServer with default resources and idle for 30 minutes. If it still dies at -20 minutes, it’s an unconditional timer bug. If it doesn’t, the resource environment is gating it----that server runs 205 resources and your logs show inspect-garbagejob being re-mounted mid-session at -15 minutes
2: Long shot given your clean reinstall, but; have you ever opened resmon (F8–>resmon)? SetShouldGetMemory is the toggle for whether that collection runs, so it’s the one input that gates the copy path.
Beyond that, attach your dumps and crash ID’s to those threads and #3758 ----This needs a Cfx fix.
Unrelated but still needs to be looked at:
Some resource references @xeroshieldv3/init.lua but xeroshieldv3 isn’t in the manifest, so that anticheat’s client side isn’t loading
2 copies of Gabz casino interior are streamed- (gabz_vw_vwdlc_int_01.ytyp and vw_vwdlc_int_01.ytyp) — hundreds of duplicate archetype warnings
aurix_carsounds fails to mount the lg247hemi57 and aq07powerstroke67 audio .dat files.