Hello, FiveM community. In this State of the , we keep you updated on the smaller developments in the FiveM modification ecosystem over the past time span.
We’re hoping to release a SotS periodically, but of course that won’t always succeed.
Let’s get started.
OneSync research
Firstly, some additional research has been done for the next milestone step for FiveM after the completion of FXServer, more on which further in this post - we have now fully documented a list of sync trees used by the RAGE network object manager.
Have a snippet from this list:
[ 115031] --- NET SYNC TREE class CAutomobileSyncTree (0) ---
[ 115031] class CProjectBaseSyncParentNode (127/0/0)
[ 115031] class CProjectBaseSyncParentNode (1/0/0)
[ 115031] class CVehicleCreationDataNode (1/0/0)
[ 115031] class CAutomobileCreationDataNode (1/0/0)
[ 115031] class CProjectBaseSyncParentNode (127/127/0)
[ 115031] class CProjectBaseSyncParentNode (127/127/0)
[ 115031] class CProjectBaseSyncParentNode (127/127/0)
[ 115031] class CGlobalFlagsDataNode (127/127/0)
[ 115031] class CDynamicEntityGameStateDataNode (127/127/0)
[ 115031] class CPhysicalGameStateDataNode (127/127/0)
[ 115031] class CVehicleGameStateDataNode (127/127/0)
[ 115031] class CProjectBaseSyncParentNode (127/127/1)
[ 115031] class CEntityScriptGameStateDataNode (127/127/1)
[ 115031] class CPhysicalScriptGameStateDataNode (127/127/1)
[ 115031] class CVehicleScriptGameStateDataNode (127/127/1)
[ 115031] class CEntityScriptInfoDataNode (127/127/1)
[ 115031] class CPhysicalAttachDataNode (127/127/0)
[ 115031] class CVehicleAppearanceDataNode (127/127/0)
[ 115031] class CVehicleDamageStatusDataNode (127/127/0)
[ 115031] class CVehicleComponentReservationDataNode (127/127/0)
[ 115031] class CVehicleHealthDataNode (127/127/0)
[ 115031] class CVehicleTaskDataNode (127/127/0)
[ 115031] class CProjectBaseSyncParentNode (127/86/0)
[ 115031] class CSectorDataNode (87/87/0)
[ 115031] class CSectorPositionDataNode (87/87/0)
[ 115031] class CEntityOrientationDataNode (87/87/0)
[ 115031] class CPhysicalVelocityDataNode (87/87/0)
[ 115031] class CVehicleAngVelocityDataNode (87/87/0)
[ 115031] class CProjectBaseSyncParentNode (127/86/0)
[ 115031] class CVehicleSteeringDataNode (86/86/0)
[ 115031] class CVehicleControlDataNode (87/87/0)
[ 115031] class CVehicleGadgetDataNode (127/127/0)
[ 115031] class CProjectBaseSyncParentNode (4/0/0)
[ 115031] class CMigrationDataNode (4/0/0)
[ 115031] class CPhysicalMigrationDataNode (4/0/0)
[ 115031] class CPhysicalScriptMigrationDataNode (4/0/1)
[ 115031] class CVehicleProximityMigrationDataNode (4/0/0)
[ 115031] --- END TREE ---
FXServer
We’ve been working on a full rewrite of the current CitizenMP.Server .NET server, written in C++, sharing core code with the client, including the resources system. This’ll simplify making changes to the server, as everything will be built from the same codebase.
Here’s a slightly outdated screenshot of chat
running from FXServer, albeit with only one player:
A lot of features you’ve always wished for will be first released in FXServer, though there is a long way to go for feature parity:
The much-wished-for MySQL library
Some things have gotten in the way of development of this library, so instead of it being an add-on for the current CitizenMP.Server, it’ll be officially released in FXServer only.
We’re sorry for the inconvenience, however there’s a wide range of alternative data storage solutions - we just don’t want people depending on something that might be in flux or break later on.
A fresher look for the forums
We’ve been tweaking the forums and reorganizing categories to fit the desired direction of the community better.
Also, a few external moderators have been appointed: these are not part of the main CitizenFX Collective, however they have privileges to manage the forums, and have been proven to be… helpful.
At this time, these include @Proportionality, @Havoc and @Deziel0495.
Feedback
We’re still looking for a way to allow the community to provide feedback for the project in a cleaner way, spanning from server developers asking for features to be added to the platform API to players wanting certain base client features - currently it seems some legitimate wishes/concerns get drowned under the typical support questions and a lot of people are unwilling to speak out; if any of you have a better way that you think might work to provide feedback, please do suggest it!
Open code
We’ve been trying to keep the open source repository in sync, however due to some troubles we’ve not gotten around to documenting the repository layout, how to get started and providing a clean build environment for open source contributors.
In addition, issue tracking is currently a bit of a trouble - internally we’re using a Trello board to manage the project, however as this is a SaaS solution, we can not publish this board without revealing the identities of the Collective - and no synchronization solutions seem to exist that would allow us to publish filtered contents of this board instantly.
Statistics
We see a typical server-reported (summing the amount of players returned from the /servers
API) player peak of ~2500 concurrent players - using curl
and jq
you can query this state yourself as well:
$ curl -s https://runtime.fivem.net/servers | jq "[.[] | select(.Data != null) | .Data.clients | tonumber] | add"
Other statistics are still not available as the UI is still manually built and therefore we’ve not reintegrated Piwik tracking - the UI could be a great starting point for open source contributions so we’re looking forward to opening and integrating the UI build into the client build process.
Anything you’d like to hear? Post a reply, or message us elsewhere!