Hi everyone, we are back with another Pulse!
As we continue to evolve the Community Pulse to better serve the needs of the community, we are officially changing the format and timing so that each Pulse will now serve as a look back on what has been done over the entire previous month, and will be purposely released regularly at the beginning of the following month. We’ll continue to work on improving the Pulse and please keep the feedback coming. Now, let’s get onto this month’s topics!
New Community Guidelines
As you may have seen, earlier this month Rockstar Games published a new set of Community Guidelines to help ensure players have a positive experience across all online titles. Together with the Rockstar Games Terms of Service, these documents provide the guiding principles for the types of behaviors and actions that are encouraged, and those that are not allowed inside all Rockstar titles.
Please note that these guidelines also apply to the play experiences inside FiveM and RedM servers. We encourage everyone to check these guidelines out and help ensure that players have a positive experience wherever they are playing!
Featured Servers
Starting this month, we are rotating the homepage featured server slot of the FiveM client. Each month, a new server will be showcased on our game client and will be featured in the Community Pulse.
This is a first step towards revisiting the way we curate and spotlight content on our platform, while we are exploring other ways to underline what the community has been up to. Stay tuned!
Server of the Month
In May, our featured server is Transport Tycoon!
Transport Tycoon is a server oriented around transporting goods and building yourself up to the status of a multi-millionaire. Transport Tycoon has been with the FiveM community for a while, as it was one of the first pinned servers on the platform.
Website: tycoon.community
Play on the server: cfx.re/join/2epova
Join their Discord server: discord.gg/tycoon
Development
This month, we have been working on a lot of maintenance tasks for our main repository, from auditing our code to writing tests and making sure our dependencies are up-to-date.
We are now preventing game clients from connecting to servers with FXServer build older than 29/04/2021 when using the connect
client console command.
Some creators reported assets downloaded from Keymaster were being falsely flagged by Windows Defender for containing a trojan; we are actively working with Microsoft to get this resolved.
Some notable changes:
- Add new startNetworkSyncedSceneEvent event to cancel synchronized scenes.
- Remove leftover single player and build 372 code.
- Remove mention of gameconfig.xml in RedM pool errors.
- Disable C# key mapping functions on RedM (Thanks to @AvarianKnight).
- A new NuiCallback attribute has been added to C# (Thanks to @AvarianKnight).
- Add additional checks to our out of band protocol.
- The message provided in the quit command is now prefixed with “Quit: ”.
- The confusing sv_disableClientReplays server variable no longer shows in the server view.
- Improved the handling of the server message event.
- Improved the RCON message handler to improve server performance.
- Improved the performance of server packet handling.
- Improved the consistency of syncing tattoos to other players.
- Improved Discord authentication when running multiple clients.
- Fixed an issue with cursor lock not always working.
- Fixed a crash caused by passing an invalid color index to REPLACE_HUD_COLOUR.
- Fixed an issue with the C# scheduler not requesting a call-in.
Git Shortlog
Dillon Skaggs (2):
- [4839e2dcd] fix(mono-v2): disallow KeyMap to be used on RedM
- [b29e70d29] feat(mono-rt2): add NuiCallback attribute
Disquse (6):
- [ccb9a81e2] feat(gamestate/server): add network synced scenes events
- [c88fcd169] tweak(five): remove leftover
CfxIsSinglePlayer
calls - [8580541ed] tweak(five): remove leftover b372 code
- [5358a5743] tweak(core/rdr3): don’t mention gameconfig in pool errors
- [b6a9df87e] tweak(five): move player sync no phone fix
- [5d454a136] tweak(net/rdr3): hide scenario crash workaround logs in release builds
Fabian Terhorst (50):
- [661a8b8e3] fix(tests): linux linking
- [80cb438c1] feat(tests): add se::Principal tests
- [3ae9a5756] tweak(tests/principal): add object parents tests
- [c17807363] tweak(vendor/lz4): bump lz4 version from 1.9.3 to 1.9.4
- [6e65085dc] tweak(vendor/yojimbo): remove yojimbo
- [7fce3ba18] tweak(vendor/slikenet): remove slikenet
- [2a9f229a7] tweak(vendor/yojimbo): remove configs
- [242c7aef6] tweak(vendor/replxx): move out of linenoise vendor config
- [802268ae5] tweak(vendor/linenoise-ng): remove linenoise
- [14a91f8ae] tweak(legacy-game-re3): remove all mentions
- [6a90b6e2c] tweak(vendor/librwgta): remove librwgta
- [e967b0ce9] tweak(vendor/librw): remove librw
- [dec5bc8be] tweak(citizen-ssh-server): remove citizen-ssh-server
- [5f5d29586] tweak(vendor/libssh): remove libssh
- [11d77aae6] tweak(vendor/libsodium): remove version header
- [6d59a0448] tweak(net): remove unused yaml-cpp dependency
- [5a78d6500] tweak(vendor/yaml-cpp): remove yaml-cpp
- [6724cbed2] tweak(vendor/ngtcp2): remove ngtcp2
- [46cc2d561] tweak(vendor/nghttp3): remove nghttp3
- [b699ccfe9] feat(tests): use catch2 random seed to make random tests failures reproducable
- [1afcf9828] feat(tests): add rl::MessageBuffer tests
- [4cbf89e2a] feat(tests): add ascii random string gen
- [820ace6da] tweak(server): make WithOutOfBand testable
- [410d8367f] feat(tests): add out of band protocol tests
- [c43a75534] fix(server): missing out of band protocol checks
- [2ed87101f] fix(server): undefined behavior setCb bool in out of band protocol
- [fb45f9958] fix(vendor/msgpack-c): ignore in premake generated header files
- [95527ad13] fix(vendor/eastl): recursive submodules
- [5e7f42233] tweak(vendor/eabase): update
- [e62b51eca] tweak(vendor/eastl): update
- [4474cb20c] tweak(server): improve msgServerEvent handling
- [9d66a8123] tweak(vendor/enet): remove old enet
- [9eabf2847] fix(server): out of band handler
- [2ab4a9883] tweak(server): use net::Buffer string_view read in out of band handler
- [d2475b343] feat(tests): net::Buffer ReadTo, Read string, CanRead
- [67a855535] feat(net): add net::Buffer string_view read
- [3e235c2ea] tweak(server): improve rcon handler
- [eccda7a48] feat(server): add GetAmountOfConnectedClients to ClientRegistry
- [112225cf8] feat(server): compile time oob handler, move getinfooob to own file, improvements for getinfooob
- [ee0e8f21f] feat(tests): add getinfooob tests and adjust the oob tests
- [24a5c0f58] feat(server): add force_consteval
- [18b9dcfdb] tweak(shared): rename GetInfooob to GetInfoOutOfBand
- [dda4880b9] fix(server): GetStatusOOB linux build
- [6359aa89c] fix(tests): fix infooob tests on linux
- [a4ba2ce3e] tweak(server): use unordered_map for packet handlers
- [2f4db586b] feat(tests): add TestUtils::fillVectorU8Random
- [6ca236c95] feat(tests): add RoutingPacketHandler onesync receive test
- [08d85694c] tweak(server): prevent packet routing in onesync and double vector allocation
- [a78b6330a] tweak(tests): adjust test utils to codestyle
- [39acea761] tweak(tests): add ClientRegistry and ServerInstance
Gottfried Leibniz (8):
- [53ff4d830] feat(streaming/five): improve PED_OVERLAY_FILE sorting
- [e1ac57b6d] tweak(nui/core): remove outdated CEF hooks
- [7007fc1c6] tweak(input/five): ensure consistent ClipCursor state
- [12fe74037] tweak(extra-natives/five): water natives
- [68263e96c] tweak(graphics/five): move swapchain flags pattern to HookFunction
- [018ca012f] fix(server): out of band infinite recursion
- [e1b6e8ee0] tweak(extra-natives/five): sanitize hudColorIndex
- [b3b7bce6e] tweak(client): prefix quit command messages
Jonmichael Chambers (1):
- [59e24f047] [CFX-1144] Remove Piwik analytics
Oleg Makushev (2):
- [b655da770] fix(ext/cfx-ui): added exception for sv_disableClientReplays server variable
- [ece1afb14] fix(ext/cfx-ui): updated dependencies
prikolium-cfx (2):
- [9969efa85] tweak(client): trying to connect to discord pipe in interval
- [dd56a2c42] tweak(client): added comment to clarify such behavior
nihonium (4):
- [763aa11f2] fix(ci): use unique temp folder name for review upload script
- [e98524bd1] tweak(ext/system-resources): drop unnecessary gen-sha256 command, move --file option to allow for default value for add/update command
- [f3a7a57e5] tweak(ext/system-resources): bump txAdmin version to 7.1.0
- [045d279e6] fix(ext/native-doc-gen): guard yarn instances with mutex to allow concurrent runs
thorium (2):
Coming Next
We are exploring potential ways to upgrade our Node.js scripting runtime, and will share more information in the coming weeks.
Community Contributions
Thanks MonsieurBibo, @PsychoShock, freedy69, ahcenezdh, niekschoemaker, DatGuy1, Ra1n6666, @Noor_Nahas, @AvarianKnight for contributing to our natives documentation!
Infrastructure
While we did experience a few hiccups with our infrastructure this month, we took the opportunity to re-evaluate the timeline of some of our current migration projects. We experienced a hardware failure of one of our oldest cluster nodes, which caused the outages on the 16th and 17th of April. As a result, we decommissioned the few identical nodes we had and replaced them with better and more recent hardware. Finally, we also migrated Keymaster’s database to run on these newer machines.
We are happy to report that with the new hardware and database migration, there are significant improvements in both performance and stability. Across the board, all requests towards Keymaster now have a 50%~ response time improvement, ranging from 30ms improvements all the way to 400-500ms for listing all your asset grants (This is half the time it was previously!).
Thanks for reading, see you all next month!