BUILD UPDATE #021: Patch 1029.1

This is a small patch mainly intended to fix the various game crashes and connectivity issues introduced in version 1029.

⚠️ Coming from a previous version of the game? Issues with controls, loadouts, assets or settings?

We strongly recommend players coming from an older version of the game to delete all files located in %LOCALAPPDATA%/GroundBranch/Saved/Config/WindowsNoEditor (paste file path onto your File Explorer address bar and hit Enter to go to folder).

For those who can afford it, we suggest a full reinstall: it may fix broken/missing features introduced in this version, as well as issues with controls, assets, settings and even performance. To ensure a clean reinstall, you need to manually delete all files located in …/steamapps/common/Ground Branch and %LOCALAPPDATA%/GroundBranch/%UserProfile%/Documents/GroundBranch/

⚠️ Update your dedicated server

All dedicated servers must be updated to work with the current version. Make sure yours is updated so players can enjoy the latest version of GROUND BRANCH!

Fixes and updates

  • Kris went over the code side of things to fix the crashes and connectivity issues brought on by 1029. Thanks for all the reports and crash logs!
  • Cleaned up some bad navmeshes in Depot, Small Town and 747 so bots won’t get stuck in (or not go to) certain areas. Bad navmeshes!

What’s next?

Patch 1029.2 will fix a few less pressing issues from 1029 that didn’t make the cut.

This has been Build Update #024!

If you missed our last update, be sure to check it out here as it has some important news and some nice previews.

Don’t forget to keep in touch with us and the GROUND BRANCH community via Discord, the Steam® Community HubRedditTwitterInstagram or Facebook—hit us up and we’ll get back to you as soon as we can. For those with a lot questions and not enough answers, we’ve also put out an official FAQ that’s well worth checking ou

Be safe, be well, and we’ll see you on the next one.

—The BlackFoot Studios Team

Version info & change log

Game version: 1029.1

Client

Steam Build ID: —
Size: — GB

Dedicated server

Steam Build ID: —
Size: — MB

FIXES

* FIXED various AI navigation issues in 747, Depot and Small Town


CODE

* cleaned out unused functions from GBGameViewportClient
* removed usage of ConstructorHelpers from GBBotManager to fix related crash
* updated GBFirearm
    * moved some logic from OnBeingUnequipped() to OnRemoveFromCharacter() to ensure that logic is called even if the firearm being equipped isn't detected.
    * added check in BeginDestroy() to prevent it trying to stop sounds on a dedicated server to hopefully fix a crash related to the server removing listeners in Wwise when there are none.
* updated GBItem::UpdateSkin_Implementation() to try to fix crash related to a MID not being created correctly by engine due to the primitive component owner being invalid in some way.

* created M_Widget3DPassThrough based on suggestion to correct washed out look for web-based MOTD
    * see https://forums.unrealengine.com/development-discussion/rendering/91810-browser-3d-widget-looks-washed-out
* created UGBGameplayStatics::IsNetReady()
    * takes PlayerController, finds the matching net connection (if any) and returns the value of IsNetReady()
* updated GBGameMode
    * moved adding players to waiting queue from  HandleStartingNewPlayer() to PostLogin().
    * updated NewPlayerWaitingTimer() to use UGBGameplayStatics::IsNetReady() to make sure a player can received RPC's before attempting to call ClientInitialSync().
* updated GBCharacter::NetMulticastPlayVoice_Implementation()
    * added IsAlive() check to prevent trying to start playing voice for dead/dying character
    * changed check(VoiceAudioComponent) to return if VoiceAudioComponent is a nullptr instead.
        * VoiceAudioComponent could be null if the character is out of range of any players that can hear it or sound is disabled :|
    * Fixes crash related to VoiceAudioComponent coming back as null and the check() failing.
* updated GBPlayerController to only created a VOIPManager if sound is enabled.
* updated GBVOIPComponent
    * instead of emptying entire audio queue into buffer if not enough samples are ready, it will now only dequeue enough to meet the current requirements.
    * also changed loop to use !IsEmpty() instead of return value of Dequeue().
    * hopefully fixes Dequeue() causing crash for some reason :neutral_face:
* updated GBGameMode
    * removed call to PlayerController->ClientInitialSync() in HandleStartingNewPlayer().
    * added !WaitingPlayer->IsUnreachable() check to NewPlayerWaitingTimer()
    * Should fix crash related to calling ClientInitialSync on a player who did not connect correctly resulting in the "Unreachable" flag being set and no RPC's working (hence the crash).
* updated GBFirearm
    * moved sight sorting to FSightGroup::AddSight()
    * updated FSightGroup::GetActiveSight() to use IsValidLowLevel() instead of nullptr check and IsValidLowLevelFast()
    * added UPROPERTY() macro to SightGroups member variable
    * hopefully these changes fix the crash related to GetActiveSight()

* attempted fix for crash related to using ConstructorHelpers in GBGameMode
    * classes used by game mode are now null by default when game mode is created.
    * PostLoad() and PreSave() will check if these classes are still null and set if them to the proper defaults they actually are.
    * removes the need for the ConstructorHelper function that was failing, so fixes the crash

Share this Post: