Skip to content

Releases: Mauler125/r5sdk

v2.2.9 Release Candidate

03 Aug 16:02
Compare
Choose a tag to compare
Pre-release
Light script cleanup

- Rename 'checksum' to 'digest'.
- Sort the data in the correct order to reduce load on the client (client sorts it to the same order).

v2.2.8 Release Candidate

30 Jul 11:23
Compare
Choose a tag to compare
Add json fields for manifest version and asset list

Make it so it could actually be checked and parsed properly.

v2.2.7 Tournaments Build

20 Jul 22:41
Compare
Choose a tag to compare
Pre-release
Normalize module names

All lowercase.

v2.2.6 Release Candidate

15 Jul 20:41
Compare
Choose a tag to compare
  • Added logic for loading BSP lump files. The constructor of 'CMapLoadHelper' has been rewritten to determine whether to load the packed BSP, or from its lumps (lumps are favored), various locations within the engine have been patched on assembly level to reflect the changes.
  • Replaced all CRT memalloc functions with a CStdMemAlloc override (including debug and aligned versions).
  • Replaced old project files with CMake files, all libraries are now build separate, but in parallel. The compile times have been reduced significantly.
  • Fixed an engine bug where the input sample frame time got clamped to the engine frame time, causing the controller joy stick sensitivity to vary under different GPU loads affecting frame rates.
  • Fixed an engine bug where user commands get collated or dropped if the frame rates exceed 190FPS, causing faltering.
  • Fixed an engine bug in 'FireWeaponBolt', which calls 'CreateWeaponBolt', but never checked if the returned pointer was NULL. This happens when we are out of edict space, while still trying to create a weapon bolt. An engine error dialog now shows when this occurs.
  • Fixed an engine bug where the index field in the 'NET_SetConVar' net message wasn't checked in the C2S_CONNECT packet handler, therefore, a carefully crafted packet would make the connectionless packet handler read out of bounds, this has now been clamped to the max size of the userinfo ConVar array.
  • Fixed an engine bug where 'NET_StringCmd', 'SVC_UserMessage (Type 'TextMsg')' and 'SVC_Print' would get copied into the replay buffer. These messages would then get send back to the client that is watching the replay; the 'NET_StringCmd' command could be used to execute commands on the client, such as connecting it to an arbitrary server.
  • Fixed an engine (gamedll) bug where invalid viewangles of '-FLT_MAX' from received UserCmd's would crash the game.
  • Fixed an engine (gamedll) bug where the 'weapon_activity' command could be used to endlessly throw ordnances.
  • Fixed an engine (gamedll) bug where the 'cycleslot' field in the CUserCmd class could be used to cycle to dual wield slots, without being allowed to
  • Fixed an engine bug where the 'weaponindex' field in the CUserCmd class could be used to crash the server, this field could also be used to instantly enable dual wield for the currently equipped weapon, while not being allowed to.
  • Fixed an engine (gamedll) bug where the received frametime in the CUserCmd class was unclamped, and therefore, usable to achieve speed hacking without adjusting the timescale globally.
  • Fixed an SDK bug where the timestamp of an error would be shown twice in the error dialog.
  • Fixed an SDK bug causing the "Private Server" token UI image to not show all the time.
  • Fixed an SDK bug where the persistence fields in the CClient class was set too late, the initialization has been moved to 'CClient::ActivatePlayer', fixing crashes on rare occasions.
  • Fixed a rare crash on the dedicated server, when trying to send heartbeats.
  • Fixed a rare crash on the client when trying to reparse the local playlists file after disconnecting from the server, the reparsing code has been moved to 'CClientState::ConnectionClosing'.

v2.2.5 Release Candidate

01 May 21:55
Compare
Choose a tag to compare
  • Fixed a bug that would cause the game client to freeze when disconnecting from the server.
  • Fixed a bug in RCON code that would prevent the netconsole from connecting to an IPv4 address.
  • Fixed a bug in logger code preventing squirrel warnings/errors from overriding the log level.
  • Fixed a bug causing the 'token' image not to show in the server browser's 'private server' modal.
  • Fixed a bug in the standalone netconsole causing high CPU usage when unconnected.
  • Fixed a bug in 'CUtlVector<T>::~CUtlVector' and 'CUtlString::~CUtlString' that caused the destructor of 'CUtlMemory' to be called twice.
  • Fixed an issue on the worlds edge maps, causing one of the loot bins near the entry of the cave to be embedded in the wall.
  • Improved static props parsing performance by dropping all exceptions, and clamping prop skin count with replacement mdl skin count.
  • Improved registration code for abstracted script functions by calling them in a common initialization routine.
  • Improved fading animation on Dear ImGui panels.
  • Improved LZHAM compression performance by enabling WIN32 API and threading functionality.
  • Added global talk functionality to voice chat (could be toggled with cvar 'sv_alltalk').
  • Added live global ban functionality to SDK (cached global bans are removed; a ban on ms will now be synced with all live servers).

v2.2.4 Release Candidate

10 Apr 22:14
Compare
Choose a tag to compare

Security:

  • Fixed several uncontrolled format string bugs in SDK code which could lead into undefined behavior, info leaks or a ROP chain when carefully executed.
  • Fixed several bugs in the Dear ImGui developer console, causing the loop control variable to go out of bounds on certain invalid characters.
  • Fixed bug in LZSS decompression code that caused the iterator to go out of bounds on malformed connectionless packets.

Defects:

  • Fixed an issue in the SDK's VGUI render code that caused a crash on AMD Ryzenβ„’ Threadripperβ„’ processors.
  • Fixed a crash caused by a misaligned field in the 'CStudioHdr' structure.
  • Fixed a rare crash in the dedicated server that occured when 'CModelLoader::UnloadModel' called a subroutine that runs a loop on absent CMaterialGlue objects.
  • Fixed many bugs reported by the compiler as warnings on Level 3 and 4 (/W3 & /W4).

Other:

  • Significantly reduced CPU time in the error handling logic for 'CMDLCache'.
  • Class 'CHostState' is no longer declared inline.
  • Destroyed 'CClientState' constructor on the dedicated server, which reduced 100MiB worth of initialization memory.
  • Added a cvar for controlling CURL request timeouts.
  • Added a cvar which determines whether or not a client's persona name should meet Origin/EADP's criteria (enabled by default).
  • Removed 'ui.rpak' from dedicated server's 'forced' pak load array; currently only loads 'common_early.rpak'.
  • Removed the loading of 'ui_mp.rpak' from the dedicated server.

v2.2.3 Release Candidate

13 Feb 00:06
Compare
Choose a tag to compare
  • Fixed bug causing texture streaming overlay to show incorrect memory statistics.
  • Fixed bug causing smart pistol laser line to never get drawn.
  • Fixed bug in RCON code causing percentage ('%') characters to be improperly formatted when transmitted over the wire.
  • Fixed bug in SDK code causing memory leaks during the destruction of 'KeyValues' objects.
  • Fixed bug in SDK code causing 'CUtlBuffer::GetPtr' to return a 64bit pointer promoted from a 32bit integer.
  • Fixed bug in CPU detection code causing Intel CPU cache descriptor fields to never initialize.
  • Fixed bug in 'BHit_f' caused by the usage of 'atof' instead of 'atoi' for entity indexing.
  • Fixed bug causing 'Mod_LevelHasChanged()' to return false while the level has changed (rare).
  • Fixed bug causing the client to still show the server's playlists while disconnected from it (a reload request was issued, but never executed).
  • Fixed bug causing clients to not load pak files when connected to a remote server (rare).
  • Fixed bug causing user input to be lost when the game window is resized.
  • Fixed bug causing init errors to never get logged.
  • Fixed bug in the Server Browser causing it to not animate properly when invoked.
  • Fixed engine bug causing overlay memory to never get cleared when cvar 'enable_debug_overlays' is unset (causes progressively high CPU time in 'PurgeServerOverlays()').
  • Fixed engine bug causing CPU statistics to be send only during connect. 'SVC_ServerTick' is no longer send every snapshot in R5.
  • Fixed shadow bug in 'VUtil_Shared::GetCon()' (g_pTraceFilterSimpleVFTable was never initialized).
  • Fixed crash when loggers are used before 'Detour_Init()'.
  • Fixed incorrect allocation sizes in 'CBanSystem::Load' and 'ImGuiConfig::Load' causing OOB memory write.
  • Fixed bug causing deadlock detection code during GUID relations processing to never get fired.
  • Fixed bug causing incorrect values getting written to the size fields in the RPak 'patch' header after decompression.
  • Fixed bug causing 'y' axis in poly to be set as the 'z' in dtNavMeshQuery::findRandomPointAroundCircle.
  • Fixed bug causing incorrect rasterization at tile borders.
  • Fixed bug causing naveditor to never log statistics to the console when invoked over the command line.
  • Fixed uninitialized member variable 'NavMeshPruneTool::m_hitPos'.

v2.2.2 Release Candidate

21 Oct 20:34
2dcae7b
Compare
Choose a tag to compare
  • Missing materials are now only printed when the 'bComplain' parameter is set in CMaterialSystem::FindMaterialEx, or the new cvar "mat_alwaysComplain" is set.
  • Fixed a material issue that caused sentinel look dark (bad shader CPU data).
  • Fixed a glitch that was turning the sentinel into an automatic weapon.
  • Suppressed season 1-2 call event warning messages.
  • Sentinel now has icon for obituary panel.
  • Sentinel will now have infinite ammo if equipped from dev menu.
  • Sentinel is now available for the aim trainer (no attachment support yet).

v2.2.1 Release Candidate

20 Oct 18:26
Compare
Choose a tag to compare
  • Added new weapon "Sentinel" to the game, this is a bolt action sniper rifle.
  • Added new map "Encore".
  • Added FCVAR_REPLICATED color code to the console auto complete.
  • Added logic to render links to nearest node for AI Network (this can be toggled using the cvar "ai_script_nodes_draw_nearest").
  • Added render sphere to bullet-hit debug (blue wireframe sphere indicates the client's predicted entity origin).
  • Heavy NavMesh and AI Network render optimizations (used SIMD where possible).
  • Heavy CPackedStore class optimizations and cleanup (packing the entire workspace is 60 seconds faster!).
  • Fixed defect where certain models are not loaded properly during level load, the big leaf on Worlds Edge was never loaded after the frustum culling fix several months ago.
  • Fixed the logic behind launching the game as game client only (passing -noworkerdll allows you to inject and run the client.dll instead).
  • Fixed crash that occurred due to unloading the SDK RPak files after the engine ones. Swapped order to prevent the crash.
  • Fixed CPackedStore directory file name sanitizer.
  • Fixed defect where the console would add duplicate submissions to the history due to trailing white space characters.
  • Fixed minor memory leak due to unused strdup call in the developer console.

v2.2 Release Candidate

25 Sep 19:25
Compare
Choose a tag to compare
  • Fixed defect where the dedicated server would use the low violence "GAME" path.
  • Fixed most common errors reported by users when launching the game (updated scripts and playlists).
  • Fixed playlist names not showing correctly in the in-game hosting menu.
  • Fixed issue where the dev menu doesn't get shown when the game is launched using the launcher, with "Enable Cheats" ticked on.
  • Added '-novid' launch parameter option to the SDK (this disables the startup video if desired by user).
  • Added NavMesh files for the following maps: "Ash's Redemption", "Drop-Off".
  • Added diagnostic tool (helps to identify common problems during installation).
  • Added new map "World's Edge Mirage Voyage".
  • Increased net channel processing time budget to 200ms (this should solve the already rare case where false positives are hit).