Welcome to the May 2025 edition of our Game Client Release Notes.
This month’s update brings a wide range of improvements and fixes across the FiveM and RedM platforms, including major performance enhancements, increased stability, critical bug fixes, expanded documentation, and more.
FiveM Performance Improvements
We achieved a significant performance boost on FiveM, with up to a 100% increase in FPS when players are near a large number of Freemode Peds.
This results in noticeably higher framerates on heavily populated servers, especially for users who are CPU-bound. Users with low-end GPUs may not see the same level of improvement.
This performance improvement will be included in our next production release cycle.
Additionally, community member Mathu-lmn improved our ACE permission system, boosting the permissions lookup performances and reducing the chances of server hitches.
Custom Loading Screens in RedM
Thanks to community member Ktos93, RedM now supports the use of custom loading screens!
Loading screens on RedM work the same way they do on FiveM, for which you can consult our documentation if you wish to build your own loading screen, or browse our release category if you wish to download an already existing one.
New Aspect Ratio Native for RedM
A handy new contribution from outsider31000 exposes the GET_ASPECT_RATIO native to retrieve the current screen aspect ratio in RedM.
Here’s a quick example of how you can use it in your scripts:
local aspectRatio = GetAspectRatio()
print(string.format("Current aspect ratio: %.2f", aspectRatio))
New FiveM Natives
Server Train Sync State Natives
Community member Ehbw introduced a set of new getters Natives for train-related data:
-
GET_TRAIN_STATE
-
IS_TRAIN_CABOOSE
-
DOES_TRAIN_STOP_AT_STATIONS
-
GET_TRAIN_CRUISE_SPEED
-
GET_TRAIN_TRACK_INDEX
-
GET_TRAIN_FORWARD_CARRIAGE
-
GET_TRAIN_BACKWARD_CARRIAGE
-
GET_TRAIN_DIRECTION
Adjustable Wet Cloth Physics
Another great community contribution this month from DaniGP17 which exposes a new native to adjust wet cloth adhesion in GTAV.
This allows scripts to modify how tightly wet cloth adheres to characters. The native function accepts values ranging from 0.3 to 1.0.
For example, SetWetClothPinRadiusScale(0.3)
is the default and represents wet clothes behavior, where the clothing clings more tightly to surfaces.
On the other hand, SetWetClothPinRadiusScale(1.0)
simulates dry clothes, with less adhesion.
Increased Particle Effects Limit
Thanks to Ekinoxx0, the maximum number of particle effects that can run in parallel has now been raised to 256.
Show us what you can create with it in the #showcase channel on our Discord server.
Various Stability Improvements
We’ve invested significant time and effort into resolving numerous crashes across the platform to ensure a more stable and reliable experience, especially when using the GTA Online: Agents of Sabotage update (GTA Build 3407).
We resolved a potential race condition when initializing the Draw Performance debugging tool, and implemented mitigation for a common crash when streaming assets that have been exported with “broken” octant vertex data.
You should experience far fewer crashes on build b3407 as a result.
Highlighted Commits
citizenfx/fivem
-
tweak(server/events): ping txAdmin on large event send - Uses time-based throttling for oversized events, adding real-time notifications.
-
fix(gta-core-five): trying to mitigate nullptr morphController - Adds checks to avoid null-pointer issues in character morphing.
-
fix: WeaponSpreadOffset pattern fix for all game builds - Updates hook signatures to ensure weapon spread works across different GTA versions.
-
tweak(scripting/lua): remove RPC handling - Removed legacy remote function ref calling.
-
tweak(vfs-core): truncate impl - Implements file truncation support on LocalDevice and RelativeDevice.
-
fix(scripting/lua): truncate file on IO write - Properly removes leftover file data beyond the current write offset.
citizenfx/fivem-docs
-
doc(game/five): update sv_replaceExeToSwitchBuilds doc (Issue #541) - Clarifies default behavior changes for build-switching on newer servers.
-
fix: various broken links - Fixes documentation links for server scripting references.
citizenfx/natives
- fix: various broken links - Corrects anchor links and references for native function documentation.
Community Contributions
This month, we merged several contributions from the community on our open source repositories.
citizenfx/fivem
-
- fix(net/five): factory nullptr check - Fixes a regression introduced when
sv_protectServerEntities
mode was added.
- fix(net/five): factory nullptr check - Fixes a regression introduced when
-
-
feat(rage/graphics-rdr3): crashometry for vulkan - Logs GPU and driver data to help debug Vulkan-related crashes.
-
tweak(glue): display vulkan result on fail - Enhances error handling by reporting Vulkan-specific error codes.
-
tweak(graphics/rdr3): print out enum + description on failure - Improves Vulkan error messages with descriptive text for debugging.
-
-
- fix(extra-natives/five): make track junction ids permanent - Overhauls train junction registration so IDs remain stable and non-shifting.