We have pushed out an update to CitizenFX/Five on the production branch today. This update, for once, is not just bugfixes, and has the rare occasion to be one that updates the server as well. The client will automatically update, old servers should still be compatible, but we implore you to upgrade that one too. Manually.
Summarized changelog
- Update Botan to a newer version, integrated with the build system. If your game doesn’t start, this is probably why. It’s required for future changes including resource cache obfuscation, of course.
- Fix a bug where
dwm.exe
would use large amounts of CPU/RAM during the main menu/loading screens. - Server connection improvements:
- Make the game only load after receiving a
connectOK
packet from the server. This will make annoying errors such as Failed to connect after 3 attempts, Failed to fetch resource.rpf, Couldn’t load some resource and RECURSIVE RECURSIVE ERROR non-fatal and allow choosing another server without having to re-open the entire game. - Show an actual resource name in the Couldn’t load some resource error.
- Indicate connection state while connecting before game load.
- Make the game only load after receiving a
- Better network session establishment code:
- Retry entering/initializing the rline session if the first attempt failed, instead of red-boxing out.
- If combined with the new server, handle race conditions when multiple players join an empty server at the same time even better.
- Disallow gameplay (don’t run any resource scripts/spawning code) until connected to a network session.
Invoke-LevelLoad
should be unaffected by this.
- Loading screen improvements:
- Seamless loading screens from the main menu up to being connected and spawned.
- Official support for custom loading screens, using a
loadscreen
directive in any resource manifest. Seeresources/[test]/keks
in the server for an example loading screen (or, juststart keks
!). - Add status callback to the loading screen for connection status. Please use it.
- Make NUI document encoding default to UTF-8 to support the
emoji in the default
keks example.
Server changelog
Make sure when downloading the server that you have version 45c2dc72261272a913127d0cb88e67f93dd71055
(check RELEASE.txt to see)!
- Fix a bug in assignment of TempIDs causing
playerConnecting
to return incoherent identifiers. Hopefully. - Fix a bug in assignment of NetIDs that caused crazy player counts due to certain NetID references being duplicated (if clients join with a bad connection). Again, hopefully.
- Support W3C server-sent events for the
/log
HTTP endpoint. - Only allow resource downloads for connected and authenticated clients.
- Allow
GetPlayerEP
for clients that only have aTempID
(that is, while connecting). - Force starting
sessionmanager
as it handles the enhanced arbitrator mutex system. - Updated
keks
with new UI and CitizenFX/Five support! - Server-side handler for session locking.
#Developer information
There’s still no wiki, but there’s developer info this time!
###Resource manifest (__resource.lua
) changes
- The
loadscreen
directive got added. For examples on usage and the JS events supported, checkkeks
in the new server.
###Server-sent events
This allows getting the data from /log
(http://server.ip:port/log) in a streaming fashion rather than a polling fashion.
Example JS code for a client:
const es = new EventSource('http://server:30120/log');
es.addEventListener('chatMessage', e =>
{
const msg = JSON.parse(e.data);
console.log(msg.name + ": " + msg.message);
});
#Future plans
Finalization of the rebranding will occur sometime within the next few months. The internal OneSync project has been started, which will, in the short term, make servers more aware of what clients are trying to send - and in the future (projected H2 2017) will allow for higher player caps (practically unlimited, even) without breaking backward compatibility or synchronization fidelity.
Short-term plans are currently unannounced, but we have a few things cooking up continuing the style of fixes that has been in this update!
Stay tuned, as, remember, FiveM is the original RAGE GTA modification, having been in development in various forms since the end of 2013, making it the longest-lived online+offline modification platform for GTA on RAGE. Development takes time if you care about quality rather than quantity, of course.