Build Update

BUILD UPDATE #011: Bark

Edit (Mar 15, 2:30 am EST): Corrected Steam build numbers and download sizes.
Edit (Mar 16, 2:14 am EST): Specified customization screen rotation bug.

It’s been a little longer than usual, but Build Update #011 has finally rolled out!

› NOTE: All dedicated servers must be updated to work with the current build.

While the original plan was for this update to be the first in a series of PvP-oriented patches, over the last weeks our intrepid code wizard Kris went through good ol’ Internet hell in his homeland down under and could barely stay connected. Needless to say, implementing online features without a working connection is tremendously difficult. And by “tremendously difficult”, we of course mean “impossible”—kinda like throwing a frag all the way across Depot or hitting the 300 m target on the Shooting Range in low-ready.

On the flip side of the whole connectivity hardship, Kris took the time to work extensively on a much needed area: A.I. And so he did, causing the single player and co-op experience to drastically improve in the process. But we’ll go over that in a bit.

         
Before we move on to this update’s highlights and full patch notes: Make sure you’re staying updated on GB news, previews, discussions, special offers and giveaways by following our social accounts and joining our Discord if you haven’t already. That way you stay in touch with us and the community, and help our online presence grow—and that’s always great for GROUND BRANCH.
         

Alright, here we go:

Build highlights

Initial A.I. overhaul

“I’m starting to think there might be a reason why so few shooters
bother with single player and co-op focus these days…”
—Kris Rigby, probably

A.I. has certainly had its ups and downs over development. But as mentioned, Kris has taken something awful—internetlessness—and turned it into something beautiful: the initial A.I. overhaul. You can get an idea of how much their behavior has changed in the video below:

They may look kinda silly at times, but wait until one of these bastards pops up behind you and smokes your ass.

To sum up the various changes, A.I. enemies now have variable perception (sight and hearing), react to being shot and flashed (as in “banged”; God, could “flashbang” sound any more ambiguous?), use cover and lean, notice dead bodies and can no longer hit at first contact. Oh, they also do basic call-outs now—placeholder voices for “Contact!” and so on. Here’s the long version:

  • Patrolling enemies now use the “casual” walking animation.
  • A.I. sight threshold depends on state, making it easier to approach an idle A.I. than an alert one.
  • Their sight strength is also modified by float curves for distance and angle to target, making them less likely to notice you from a distance or from the sides. If you manage to sneak up on one, they will no longer be non-reactive to bumping onto.
  • Hearing strength is modified by float curves for different types of sounds, meaning they’re more likely to hear and react to gunshots over footsteps and so on.
  • One of the most obvious changes: call-outs! “Contact!”, “Under fire!” and “Cover me!” are some of the lines you’ll hear bots shouting out contextually. The voices are of course placeholder, but they still contribute considerably to the overall combat, giving a sense of communication and often making consequences (such as being hilariously wiped out fifteen seconds into the round) clearer, as well as sometimes giving away their positions.
  • Enemies now react to being shot at and, depending on their state, will duck or momentarily hesitate before fleeing.
  • A.I. will use cover while attacking or searching, leaning around obstacles just enough to get a clear shot.
  • They now notice dead bodies, friendly or otherwise.
  • Some visible reaction to flashbangs has been added: enemies will now turn around randomly and move shorts distances until the effect wears off.
  • Finally, they deliberately miss their first shots at a new target for a while. This was done to prevent the impression of getting one-shot out of nowhere, but it’s only a first iteration. The deliberate missing will be adjustable in the future based on difficulty level, and able to be fine-tuned via .ini files.
  • More details in the full patch notes at the end of the post!

› The new A.I. is implemented on all Terrorist Hunt-compatible maps!

As with everything else, this is all work-in-progress, and many of these A.I. improvements are merely a first pass. We’ll continue to iterate on A.I. as we move forward—hopefully with your valuable feedback.

Content

Reworked MICH

The MICH helmet has received a brand new model and texturing, courtesy of our 3D artist Zee. It looks many orders of magnitude more operator than the previous model, with velcro patches, goggle loops and all that tactical jazz. As with the old model, the new MICH accepts the AN/PVS-15 NVG, Headset and Strobe Marker attachments.

Helmet (MICH) comes in black, tan (pictured), green and transitional color schemes.

The fit is a little loose on some of the character heads, but we’ll tackle that at a later time.

FAL (Vintage)

A vintage FAL has been added as an OPFOR weapon. It’s currently unlocked for those who wanna mess around with it, but it doesn’t have unique animations or sounds.

Other updates and fixes

  • Character/weapon rotation no longer gets stuck in the customization screens. WOO!
  • The radio squelch sounds have been replaced with new effects, which are a work in progress. This is Mikson’s first sound update to make it into a playable build—the underlying system for most other sounds he’s been working on will take a little longer to implement. For now, PRAISE THE NEW SQUELCH!
  • Tactical Light (Compact) can now be mounted on top (12 o’clock) forearm rails. The 12 o’clock position will minimize intrusive muzzle/suppressor shadows, but may interfere with your sight or AN/PEQ-15 placement and usage. Choices, choices…
  • WIP map City remains in active development, with some new areas and props. Check out the progress under Play Offline › Development.

Known issues

  • Customization menu: Character/weapon rotation (click and drag function) doesn’t work when the customization screen is accessed from the Main Menu (via the “Customize Operator” option). It should work normally within maps, however, via locker or workbench.

In other news…

Weapon sounds overhaul: a sneak peek

Put your headphones on and listen to this very short, but very juicy preview for the upcoming sound overhaul:

Damn, that sounds good.

Mmm-mm.

That’s all for this Build Update. You can check out the full change log below, and as always, thank you so much for your continued support! Keep the feedback coming, and see you on the next one.

Patch notes

Build version: 1026

Client

Steam Build ID: 3645609
Size: 1.7 GB

Dedicated server

Steam Build ID: 3645614
Size: 51 MB

FIXES

* fixed Compact Tac Light to be used on top rail
* fixed missing #if WITH_EDITOR refs in GBBTTask_MoveToCover causing build failure
* fixed incorrect usage of #if WITH_EDITOR in GBNavLinkProxy_Ladder causing build failure
* fixed for build in CoverGenerator
* fixed curves for AI senses being GC'd.
* fixed move and rotate in character and item editor getting stuck on when mousing over menus
* fixed adapter spelling for the BP_GalilRailAdapter display name.
* fixed night vision getting stuck on when changing kits if you did so with night vision enabled.
* fixed exec binds repeating - radio menu etc should now toggle only.
* fixed missing value in BP_Explosion_MK13_Stun causing divide by zero warning
* fixed warning in WBP_ChatOverlay if an engine message beats the HUD init.
* fix for the radio when new sound effects were hearable only for the one who pressed push-to-talk - should work as intended now
* fixed AI sight curves going bye-bye due to UE4 Blueprint shenanigans
* fixed character voices being replicated long after usage
* fixed AGBCharacter::CanBeSeenFrom() resetting sight strength to 1.0f.


CONTENT

* changed radio start, end and loop sound effects

* Added in new SWAT truck vehicle for use in City map
* Cleaned up the base emissive master material and added ability to designate separate emissive mask texture along with what color channel to use
* Reorganized the Vehicles folder and fixed up redirects

* Added weapon: FNFAL (intended for bad guys)
* City map
  * Detailed out new ladder area
  * Started to add some 'narrative' to the outside space (failed terrorist event)

* Updated MICH helmet to new model/materials

* Blocking out new Main Menu map
  * Testing out ideas for now

* Cleaned up a lot of marketplace asset collision and LODs
* Changed display name of FAL weapon
* Storage Facility
  * Did optimization pass
  * Built lighting


A.I.

Initial AI overhaul
* removed usage of TacticalAI Plugin for now.
* updated all affected C++ and Blueprints
* added CoverGenerator by Deams (https://github.com/Deams51/CoverGenerator-UE4)
  * modified the ever loving shit out of it for our needs
* updated GBAIController
* created new behaviour trees using a combination of old and new code.

* removed references to old AI stuff to prevent log spam
* removed unused test voice (me saying "Contact!")
* added .modules file to P4 typemap then reconciled to add any that were missing.

AI overhaul #2 submit
* fixed missing body in /BadGuys/AppMilitant01.kit
* fixed CoverGenerator creating stack up points in mid air.
* created GBAISense_Hearing - a custom versions of AISense_Hearing
  * allows sound events to be compared against float curves based on the tag they have.
  * strength is then multiplied at the source.
* created GBAISense_Sight - a custom versions of AISense_Sight
  * allows sight events to be compared against float curves for distance and peripheral vision.
  * strength is then multiplied at the source.
* created GBAISquad
  * allows information to be shared more easily between AI that are working together.
  * tracks members
  * auto-assigns leader
  * determines member patrol locations
  * determines member guard locations
  * remembers previously searched locations
* created GBAIGuardPoint
  * allows mappers to control where AI should move to when in the "Guard" state (new!).
* updated GBAIController
  * updated to use new GBAISense_Hearing & GBAISense_Sight.
  * added support for GBAISquad.
  * added DesiredViewRotatioOffset to control AI view rotation.
  * added DesiredAimRotationOveride to control AI aim rotation.
  * added CenterOfMassBone to AISettings.
  * added basic climb ladder logic to Tick().
  * added DeliberateMissTime
    * while > 0, AI will deliberately aim to the right or left of their target
in such a way that will just miss each shot.
    * additional aim error is added *on top of this*.
    * velocity aim error is taken into considered to prevent it canceling out the deliberate miss adjustment.
    * on target threshold is reduced to 1 degree to ensure the AI misses accurately.
    * lasts 2 seconds in total, though it begins to fading out after 1.
    * time is not reduced until AI is on target and firing.
  * moved UpdateSenseData() logic to ActorsPerceptionUpdated() and removed it.
  * added basic AI Barks.
  * created Guard state
* renamed GBAIPath to GBAIPatrolRoute to reflect its actual use.
* updated GBAIPatrolRoute
  * added ability to control the width at which AI can spread out while patrolling.
  * scaling the spline along the Y axis will affect the available width at that point along the spline.
  * patrol route width shown when selected, with any scaling.
  * improved ValidatePatrolRoute() function
    * projects each point to navigation mesh and zeros out roll first.
    * verifies location and width at each point & user specified distances in between each point.
    * highlights any issues found.
* updated GBSpawnPoint & GBSpawnManager classes to work with GBAISquad
* added NoTarget cheat for debugging AI
* created GBNavLinkProxy to allow for custom C++ nav link base classes.
* created GBNavLinkProxy_Ladder to control AI usage of ladders.
  * updated all affected Blueprints.
* created GBNavLinkProxy_Door to control AI usage of doors.
  * updated all affected Blueprints.
* updated DefaultEngine.ini
  Made sure RuntimeGeneration=DynamicModifiersOnly under [/Script/NavigationSystem.RecastNavMesh]
  NOTE: This will be reset when ever 'static' is selected!
  * changed bShouldDiscardSubLevelNavData to False under [/Script/NavigationSystem.NavigationSystemV1]
  NOTE: This allows us to move nav mesh to sub map if we wish.
* updated all TH- game mode maps
  * all navigation modifiers and links moved to _Geo.
  * deleted existing recast actors to ensure they were updated to use DynamicModifiersOnly.
  * added new ladder and door nav links.
  * added new guard points.
  * added patrol routes.
  * renamed AI spawns to make it easier to determine their locations.
* updated BP_Door_Swinging
  * removed old AI logic
  * added box collision around door core to ensure door core is picked up as a 'dynamic modifier' 
by the navigation mesh regardless of the the static mesh used.
  NOTE: Fuck me, the UE4 navigation mesh can be a picky bastard!
* updated BP_WindowCover to disable any GBAIGuardPoint behind it when it's enabled.
* added missing JAFO patch.
* updated all behaviours trees to incorporate basic barks
* created BT_Guard
  * moves from guard point to guard point
  * scans area based on guard point values set by mapper.
  * avoids going to a guard point another AI is at or visited recently.
* updated BT_Patrol
  * squad leader determines patrol route and direction.
  * other squad members spread out behind leader
* updated BT_Attack
  * split up logic into sub BT's.
  * improved usage of cover by separating leaning & stepping out
  * includes barrel line check to prevent shooting cover.
* updated BT_Search
  * improved usage of cover by separating leaning & stepping out
  * improved selection of next search location based on search direction
  * search direction specified before running the BT.

* removed references to assets under local "_OLD_AI" folder that is not on P4 depot.
* added GroundBranch/AI to DirectoriesToAlwaysCook in DefaultGame.ini to make sure AI barks are cooked.

* added damage sense to AI
* rigged up AI to react to being bumped into or having a firearm collide with them.


CODE

* changed version number from 1025 to 1026
* update ZooKeeper plugin
  * disabled ElevatePlayer option for now - was being abused.
  * added MinPlayers to ZKVote to define minimum number of players required to vote.
  * added check to make sure VoteDuration is at least 10 seconds.
* created UGBCharAppearanceFunctionLibrary::ApplyCharAppearanceFromFile()
  * will take filename of appearance, open the file and apply it directly to character
* created UGBCharLoadoutFunctionLibrary::ApplyCharLoadoutFromFile()
  * will take filename of loadout, open the file and apply it directly to character

* added assertion check to UGBGameInstance::OnLoadingScreenFinished() to prevent log when game loads without a front end map
* created GBAIFunctionLibrary::ForgetrAll() to access the AIPerceptionComponent::ForgetrAll()
* created BT_Stunned for the AI
  * handles the timer related to how long AI is stunned for
  * disables/enables sight and hearing AI is stunned/unstunned
  * makes AI take short steps and turn randomly
  * once finished, sets AI to search mode
* updated BP_Explosion_MK13_Stun
  * unified code used to stun AI or local player
* updated BP_StunAffect
  * ensured that multiple stuns stack up
  * switched from timeline to float curve to control stun PP alpha

* cleaned up radio sound cues for Mikson (my bad)
* made firing volume a variable on UGBBarrelComponent
  * default set 165.
  * updated BP_MP5SD5/6 to 70
* added Idle/AlertAffiliationSightThreshold values to AGBAIController.
  * compares sight strength vs. these values to determine if they should automatically know if they've seen something hostile.
  * makes it easier to sneak up on AI from sides.
* changed BP_Suppressor_Master volume multiplier to 0.8
  * rifles should now be slightly harder to pin point than they used to be.

BUILD UPDATE #010: Hotfix

Build Update #010 is a small hotfix patch to correct some missing fixes (meant for our last update) and adjust/add a few other things.

› NOTE: All dedicated servers must be updated to work with the newest build. ‹

Highlights and full change log below:

Build highlights

New effect for the AN/PVS-15 night vision goggles

After some UE4 wrestling, John has managed to update the night vision post-process effect with a smoother and more realistic look. The near blur no longer has a “boxy” look, and neither does it cause illuminated reticles to generate that odd geometric pattern when pointing them at nearby objects. It also has a smoother transition between the focused and out-of-focus areas.

New PP effect for NVG, seen here without the circular overlay mask

You may notice a visible “border” around the blur when parts of the weapon are at the foreground of focused objects. That is a limitation of the engine; we might look into better solutions in the future.

Why the blur? Real-life night vision devices have fixed focal ranges, meaning they can’t focus on both near and far objects at the same time. Because of this, operators normally adjust the focus to a medium to far range, leaving very close objects out of focus—which includes sights. That is part of the reason why the AN/PEQ-15 and other IR laser devices play such an important role in nighttime operations, as they produce a beam only visible through night vision and allow the weapon to be aimed without the use of sights, as they become either blurred out beyond utility or simply are difficult to line up with the NVG tubes, among other factors. We’ll be looking into the viability of simulating more of these aspects as we go.

Known issues
  • Materials that use transparency (e.g. sunglasses and facial hair) will appear in focus even within the effect’s range.
  • The intensity (perceived amount of blur) of the effect may vary between maps.

Zeroing

Default sight zero for SMG/PDWs has been changed from 100 m to 50 m.

In addition, you can now see the zero for your current primary weapon setup in the Loadout Summary (right-hand box in the Operator Customization screen):

› We will be adding the ability to set your preferred zero for specific weapons and sights in the future.

A.I. reaction tweak

Immediate aim error for the bots has been increased, hopefully making them even less likely to score insta-kills.

Miscellaneous fixes and changes

  • OKP-7 reticle adjusted to no longer flick in and out of sight.
  • Fixed map list not starting correctly and then cycling to same map over and over again.
  • Fixed usage of the UMP45’s front sight post.
  • Further optimized under-development map City.
  • Also in City: added manhole ladder access between street and underground levels.

BONUS INTEL: What’s going on with the sound design overhaul?

Audio-man Mikson is still working hard on GROUND BRANCH’s sound, and trust me: we’re looking forward to it as much as you are.

The weapon sound system is being developed alongside Kris and is close to completion. In parallel, Mik has been tweaking sound assets and getting them ready for the new system. He’s halfway through the SFX for the current weapons. When both the sound system and SFXs are ready, implementation “shouldn’t be a problem”, in Mik’s own words. Here’s hoping, and go Mikson!

Patch notes

Build version: 1025

Client

Steam Build ID: 3526830
Size: 866 MB

Dedicated server

Steam Build ID: 3526834
Size: 38 MB

FIXES
* fixed admin map list creation UI not clearing list of maps before repopulating resulting in massive list of potential maps
* fixed admin map list creation UI not displaying game mode in the list of entries
* fixed map list not starting correctly and then cycling to same map over and over again.
* fixed round not starting again if you manually go to spectator or RR when round is paused due to death while offline.
* fixed misc skin display names not matching skin short names.
* fixed UMP45 front sight post usage
* fixed bad WorldContextObject in RBEventManagerCallEvent() causing crash
* fixed loadout not being applied to corpse if you become a spectator when dead.

AI
* tweaked AI to use worse aim error instantly and interpolate to improved.

CONTENT
* City Map
* more optimization work in outside area
* added manhole ladder access from street level down to tunnel
* changed some settings in DefaultScalability.ini to make sure the essential PP (post process) settings stay on all settings
* mainly NV blur effect
* OKP-7 reticle updated to make it flicker less
* reworked NVG blur effect to be smoother and more realistic

CODE
* added sight zeros to summary area on character editor.
* changed DefaultIronSIght desired zeros from 100 to 50 on all SMG's.
* added time limit to GBGameState
* added remaining time limit on server info board
* added round length to GBRoundState
* added round duration to TH ops board

BUILD UPDATE #009: Line of Sight

aIt’s been just over a month since our last update, and we’re now nearly a month into 2019, at the end of lovely January. While most of you freeze your asses off and the rest of you—in the southern hemisphere—melt your asses off, this dev team—about 67% frozen asses and 33% melted asses—has been working hard on Build Update #009.

› NOTE: All dedicated servers must be updated to work with the newest build. ‹

This build’s highlights include listen server improvements, some very welcome A.I. adjustments, new controls options and improved default bindings, and fixes galore. Let’s take a closer look at the highlights and, as always, the full change log awaits at the end of the post. Whoop!

Build highlights

Listen servers streamlined

Listen servers have been cleaned up and are a lot more functional with this update. Among the improvements, you can forget about port forwarding and invite your Steam friends directly into your game.

To invite Steam friends into your server, start a listen server (via Host Game in the Main Menu), hit Esc once loaded in and then click Friends in the top menu bar. From there, simply select the friends you’d like to invite and click the Invite button (bottom-right). Once accepted, your friends will be brought straight into your server.

› Listen servers do not appear in the Server Browser. This is intended.

A.I.: Aimbot Interrupted

It took us a while, but we’ve finally managed to tone down the A.I.’s reaction time and accuracy. The days of getting 360-no-scope’d and John Wick’d by seemingly unsuspecting enemies are over, as bots are “much more likely to miss initially and take a moment to correct even after they have turned”, according to Kris. We’ve done quite a bit of testing and those situations where you feel you’ve been unfairly killed were definitely reduced massively.

Vegetation is your friend

Another thing that should make solo and co-op play a lot more satisfying is the fact that foliage will now effectively block the A.I.’s line of sight. It’s a binary system at this point (they either see you or not) with some rough edges to be rounded out, but generally speaking, We can’t see them—they can’t see us™ is now activated. We’ll be upgrading this system with visibility thresholds in the future.

Improved enemy patrol routes

Enemy bots in Power Station, Tanker, Depot and Small Town have received both placement and navmesh updates. Tangos should have more varied spawn points and patrol routes, as well as better overall navigation.

› Storage Facility has not yet been updated with this system.

New enemy skins

We have updated the Depot and Small Town tangos to use new skins and loadouts.

New enemy skins in Depot

New control options and default bindings

Hold Crouch

You can now opt to hold the Crouch key (default C) to remain crouched instead of pressing it to crouch and again to stand up. To select that option, go to Controls > MovementCrouch Type and select Press (Momentary) from the drop-down menu.

Select your preferred reload type

Are you more of a speed reloader than a tactical reloader? You can now invert the control scheme for reloads and make a single press of the Reload key (default R) do a speed reload (where you drop the current magazine) and a double-tap do a tactical reload (where you put the current magazine back into the pouch). To do that, go to Gameplay > Firearm > Reload and select No Retention from the drop-down menu.

New default bindings

We have changed/added the following default bindings:

  • Drop Item (previously Z) is now bound to J to prevent accidental drops.
  • Commo Rose/Radio Menu (previously unbound) is now bound to G.
  • The Console can now also be accessed with Shift + 6 (^).

› You may need to reset your controls and/or delete the files located in %LOCALAPPDATA%\GroundBranch\Saved\Config\WindowsNoEditor for the new default bindings to apply.

The current default control scheme is as follows:

We’ll be adding this key map to the game menus at some point too.

Cleaned up display names for items

We have updated the display names of most in-game equipment for consistency, accuracy and, in some cases, to stay on the safer side of legal matters. We’ll keep updating them as needed.

NEW DEVELOPMENT MAP: City

John has been working on a new urban map called City, accessible in offline play under the “Development” category.

We’re leveraging Epic’s UE4 Marketplace to get more maps in (and playable) faster, though these assets still require a lot of custom work to become GROUND BRANCH maps. Initial focus for “City” will be PvP—as will be the focus of our next major Build Update.

Miscellaneous fixes

  • Aiming down sights no longer defaults to secondary (offset or piggyback) sight.
  • AK-74 MWI iron sights now work properly.
  • The AK Rail Adapter is no longer compatible with the AK-74 MWI.
  • Exorcized Christmas spirit from operators’ facial hair.
  • Purged the insanity-inducing sound loop caused by ejected casings colliding with the environment. [silent fireworks]
  • Radio chat can no longer be heard by the other team while in the Ready Room.
  • Fixed abrupt turning breaking character model spine.
  • Player’s dead body will no longer remain in the map when retrying a solo (offline) Terrorist Hunt.
  • Headset earpieces no longer clip through MICH helmet.

Whoops!

We slipped and a couple of fixes were not checked in before build packaging: Those are the OKP-7 reticle fix and the scope magnification adjustments. We’ll likely release them in a hotfix patch soon. Sorry!

Patch notes

Build version: 1025

Client

Steam Build ID: 3490483
Size: 2.1 MB

Dedicated server

Steam Build ID: 3490501
Size: 45 MB

* FIXED bad material settings on AK suppressor that made it too shiny
* FIXED ability to use AK rail attachment on new AK-74 MWI 
* FIXED ComTac headsets for MICH helmet not fitting properly
* FIXED AK-74 MWI default rear sight getting messed up when no other sights/optics attached
* FIXED incorrect fire selector positions on AK-based weapons
* FIXED white beard in certain lighting conditions
* FIXED initial sight selecting picking secondary sight instead of main
* FIXED incorrect mount setup for PMII 5–25x scope that required only 1 rail slot to mount
* FIXED Small Town Team Elimination spawns being shown outside playable area
* fixed small static mesh actors having simulate physics set to true on server
     * should stop players being shot up in the air randomly on Depot and other maps.
* fixed bug with ToPlayArea/ToReadyRoom admin commands that spawned "puppet" characters (credit Error404)
* fixed SpawnCountMin on GBAISpawnPoint's being set to -1 when SpawnCountMax was 0.
* fixed more misc navmesh issues in Depot
* fixed more misc navmesh issues on Power Station & Tanker Ship
* fixed automatic squad ID assignment in GBAISpawnManager to not use squad id 0 (global squad)
* fixed AI not looping back when reaching the end/start of patrol route that does not branch or loop to itself.
* fixed log spam in GBAIPath
* fixed AGBAISpawnManager::CreateOverDurationTimer() to obey order in which create over duration target spawn points are assigned to it.
* FIXED collision issue on red stairs in Power Station
* FIXED missing steps in Tanker Ship engine room that trapped A.I. in small area
* fixed patrol path on PowerStation that would get AI bunched up
* fixed more misc navmesh issues on PowerStation
* fixed turning quickly causing animation blueprint to break the player's back
* fixed log spam from overly enthusiastic dropped items
* fixed log spam about loadout/appearance reuse
* fixed particle collision causing spamming
* fixed invalid reference in BP_ImpromtuLadder_BFS
* fixed invalid reference in BP_TerroristHunt
* fixed GBGameState() functions GetLightingScenario() & GetLightingScenarioTag() not being public
* fixed possible invalid in BP_RandomProp
* fixed dead body being left behind when click "Try Again" in offline play
* FIXED missing collision on rock near top area on StorageFacility
* fixed own body not having loadout applied on client
* fixed delay on adding name tag to vest platform
* fixed equipped firearm being removed when leaving shooting area in RR
* fixed invalid AI appearances on TH-SmallTown
* fixed navmesh modifier on S_MountainRock
* fixed incorrect collision on American_Elm_Desktop_B_FoliageType
* fixed invite command string not being cleared once used
* fixed name used in for invite screen being blank if no nickname was set by local player
* fixed bug in UWorld that caused NetMode to be standalone when compiled with editor.
* fixed bad placement of red dot in BGLowVis_GunnerM4.kit
* fixed voting commands/server name not showing up
* fixed unexploded breaching charges not being removed on round reset.
* fixed RR roster white boards not showing teams
* fixed nullptr when banning someone that is offline
* fixed LOD not being forced to Zero in item editor
* fixed minor log spam from ZKVote class
* fixed character and items from character editor being replicated to connected clients when listen server host edits their character
* fixed radio being heard by other team when using radio in RR
    * note - can still hear other team talking on radio outside of RR if in close proximity
* fixed angled sights being considered during when picking an initial sight to use.
* fixed VOIP radio not setting last talk time to 0.
* fixed local VOIP in RR when not on a team.
* fixed admin name check in AGBGameMode
* fixed warning about missing game state in WBP_TerroristHunt_Settings while in main menu
* fixed ban message – now just gives expiry date rather than remaining time in seconds.


ENGINE
* wrapped warning about additive animation in AnimNode_SequencePlayer with a WITH_EDITOR define.
    * this is shown in error for GB anyway. This change simply stops the log spam about it.


CONTENT
* Updated holo sight reticles for clearer visuals
* Added in military style laptop prop
    * Can be used for various game modes or as a static map prop
    * BP created that allows for open/close position and on/off

* SmallTown A.I. setup
* Cleaned up some navmesh issues on Small Town and rebuilt lighting

* updated TH-Depot
    * fixed more misc nav mesh issues
    * fixed misc patrol path issues
    * tweaked AI spawn points priorities
    * Did pass on new A.I. paths and setting up spawns
* Optimized plastic hit effect 
* First pass on new City map (Development)
    * SetupLevel streaming volumes so underground isn't rendered at same time as above
    * Cleaned up some LODs and collision on Meshes
    * Added "buffer" areas(stairwells with corners and hallways) between above ground and below ground to mask level streaming
    * Cleaned up a lot of StaticMesh collision and LODs
    * Created DV version of map
* Cleaned up display names for weapons, sights and some attachments.
* Changed collision preset on painted foliage

* Set up proper PhysMaterials on foliage meshes


AI
* added new spline based AI patrol routes on Power Station and Tanker Ship
* improved sorting function in BP_TerroristHunt_AISpawnManager
* tweaked BT_GBAI_Following & BT_GBAI_Patroling update service time.
* tweaked BTService_UpdateTargetPathPosition
* added ShowDebug option "AIaim"
    * shows origin focal point and final focal point adjust for aim error
    * displays aim error info text at AI character.
* added AimErrorAngleDifference curves to AI
    * based on yaw/pitch difference
    * overridden by larger values, ignores small values.
    * after timer based on yaw/pitch difference, leaps to zero.
    * will make AI much more likely to miss initially and take a moment to correct even after they have turned.
* added service to BT_GBAI for determining follow position (BTService_FollowUpdate) instead of just bum rushing them.
* updated AI
    * created BT_GBAI_Patrolling, related service and tasks.
    * created BT_GBAI_Following, related service and tasks.
    * updated BT_GBAI to run new sub-BT's.

* Storage Facility has NOT yet gotten the AI placement reworked with the new system.


CODE
* began updating AI spawning
    * updated GBAISpawnPoint, based of GBInsertionPoint
        * supports from 1 to n AI per point
        * auto-generates spawn offsets allowing for easy squad generation
        * can still be used for individual AI placement
        * supports randomly spawned in min/max range.
        * can be set to active/not active, to enabled or disable their use for spawning AI.
            * useful if you want to disabled a spawn close to a chosen player insertion point.
    * updated GBAISpawnManager
        * only support from GBSpawnActorInterface to GBAISpawnPoint.
        * improved general flow
        * added GetSpawnPoints() with get active only parameter.
* updated TankerShip & PowerStation
    * replaced existing AI Spawns with AI Spawn Points
    * replaced existing way points with new ones.
    * improved nav mesh pathing and pathing in general using nav mesh modifiers and nav link proxies.
    * PowerStation needs some additional fixed spawn points
* moved spatial sound tag support from Blueprint to C++ for Mikson
    * see BP_Firearm_Master OnSpatialSoundTagChanged event.
* added DefaultSpatialSoundTag to world settings
    * use this to set default tag to Inside/Outside as required.
* BP_Firearm_Master: added acoustic space management, firearm type management and fire sound Wwise event (all are currently disabled until the first Wwise update is ready)
* added first set of Wwise events
* updated and moved inventory soundbank (previous one marked for delete)

* added UnfocusedVolumeMultiplier to audio settings (credit lt_delay)
    * Lets you set the volume the game should be at when it loses focus, instead of simply muting everything.
* added press/momentary crouch option (credit AGAM)
* updated GBInsertionPoint based on GBAISpawnPoint
    * default handling of spawn offsets etc is all C++ instead of Blueprint based.
    * updated all affected maps.
* created GBAIPath
    * spline based solution for laying down patrol routes etc
    * supports drag-and-drop branching to other paths or looping to itself.
    * supports basic weighting, with direction and randomised bias.
    * includes in-editor button to validate all path spline points in one go.
    * began laying out new patrol paths in Depot for testing.
* added C++ functions to Get/Set UnfocussedVoulmeMultipliers

* replaced bToggleCrouch=True with CrouchType=1 in DefaultPlayerSettings.ini

* added IAISightTargetInterface to GBCharacter and implemented CanBeSeenFrom
    * needed to be able to quickly test WTF was going on with AI sight traces - this allows for that and more later.

* moved drop default binding from Z to J
* added default binding for radio menu to G
* added Caret as default console key to better support German keyboard layout

* updated GBBulletMovementComponent
    * leveraged unused EPhysicalSurface enumeration to hack in support for ignore bullet collision on certain materials until we update the PM_XXXX assets properly.
    This is to allow us to use complex collision for foliage, but have the bullet ignore collision with leaves.
* created PM_IgnoreBullets for use with materials to make them ignore bullets.
* rigged up GBAIController to read AI sense config sight settings from the AISettings.ini file, based on the lighting scenario (Day/Night)
* updated GBAISpawnManager
    * added bLivingOnly parameter to GetAIControllers.
    * replaced internal AI controller weak pointer array with brute force method using the world controller list.
        * should fix incorrect terrorist count
    * removed OnAllAIControllersDestroyed delegate and related functions.
    * updated all affected C++ and Blueprints.
* added OnCharacterDiedEvent() to GBGameMode
    * FIXME - why not just make the CharacterDied() event a native implementable???

* updated GBGameUserSettings 
    * added ApplyNonResolutionSettings() override.
    * removed need to call ApplySettings(true) GBGameEngine->Init().
* updated GBGameEngine to remove call to GBGameUserSettings->ApplySettings(true) 
* updated copyright date from 2014–2018 to 2014–2019
* added UE_ALLOW_MAP_OVERRIDE_IN_SHIPPING publid definition to GroundBranch.Build.cs
    * should allow the command line from invites to work.
     e.g. steam.123123123123 

* added frame rate limit section under Settings > Video

* added check to BP_Trigger_CustomiseOperator to make sure player is still in trigger before overriding input
    * should fix instances of character editor screen appearing for no reason instead of shooting.
* added check to BP_Trigger_ShootingRangeSafeDirection to make sure player is still in RR and outside trigger before overriding input
    * should fix instances of character not being able to shoot.
* added ServerConnectString to GBPlayerState
* updated WBP_FriendList to use ServerConnectString from GBPlayerState

* added invite loading screen
* setup basic Steam rich presence 
* disabled various stubs to reduce log spam (yay!)
* added stubs to platform to test name tag online (boo!)

* added support for inviting while in-game
* removed need for separate version of loading screen for invites

* updated ZooKeeper to ensure local host of listen server is in the admin list
* updated GBGameSession to ensure local host of listen server is up to date
* improved UGBCharLoadoutFunctionLibrary::DecodeJsonKit_r() error logging when a PrimaryAsset fails to decode
* removed AI Settings stub from GBAIController
* added AI state to GBGameState
* updated WBP_TerroristHunt_Settings to make TerroristCount spinner match current terrorist count
    FIXME - is spinner working properly?

* VOIP icons for other players now appear while in RR or Spectating
* player unique ID's are shown in player list for admins to make it quicker to identify and track trolls/griefers
* added admin check against name changes to prevent trolls/griefers pretending to be an admin
* added additional rosters to RR to show all players near server info and team players inside ops room.
* changed method used to make locker name tags update to one that is more brute force
* added option to player settings to choose what a single tap of reload does (default retention, like it is now)
   * credit to Wächter for the idea

* added radio icon to WBP_VOIPUser
* updated ZKTeamKill
    * team killers list is now properly saved to the TeamKill.ini
    * shortened timers used to check team killer kicking and banning
    * fixed issue in which it would not ban a team killer that was offline
    * added timer to check the last time a team kill was made and reduce the team kill count by one (configurable, default time 30 minutes)

BUILD UPDATE #008: Holiday Hotfix

We told you to expect a new Build Update before Christmas, didn’t we?

We totally did.

Well, here it is. Build Update #008 is meant as a smaller hotfix patch, but it doesn’t fall too short of previous updates. It includes updated red dot/holo reticlesa long-awaited weapon platform, and a bunch of miscellaneous fixes and improvements.

› NOTE: All dedicated servers must be updated to work with the newest build. ‹

Onto the highlights, shall we?

Build highlights

Updated red dot and holo reticles

We’re testing new reticles for all non-magnified optics: Reflex Small, Reflex Large, CompM2, Red Dot Pro and Micro T-1 red dot sights, as well as the holographic Holo Sight and V3 Holo Sight.

New red dot (top) and holo (bottom) reticles. Seen here with Temporal AA on.

The new red dot reticles should display rounder, more authentic (smaller) aiming dots and have increased brightness to compensate for the decreased visibility that the more accurate scales bring. The holo reticles should be crisper and thinner, with much smaller dots.

As with everything else, these reticles are a work in progress and their appearance may vary drastically depending on background, lighting conditions, anti-aliasing method, resolution and other video settings. We’ll be watching how well they work in different situations—with your feedback—and make adjustments as we go.

› Keep in mind that we’ll be adding adjustable reticle brightness in the future, so you’ll be able to pick the best brightness setting for each situation.

Known issues
  • These issues are not new to the updated reticles, but due to the more realistic scales, they may become more pronounced:
    • Temporal AA (an anti-aliasing method you can select in Settings > Video > Anti-Aliasing Method) is known to cause illuminated reticles to flicker/thin down with movement, albeit providing a better picture when stationary, particularly with holo sights.
    • FXAA, on the other hand, provides a more consistent (but less smooth) reticle image. The holo reticles, for instance, may have the dots become difficult to see under certain conditions and/or be too thin to render on screen at certain angles/resolutions. We’re looking into how to provide a more consistent output with either AA method, and will be adjusting effects and textures for visibility as we go.
  • Reticles might not show up with the G33 Magnifier “switched on”. To work around the issue, simply make sure the optics are a couple rail slots apart.

Hold Aim

You can now aim down the sights by holding Aim (default Right Mouse Button) instead of pressing once to aim and again to return to the previous posture. To switch Aim from a Toggle to a Hold action, go to Settings > Gameplay > Aim Style (on the right-hand column) and select “Hold” from the drop-down menu. Let us know how it feels for you!

NEW WEAPON: AK-74 MWI

The most requested piece of gear in GB’s history so far is finally here: the modernized tactical AK, dubbed AK-74 MWI.

Screenshot by Jeza aka JezaGooner. Cheers, Jez!

With Midwest Industries furniture, it has plenty of rail space for your favorite attachments.

Known issues
  • As an AK, it shares a faulty reload animation with the existing AK platforms where the top of the magazine clips through it. We’re still on the lookout for the right animator to get all of this stuff sorted out.
  • The Rail Adapter for the regular AK weapons is mistakenly enabled as a bugged attachment for the AK-74 MWI.

Beanie + ComTac combo

The more observant may have noticed that in the AK-74 MWI image above, our intrepid operator was wearing a beanie with the ComTac headset. To rock that totally operator look, do as you would with other headset-enabled headgear—simply enter headgear customization by clicking the + button next to the item in the menu, select the headset from the Attachments menu and drag-and-drop it on the item. Bam—you no longer have to choose between weather-appropriate and tactical.

Other gear fixes

SDASS Martial pump-action reload

The bug where the SDASS ignores the racking animation and fires in semi-auto has been fixed. It now works like the pump-action shotgun that it is.

Micro T-1, piggyback-style

As promised in the last update, the Micro T-1 can now “piggyback” on railed scopes like the ACOG 6×48 and PM-II. Note that only the regular T-1 (non-“Tall” version) can be mounted piggyback-style.

G33 Magnifier flipped-to-side angle

The G33 now sits at 90 degrees when switched to the side, as the real-life mount does.

Known issues

Aiming defaults to the secondary sight (piggyback, offset or co-witnessed) instead of the primary sight.

That concludes the highlights for this year’s (likely) last update. Don’t forget you can always discuss this and every update with the community on the comments below as well as Facebook, Twitter, Discord, Steam and our forums.

Whether you have been following us from the first time GB was mentioned or whether you bought sometime after it finally launched on Steam Early Access: Thank you so much for your continued support throughout this long road.

From the BlackFoot Studios team, partners and friends… Merry Christmas, Happy Holidays, and we hope to see you next year!

Patch notes

Build version: 1025

Client

Steam ID: 3426428
Size: 108 MB

Dedicated server

Steam ID: 3426432
Size: 28 MB

FIXED
* FIXED Holo Sight reticle being to low
* FIXED slight zoom in when using optical sight
* was old code designed to prevent optics clipping through camera and maximise view of said optic
* side benefit - side mounted optics now works
* FIXED firing while reloading overriding LocalMontageInfo in ability system
* recoil and related fx now handled old school - replicated byte on the character
* FIXED MP5 Navy and MP5SD6 iron sights
* FIXED MP7A2 content redirects
* FIXED SVD's slow firing rate
* FIXED being able to cycle SDASS Martial one handed.
* FIXED collision on S_MERGED_LogGroundLong_17 used in ShootingRange_Geo
* FIXED issue with Micro T1 that had reticle on lens part of mesh an dnot its own plane
* FIXED AK74MWI now properly collides with environment
* FIXED magnifier being treated as a working sight when rotated to "off" position
* FIXED AK74MWI bottom rail not accepting attachments


CONTENT
* Adjusted Reddot reticles to be smaller and brighter
* Added ability to select headset while wearing Watchcap (Beanie)

* removed training game mode from blocked game modes in WBP_HostGame
* Can now more easily run training maps in MP mode

* New weapon - AK74_MWI
* Added in AK74 MWI ui icon
* New glass material for optics
* Adjusted G33 magnifier to only rotate 90degrees as it does in real life

* Added tool tips and UI message about arm patches being currently disabled and not working in game

* changed voice falloff distance from 5000 to 3000 units


CODE
* exposed bMomentaryAim to UI under Settings -> Gameplay :: Firearm Section
* created WBP_SaveFailed fullscreen overlay
* displays file in question
* prompts for user to add binaries to the exception list of any anti-virus/anti-malware software they are running.
* added to character and item editors for when a kit fails to save
* added to WBP_FrontEndMenuManager to check write access when the game loads.

* cleaned out old variables from firearm Blueprints
* updated GBGameplayAbility_ReloadTubeMag and related Blueprints
* changed checking for tube contents to using a simple pre-cached 'target' based on tube contents at the start of the reload
* added check for bolt locked open or spent shell inside that will then release the bolt or chamber another shelll
* improved the animations / animation montages where possible
* stopped predictive client cancelling montages or ability early
* updated GBGameplayAbility_ReloadExtMag
* stopped predictive client cancelling ability early
* improved SetNextSection()
* created AGBRailAttachment::GetParentFirearm()
* added PostSightSetup assignable delegate to GBSightComponent
* updated GBFirearm
* removed unused SightComponents array
* added PostSightSetup delegate broadcast at end of SetupSightComponents() for every sight assigned to a sight group.
* added check to SelectSightComponent() to prevent it selecting an offset optical sight as the default sight
* updated ZeroSightComponents() so that it actually zeros each sight.
* It was still set to old SightComponents array - did anyone actually notice? :P
* added UseRound() blueprint implementable function to allow manually cycled firearms to handle ammunition feed count adjustments
* removed blocking volumes from ShootingRange_Geo
* updated AM_Reload_MP5
* adjusted bollt/cocking handling curves and notifiers to try to better match the animation
* adjusted remove mag notifier to improve position of removed magazine

* updated GBRoundManager
* updated PreRoundFreezeStartedDefaults() to generate a list of players waiting to spawn
* created SpawnWaitingPlayersTimer() to cycle through list of players waiting to spawn until each player is spawned
* if it fails to spawn a character 20 times, will return to ready up.
* should fix issue where player is left behind in RR or forced to spectator mode instead.

BUILD UPDATE #007: Muster

A new GROUND BRANCH Build Update is available!

With a first pass on listen server capability, some A.I. tweaks and a new optic—among other additions and fixes—#007 should be a pretty exciting one.

› NOTE: All dedicated servers must be updated to work with the newest build. ‹

Before we move on, we’d like to remind those who use Facebook, Twitter or Instagram to follow us on our social media channels. The more our online presence grows, the more people will know about our game, the bigger our community will get, and the faster development will progress. So if you do social media, make sure to give us a follow, share our content when possible and help us reach more players!

Full patch notes await at the end of the post, but you know the drill: highlights first.

Hightlights

EXPERIMENTAL: Listen servers

A first pass of the long-requested listen server capability has been implemented. This means you can now host your own GB server from your computer without having to setup a dedicated server.

It’s prone to issues at this point and not yet a streamlined process, but here’s what you need to do if you’d like to host a listen server:

  1. Make sure your router and Windows Firewall are configured to open the following ports:
    • 7777 UDP
    • 27015 UDP
  2. Select Host Game from the Main Menu.
  3. Set up your server preferences:
    • Type — Selects whether you’re hosting over the Internet or a local area network (LAN). Note: LAN is currently not supported.
    • Players — Sets the maximum number of players for your server. Note: Although the drop-down menu does not reflect it, the max capacity for PvP game modes is 16 players; this can be changed manually via the console command MaxPlayers=X (where X is the player capacity). For a comprehensive list of all server console commands, refer to this guide.
    • Game Mode — Selects the game mode. Note: PvP game modes in particular may be missing rules or have confusing parameters. Our next major update aims to address these issues and make game modes more clear-cut, organized and varied. Stay with us!
    • Time Limit — Defines how long (minutes) until the game ends and the map changes.
    • Round Time — Defines how long (minutes) each round should last.
  4. Click Host.

With your server created, your friends can now join it by bringing up the console (default Tilde [~] or Multiply [* or ×] keys on your numpad), typing open <your IP> (find out your IP address here) and pressing Enter. As noted, this is only a first pass on this functionality; you will be able to join listen servers via the Server Browser in the future, of course!

Known issues
  • If the server isn’t available/properly setup once the client attempts to join, the game will crash after a few seconds.
  • Once joined, Fire may not respond. The issue should resolve itself after a short time and/or by switching weapons a few times (we couldn’t determine, so please inform us if you do).
  • Various replication issues may occur.

Enemy A.I.

Further tweaks

As always, the A.I. is a constant and ongoing process. In this update, a few more key changes have been made, and Kris goes over them in this little video:

To sum it up:

  • Though still missing animations, bad guys now visibly transition via ladders and should generally navigate more fluidly.
  • They are now more selective in their firing and cease fire when direct line of sight is lost—so no more full-auto mag dumps.
  • Enemies can now see through chain link fences.
  • When line of sight is broken, they will move to the player’s last known location.
  • They should attempt to find cover to reload.

While it’s generally still at a rudimentary state, enemy A.I. should now act a bit smarter and utilize the environment better when dealing with threats. Let us know what you think of this implementation.

New editable A.I. values

As mentioned earlier in Kris’ video, two values (RecoilCompensationSkill and AimErrorPeriod) have been tweaked and are now also editable via the AISettings.ini file (located at …\Steam\steamapps\common\Ground Branch\GroundBranch\Config). Feel free to experiment with these values and let us know how it went!

› For a guide on the other values in AISettings.ini, check out this link.

NEW OPTIC: Micro T-1

A new red dot sight has been added to the attachments selection: the Micro T-1.

Made popular by its reliability, small size and light weight, the T-1 is available in two versions: one regular and one with a tall spacer, both on a lever-release mount.

Micro T-1 (regular): For most uses, including canted (offset) mounts. (We forgot to add the ability to piggyback-mount the T-1 on railed scopes, but that will be in the next update. Whoops!)

Micro T-1 (tall): Normally used on ARs (M16, M4, Mk 18 etc.), the tall spacer mount is required for proper sight alignment with the G33 Magnifier.

Sight picture. (We’ll be working on those red dot reticles for more accurate dimensions soon.)

G33 Magnifier alignment issues

The alignment issues with the G33 have been ironed out: it should now line up correctly with sights as appropriate.

› We haven’t been able to look into the issue of disappearing reticles (with the G33 + holo sight combos), but as before, the workaround is to simply move the magnifier a notch or two away from the sight (or vice-versa).

We hope this update will improve your GROUND BRANCH experience and keep you operatin’ out there. Expect another Build Update before Christmas, and don’t forget to stay tuned for more news via our social media channels. See you next update and, as always, thanks for the support!

Patch notes

Build version: 1025

Client

Steam ID: 3381094
Size: 546 MB

Dedicated server

Steam ID: 3381096
Size: 34.7 MB

FIXED
* fixed firearm WBP_FirearmCustomisation not allowing sights if there is no sight-only rail present
* fixed various navlinks used to allow movement through doors on SmallTown, Depot and StorageFacility
* FIXED incorrect placement of suppressor on 416 and 416 Shorty
* fixed GA_AK74_Reload looping
* fixed AIThreatSelectionComponent setting AI's focal point to IncomingFireOrigin when it was 0,0,0
* fixed looping firing sound again again (I hope again again)
* fixed BTTask_ShootFirearm / BTTask_StopFiring not stopping the AI from firing when aborted
* FIXED Sights now line up properly with G33Magnifier
* FIXED setup weapon recoil to previous values before Abilities system change
* fixed being able to shoot in RR if you spawn into RR before the shooting range triggers (I hope)
* fixed movement speed bug which would use engaged/ready position speeds even when you didn't have a firearm equipped
* fixed handgun close ready collision moving the handgun behind the characters back
* fixed replcated dropped static mesh based items appearing at 0,0,0 before first collision.

AI
* updated AI behaviour tree and related Blackboard to support climbing up/down ladders
** ENGINE CHANGES **
* reverted old fix/hack in AISense_Sight that would check for multiple channels against visibility instead of just the "DefaultSightCollisionChannel" 

* created EQS_FindLocationBehind to allow AI to move back a bit to clear an obstructed firearm.
* created EQS_FindLocationParralell to allow AI to move sideways a bit to move to somewhere where a team mate isn't in the way
* created BTTask_ClearFocus to allow BT to reset focus after threat is lost etc.
* updated BT_GBAI
    * switched to using BTDecorator_IsVectorSet when checking if various vectors were valid or not to stop them moving to or aiming to 0,0,0
    * can now reload with or without a threat.
    * will attempt to find cover before reloading
    * when losing sight of a threat, AI will stop firing
    * when losing sight of a threat, AI will now move to a random location near the where they last saw them.
    * disabled usage of suppression branch - was causing AI to spaz out.
* added variables to GBAIController to control recoil compensation and aim error (see DefaultAISettings.ini)
* recompiled BT_GBAI_Suppressed to stop log spam


CONTENT
* Adjusted collision on a few trees to better conform to mesh
* Added in first pass of "spooked bird" BP 
    * User contribution.... Thanks Fatmarrow!!
* Adjusted G33 magnifier to flip on/off 2x faster

* New Micro T1 optic
    * Both regular and tall version for use with G33 magnifier
* Adjusted g33 magnifier mesh to better fit rail
* Adjusted new recoil reset values 
* Made some small adjustments to the character shadow physics asset 
* Set all firearms to use their PhysAssets for simple shadow casting


CODE
* updated BP_SpatialSound and added it to P4 depot
    * was originally just for Mikson, but since I needed to work on it...
* created Test_SpatialSoundBP 
    * shows how to add the Wwise sound volumes to make them work with BP_SpatialSound 
* disable sight positoin check in GBRailAttachment
    * need to revist it later, but for now it should allow you to place sights on the MP7
* updated GBAIController
    * renamed GetPathPoints() to GetPathCorridorPoints() to better match the info it actually gets
    * created GetCurrentPathCorridorIndex() - useful to tell what navmesh poly you're on
    * created GetNextPathCorridorPoint() - useful to quickly visual the next navmesh poly you're going to
    * created GetNavLinkPoints() - useful to get the current navlink your using, if any, and its start and end points.
* updated RBEventmanager to fix potential memcpy issue
* updated BP_ImpromtuLadder_BFS to add AI navlink check before assigning ladder to AI

* added ladder navlinks to all maps that have ladders

* created GBGameplayAbility_ReloadExtMag::GetCurrentMontageSection()
* updated GBCharacter
    * implemented IGameplayTagAssetInterface 
    * added GetOwnedGameplayTags()

* updated BP_FenceMaster to allow certain collision channels to be set to "Ignore" on sections
    * updated all affected _Geo maps.

* added RecoilImpulseTime and RecoilRecoveryTime variables to GBFirearm
    * updated affected C++
* added basic friends list to ingame menu

* first pass fixing listen server support
* updated GBGameplayAbility_Fire to fix potential issue with FiringTag not being cleared.

* added client checks to functions that give abilities.
* AbilitySystemComponent now has it timers cleared, Deactivate() called and is finally destroyed on character death or on a client side character being spawned.
    * hopefully this is the fix for massive sudden frame spikes found last dev test :|
* added bUseAttachParentBound option to GBCharAppearanceData.
* added bUseSimpleShadowsForCharacters option to use capsule shadows and disable static mesh shadows on character related mesh components