Hello everyone,
It’s already been a month, and we have some more updates for you. Thanks to everyone who provided feedback last month on our pulse post!
Enforcement against common code obfuscators
Last week, we decided to take action against popular obfuscators on our platform.
There has been some confusion as to why this enforcement is happening, and we want to reaffirm that the use of any obfuscation method other than the Asset escrow system is prohibited, and it always has been.
We had to take action because of the rise in popularity of paid anti-cheat resources that hide a wide variety of exploits to perform actions they are not supposed to do on our players’ computers, and the usage of these obfuscators makes the investigation work of our development team way harder when it comes to fixing these critical exploits.
This is a huge security concern as some of these exploits are allowing them to perform actions such as reading & writing to your computer memory, or reading, writing, and exfiltrating any files from your computer.
We ask server owners and resources authors to familiarize themselves with both our Terms of Service and our Resource FAQ.
FiveM & RedM Updates
- Added
game_enableDynamicDoorCreation
network check bypass, allowing the creation of doors dynamically in a network environment (thanks to @Nikez, @z3t4s, and okqut). - Added
GET_PED_SWEAT
native to get the ped’s sweat level (thanks to @MRV6). - Added
DISABLE_VEHICLE_PASSENGER_IDLE_CAMERA
, allowing the disabling of the idle camera while sitting in a vehicle as a passenger (thanks to LWSS). - Added various new server state natives for FiveM and RedM, see related PRs: ped movement, boat game state, vehicle damage, ped game state, entity script game state (thanks to @MRV6).
- NUI in-process GPU option is now available in RedM (thanks to Ktos93).
- Fixed the torso IK crash in FiveM that could potentially be abused by malicious actors to crash players (R* bug fix).
- According to the reports, task scenario crashes on RedM have been fixed with the latest experimental fix attempt!
- Improved input validation for
SetPedFaceFeature
. Negative Chin Hole and Neck Thickness values should no longer produce unexpected results.
Git Shortlog
AvarianKnight (2):
- [eb5292380] fix(state/fivem): parse proper fields for bodyHealth, add health
- [def563d8b] tweak(native/decls): mark culling natives as deprecated
David Malchin (1):
- [aa3079330] feat(native-decls): update SET_HTTP_HANDLER (#1605)
Disquse (4):
- [fa0e097ae] tweak(five): qol improvements for timecycle editor
- [90a9ac8ee] feat(five): patch torso IK crash
- [416371e19] tweak(net/rdr3): rework CTaskUseScenario crash workaround
- [266e7ef63] fix(server): proper GetData calls
Ktos93 (1):
- [9f34d8ec3] tweak(ext/cfx-ui): enable NUI in-process GPU option for RedM
LWSS (1):
- [e06c67ed4] feat(extra-natives/five): add DISABLE_VEHICLE_PASSENGER_IDLE_CAMERA
MRV (6):
- [c07f75106] feat(onesync): ped movement group research
- [9b35ba7be] feat(onesync): boat game state research
- [f6849e5f7] feat(onesync): veh damage status research
- [c01b4bc36] feat(onesync): more ped game state research
- [ed98fea9b] feat(onesync): entity script game state research
- [e95943a5e] feat(extra-natives/five): add GET_PED_SWEAT
Nikez (1):
- [13ecc5494] feat(extra-natives/five): dynamic door creation, network bypass
Tom (1):
- [be059fd7e] feat(gamestate/server): add SetEntityIgnoreRequestControlFilter native
blattersturm (40):
- [b8587080d] tweak(server): initConnect client lifetime tweaks
- [29b3f1c89] fix(conhost): crash with r_disableRendering
- [12d1cdb5e] fix(ext/cfx-ui): preventDefault on Enter press for IP entry
- [d0fd41e3b] fix(server/impl): presentCard reference cycle
- [7e9d27888] Merge remote-tracking branch ‘tom-gun/tweak-load-veh-meta’
- [3945884d8] Merge remote-tracking branch ‘ranstar74/master’
- [ecb4d9027] tweak(vendor): update jwt-cpp submodule
- [6dc3da2ec] fix(server/impl): put back ‘old’ Client->SyncData behavior
- [db2341fd4] Merge remote-tracking branch ‘thorium-cfx/scaleform_debug_log’
- [7be007b0e] Merge remote-tracking branch ‘manzarek123/entitylockdown’
- [c0eb6d17b] Merge remote-tracking branch ‘dkrm9743/master’
- [b50df72b8] tweak(server): mark .replxx_history as hidden on Windows
- [61061319e] Merge remote-tracking branch ‘disquse/fivem/timecycle-editor-tweaks’
- [8303b0fe5] fix(gamestate/server): another iteration of the train fix
- [29abb0701] Merge remote-tracking branch ‘disquse/fivem/torso-ik-crash’
- [fd765a29f] fix(build): linux build tweaks
- [6951d6463] tweak(vendor): update rocksdb
- [cd5d55532] fix(profiler): crashing for
profiler view
on invalid file - [3daa0289c] fix(gamestate/server): lock hierarchy for ReassignEntity
- [6ef72a928] Merge remote-tracking branch ‘disquse/rdr3-task-scenario-crash-ng’
- [8b06bd2d1] Merge remote-tracking branch ‘thorium-cfx/mono_rt2_core_scheduler’
- [ae0c78c52] fix(gamestate/server): properly move ReassignEntity lock
- [2416297b8] tweak(data/client): mscorlib.dll update
- [68491612f] tweak(graphics/five): graphics mod DLL loading changes
- [7901babf3] tweak(server): ‘open’ command for debug builds
- [c2d036690] fix(glue): packfile signing key breakage
- [81a9edd14] update txAdmin submodule to v6.0.0
- [c819448c2] fix(net): set server feature policy even without key token
- [f846c3c6e] Merge remote-tracking branch ‘thorium-cfx/mono_rt2_unload_regression’
- [a07cb172c] fix(server/impl): handle invalid utf-8 in handover
- [13ace85c8] fix(server/impl): catch exceptions during handover parse
- [c06235d50] fix(build): CI_{BUILD->COMMIT}_REF_NAME
- [5b794b879] fix(nui/core): don’t register FxDK APIs if not in FxDK
- [236a214bf] fix(glue): disable packfile signing until the new PKI system exists
- [1d8434cf9] Merge remote-tracking branch ‘avarianknight/deprecate-culling’
- [ef3877cff] Merge remote-tracking branch ‘avarianknight/fix/health-data-node’
- [d097a5bd1] Merge remote-tracking branch ‘summeryukata/fix/mod-count’
- [efe232a9c] Merge remote-tracking branch ‘thorium-cfx/mono_rt2_fix_expiration’
- [f4c18b6ab] fix(build/linux): less specific openssl-dev dependency
- [8e6c18939] Merge branch ‘gl-111’
deterministic_bubble (9):
- [eb5d1f2c5] Merge pull request #1986 from thorium-cfx/mono_rt2_runtime_patches
- [770c7aadb] Merge pull request #1954 from thorium-cfx/mono_rt2_5
- [1bb405637] Merge pull request #1998 from thorium-cfx/mono_rt2_5_wrong_macro
- [484462f17] Merge pull request #2000 from thorium-cfx/mono_rt1_attach_thread
- [452e06d92] Merge pull request #2002 from thorium-cfx/mono_rt2_events_and_basescript
- [5979ce459] Merge pull request #2009 from thorium-cfx/mono_rt2_enablement_and_dynfunc_cache
- [4a5d88ab5] Merge pull request #2014 from thorium-cfx/mono_rt2_misc_bug_fixes
- [4b1aeaf24] Merge pull request #2021 from thorium-cfx/mono_rt2_cas_and_dynfunc_logging
- [1649e2a2a] Merge pull request #2023 from summeryukata/fix/nve-fix
drkm9743 (1):
- [b7c66cd95] tweak(game/five): increase CScenarioInfo limit
jakub (1):
- [3f5e29533] fix(extra-natives/five): better handling for invalid face feature scales
nihonium (1):
- [cf859b338] rebuild
ranstar74 (2):
- [750bf21d4] fix(extra-natives/five): LOAD_WATER_FROM_PATH was not combining path properly
- [f3e9ec83b] feat(extra-natives/five): add SET_WATER_AREA_CLIP_RECT native
shiro (3):
- [94a9dac03] Revert “fix(glue): disable packfile signing until the new PKI system exists”
- [b987d5f9a] fix(mod-loader): block outdated version of nve weapon overhaul modpack
- [3ed947b0d] fix(mod-loader): don’t mount empty modpacks
thorium-cfx (14):
- [f96fbe7ad] fix(clrcore-v2): teething troubles
- [37986b09a] feat(scripting-mono): enable mono v2 runtime
- [2380d40d3] feat(streaming-five): Scaleform debug logging
- [534051092] fix(scripting-mono-v2): wrong macro
- [46b8470ca] fix(scripting-mono): attach mono thread
- [d4f0f4c50] tweak(scripting-mono-v2): use core scheduler
- [d671be8a7] feat(clrcore-v2): global events and BaseScript instantiation control
- [c44e8a719] feat(clrcore-v2): full BaseScript enable-/disablement
- [01cff7be5] tweak(clrcore-v2): DynFunc caching and fixes
- [fb68d8b03] fix(clrcore-v2): several bug fixes
- [53dfe30d0] fix(scripting-mono-v2): unload regression
- [3912a081f] fix(clrcore-v2): CAS transparency fixes
- [ee9cc7bb0] tweak(clrcore-v2): more guidance on DynFunc exceptions
- [55ffd0114] fix(scripting-mono-v2): use epoch timing check
tom-gun (1):
- [6b85eba47] tweak(streaming/five): dynamic vehicle metadata size calculation
Anticheat updates
Our anticheat has continuously seen a lot of updates targeting popular cheating software used on our platform. The fairness of our players’ experience is our anticheat team’s ongoing focus.
We’d like to remind you that if you have access to any working cheat software please get in touch on our Support platform with the following information:
- Archive containing the cheat executables
- Name of the cheat
- Where did you get it (Discord server, website, Youtube video, …)
- Never used license or account + instructions on how to activate the license (for paid cheats)
txAdmin v6 finally released!
This exciting release is the biggest one in txAdmin so far, with over 170 commits and 249 files changed. So here are the highlights:
- Added Hardware ID bans! Now, if a player has HWIDs matching any ban, it will also apply to them.
- In
txAdmin > Settings > Player Manager
, you can change the threshold or disable it. - In
txAdmin > Master Actions > Clean Database
, you can wipe the HWIDs saved. - Now you will be able to see the HWIDs of all players on the player modal.
- In
- Added full RedM compatibility!
- Everything in the in-game menu will work except “reset world area.”
- Added recipes for CFX Default and VORP.
- The in-game menu is now RedM-themed.
- Menu/Resource complete refactor:
- Completely rewrote the Spectate feature to fix bugs (like a black screen) and add a player cycle feature!
- Major performance improvements everywhere!
- Fixed NoClip game crashes and vehicles disappearing.
- Added shortcut buttons to the vehicle spawn dialog.
- The Z is now optional when teleporting to coords.
- Discord Bot changes:
- Announcements will now use embeds.
- You can now use actual Discord announcement channels for the announcements.
- You can now completely remove the buttons from the Status Embeds.
- Whitelist via Discord membership or role is now way more resilient to failures (ratelimit/timeout) due to a new caching strategy.
- Sending announcements via the in-game menu will now trigger event
txAdmin:events:announcement
and send a Discord announcement as well. - New internal console utility, so the txAdmin terminal will look a bit different.
- Optimized web status internals, moving from sending an HTTP GET every second to WebSockets.
- Improved compatibility with Pterodactyl deployments.
- Updated just about every translation file and added Mongolian.
- Improved error handling and messages in many places (settings page, bot, etc.).
- The web player list now allows searching for players by NetID.
- Updated many, many packages for fixes and security patches.
- And honestly, a bunch more small fixes and tweaks that I couldn’t possibly remember…
The new C# runtime pilot is here
For months, thorium has been redesigning and rebuilding the C# runtime from scratch, with a huge focus on performance, game development, usability, and a long-wanted upgrade to the natives system. And now, its pilot is finally available for you all to test! (only beta and latest builds).
Thorium would like to thank the C# community for all their testing, ideas, and feedback. It’s been paramount to the development of this new environment.
Let’s show you some of its changes:
- Tick-less (requested so many times, lost count).
- Newest native declarations and backward native compatibility for your resource.
- Support for so-called shared libraries.
- Separate libraries for core and game-related code.
- Coroutines for all your tick and await/async code needs.
Now here are some performance results:
- Runtime enter/exit cost: the default 0.04~0.06ms overhead cost in v1 has been eliminated. Enjoy your 0.00ms.
- Scheduling: removed all of .NET scheduler’s overhead by using the Coroutine scheduler instead.
- Interop:
- Events and Exports are at least 84 times faster.
- String recoding is 43~47% faster.
- Natives:
- Clients can expect speed increases of 40~84% and higher.
- Servers on Windows have a ~10 times speed increase (WSL ~160 times).
- Custom native invocation can expect speed increases by 10-fold.
A comparison of an empty-tick running on v2 vs. v1:
Curious and want to test out this pilot? Click here to get started with v2. Mind you, it’s still in beta, crashes are expected, and use in production is highly discouraged at this moment.
Documentation
A new console variable named game_enableScaleformDebugLog was added to the docs.
We merged the following documentation PRs
- Updated example files for a few data file types
- Tweak: less confusing C# targeting text
- Add missing game_enable* console commands to docs after an issue was opened.
Knowledge-base
- There have been updates to the knowledge-base by other members, including restructuring to have categories for different games.
- An article regarding servers not showing on the server list was ported over from the docs to the knowledge-base. It can be found here
See you all next month