Another month done, another day where recollection is at an all-time low and therefore we have to scrape together memories of whatever has been worked on.
Statistics
- Reached 23k concurrency peak. Not much more yet.
Backend stuff
- Improved mitigation against common abuse methods, including such commonly known as “File Swapper/Cache Decrypter”, a new “ScriptHook Bypass”, and others.
- Added key deactivation thing to keymaster.
- Improved messaging for game bans.
- Swapped around a few servers so that CnL should not go down as often during peak load.
- Update the web server list.
- Add logging to server backend for auditing abusers.
Summary of game code changes
- Some scripting fixes for .NET.
- AppDomain assembly resolution changes for base paths on server.
- Reduce overhead of calling
Tick
on client by ~200µs+ by removing AppDomain remoting.
- Apparently dark theme UI was added this month! And server tags! Yay!
- Also this neat tiny resource counter and player counter and server detail styling fixes mmm…
- WIP reconnection logic.
- Not-really-working-as-expected-yet handling for ENet timeouts. This is the “Reconnecting to server” you might see.
- Rejoining of RAGE session in cases where a non-OneSync server ends up with a ‘split session’. Seemingly has some odd issues so far.
- Steam broke again. We fixed. Yay. Or so.
- Something involving URLEncoding resource filenames to maybe fix issues Win7 people were having with spaces in filenames.
- Some bug fixes.
- Fixing Mumble reconnection for 1s.
- A bunch of 1s server crash fixes.
- Merging community pull requests! Thanks.
- Fixing a Windows 7 crash on 1s Mumble.
- Experimental
aria2
based resource downloading subsystem. To test, place Aria2’saria2c.exe
in FiveMbin/
directory. We’re not able to redistribute it with FiveM according to its license, so this might stay that way for a while. It’s really fast, though - especially on the LC server! - Advanced debug tooling to generate IDA symbol-based .pdb files for GTA5.exe/FiveM_GTAProcess.exe. This should improve dump debugging for laymen, and allows for more detailed ETW traces of game code.
- Fix OneSync client disconnection at times.
- Add
storymode
command to main FiveM exe which loads singleplayer. This time you can actually play the prologue, and the save game directory is inC:\Users\USERNAME\Saved Games\CitizenFX\GTA5
now. - A few tiny other performance fixes, mostly for 1s.
- Fix a crash when connecting to game servers if Steam was in a weird state.
Unfinished attempts
- Attempted work on some FXv2 features. Most didn’t end up working correctly.
- Script time budgeting didn’t really work nor help, also lacking support in Lua runtime.
- Asynchronous script ticks caused even more issues and didn’t improve performance by much (~10 FPS more on bad servers) at cost of lots of deadlocks, crashes and text drawing issues.
- Water quad extension. This apparently has a crash that needs to be triaged and fixed.
- Some refactor of event triggers. Didn’t work as it made no sense logically.
- Work on 1s array handlers (required for sticky bombs, dispatch, etc.). Didn’t end up working correctly yet, needs more debugging.
- Support for ‘Story’ and ‘Mods’ tabs in
cfx-ui
. Backing code for a prototype of these does exist, funnily. - Debugged issues caused by fwMapDataContents flags being missing, didn’t add mitigation for it yet however.
- Further investigation of future plans with regards to the controversial ‘no profit’ rule in the FiveM ToS.
All in all, not much. Time is a scarce resource, and focus even more so.