BUILD UPDATE #020: Gear Up

After a lengthy and grueling period of bug smiting since the last UE4 engine update broke way too many things (we’re now on UE4.23.1), version 1029 of GROUND BRANCH is finally rolling out.

Name of the game for this update is content: We have both added and updated several weapons and attachments, made a few map improvements and rebuilt Depot from scratch with dynamic lighting. But it’s not all content—enemy A.I. sight is more complex and no longer spots players in a binary fashion, audio has been added to and improved further, and a first pass on the Mission Summary screen has been implemented, among many other smaller and under-the-hood changes and fixes that you can check out in the highlights below and the raw change log at the end of the page.

Sit tight and buckle up, ’cause there’s a lot to cover.

⚠️ 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!

Build highlights

A.I. perception tweaked

Previously a binary system, the enemy A.I. sight has been upgraded to no longer spot and engage players immediately upon seeing, for example, a glimpse of the character’s arms, head or leg sticking out of cover from a light-year away. This new setup takes different body parts into consideration and applies an individual value to them based on distance and amount of exposure—so you may be able to pop your head out from afar and not be instantly recognized by tangos as a hostile.

On the flip side, they should now react more appropriately to loud noises and are more likely to investigate and adjust their search location if they hear gunfire and explosions.

It’s all a first pass and a work in progress, but it should make things a lot less frustrating. Oh, and Kris says “[The system] is setup to allow further adjustments based on lighting, camo etc.” We’ll still have to figure out a good approach for those.

Audio

Gunshot sounds

Mikson has added/updated gunshot sound effects for the following weapons:

  • MK 25 / MK 25 (Suppressed)
  • M1911 / M1911 (Suppressed)
  • G22 Custom / G22 Custom (Suppressed) [model since replaced by the G19 Customs, which will use the G22 sounds for now]
  • MP5 / MP5 (Suppressed)
  • MP7 / MP7 (Suppressed)
  • MPX SBR
  • UMP45 / UMP45 (Suppressed)
  • M16A4
  • M416D
  • MK 18 Mod 1
  • AK-74M / AK-74 MI
  • MK 14 Mod 2 EBR / MK 14 Mod 2 EBR (Suppressed)
  • MK 48 Mod 0
  • M1014
Note: the G22 Custom has since been replaced by the G19 Custom, which is using these same sounds for the time being
Footstep and movement sounds

A first pass on brand-new, all-original footsteps has been implemented and we can officially kiss the de-synced horseshoes and clogs goodbye. Gear “rattle” from movement has also been updated and it’s all sounding real nice.

Other audio changes
  • New bullet impact sounds.
  • Added sound for reticle brightness change on non-magnified optics.
  • Fixed burst fire sound not stopping when magazine empties mid-burst.
  • New grenade bounce sound (WIP!).
  • New, more authentic radio squelch and filter effects.
  • Decreased falloff distance for gear rattle sounds.

Depot 2.0 (aka Depot v2)

River Bend insertion point
Northeastern area of the compound wall

Arguably the biggest deal about 1029, the rebuilt Depot map now features a completely new and expanded surrounding area, as well as several big changes to the central compound—including a new internal layout for one of the warehouses. It has a very different atmosphere, not only because of the new woods, but also because of the…

Dynamic lighting

Depot 2.0 is our first map to use fully dynamic lighting, which offers benefits such as more stable framerates, uniform lighting across the map (meaning no jarring lighting scheme changes between separate sections like it happens with “baked” static lighting) and a much easier time making shootable lights in the future. But dynamic lighting is not without cons: it may worsen the “ghosting” effect that Temporal Anti-Aliasing (TAA) has, offers less control over interior lighting—which may appear bland/flat/overly lit—and may affect overall performance negatively, particularly on lower- to mid-end PCs.

We are still testing things out and will be adjusting according to feedback, but be prepared to upgrade your rig or turn video settings down if your specs are too far in the low end.

Train Bridge insertion point: The expanded map boundaries include the now accessible bridge over the tracks
Known issues
  • When using FXAA, you may notice “shadow flickering” on foliage and vegetation. Using TAA instead will help blend that in, but as noted, will cause “ghosting” effect associated with it—most visible with scopes. We will be tweaking things to try and address these issues.
  • Dynamic lighting can affect the appearance of reticles, night vision and scopes considerably when compared to static lighting (which is what they’ve all been made to work with originally). We’ll be tweaking those as we move maps to the new lighting scheme so that everything is consistent.
  • The map is still a work in progress, so there may be gaps in the play area, places you may get stuck in and parts that are missing collision. If you come across any of those, please file a bug report.

Other map shenanigans

Small Town

Small Town‘s Bravo (B) building has received a reworked staircase with roof access, a roof hatch door and a catwalk joining its roof to building Charlie’s (C). You’ll find some sandbags up there as well so you’re not too much of a fish in a barrel for the enemy while prone isn’t in the game.

More places to shoot and get shot from? Sign me up

The map now also uses dynamic lighting for both day and night scenarios, so let us know how it runs for you.

747

In addition to several refinements and asset updates, the map’s eponymous aircraft has received an enterable upper deck with a fully modelled cockpit.

Credits: Prowlaz (captured with NVIDIA Ansel)
City

The previously empty pub’s upper floor is now a roomy lounge…

Pretty comfy

…and you can look near the alleyway insertion point for a little workout room too:

NEW MAP: User Arena Two

A new User Arena map is now available for quick Terrorist Hunt and PvP games.

moar cqb pls

New and updated gear

No gear?

The Platform, Primary and Sidearm item slots now have a “None” option, so you can choose to play without a vest or either of the weapons. This should aid the role-players and “custom” game mode crowds while we haven’t added more official game modes, as well as allow players to voluntarily handicap their loadouts.

NEW SIDEARMS: G19 Custom

The venerable G19 comes in two flavors, both with custom Agency Arms® slides: the G19 Custom (Patrol) has a Patrol Series slide and regular-height iron sights for a more traditional look, while the G19 Custom (Urban) is fitted with the Urban Combat slide and suppressor-height sights (taller sights to clear the added height of a mounted suppressor).

Bottom-left: G19 Custom (Patrol) with standard-capacity magazine and sights / top-right: G19 Custom (Urban) with extended magazine and suppressor-height sights. Not gonna lie, this shot took way too many attempts and it kinda turned out just okay

The G19 Custom pistols have replaced the G22 Custom as the G19 is a far more common sidearm in the special operations community, due both to its more compact size and its vastly more popular 9 mm ammunition. The models are also of a better quality, so it’s a win-win.

Both handguns have a standard capacity of 15+1 rounds. If fitted with the Taran Tactical® extended base pad magazine, capacity goes up to 20+1.

NEW SIDEARM: M17

Another new sidearm in the armory: the U.S. Army’s new service pistol M17. It carries 17+1 rounds of 9 mm ammo and also has a rail for mounting lights under the barrel.

“No, you’re ugly but functional” —The M17, probably
NEW SIDEARM: M9A3

The latest model in the M9 series has also been added: the M9A3 has a 17-round magazine, accessory rail and Vertec-style thin grip.

NEW SIGHT: Vudu 1–6x

The Vudu 1–6x is an LPVO by EOTech®. This variable-power scope goes from no magnification (1x) all the way to 6x. Like the AccuPower 1–8x, its first focal plane reticle scales with the zoom. At 1x, you see the recognizable EOTech® reticle shape for fast target acquisition, and as you zoom in the reticle expands to reveal the detailed crosshair with MIL/MRAD hash marks.

Left: sight picture at 1x / right: sight picture at 6x. Both shown with max reticle illumination

The Vudu is equipped with the same mount as the AccuPower, meaning you can also attach an RMR (Flat) on top of it. Like the AccuPower, it also offers 10 levels of reticle brightness, including a no-illumination setting.

NEW SIGHT: Micro T-2

Younger sibling to the T-1, the Micro T-2 can now be selected under Sights. Both Micros are functionally identical, so pick the one you feel the most tacticool with.

NEW/UPDATED SIGHT: M68 CCO

We’ve replaced the very ancient CompM2 model with a CompM4s—the current red dot sight under the U.S. Army’s M68 CCO designation.

New M68 CCO (CompM4s) seen here alongside the new Tac Light (WMLx) model

If you had any saved loadouts that included this item, make sure to re-equip it. It’s an entirely new item entry, so the previous version will be gone!

NEW SIGHT: EKP-8-18

The EKP-8-18 is a Russian optic from the Kobra series of red dot sights. This particular version is meant for Picatinny rail mounts. Although the real thing offers 4 reticle patterns that can be changed on the fly, we’ll be sticking with just one option until we can work that functionality in.

UPDATED SIGHT: HWS EXPS3

The EXPS3 holographic sight has received a worthy model with EOTech® branding and all. Farewell, “V3 NavTech”.

Yes…
NEW ACCESSORY: Tac Light (M300C)

A new compact light has been added and it looks damn good. Look for Tac Light (M300C) under Accessories.

Tac Light (M300C) seen here mounted on an Offset Rail alongside the new AN/PEQ-15 (read on) and Stubby Grip (keep reading, keep reading)
UPDATED ACCESSORY: Tac Light (WMLx)

Another model that was updated is the Tactical Light (Compact), now called Tac Light (WMLx). It was an old model, so we replaced it with a much more detailed one, complete with Inforce® branding.

If you had any saved loadouts that included this item, make sure to re-equip it. It’s an entirely new item entry, so the previous version will be gone!

NEW/UPDATED ACCESSORY: Tac Light (X300)

The handgun light is a brand-new model: the Tac Light (X300) has replaced the Tactical Light (Pistol) attachment.

UPDATED ACCESSORY: AN/PEQ-15

The trusty “PEQ box” also has an updated model, which you’ve just seen. You can also check out the tan/FDE version if you select the Snakeskin camo on either the MK 18 Mod 1 or the M4A1 Block II carbines.

Attachments will have multiple skins you can select individually in the future.

Also, the IR laser now shoots out of the correct hole orifice aperture. It was previously projecting out of the IR illuminator lens, and now emits from the right-hand side (from the shooter’s perspective), next to the visible laser.

NEW FOREGRIPS: Vertical Grip (RVG) and Stubby Grip

Two new foregrip models are available in the Underbarrel category of weapon attachments: Vertical Grip (RVG) and Stubby Grip (pictured a few items above).

Tac’d out M416D CQB: Vudu 1–6x + RMR (Flat), AN/PEQ-15, offset Tac Light (M300C) and Vertical Grip (RVG)

Mission Summary

At round end, a Mission Summary board will now appear upon being transported back to the Ready Room. It displays a randomly generated codename for the mission, as well as map name, time elapsed and a few individual stats (from left to right: player name, status, number of kills, hit percentage, shots fired and number of hits) along with the team’s average stats:

The Mission Summary board is a first pass in every sense: the overall appearance, as well as which stats are shown to whom and in which game mode are all subject to change.

Miscellaneous fixes and updates

  • The different versions of the RMR red dot sight have been renamed RMR (Flat), RMR (Short Rail) and RMR (Tall Rail).
  • Only the RMR (Flat) can be mounted on the flat RMR mounts available on the ACOG 4×32, Specter DR 1x/4x, AccuPower 1–8x, Vudu 1–6x etc. The other versions are fitted with Picatinny mounts and can only be mounted on Picatinny accessory rails.
  • Enlarged the interaction box around dropped items so that they’re easier to interact with.
  • Lots of map cleanup (collision, textures, gaps etc.).
  • No more doing a slow 360° when mounting certain ladders like an awkward square dance move.
  • A.I. should now leg it if reloading out in the open, as well as look down sights when engaging beyond 15 meters.
  • Adjusted the scale and texturing of a few items.
  • Renamed the “Risers” tab of weapon attachments to “Rails” as it included rail covers, offset mounts and other items that weren’t risers.
  • Attempted to make night vision a bit more consistent across maps and sections thereof.
  • A whole lot of stuff you can check out in the raw change log.

Other known issues

Here are the main known issues introduced in this version. Most should be fixed or improved in an upcoming hotfix:

Audio
  • When playing online, gunshot tail sounds sometimes don’t update properly and result in the external (outdoors) tail being triggered inside buildings.
  • When playing online, the sound effect from magazines dropping to the ground is missing.
  • Occlusion for the grenade bounce sound effect is faulty.
Cosmetic and customization
  • The Offset Rail cannot be mounted over the receiver portion of weapons, only over the handguard/fore-end.
  • The stupid holsters have gone invisible (online).
  • When accessed via the Ready Room lockers, the operator customization screen will display a weird background.
  • The Watch Cap is not accepting the Headset attachment, but you can still use the combination from previously saved loadouts.
A.I.
  • The perception tweaks can cause varying degrees of unresponsiveness and odd behavior from enemy bots. Please bear with us.

What’s next?

A hotfix patch or two in the upcoming weeks should hopefully take care of most of the issues that slipped and/or weren’t worth holding back the release for.

In the meantime:

Toadie has been working on animations for 1030 (here’s another WIP one); Mikson‘s shortlist has a few sound bugs to fix and some dedicated weapon sounds for newly added weapons to implement. In the longer run, he’ll be restarting work on ambient sounds; John will keep working on optimization, tech, maps and new content (we’ve got a few more pieces of gear in the pipeline); and Kris will continue to assist everyone in implementing stuff while code-slashing his way through all the nasty bugs we keep flinging at him.

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

Client

Steam Build ID: 4479668
Size: 4.3 GB

Dedicated server

Steam Build ID: 4479675
Size: 199 MB

FIXES

* FIXED MP5A5 front sight alignment
* FIXED G33 front lens texture distortion
* FIXED unhooked node in WBP_MapList
* FIXED warnings about invalid primary asset ID's in reference to BP_XXX_Master classes
* FIXED missing collision on 747 wheel well/cargo area
* FIXED resolution of 747 loading screen images so no longer distorted
* FIXED missing collision to interior wall in Depot warehouse 1
* FIXED AK mag being used by LMG gunner in Depot TH
* FIXED missing collision for various trees on Depot v2
* FIXED missing collision in SF's elevator
* FIXED out of bounds access in Storage Facility 
* FIXED missing ceiling collision in various Power Station static meshes
* FIXED terrain collision allowed player to "float" in stairway B
* FIXED various static meshes that were clipping geometry
* FIXED up misc redirectors 
* FIXED floating tree in Depot_Geo
* FIXED getting out of bounds and other misc exploits in SmallTown_Geo
* FIXED floating flag in UserArena_Geo
* FIXED 360° spin before mounting a ladder
* FIXED being pushed into wall next to ladder when going to mount ladder from the bottom
* FIXED missing ceiling collision in subway section of City
* FIXED DOF effect in Storage Facility that happened in some places
* FIXED Depot v2 out of bounds gap
* FIXED Depot v2 road rendering issue near bridge
* FIXED Depot v2 floating fence
* FIXED overlay large collision on RadioTower_A feet
* FIXED looping drop left hand item montage when switching items mid-reload.
* FIXED spamming reload mid-item switch.
* FIXED playing drop left hand item montage unnecessarily after reload abort.
* FIXED Mission Summary/AAR displaying a team accuracy as a total of percentages instead of the average.
* FIXED grey rectangle on side of EXP3 sight
* FIXED standing in air in Tanker Ship engine room
* FIXED shadow bug on the face of the Tanker Ship tower
* FIXED not being able use 'Simulate' in editor unless there is spawn point
* FIXED aiming / sprint interactions
* FIXED another out of bounds entrance in SF – damn you, tjl9987612!
* FIXED various 747 wall hacks
* FIXED walked into plane (747) wall off of front stairs
* FIXED pass through airplane fuselage near first class
* FIXED Tanker Ship pipe support in position that doesn't make sense
* FIXED trashcan placed where door clips on Tanker Ship
* FIXED Tanker Ship railings doubled
* FIXED glass in Tanker Ship bridge windows shattering in one big chunk
* FIXED hard to see red dot sights. Should now be much more visible
* FIXED bad RPC in SetMagnificationLevel()
* FIXED blown out sun on Power Station
* FIXED possible crash in GBInsertionPoint if GameState is replicated after InsertionPoint info.
* FIXED P_WaterCharge being occluded all the time.
* FIXED misaligned mountains in 747 map
* FIXED bugged lightmap on 747 cargo container
* FIXED RR map super bright
* FIXED different shade of color for world when looking outside 747 door (still happens a small amount due to post process settings being different between inside and outside)
* FIXED RMR dot too small
* FIXED visible crack between Depot warehouse roof and side wall allowing you to see inside building
* FIXED AI navigation in TH-Depot V2
* FIXED AK mag for LMG in BGLowVis_GunnerLMG.kit
* FIXED nav collision geo being visible on BP_Door_Rollup
* FIXED Kobra_EKP-8 reticle brightness not changing
* FIXED burst mode being slower than actual ROF of given firearm
* FIXED reload animation notifiers relating to ammo usage being called multiple times
* FIXED M1014 ammo levels and shot count going out of sync between client and server (I hope)
* FIXED AR-15 and MP5 bolt release not chambering round
* FIXED SDASS not cycling fore-end during reload
* FIXED call to UGBAISense_Hearing::ReportNoiseEvent() using the character as the instigator even if they had a valid controller
* FIXED the usage of Mission Adjectives/Noun string table Keys as Source Strings (oops)
* FIXED potential usage of nullptr in GBPlayerState::OnRep_InReadyRoom()
    Note: I was checking for the nullptr a few lines later :|
* FIXED floating bridge anchors in Depot
* FIXED ReadyRoom lighting errors
* FIXED road blockage in Depot
* FIXED getting stuck in slightly out of bounds rock in Storage Facility
* FIXED Gas Can in City map has bad lighting
* FIXED spectators getting no lighting scenario when the starting to spectate an in-progress round based game mode
* FIXED handgun reload montage to fix slide not going fully into battery
* FIXED blocking volumes in Tanker Ship engine room blocking weapon collision erroneously
* FIXED disconnected node in ABP_mk48_mod1 - dust cover etc should now open
* FIXED bad texture on front lens of Vudu 1-6x scope
* FIXED Vudu 1–6x reticles correctly set for each level
* FIXED Vudu front lens texture misalignment
* FIXED out of scale folding backup sights
* FIXED clipping magazines for M416D, M4s and MK 18
* FIXED out of scale Offset Rail
* FIXED marksman suppressor texture with blue hue
* FIXED angle of MK 14 magazine
* FIXED AK-74 MI CQB texture issues along top of receiver and top rail
* FIXED issue with 747 shadows culling out to soon
* FIXED player movement continuing when mission summary appears
* FIXED insertion points being too hard to see on Ops Board map
* FIXED missing Ops Board map in DM/TDM/LMS
* FIXED missing start count down button on LMS ops board
* FIXED PP changing color grading on balcony area in 747 map
* FIXED magazines clipping through M416D mag well
* FIXED collision and overlapping geometry on top of Small Town building trim pieces
* FIXED missing collision on M300C light
* FIXED IR laser coming out of incorrect aperture on AN/PEQ-15
* FIXED RR roster not redrawing correctly
* FIXED RR locker room name plates not redrawing correctly
* FIXED audio freeze issue with older AMD processors
* FIXED misplaced fence mesh on 747 ground
* FIXED harsh lighting change when moving out main entrance of 747 to outside
* FIXED small gap in wall that let you see outside in 747 cargo area
* FIXED missing collision on ceiling of 747 cockpit
* FIXED Depot bad landscape collision issue along road
* FIXED bad cast to GBPlayerController in WBP_NetworkFailureOverlay
* FIXED Specter top mount not working
* FIXED various typos and punctuation errors in map/UI names and descriptions
* FIXED running footstep sounds on dirt surface
* FIXED WBP_DeathOverlay not being removed from FullScreenWidgets properly, causing player to be locked to a non-visible widget
* FIXED team kill notification not coming up on death
* FIXED characters playing equip sounds in front end menu
* FIXED characters not having NVGs down in front end menu
* FIXED GBGameMode::ChangeName using wrong length when clipping duplicate names
* FIXED M17 using wrong magazine; now has proper model with 17 rounds
* FIXED missing M17 icon
* FIXED lighting change when going from inside main 747 building to outside in day scenario
* FIXED bad node in Aircraft_Takedown_Audio
* FIXED bad nodes in A_SFXVolumeChangeTest_Cue
* FIXED picking up mags preventing your from aiming anymore
    * they were actually not being put away once picked up due to another bug fix
* FIXED size and placement of interaction box that surrounds magazines to make them much easier to target and pickup
* FIXED large area of floating foliage in Depot
* FIXED Depot parking block mesh doubled
* FIXED cannot lean while standing on rock near insertion point in Small Town
* FIXED ground clutter hanging over cliff edge on Depot
* FIXED various gaps between slide and frame on M17, M9A3 and G19 Custom (Urban) handguns
* FIXED NE insertion point on TH-SmallTown
* FIXED AAR/Mission Summary not appearing in Defend game mode
* FIXED not being able to place Headset on Ball Cap
* FIXED being able to place multiple socket based attachments on single parent item
* FIXED MOTD not showing up on WBP_ServerInfoBoard 



CONTENT

* Depot - complete map rework
    * Finished off warehouse rework
    * Replaced old bush with new model
    * Various cleanup and smoothing off rough landscape areas 
    * Changed procedural foliage boxes to volumes so they don't collide with weapon
    * Tweaked lighting options a bit for performance
    * Cleaned up some PhysMat setting on newly used materials
    * Cleared out duplicate doors
    * Made sure all newly used foliage had proper settings for AI

* Added proper PhysMat to marketplace foliage, rock and ground materials used in Depot
    * Properly sets up foliage for AI LOS

* Added in new weapon attachments
    * TangoDown Stubby Vertical Grip
    * Aimpoint CompM4s optic
* New models added for 
    * Ural 4320 truck
* New optics
    * Kobra EKP-8
* Updated Trijicon RMR Flat in game name from RMR (ACOG) to RMR (Flat) to allow use with any flat style mounts
* New map: UserArena_Two
    * Different layout focused on more close quarters fighting
* Depot
    * Added some blocking volumes around edges of playable space
    * More general work cleaning things up while moving around map
    * Created TE version
    * Created Compound only TE version
    * Updated overhead map image for full version of map
    * Cleaned up TH version in preparation for adding in TH spawns
* UserArena_Two
    * Finished off art side of things
    * Finalized lighting for Day and Night
    * Initial placement for TH mode

* Added new weapon attachments
    * RVG vertical grip
    * M300C tactical light
* Updated AN/PEQ-15 model
* Added icon for Kobra EKP-8 sight

* ReadyRoom
    * Rebuilt RR to work with dynamic lighting
    * setup as fully dynamic lit
* UserArena_Two
    * Added red lights in player spawn area for night version
* Adjusted RVG Vert Grip LOD settings so top LOD is used in customization menu

* Removed CompM2 sight (old and replaced with newer CompM4s version)
* Optimization pass on metal impact effect
* Added tan version of new AN/PEQ-15
* Updated overhead maps and map UI images
    * Depot
    * Depot_Compound
    * UserArena_Two
* UserArena_Two map
    * Expanded Spawn areas to provide more cover and not be initially exposed to AI in TH mode
    * Added in red lighting to spawn areas in night version 
    * Small lighting tweaks for night version 
* ReadyRoom
    * Moved all geometry back into persistent map and removed "geo" streamed map (Was causing player to fall through floor)
* Made some adjustments to shadow casting for foliage
* Cleaned up some wall UVs on RR meshes
* Adjusted some RR reflection capture setups

* Adjusted default scalability settings in DefaultScalability.ini

* Depot
    * Added in randomness to some object placement throughout compound of map (can do that now with dynamic lighting)
    * Reduced sound of rooftop vent units by 50%
    * Cleaned up some bad foliage placement

* Replaced Vudu reticles with new ones from Scopey
* Renamed UserArena_Two map images so they show up in UI

* Made upper windows in the Depot garage building actual shootable glass (User request)
* Removed SHIPPING text from shipping containers
* Removed emissive component of basic glass material (was glowing at night)
* 747
    * Added some more detailing to plane interior
    * Added in upper deck/cockpit areas
    * Cleaned up bad UVs and set proper PhysMats on 747 meshes

* Updated EXPS3 model (from "V3 Holo Sight")
* Removed V3 Holo Sight BP 
* Loaded and saved all master materials to make sure they were up to date
* Darkened new EXPS3 sight color texture a little

* 747
    * Added cockpit glass
    * Moved reflection captures into lighting scenario maps
    * Tweaked lighting in both day and night maps along with post process settings
    * Added doorframe mesh to main 747 entrance

* Moved reflection captures into lighting scenario map for Ready Room
    * Hopefully solves bright RR lighting issue
* Properly centered MRO GbSight component 

* Cleaned up reflection captures and built lighting for Power Station and depot
* Cleaned up Storage Facility reflection capture placement and built lighting
* Cleaned up some bad collision volumes around Depot bridge spawn
* Ready Room
    * Cleaned up some lighting issues
    * Turned down eye adaptation effect
* added physical material to M_SandbagXXX materials.

* Small Town map changed over to dynamic lighting
    * Cleaned up some foliage settings
    * Added a few small ground plants to fill some space
    * tweaked outside lighting slightly and added more reflection captures to help with some rendering artifacts that come from the dynamic lighting change

* Set default Sharpen setting to 0.0
    * Makes sure its not used when FXAA is selected unless user decides to use it
    * Still easily used for TAA if so desired
* Made default reticle brightness half what it was (better in majority of lighting conditions)
* Target Test Map
    * Converted to dynamic lighting
    * Tweaked lighting setup for better testing
* Removed ambient sounds in maps in hopes it fixes freezes in game for some users
    * Depot, Small Town, Killhouse and Aircraft Takedown training map

* Deleted development version of 747
    * Map is now no longer "in development"
* Small Town
    * Optimized interior lighting
    * Added access to second rooftop
* Adjusted bloom in RR to fix blurry reticle issues
* updated insertion points locations and nav mesh on TH-UserArena_Two
* removed unused M_NewMaterial asset

* regenerated nav mesh on TH-Power Station due to AI trying to walk through fences (again)
* updated TH-747
    * regenerated nav mesh due to AI trying to walk through fences (again)
    * added nav proxies to stairs in terminal building
    * tweaked internal ladder nav proxy and changed its nav type to obstacle
    * added obstacle nav mesh modifiers near internal ladder
    * added correct nav proxy to cockpit
    * slightly cleaned up Blueprints used for cockpit glass

* Added hatch/ladder to roof of Small Town building
    * Will look at making it an actual door later
* Depot
    * Tweaked various settings in PP, directional light and fog for better performance
* Expanded holo sight reticle brightness setting min/max
* Cleaned up some audio volumes in SmallTown
    * Were not straight

* Disabled Sharpen UI & PPI until further notice

* added sockets to support flat mount RMR to Trijicon AccuPower, EOTech Vudu and MK 25

* changed RMR Flat from rail-based item to Direct Sight
* Set all tree bark/trunk materials to use Wood_Thick PhysMat for Mikson

* City map
    * Detailed out building interior room near alley insertion

* corrected display names of HWS EXPS3, EKP-8-18 and M68 CCO according to the items list

* Small change to AO setting in PP of Small Town and Depot night maps
* Removed P250 and Tac light (Compact) as they were older models that were replaced by newer assets
* Tweaked AN/PVS-22 night vision PP material to be more consistent across all maps
    * Still needs more work to fine tune per map

* Greyed out Unlimited framerate setting for now
    * To many reports of "lag" in game as a result of allowing unlimited framerates

* New Optic
    * Micro T-2 regular and tall versions
* Moved Micro T-1 to use new T-2 version mount

* UserArena_Two
    * Fixed some out of bounds DM spawn points
    * Cleaned up some material color setting on walls
* Power Station
    * Small optimizations to Post Process settings and some lighting

* Adjusted CompM4s positioning on rail (was sitting to high)
* Made Power Station work in TH mode again (dumb mistake on game mode setting)
* Added simple collision to roof hatch door used in Small Town and Depot

* Small optimization to Small Town Post Process settings
    * Lowered AO distance – saves about 0.75ms on GTX 1070 

* Added Night to Depot_Compound

* Storage Facility 
    * Cleaned up PP DOF settings in all game modes (previously just fixed in TH) 
    * Moved PP volumes into proper geo levels

* Changed the lighting type on master magnified optic material so it is purely emissive
     * Should take care of dark view in some maps with some scopes and off bloom that happens sometimes

* Adjusted UI naming of RMR models for clarity and accuracy
* Adjusted SightComponent on EKP-8-18 (was not centered)
* Unticked a PP setting box on M-233 12x scope in hopes it make it behave (render) like the rest 
* Standardized map author text for all maps to "BlackFoot Studios"
* Depot
    * Broke out materials in garage office are for proper PhysMat assignments
    * Added glass to garage office windows
* Cleaned up some geometry and material issues with M300C light

* New SureFire (X300) handgun tactical light to replace old one
* Reduced size of holo reticles' center dot by about 50%
* Replaced G22 with G19 Custom with 2 slide/sight options:
    * G19 Custom (Urban) – based on Agency Arms Urban Combat slide + suppressor-height sights
    * G19 Custom (Patrol) – based on Agency Arms Patrol Series slide + standard-height sights
* Created LODs for M9A3, M17 and G19s


AUDIO

* new gunshots for assault rifles
* new gunshots for submachine guns
* new gunshots for SVD and MK 14
* new gunshots for MK 48
* new gunshots for M1014
* new gunshots for handguns
* new weapon tails
* new bullet impact sounds 
* added reticle brightness change sound for non-magnified optics 
* re-imported sounds in hopes of cleaning up some sound-related bugs
    * lots of sounds were very old
* burst mode: fixed burst not stopping when the weapon is empty
* changed grenade bounce sound (WIP)
* added pin sound for grenade throw animation
* new gear movement sound effects
* new footstep sounds
* added first iteration of VOIP handled via Wwise (Local & Global)
* new radio squelch sounds
* decreased falloff distance of gear movement sounds
* slightly increased footsteps volume
* increased footsteps falloff distance
* limited gunshots voice count
* lowered grenade explosion volume so it's more consistent with current values


A.I.

* updated AI sight sense custom sight interface
    * using the interface, the target can decide what to trace against, how often and how much each part is worth.
    e.g. up close, seeing a characters head may be enough for the AI to recognise an enemy.
    At long distance, the head may be worth much less, requiring the AI to also see torso and legs before recognising a character, let alone an enemy.
    * updated all affect C++ and Blueprints.
* updated GBAIController
    * fixed AI not recognising other barks properly
        * upon hearing another friendly AI bark, the AI will become suspicious/alert and attempt not to repeat the same bark too soon.
        Should fix the "CONTACT!" spam
    * AI no longer reset suspicious to false if they no longer have an enemy.
    * temp removed LastBulletWarnOcclusionCheck so AI don't automatically assume each round is suppressing them.
    * created Curve_AISight
    * updated bullet impacts, grenade impacts etc to ensure AI can sense them (even if they don't react).
* updated GBCharacter
    * created struct to define which bones to trace against and what curves to use for the various values.
    * implemented new AI sight interface
    * created Curve_CharSightParts 
* updated GBTimeProjectile
    * tweaked friction related settings
    * changed BounceVelocityStopSimulatingThreshold to 50 from 10.
    * added min speed and time check to OnBounce() to prevent spamming particles / sounds
    * enabled impact events on dedicated servers so that grenades etc will alert AI
    * created GrenadeImpact surface links and impact blueprints.
* tweaked AI behaviour trees
    * removed various artificial delays/pauses to make AI harder to kill when taken by surprise while patrolling/idle.
    * fixed AI getting stuck in firearm obstruction loop.
    * fixed AI not legging it when reloading if exposed.
    * taught AI to actually engage a firearms sights when target is beyond 15m.
* changed default part score in FGBAISightTargetPart from 1.0 to 0.0 (dickhead)
* updated GBAISense_Sight to set the stimular location and tag based on the highest scoring seen part.
* updated GBAIController
    * made AI aim at last seen part instead of always at spine
    * added additional sight and hearing thresholds for when AI is alert or not.
    * added check to make AI become alert if they spot a friendly is alert and they are not.
* created BTTask_SetSquadAIState
* updated BT_Patrol to use set the entire squads AI state when anyone sees the enemy etc
* reduced max peripheral vision in Curve_AISight
* reduced value of individual parts and distances in Curve_CharSightParts
* updated GBAIController
    * changed EnemyLastSeen/Heard into EnemyLastStimulus
    * updated BT_Search to update SearchLocation based on EnemyLastKnownLocation when stimulus updates


CODE

* Moved codebase to Unreal Engine 4.23
* updated WBP_MissionSummary to separated it out in its various child-widgets
* created Test_MissionSummary map to test it out.
* updated GBGameState to add support for replicated game stats from the server to clients using a replicated array
* updated GBPlayerState to add support for replicated player stats from the server to clients using a replicated array
    FIXME: use RPC instead? Not sure :|
* updated BP_TerroristHunt
    * increments TerroristKill stat when a terrorist is killed rather then relying on Kill stat
    FIXME: should the kill stat include the person that was killed in it?
    * created ServerPrepMissionSummary() in BP_TerroristHunt_GameState to gather relevant stats together for replication

* created shared NAME_PM_Water def into shared GBTypes.h and removed non-shared defs.
* renamed GetMapThumbNails() to GetMapScreenshots() and added ability to specify the filename prefix.
    * updated affected Blueprints / C++
* exposed GB level summary variables to Blueprint
* updated GBGameMode
    * added random mission name generation using localised adjective and noun string tables
    Adjectives/nouns currently pulled from those available here: https://github.com/kmkingsbury/xcom-mission-name-generator
    All credit should be given to them for piecing them together.
    * added GameStartTime to track when game/round is started.
    * updated OnRoundStageSet_Implementation() to call GBGameState->SetTimeElapsed()
* updated GBGameState
   * created ServerPrepMissionSummaryEvent() to prep all the replicated game/player stats
   * created ClientBecameInactiveEvent() to handle which menu to display for the client upon becoming inactive/dead.
    * added MissionName replicated variable.
    * added TimeElapsed variable.
* updated BP_GameState to add default handling of ServerPrepMissionSummary
* updated BP_TerroristHunt_GameState to add TH handling of ServerPrepMissionSummary
* updated GBPlayerState
    * changed logic related to DeathOverlay into ClientBecomeInactive that calls the game state instead.
    * added ClientShowMenu() to allow server to tell client to display as certain menu/widget.
         * useful for modding.
* updated WBP_MissionSummary
    * added the randomly generated mission name to top left
    e.g. Operation Haunting Flame
    * added map name to top right
    * added time elapsed
    * player entries now display operator status : OK, WIA, KIA or MIA
* updated all ops boards to show the randomly generated mission name
* removed usage of macro in Example_Map to stop editor complaining about it
* updated ZKTeamKill to added name of team killer and victim to team kill logging
* updated GBGameMode to ensure all chat is logged

* replaced CustomAnimNode plugin with stripped down version of TCPE plugin
    * updated all affected Blueprints
* removed RBAnimPlugin
    * updated all affected Blueprints and animation sequences.
* updated GBinsertionPoint to automatically clear references to itself if no longer active or the teams do not match
    * die weird bug die!

* replaced usage of macros in BPML_Firearm_Master & BPML_Item and removed deleted both.
* deleted unused EItemPickup & EItemThrow Blueprint enumerations

* added RemoteStaminaAlpha to GetLitetimeReplicatedProps
* added BloodVolume to GetLitetimeReplicatedProps
* updated character emote system to use PlayNetworkedMontage instead of custom FEmoteInfo struct
* removed DM-Depot_Compound from AlwaysCookMaps list
* removed unused AGBAIState class
* created BP_AnimNotify_AKEventCustom 
    * replaced references of AnimNotify_AKEvent_CustomVector with BP_AnimNotify_AKEventCustom 
    * saved all affected animations
* added TracerItemClass to GetLifetimeReplicatedProps() in GBMagazine
* fixed up misc redirectors
* updated GBReadyRoomStreamer
    * updated code for handling lighting scenario based on code in GBGameStates
    * looks for XXX_Scenario maps now, instead of hard coded _Lighting
    * takes Day/Night tag in GBGameState into account
    * if no Day/Night tag is found, defaults to first _Scenario it finds.
* cleaned up AGBPlayerController::ClientUpdateLevelStreamingStatus_Implementation()
* cleaned up AGBReadyRoomStreamer::ToggleReadyRoomLighting()
* removed unused variables from LevelStreamingStatusEvent

* updated GBVOIPManager
    * attempted to fix crash by adding IsLowLevel() checks before trying to use VOIP audio components.
    * improved logic in TickVOIPData().
* enabled TheCurviestCurves plugin for use with AI, firearm recoil etc.
* updated DisplayDebug() in GBCharacter & GBCharacterMovement so that it displays info about current floor/base.
* changed SwitchItem gameplay tag to SwitchingItems
* added Reloading gameplay tag.
* removed stubs from BP_GrenadeImpact_Master
* changed AttachItemTo() from Component, Rules, Socket to Component, Socket, Rules to make it fall inline with BP_AttachItemTo().
* changed switch item notifiers in transition animations to from Queued to Branching.
* updated GBCharacter 
    * cleaned up various editable category variables.
    * hid unneeded categories
* updated ZooKeeper
    * vote over logic switched to in-progress logic – majority rules
    Exception: if only 2 players, both need to vote yes.
    Previous version only looked at Yes vs No votes, meaning that if only 1 person voted yes, that would pass after the time ran out.
    * voter TMap changed from FString, bool to APlayerState*, bool.
* updated WBP_XXX_OpsBoard widgets to wait for valid GameState & PlayerState before continuing construction.
* updated BP_Door_Swinging to use destruction meshes
    * similar to what windows use.
    * replaces 'chunk' system that kept f'ing up.
    * updated all maps that were not already checked out.
* updated BP_BreachingCharge
    * corrected rotation while being held.
    * added arrow component to make it easy to determine which direction the effect and damage cone should go.

* updated GBSightComponent to call SetMagnificationLevel() in BeginPlay() regardless of whether it has multiple magnification levels or is active.

* updated GBPlayerController
    * keys are now flushed when becoming inactive.
    * delay before calling ClientBecomeInactiveTimer() increased from 0.1 to 1.0 seconds to allow for ping/lag etc.
* attempted to make ReadyRoomStreamer play well with PIE by making lighting use a unique instance number as well
* updated BP_GameState to check for dead character before showing death overlay
    * should stop it from showing death overlay for spectators
* updated TH-UserArena_Two
    * rebuild nav mesh
    * rebuilt cover points
* number suffixes from keys in ST_MissionNameNouns
* added extension check in GBAISpawnPoint so it doesn't matter if you do/do not add .kit to file names.
* updated TH-Depot V2
    * updated/fixed/added patrol routes, spawn points and guard points.
    FIXME - need to swap out from hard coded to system that be easily changed in-game and loaded at runtime.

* Changed max smooth framerate value to 90

* removed GetDefaultObject() usage in GBItem::GetPrimaryAssetId()
* removed GetDefaultObject() usage in GBCharLoadoutInfo::BuildReplicatedCharLoadout()
* added hack to GBGameInstance constructor to fix client side default objects conflicting with non-default object NetGUID,
    which the leads to the issues replicating related actors from the server.
* updated GBFirearm, GBMagazine & GBRailAttachment's EncodeKit_Implementation() to ignore encoding if for replication
* updated BP_PlayerController, WBP_ServerBrowser, WBP_SinglePlayer, WBP_TrainingScreen & WBP_HostGame to prepare a loading screen widget even if no map screenshots are found.
* updated GBPlayerController
    * updated PreClientTravel() to create a loading screen even if seamless travel is false
    * updated PreClientTravel() to look for TN based map screenshots if LS ones are missing.
    * IgnoreUseInput is now authority-based, replicating result to client via RPC.
* updated GBPlayerState::OnRep_InReadyRoom() to add/remove ignore input reason when entering/leaving the ready room.
* updated GBGameMode::ChangeName() to validate the characters in a name against the INVALID_NAME_CHARACTERS macro string before setting the name.
* fixed up some redirectors relating to bull whizz/sonic cracks
* updated BP_SpawnProtectionActor due to IgnoreUseInput changes

* moved net.AllowClientRemapCacheObject from GBGameInstance constructor to GBEngine::Init()
* changed AGBPlayerController::SetIgnoreUseInput() server check from Role == ROLE_Authority to GetNetMode() == NM_DedicatedServer (oops!)
* correct some misc bad geo on Depot v2
* regenerated nav mesh and cover points on Depot v2

* updated AGBCharLoadoutInfo::BuildReplicatedCharLoadout() to add relevancy check back in, but against instance of item instead of the CDO
* added AGBItem::IsNetRelevantFor() to change try a different relevancy for bOnlyRelevantToOwner items

* updated AGBCharacter::UpdateRecoilOffset() to split up long ticks to prevent recoil from being framerate limited

* updated ReadyRoom.
    * moved bullet blocking volume to shooting range window only to stop sudden annoying weapon collision near shooting range
    * adjusted placement of shooting range volume so it isn't possible to fire in to prep area
    * changed RR cinder block physical material to stop all bullets
* change async loading of default/item editor related attachments of firearms to sync load

* updated GBFirearm 
    * removed timer that destroys the spatial sound actor.
    * changed spatial sound overlap to only kick in if the firearm is equipped
    * added manual calls to UAkGameplayStatics::StopActor() when removed from character and unequipped coz I'm paranoid.
* tweaking notify timings in AM_Reload_PumpAction
* tweaking timelines used by BP_SDASS_Martial

* added called to OnRep_InReadyRoom() in GBPlayerState::ClientInitialize().
* updated GBCharacter
    * added StopVoice() call in PlayDying() to stop characters talking while dying
    * changed non-radio voice replicated from a variable to a NetMulticast

* created BP_PointLightToggleActor to handle toggling points lights on/off as you enter / leave specific triggers.
* updated Tanker Ship
   * fixed windows on stopping bullets.
   * attempted to fix floating bits of glass
   * created PM_Glass_Shattered for destructible glass debris that spawns FX, but otherwise ignores bullets
   * created versions of the trigger volumes used to control lights in the day and night lighting scenarios
   * copied out lights in _Audio to lighting scenarios.
   * added BP_PointLightToggleActor's to handle all the point lights to lighting scenarios
   * removed handling of point lights from _Geo
* added hack to GBBullet impact delegate to prevent spawning impact effects if the last impact hasn't changed enough.
    FIXME: need to create an FX handler of some sorts to handle all this more effectively.

* updated WBP_FirearmCustomisation_XXX to include TOPMOUNT_RMR based mounts by default
    * FIXME: change this later.
* updated BP_NamedSocket_DragDropOperation to support looking for sockets on child items
* attempted to updated GBItemDragDropOperation to get it to hide editor only meshes (and failed).
* updated GBDirectSight to support specifying the component it attaches too.

* updated more inventory assets to bring them inline with style guide
* updated character assets to bring them inline with style guide
* removed old/unused firearm and related sound cues/waves
    * most, if not all, have been replaced by Wwise event based ones anyway
* removed test RMR support from MK 25

* continued working on tightening up collision meshes of rail attachments, sights etc
* took care of missed A_Menu_Click24 redirector from previous submit
* renamed mk48_mod1_Mag_BeltAnim to A_Mk48_Mod1_CycleBelt and edited it to actually feed rounds
* checked/updated firearm default setups

* added option for 'None' to everything.
    * FIXME: not sure if you can actually select none for everything and apply it. May need *something*.
* updated GBPouch
    * now saves Comp & Socket instead of MOLLE when on a platform and Socket when not.
   * required due to being allow to attach to non-platform items, such as the holster.
* updated GBHolster
    * encodes Comp & Socket instead always being manually attached to the right/left thing
    * is no longer a 'default item' and should be included during replication.
* updated GetChildren() & GetAllChildren() to allow for optional item class parameter
* updated GBPlatform to fail Decode if it supposed to attach to a character, but failed to do so.
* updated GBPlayerController to attempt to selected a sidearm if no primary firearm is found when loadout is first applied.
* updated GBPlatform based Blueprints (except BP_BattleBelt) to add a dump pouch if one is missing when encoded.
* updated BP_Holster to to add BP_DefaultHandgunAmmoPouch if one is missing when encoded.
* updated WBP_SelectItemButton to call OnClear() if/when cleared
* updated WBP_CharacterEditor
    * will remove holster & attached handgun pouch when sidearm is cleared.
    * will add holster & attach a handgun pouch when sidearm is selected
* updated BP_Character to disable adding BP_Holster & BP_DumpPouch as a default item
* updated loadout version from 6 to 7 due to changes above

* updated RBEventManager
    * removed all usages of TWeakPointers
    * simplified removal of invalid listeners during InternalCallEvent()

* updated RBEventManager
    * changed from using IsValidLowLevelFast() to IsValidLowLevel() to determine if objects and functions are still usable.
* first pass at removing RBEventSubsystem
    * took my time and updated all affected C++ and Blueprints., replacing usage of RB events with UE4's delegates.
    Hope it's worth it :|
* first pass at adding Last Man Standing game mode
    * Will be in v1030

* updated AGBGameMode::DiscardPawn()
    * Moved un-possess call until after dealing with character so that anything bound to character died or similar that may require a valid controller and/or playerstate can still do so.
    * Added comment explaining this.
* updated GBItem
    * RemovedFromCharacter() will call OnBeingUnequipped() without calling IsEquipped() if it detects that the item is attached to a hand socket of some kind.
    * updated IsEquipped() to determine if it is equipped based on where its base item (base item = item attached directly to character) is attached.
    * removed bIsEquipped variable.
* updated GBFirearm
    * added variable to track current looping gunshot, if any.
    * updated OnBeingUnequipped() to call UAkGameplayStatics::ExecuteActionOnEvent() on the current looping gunshot with a 'break' event type instead of just killing all sounds.
    * commented out logic in OnRemovedFromCharacter_Implementation() - was copy of OnBeingUnequipped() anyway
* moved lighting scenario visibility handing from GBGameState & GBReadyRoomStreamer into GBPlayerController
    * updated all affected C++ and Blueprints
    * fires off a timer, so if called multiple times in quick succession it will only fire once after the last call.
    * used Paintball test bed for lighting changes above, so split out geo from TE-Paintball to _Geo and created _Day/_Night_Scenario maps.
* added AkFootstepComp to GBCharacter for use with foot step sounds.
* updated BP_Footstep_Master to use AkFootstepComp off GBCharacter for Wwise based footsteps
* replaced BarrelSpatialSoundActor on GBFirearm with a AkGunshotComp
    * updated affected C++ and Blueprints
* updated quick admin menu 
    * changed to use correct visibility
    * checks admin status and commands as required.
* updated BP_Firearm_Master to prevent log spam on dedicated server about missing GunshotComp
* updated GBGameState to add missing UFUNCTION() for OnRep_LightingScenarioTag().
* updated GBVoipManager to make the 'outer' GBPlayerController the owner of any spawned audio components
* added debug to BP_AnimNotify_AkEventCustom to report animation that is missing an Ak event.
* updated GBCharacter to ensure AkFootstepComp calls SetUseSpatialAudio(true).
* updated BP_Footstep_Master to remove SetUseSpatialAudio(false) call for local viewer.
* updated GBFirearm to ensure AkGunshotComp calls SetUseSpatialAudio(true).
* updated AM_Throw_Grenade to use BP_AnimNotify_AkEventCustom instead of AnimNotify_AkEvent to prevent log spam.
* updated TH-UserArena_Two
    * fixed bad AI spawn
    * fixed cover point debug being displayed
* updated BP_LastManStanding, BP_TerroristHunt & BP_Defend to use the same style InternalReadyUpCheck() as BP_TeamElimination
    * in either WaitingForReady or ReadyCountDown the round will start if the number of people that can enter play is equal to the number of people on the server.
* updated GBCharacter
    * split up Equipped & PrevEquipped arrays into EquippedLeft/Right & PrevEquippedLeft/Right and updated affected C++.
    * created UpdatedEquippedLeft() & UpdatedEquippedRight() to handle EquippedLeft/Right separately.
    * updated SetEquipped() to remove Item == EquippedLeft/Right check to prevent replicated values stopping UpdateEquippedLeft/Right being called.
        * should fix collision proxy not being setup correctly online.
* updated GBPlayerController 
    * added TimerHandle_AutoSwitch to use with SetSwitchGrenadeCheck() instead of using a dummy timer handle.
    * created ClearAutoSwitchTimer() to be able to cancel said timer.
        * updated GBCharacter::SwitchItems() to call this.
    * updated OnGrenadeThrowEnd() to return early if character is already switching items.
* updated BP_SDASS_Martial & BP_Suppressor_Master to use AkGunshotComp instead of BarrelSpatialSoundActor.

* added call to UpdateSpatialAudioVolume() AGBFirearm::OnBeingEquipped() to ensure firing sound has the correct spatial tag.
* adjusted AKFootstepComp relative location slightly to prevent occlusion
* updated BP_Footstep_Master to check for IsRunning() and IsSprinting() when determining if the louder footstep should be played.
* created GBVOIPAudioComponent based off AkAudioInputComponent
* updated GBVOIPManager to use GBVOIPAudioComponent instead of UE4's procedural audio comp.

* updated GBVOIPManager
    * changed VOIP audio component owner from local player controller to senders player state.
    * re-enabled VOIPType check that sets spatial audio if local and calls SetSwitch(VOIP, Global/Radio/Local) based on type.
* updated logic related to entering the play area or ready room.
      * Game mode will begin the process before calling a client RPC begin updating the lighting scenario, change the players RR status etc, 
    which uses a server RPC to let the game mode know when to finish to process.
        e.g. GBGameMode::EnterPlayArea() > GBPlayerController::ClientEnterPlayArea() > GBPlayerController::ServerEnterPlayArea() > GBGameMode::FinishEnteringPlayArea().
    * uses transition screen fade in/out as required, removing the sudden jarring from changing locations and helping to hide the lighting scenario change.

* added SampleRate as a variable on GBVOIPAudioComponent
* updated GBVOIIPManager
    * changed default DesiredSampleRate to 44100
    * made sure new GBVOIPAudioComponent has its SampleRate set based on DesiredSampleRate.
* updated WBP_Transition
    * reconnected heading to RR message when mission summary will be appearing
    * moved pre-round count down message from BP_GameState to appear when view fades back in.

* changed bUseSeamlessTravel to false by default in GBGameMode
* added EReadyRoomType enumerator to GBGameState to ensure server & client are looking for the same things.
* updated AGBPlayerController::UpdateLightingScenario()
    * added more logging.
    * waits if lighting scenario tag or RR type hasn't been received from server.
    * added more logging.
    * waits if it can't find a RR streamer and its supposed to have one.
    * logging for days!
* updated IsFocusable value on various WBP_X that are used as fullscreen widgets

* added Widget->IsInViewport() check to UpdateFullScreenMenuFocus() to make it skip widgets that are valid but have been removed from the viewport
* updated BP_GameState to call RemoveFullscreenWidget() on the player controller for any WBP_DeathOverlay before removing it from its parent.
* updated WBP_DeathOverlay to remove Destruct() event - pointless
* updated WBP_DeathOptions to call RemoveFullscreenWidget() on the player controller for its parent WBP_DeathOverlay before removing it from its parent.
* cried a little, went to bed.

* updated GBVOIPManager
    * changed call to associated event to only happen when voice type changes/voice is first received.
    * added Stop() call to VOIP input comp when when voice type changes
    * changed default value of NumBytesPerSample from 4 to 2.
    * removed stubs.

* updated GBVOIPManager
    * added asyn loading of AK events
    * added PostEvent() for radio start and radio end events.
    * cleaned out old/unused code
* updated various BP/WBP's to make sure Add/Remove full screen widget is being called where appropriate.
* updated GBPlayerControllerBase
    * added parent check in AddFullscreenWidget() to prevent trying to make already parented widget a fullscreen widget.
    * added IsInViewport() warning to void UpdateFullScreenMenuFocus() rather than simply blocking a widget from working.
    * created exec debug ListFullScreenWidgets() for use in quickly debugging problem fullscreen widgets
* removed lighting scenario visibility stubs from GBPlayerController - no more log spam :)
* removed TOPMOUNT_RMR from sight type list in firearm customisation if its a sidearm (no RMR support for sidearms currently enabled)

* updated T_DefaultLoadingScreenBackground to be a high res 4k screenshot of current front end menu
* improved blending from WBP_LoadingScreen to view when going back to front end menu.

* updated GBGameInstance
    * instead of using GEngine->GameViewport->AddViewportWidgetContent(LoadingScreenSlateWidget->AsShared(), 9999); am now using LoadingScreenUserWidget->AddToViewport(9999);
    Essentially the same thing - they both end up calling AddViewportWidgetContent() :|
    * renamed RemoveLoadingScreenFromViewport() to HideLoadingScreen().
    * removed LoadingScreenSlateWidget member variable
    * updated affected Blueprints.
* removed SetPawn() requirement before UpdateLightingScenario() is called in GBPlayerController.

* created GBPlayerController::Server/ClientSyncLightingScenarios()
    * called by ReivedPlayer on non-dedicated server
    * will loop on server until GBPlayerState is valid.
    * will loop back to server on client if GBPlayerState is not valid.
    * calls UpdateLightingScenario() on a timer on the client once everything is valid.
* updated GBPlayerController::ServerSyncLightingScenarios() to use GBGameMode to determine ready room status rather than playerstate.
* replaced GBPlayerState bInReadyRoom bool with a EReadyRoomStatus enum

* adding Client/ServerInitialSync() usage to prevent trying to sent player anywhere until they have all the info the client needs to actually set the correct lighting scenario.
* replaced up usage of IsInReadyRoom() and SetInReady() with GetReadyRoomStatus() & SetReadyRoomStatus()
    * besides making things consistent, also fixed training map loading screens offline :)
* rigged up death overlay to be removed if a player controllers state changes and they are now alive

* updated chat overlay
    * corrected scaling/spacing of emojis
    * finished adding popup emoji menu
* added SwitchingItems gameplay tag check for local controller in GBCharacter::SwitchItems()
* removed DV-747 from AlwaysCookMaps list.
* removed A_RandomSimulatedFiring_Cue and replaced its usage in TR-ShootingRange_Simulation
* re-saved ShootingRange_Geo to fix bad references to old/missing foliage in foliage actor.

* rearranged logic and added check to ensure that the RateOfFire RTPC value is always set BEFORE posting the Ak Audio Event for looping gunfire.
* slightly enlarged size of interaction box that surrounds firearms to make them much easier to target and interact with.
* added version & build number to bug reports

* implemented ProcessAutoLogin() in GBGameSession to return 'false' to fix dedicated servers without Steam from not starting correctly.
* added support for web-based server info board
     * if the ServerMOTD text begins with http or www, it'll use a web browser widget and load the URL
* added server info boards to Paintball_Geo

Share this Post: