[Bug] GetPedHeadBlendData permanently freezes the client when called shortly after a fresh SetPlayerModel/SetPedHeadBlendData on FiveM Enhanced #256
Closed
LandminenTester
started this conversation in
[BUG] FiveM for GTAV Enhanced
Replies: 3 comments
|
I updated the whole report after finding the issue in my code so that the report template now is fully representing the real issue |
0 replies
|
Closing as duplicate of #208. I'll repost the repro there |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Summary
Opening the custom character-creation NUI causes a complete client freeze that leads to a full crash roughly 15-20 seconds later, with no script/Lua error and no crash report ID. Extensive server- and client-side instrumentation (added
print()before/after every native and event/callback involved in the flow) traced this down to a single native:GetPedHeadBlendDatanever returns when called on the local player ped shortly after that ped's model was switched viaSetPlayerModeland its head blend data was written viaSetPedHeadBlendData. Execution reaches the line callingGetPedHeadBlendData(confirmed via aprint()immediately before it) and never proceeds past it — no exception, no timeout, nothing. This reproduces from multiple independent call sites within the same flow (aRegisterNUICallbackhandler, and a plainRegisterNetEvent/thread context), and does not reproduce on the FiveM Legacy client with identical server, resources, and repro steps.Issue type
Client
Repro rate
Always
Server build version
FXServer-early-access b97 win32
OS
Win 11 / Newest
CPU
AMD Ryzen 9 7950X3D
GPU
RTX 2070 Super
RAM
32GB DDR5
Storage type
SSD NVMe
Connection type
Ethernet
ISP and bandwidth
250 Mbps
DxDiag
No response
Network graph
No response
Platform
Windows
OS version / distribution
Localhost
CPU
Localhost
RAM
Localhost
Using txAdmin?
Yes
Hosting provider
Self-hosted
Machine type
None
/perf endpoint output
No response
DDoS protection
No response
ulimit -n value (Linux only)
No response
Docker Compose file (Docker only)
No response
Steps to Reproduce
a. Switches the local player's ped model to a freemode ped (
SetPlayerModelafterRequestModel/HasModelLoaded).b. Writes head blend data to the new ped via
SetPedHeadBlendData(ped, ...).c. Shortly afterwards (same tick or a few frames later — reproduces both from inside a
RegisterNUICallbackhandler and from a plain event handler) reads it back viaGetPedHeadBlendData(ped).print()immediately preceding theGetPedHeadBlendDatacall.Minimal, script-independent repro (does not require our private resource):
We also confirmed a delay does not prevent it — inserting Wait(100) between the SetPedHeadBlendData write and the GetPedHeadBlendData read still freezes reliably, so this isn't a same-tick race that can be waited out.
Expected Behavior
GetPedHeadBlendData(ped) returns the head blend values that were just written, and the character-creation NUI opens normally.
Actual Behavior
The client freezes completely and becomes fully unresponsive at the GetPedHeadBlendData call. No exception, no error, no crash report ID, no further console output of any kind (F8 console, server console, or NUI console all go silent at the exact same point). ~15-20 seconds later the process crashes and returns to the launcher — this looks like a client-side watchdog/timeout finally killing the hung process rather than a normal crash.
Evidence
After the freeze I'm back at the launcher, and shortly after that the whole client crashes. The resource in question (vinewood_creator_v2) is a private/selfmade character creator that triggers the NUI call, but the root cause is isolated to the GetPedHeadBlendData native itself and reproduces with the minimal snippet above, independent of that script. All logs from start to crash are attached.
fivem-for-gtav-enhanced.log-2026-07-25_20-30-12.log
cef-2026-07-25_20-30-12.log
fivem-launcher-2026-07-25_20-29-14.log
2a02ce95-baed-478b-86d3-6acc83f79a5a.dmp
Additional Context
Our original report assumed this was caused by opening the NUI (SetNuiFocus/SendNUIMessage) in general, since that's what visibly preceded the freeze. After adding instrumentation around every native/event/callback in the flow, we found opening the NUI itself is not the trigger — it's specifically the first GetPedHeadBlendData call that happens to follow shortly after, triggered by the NUI's first callback into the script. We reproduced the same freeze from several independent call sites in our script that all ultimately call GetPedHeadBlendData on the freshly model-switched ped, with no NUI involved in at least one of those call sites. The minimal repro above has no NUI dependency at all and should reproduce the same freeze. We can still provide access to the private script privately if that helps, but the minimal snippet should be sufficient to reproduce and isolate the native itself. Does not reproduce on FiveM Legacy with identical steps.
All reactions