BUILD UPDATE #002: Another Hotfix

We’ve got another small build update ready!

Like before, check the highlights underneath and scroll further down for the complete change log. Keep the reports coming and thanks for playing GROUND BRANCH.

NOTE: All servers must be updated to work with the newest build!

Highlights

  • Unmute now works.
  • Fixed “Spectate” button on ops board for Terrorist Hunt and Team Elimination.
  • Fixed fire mode, magazine weight and other UI elements not appearing after a map change.
  • Fixed NVGs not working after map change.
  • Reduced slowdowns from bullet impacts and muzzle smoke/flash.
  • Team Elimination should no longer start when a single player enters the Operations Room.
  • Reduced/fixed slowdowns in Small Town.
  • Fixed some Tanker Ship map issues.
  • Added “Spectate” to bindable controls—default key is F6.
  • Character lighting optimizations.

Build version: 1023
Steam ID: 3053047

Change log

FIXED
* FIXED navmesh area near SW spawn in SmallTown that allowed AI to sometimes spawn inside large rock pile
* fixed being able to start a vote while another is already in progress (oops)
* fixed vote kick not working
* fixed lighting not being reset when leaving character editor in training maps
* fixed player list blank lines
* fixed BP_Explosion_M67 trying to access possible none due to a component or its owner being marked for destroy.
* FIXED tanks Ship bugs
    * Falling off walkway with no railings between pipes on deck 
    * Falling out of map in engine room
    * Falling out of map along lower level of main structure walls (both sides)
    * Engine room walkway stairs not accesible 
    * Misaligned geometry causing gap at bottom of mian stair system just before entering engine room 
* fixed possible none in WBP_TeamElimination_OpsBoard if game state hasn replicated properly yet
* fixed UGBUIFunctionLibrary::GetChildrenOfClass() failing to find children of user widget blueprint
* fixed firemode, center messages and other related widgets no longer working after map change
* fixed quick admin commands being lost on map change
* fixed calls to ClientMessage() in C++ not displaying very long, if at all
* FIXED missing collision on middle section of cinderblack wall
* fixed team elimination starting if only one person enters the ops room.


CONTENT
* Removed 'Pre' from Early Access watermark
* Added 'spectate' to bindable controls.Default is F6
* Folded built in bipod on Mk48 mod1 so it didn't collide as much

* Set bCastDynamicShadow = false on pouches to help performance

* Optimization of bullet hit effect and weapon muzzle flashes
    * Setting Effects to Medium in Settings reduces amount of GPU based particles so should help on lower end GPU's
* Optimized light placements on Small Town
    * Hopefully this reduces specific area slowdowns some poeple are seeing
* Set Depot roller doors to have a random open state at map startup


CODE
* disabled some stubbs in GBAIController & RBEventManager
* added VOIP indicators for spectators
* removed game mode choice from change map vote menu
* enabled ban command to work regardless of player still being online
* added short ban duration to kick to prevent kicked player instantly returning to server.
 * added cancel option to connection screen (just calls 'disconnect' for now)
* disable loop back in voip manager (oops)
* added additional variables to WBP_RadialMenu to John to fiddle with
* changed mutelist storage type from uint64 to fstring.
* tweaked when ops board spectator button is visible/not visible - made need better solution
* set values to some local variables in BP_TerroristHunt & BP_TeamElimination to see if that clears up reported bug
    * shouldn't need to, because as far as I know, Blueprint functions auto-init the values to zero.
* changed "CUSTOM" to "CUSTOM REASON (TYPE IN)" in WBP_ServerAccess_List_Reasons to make it clearer.
* updated GBRoundManager to parse the actual command line instead of relying on game mode options.
* added logging to GBVOIPManager::IsMuted() to find out whats going on with that.

* removed IsMuted() from GBPlayerState.
* changed IsMuted() on GBPlayerController to accept PlayerState instead of UniqueId.
    * updated affected C++ and Blueprints
* removed IsMuted() logging now that it is well and truly fixed.

* renamed WBP_X_BriefingRoom widgets to WBP_X_OpsBoard
* created WBP_OpsBoard_InProgressButton
    * moved functionality of inprogress overlay/spectator button from separate OpsBoard widgets to one that is self contained.
    * automatically shows/hides itself based on round stage.
* updated BP_TerroristHunt
    * cleaned up CheckReadyUp() to make sure it specifically checks the round stage instead of simply checking that it isn't "ReadyUp" stage.
    * rigged it up to replicate desired number of terrorists via AI State to show on OpsBoard.
* updated WBP_TerroristHunt_OpsBoard
    * cleaned up/simplified thanks to removal of inprogress overlay/spectator button to separate widget.
    * added basic 'mission info' - number of tangos + simple objectives (Sweet the area + eliminate threats).
    * this should make the round won't instantly start unless everyone is ready.
* updated BP_TeamElimination
    * cleaned up CheckReadyUp() to make sure it specifically checks the round stage instead of simply checking that it isn't "ReadyUp" stage.
    * this should make the round won't instantly start unless everyone is ready.
* updated WBP_TeamElimination_OpsBoard
    * cleaned up/simplified thanks to removal of inprogress overlay/spectator button to separate widget.
* fixed axis actions bound to mouse button not ending when mousing over interactive widget

* changed Kick command to still add temp ban even if player leaves before they are kicked.
* added vote timeout of 1 minute after map change.
* added map vote timeout of 5 minutes after map change.
* created UGBUIFunctionLibrary::GetFirstChildOfClass() to make it easier to find specific widget without Blueprint shenanigans
* refactored WBP_InventoryBar & WBP_InventoryBar_Heading to fix UE4 bullshit about it being WBP_InventoryBar being out of date (even after I made it fresh!)