BUILD UPDATE #016: Double Tap

Mondays, huh?

Well, at least we got Build Update #016 with everything you need to know about v1028 of GROUND BRANCH. This is a big one, so sit back and read on for all the highlights and deets. As usual, the raw change log is at the end of the post, right after the version info.

Remember you can stay in touch with us via our Discord, the Steam® Community Hub, Reddit, Twitter, Instagram and Facebook!

› 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 (copy and paste the underlined path onto your File Explorer address bar and hit Enter to go to folder). For those who can afford it, a full reinstall isn’t a bad idea either and may fix missing features introduced in this version, as well as issues with controls, loadouts, assets and settings.

› Update your server!

All dedicated servers must be updated to work with the current version.

Build highlights

Gameplay

New (WIP) damage model

This build brings the first iteration—Phase 1, if you will—of the new damage model that generally ramps up lethality. Kris explains it better than the rest of us ever could, so let’s quote him:

[Initially] We added a method that took penetration, internal organs, bleeding and such into account. Unfortunately, it was pretty horrible due to lack of feedback, i.e. it lacked decent reaction animations, bleeding effect, on-screen “messages” for the player.

Quickly replaced it with a temporary measure that bases the damage on the kinetic energy of a round, scaled by how much it penetrates and in what location.

This value is not the correct way to do damage from a bullet, but it ended up with values for the handgun that were similar—2 to 3 shots to the chest—while making everything else more powerful, e.g. one-shots with a decently placed 7.62 mm, shotguns ruining your day etc.

So while the approach we arrived at is not final by any means, the one we’re aiming at for the future requires visual feedback in order to work. Nonetheless, this new stand-in damage model beats what we had before, which was essentially a 3-body-shots or 1-headshot affair with no caliber differentiation.

It is important to note that armor has not yet been implemented, so the higher lethality brought on by this new damage model will be partly offset by working armor somewhere down the road.
Reticle brightness adjustment

You can now increase and decrease the brightness of most illuminated reticles. Use [Home]/[End] respectively to increase/decrease brightness. These key binds can be changed under Settings › Controls; they’re listed at the bottom of the command list, under “Other”.

Known issues
  • Brightness settings aren’t optic-specific and are set to 10 levels that may be inconsistent across different sights.
  • Depending on lighting conditions, the lowest brightness setting on some optics may display a dark dot rather than an illuminated one.
N is for Night Vision

We’ve moved the NVG toggle from the Equipments Menu ([4] key) to the [N] key. You can change that bind to something else under Settings › Controls.

Fire to Ready

Now when you press Fire (default [LMB]) while in High Ready or Low Ready, your primary weapon position will be changed to Ready (shouldered, sights not engaged; aka the “point-shooting” position). This makes it easier for some players to change to Ready, as previously you had to gauge how much you scrolled up or down from an off-target weapon position. It also prevents the silly firing into the air/ground allowed by the previous control scheme. Nothing has changed otherwise: scrolling up once from Low Ready (or down from High Ready) will still bring your weapon to Ready.

Holding the Fire key while in High/Low Ready will ready the weapon and start firing as soon as the weapon and view are aligned.
Auto-Close Ready for Sidearms

Handgun obstructed while aiming down the sights? Your character will now automatically switch to the Close Ready position (pistol held close to the chest and pointed forward) so you can still fire, making sidearms more useful in very close quarters.

Door interaction
Incremental opening

Incremental door opening is now done by holding Use/Interact (default [F]) and scrolling up/down, so you can now change weapon positions without accidentally interacting with that stupid door you’re getting ready to crack open.

Hell, let’s recap that for good measure:

INCREMENTAL DOOR OPENING

› HOLD Use/Interact (default [F]) + [Mouse Wheel]
Pushing doors

Walking into doors that aren’t fully shut will swing them open/closed.

Pick up that ammo

You can now take the magazine from a dropped weapon by looking at it and holding Use/Interact (default [F]). So tap key to pick up weapon, hold key to pick up magazine. Easy. Intuitive.

Re-equip loadout

When facing a Ready Room locker or training area workbench, hold Use/Interact (default [F]) to re-equip your loadout and restock your ammo and grenades.

Audio

New suppressed sounds

Suppressed gunshot sound effects for the M416Ds, M4A1s, MP7s, MP5s, AK-74M and MK 14 Mod 2 EBR were updated. New suppressed weapon tails were also added for assault rifles, submachine guns/PDWs and sniper rifles/DMRs. Be sure to try them out!

Bullet crack

Supersonic rounds now produce a characteristic “crack” sound when flying past you. Scary, but what did you expect in a firefight?

Content

NEW SIGHT: Specter DR 1x/4x

We have teased the model on Instagram way back in January, and now the Specter DR 1x/4x (the DR is for Dual Role) is finally here with variable magnification (you can switch between 1x and 4x on the fly), as well as a Picatinny rail mount on top for secondary red dots. The center reticle dot can also be illuminated and has adjustable brightness.

The Specter DR 1x/4x, seen here with the new RMR model mounted on the top rail

Here’s the sight picture:

Left: 1x and no dot illumination; right: 4x and max dot brightness

With the quick zoom switch and illuminated dot that assists target acquisition—plus a top rail to boost—the Specter makes for an incredibly versatile sight. We recommend mounting it close to the eye for better reticle clarity and optimal field of view.

You can alternate between 1x and 4x with [Page Up] and [Page Down]. Increase dot brightness with [Home] and decrease it with [End]. (These key binds can be changed under Settings › Controls. They're at the bottom of the command list. These controls are valid for every sight with similar functionalities.)
NEW SIGHT: AccuPower 1–8x

Our first true LPVO (Low-Power Variable Optic) is the Trijicon® AccuPower 1–8x. It offers 1x (no magnification) all the way to 8x.

While the real thing offers “fluid” zoom (i.e. you can analogically set it to any magnification between 1x and 8x), our current version offers 1x, 2x, 3x, 4x, 5x, 6x, 7x and 8x in steps—at least until we figure out a more faithful approach.

The reticle’s red sections (a center cross and 4 semi-circumferences) can be illuminated with 10 brightness settings. Let’s take a look at the sight picture:

Left: 1x with max brightness; right: 8x with illumination turned off

The 1–8x variable magnification makes the AccuPower more versatile and capable of longer ranges than the Specter, but all the different zoom levels you’re able to cycle through also make it less agile than the DR’s quick 1x/4x switch. To offset that, however, you can mount an RMR (ACOG) on the front scope ring’s integrated RMR mount.

Hint: Try binding the increase/decrease magnification commands to [Mouse Wheel Up] and [Mouse Wheel Down] respectively, making sure you add [Alt] as a modifier key for both. That will make [Alt] + [Mouse Wheel] your go-to bind for zooming in/out with all your variable power optics.
Known issues
  • On first use, the AccuPower reticles may appear at a low resolution and require a second or two to load correctly. Once you have cycled through all zoom levels, they will remain at full resolution.
  • At higher brightness settings, the illuminated sections of the reticle may bleed/glow through.
  • The RMR (ACOG) doesn’t visually touch/connect with the scope ring mount and will appear to float a few millimeters from it.
NEW SIGHT: AN/PVS-22 UNS

Sick of trying to shoot through a scope in a night map and having your NVG’s fixed focal range blur out your entire sight picture? We got you covered with the AN/PVS-22 UNS (Universal Night Sight).

See the mystery tube in front of the PM II scope?

If mounted right in front of your preferred magnified sight, this “clip-on” night vision optic essentially turns it into a night vision scope. Pretty damn sweet, right? It is a rather large optic, however, so make sure you have the rail space for it and your magnified sight too.

Here’s the PVS-22 in action:

Prowlaz quickly demos the AN/PVS-22 in co-op Terrorist Hunt (while sounding clearly aroused, which we can’t blame him for)

Notes
  • The PVS-22 will not work with non-magnifying optics like red dot and holo sights. This is intended and based on how the optic works in real life.
  • The PVS-22 is not a standalone sight. It is only usable in conjunction with a magnifying sight.
In real life, clip-on night vision optics are typically used in sniper and designated marksman roles due to their size and weight. It is likely to follow suit in GROUND BRANCH when stamina and other such mechanics are implemented.
Known issues

IR laser beams (as emitted by the AN/PEQ-15) and the Marker Strobe‘s IR flashing light aren’t visible through the PVS-22 when they should. We’ll have to figure out how to mask out the effect as it’s currently a full-screen “rule” that makes it visible through NVGs.

NEW SIGHT: ACOG 4×32 with RMR Mount

We’ve replaced the old ACOG 4×32 model with a new one that can fit the new RMR (ACOG) optic on top. Sweet.

NEW SIGHT: MRO

The Trijicon® MRO (Miniature Rifle Optic) is a small red dot sight with a large FOV for quick target acquisition.

NEW SIGHT: SRS

The SRS (Sealed Reflex Sight) is another red dot sight by Trijicon®. Go check it out.

NEW PLATFORM: Battle Belt

The Battle Belt can now be selected in the Platform slot of the Operator Customization screen. Don’t worry: it will be made an add-on to the actual vest platforms in the near future, so you won’t have to pick one or the other. The Battle Belt can hold up to 7 item pouches.

Because we have no functional armor yet, the Battle Belt has no real disadvantages in relation to vests other than pouch capacity. But we think it might be a helpful hostage/VIP asset to you role-players out there experimenting with custom game modes, plus everyone gets to look a little more casual on the range.

Other gear updates
  • The RMR mini red dot sight has a new model and is available in 3 versions: RMR (standard Picatinny mount), RMR (ACOG) (flat mount for mounting on the ACOG 4×32 and AccuPower 1–8x) and RMR (Raised) (raised Picatinny mount for AR-15-type rifles). At the moment, they work interchangeably. We’ll hotfix it so each version only fits where it’s supposed to.
  • The MK 14 Mod 2 EBR has received a small accessory rail under the handguard especially for foregrips.

UI

On-screen hints

In addition to the loading screen tips—which we’ve added to—pop-ups now show hints for basic gameplay functionalities that players are often left wondering about in GB.

Hints are enabled by default to assist new players. To disable them, look under Settings › Gameplay › Other › Enable Hints and select "No" from the drop-down list.
Usage prompts and highlights

Usage prompts and highlights have a new look, and both elements can be toggled on/off. Usage highlights can be edited for size and color as well. Usage UI customization settings are under Settings › Gameplay › Other.

Quick reminder that you can now take magazines from dropped weapons by holding the Use/Interact key (default [F]).
Grenade arc

The HUD arc showing the grenade’s trajectory has been altered and can now be customized under Settings › Gameplay › Firearm. You can pick individual color and alpha (transparency) values for both the arc itself and the predicted impact point marker.

To make either the arc or the impact point marker invisible, simply turn the alpha value to 0 (zero).
Shortcut to edit your weapon/vest/headgear

Editing your current weapon, vest or headgear build should be a little easier with this update. Once you click your current selection, the list should automatically open the relevant category and scroll down to the correct section of your item on the list. Much better.

Miscellaneous

New weapon attachment restrictions

Some attachments have received limitations in order to prevent issues with animations, performance and other underlying systems:

Foregrip placement

Foregrips can now only be placed down to a certain position on bottom accessory rails. This was done to prevent the wobbly “spaghetti arm” effect that resulted from the character’s support arm being stretched out too far, as well as the issue where he would grip an invisible foregrip placed out of reach. The restriction ensures your character will always grip properly. We may adjust or remove this limitation in the future as we improve character poses and animations.

Sight placement

We have limited how far back you are allowed to mount certain sights on certain weapons’ top accessory rails. This restriction should prevent sights from clipping through the character’s eyes/camera. As with foregrips, this may be changed as new poses, animations and systems make their way into the game.

No more offset scopes

You can no longer mount a magnified optic onto an offset rail. A lot of players were reporting sight pictures being tilted when aiming through offset scopes and, because scopes aren’t meant to be mounted offset (and wouldn’t function correctly in such a configuration), we simply got rid of the ability to do that. See, you ain’t gotta fix it if you throw it away. *wink*

Other changes, fixes and additions
  • Multiple crash and server issues were purged.
  • Mouse sensitivity can now have a separate value for each magnification level from 2x to 8x.
  • First pass on Terrorist Hunt mode for the User Generated Arena map.
  • Fixed flashbangs double-dipping local player. Looking away should also reduce the effect by up to 25%.
  • Red dots have generally been increased in size and adjusted for better visibility.
  • The MK 4 10×40 scope has been removed due to its model being too old. An updated version will be added at some point.
  • Fixed burst fire mode getting “stuck” when clicking rapidly.
  • 747 gate insertion has been reworked to reduce bottleneck.
  • Some general map cleanup—especially on Tanker Ship and 747.
  • Tanker Ship‘s bridge now has glass on the windows. Yeah, they’re breakable.
  • AKs should now have the fire selector in the correct position.
  • … and a whole lot more you can check out in the raw change log below.

We hope you enjoy this update! Make sure to let us know what you think in the comments below or in any of our official channels (links at the beginning of this post!). Feedback is very appreciated.

As always, thank you all so, so much for your continued support of this passion project. It means a lot to us.

See you on the next one!

Change log

Build version: 1028

Client

Steam Build ID: 4098294
Size: 1.7 GB

Dedicated server

Steam Build ID: 4098305
Size: 68 MB

FIXES

* FIXED metal hit effect smoke showing polygon edges
* FIXED collision blocking pipe entrance to Depot compound
* FIXED colliding with tarp in Storage Facility
* FIXED ACOG 6x48 scale 
* FIXED possible infinite loop in UGBGameplayStatics::ResetActors() if resetting an actor adds another actor to the actor iterator
* FIXED mesh references in materials in Props/PhysMatTesting.
* FIXED issues with AlaskaCedar tree that was causing some collision and LOD problems
* FIXED improper PhysicalMaterial setting for Acacia billboard material
* FIXED S_MERGED_UKH_WalkwaySupport_A4 blocking bullets
* FIXED Power Station "death door" and its friends.
* FIXED incorrect render texture scale on optical sight components
* FIXED incorrect AK safety positions on new AK74's
* FIXED not calling UpdateSightComponent() on owning client.
* FIXED GBFrontSightPostComponent not showing up as placeable component in Blueprints
* FIXED PiP setup for 1P78 Kashtan scope 
* FIXED possible nullptr in GBBulletMovementComponent::HandleImpact()
* FIXED wrong texture on rear Land Rover door window
* FIXED log spawn about organ damage type not init'ing damage variable properly.
* FIXED crash caused by calling ShowDebug Game on client
* FIXED swapping back to previous weapon after throwing a grenade 
* FIXED not being able to see grenade arc when adjusting it before being ready to throw
* FIXED being able to see through the start of the grenade arc
* FIXED collision on stairs in User Arena map
* FIXED incorrect setting on ElectronicsShelter asset material that didn't render reflections correctly
* FIXED incorrect collision on Ural truck when no back section present
* FIXED missing InstancedMesh flag not being set in AlaskaCedar material
* FIXED target skin replication
* FIXED buzzer going off in training maps with randomised targets if you join during/after run
* FIXED stun grenade double dipping local player
* FIXED looking away from stun source NOT reducing stun affect
    * will now be reduced up to 25% by looking away
* FIXED red dot and holo sights not showing up on bright backgrounds
    * also reduces shimmer when moving on holo sights
* FIXED Guns with no default sights attached
* FIXED light in RR disappearing when moving away from it
* FIXED can't shoot through wire fences
* FIXED doorframe gap in RR
* FIXED battle belt showing wrong color names
* FIXED mirrored texture on747 cargo container
* FIXED being able to place optical sights on offset rails
* FIXED burst mode sticking when clicking rapidly
* FIXED OKP-7 red and green reticle after changing colors
* FIXED getting stuck between pipes on tanker ship
* FIXED getting out of bounds near Ridgeline West in Storage Facility
* FIXED tarps blocking movement on containers outside of tunnel and on docks
* FIXED terrain collision issue near ladder on D in SmallTown
    * grenades, bullets and dead bodies will no longer fall through there.
* FIXED Tanker Ship bridge has no windows
* FIXED low pipes on Tanker Ship deck stoping AI from navigating
* FIXED inverted OKP-7 reticle
* FIXED missing collision and reversed seat meshes on left side of 747
* FIXED you can fall through the front staircase on the 747 map
* FIXED texture "swimming" effect on broken fence section of Power Station
* FIXED section of Power Station  fence that could not be shot thru
* FIXED M68 CCO sight picture to small (Good as its going to get)
* FIXED IR designator beam to dark after night vision effect changes
* FIXED being able to place M233 12x too far back
* FIXED being able to place LT608 riser too far back
* FIXED being able to place foregrips too far forward.
* FIXED radio/voice buttons spamming when used in character editor
    * if character editor is in focus, VOIP and chat should work
* FIXED incorrect glass density value to glass PhysMat
* FIXED sight adjust sounds playing when sight hasn't been adjusted at all
* FIXED AGBPlayerController::ReapplyCharLoadout() not working on server
* FIXED colour picker not starting at initial colour
* FIXED weird bullet penetration behaviour against thin single components
* FIXED incorrect materials on various assets used in City
* FIXED BP_Door_Rollup - now operable and no longer sparks when shot
* FIXED crashes/bugs with back button widget by removing it entirely
    * yay, manually re-creating UMG layouts and Blueprint logic... not
* FIXED AccuPower reticle not scaling with magnification level
* FIXED out of index crash related to seamless traveling between maps
    * Gah! This one has been bothering me for a while! Die fucker!
* FIXED crash in UGBVOIPManager::TickVOIPData() caused by null player state.
* FIXED head not casting shadow when hidden (I hope)
* FIXED grenade distance not syncing to server
* FIXED issue with LMG sight rail
* FIXED default magnification level being 1 instead of 0 in C++
* FIXED being able to place optics with deep shrouds around there lenses too far back
* FIXED not being able to change weapon position while aiming at a swinging door
* FIXED being able to use binoculars when night vision goggles are in use
* FIXED default grenade arc and impact colours being too translucent
* FIXED controller movement keys appearing in settings menu when not using controller
    * removed controller movement default binds until you select that as an option from the defaults drop down.
* FIXED missing sensitivity index array in various optics - they should obey custom sensitivity values now.


CONTENT

* Cleaned up rail placement settings on ACOGs
* First pass at adding Terrorist Hunt game type to User Arena map
* OpticalSightComponent
    * Removed debug
    * Cleared out unneeded nodes dealing with overriding Capture Source stuff
* Added small rail to MK 14 EBR rifle for vertical grips
* M_OpticalSight_Master material
    * Cleaned up some unneeded nodes
    * Set lens distortion as a parameter to control from MICs. Default is 0
* Changed customization menu background color to value that fits game's color scheme better 
* Added new Trijicon sights
    * ACOG TA31 – to replace old 4x32
    * MRO
    * RMR – Regular, Flat (for ACOG) and Raised
    * SRS
    * AccuPower 1–8x

* Added in PVS-22 night vision optic
    * work in progress (doesn't currently show IR lasers or strobes)
    * works with most scopes
* New battle belt platform 
* Adjusted placement of dump pouch to fit better
* Moved default primary pistol ammo pouches from left thigh to be attached to holster ( There wasn't an actual thigh rig for them to be attached to)
* Adjusted holster to better fit when Battle Belt platform is equipped
* Fine tuned the character pose in the customization menu to the arms don't clip pouches as much
* Added adjustment for reticle size in non magnified optics
    * adjusted all red dots to be roughly 2x size (Not user controllable)
* Cleaned up incorrect LOD materials for Trijicon AccuPower scope mount
* Condensed and consolidated optic reticle materials down to 2 common master materials
* Made optic glass materials into common single material with multiple settings for unique instances
* removed BP_Reflex_Small - redundant with new Trijicon sights
* Cleaned up reticle material setups for EXPS3 and OKP-7 sights
* Removed secondary peep sight on Specter DR sight
* Added in proper reticle for Trijicon AccuPower scope
* 747 map
    * Reworked airport entry insertion area to provide more option of entry and be less of a bottleneck
* Removed MK 4 10x40 scope as it was a very old model (A new version will return at some point)
* Iteration on night vision PostProcess
    * Attempting to standardize the look across all maps
    * Still more work to be done
* Added default grenade arc colors to DefaultPlayerSettings.ini with a neutral grey semi transparent default setting
* Adjustments to night time lighting on Aircraft Takedown and User Arena to bring in line with other night maps
* changed default grenade arc impact indication colour to include some red.
* Clamped lowest reticle brightness setting to still have color and not turn black
* Removed older ACOG 4x as it was redundant with newer model
* Setup MP5N to work with sight rail as an attachment(Not fixed on the weapon itself) to be consistent with how other MP5s work in game
* Added breakable windows to 2nd floor of building in center of City map
    * Testing to see if it effects performance. If not will then add to rest of the windows there
* Started to add more details to buildings in center of City map
* Finished off texturing area in lower level of 747 and adjusted some lighting
* Flattened out lens on a few scopes to get rid of unwanted fisheye effect
    * M233 12x
    * Specter DR
* Added a UV scale parameter to M_OpticalSight_Master for future use
* Cleaned up AccuPower reticle texture
* New reticle texture for SpecterDR
* Reduced diameter or grenade arc mesh and tweaked material settings
* Made illuminated part of magnified optic reticles visible in bright areas
* Reduced default optic brightness from level 5 to 3
* Adjusted reticle illumination color on AccuPower and ACOGs to be slightly less red for better readability
* Updated display names of several attachments for consistency


AUDIO

* Added scope magnification switch sound effect
* Added reticle brightness switch sound effect
* Added weapon transition sound effects
* Added MPX, AKS-74U, FAL, M16A4, M4A1 and M416D unsuppressed gunshots
* Improved Mk18, AK-74M, MP5N, MP7 and Mk48 unsuppressed gunshots
* Lowered volume of other unsuppressed gunshots to match the new values
* Added new suppressed gunshots for M416D, M4A1, MP7, MP5, AK-74M and MK 14 EBR
* Added new suppressed weapon tails for assault rifles, submachine guns and sniper rifles
* Removed speed of sound parameter (needs polishing)
* Changed resupply sound effect
* Changed InventoryBar sound effects
* Added sonic crack sound effects


CODE

* updated BP_OpticalSightComponent
    * added bindings for OnEngaged/OnRetired
    * added debug to show RTT / ticking.

* updated GBBulletMovementComponent
    * updated HandleImpact() to contain the entire penetration loop, regardless of impact type (BSP, static mesh or skeletal mesh)
    * updated TickComponent() to match UE4.22.x ProjectileMovementComponent, but with debug bullet support.
    * removed HandlePenetration()
* temp disabled AGBBulletProjectile::CharacterImpact()
* reduced lifespan of BP_BulletImpact_Master
* moved bullet warning trigger from GBCharacter to each actual bullet and updated affected C++ classes
* disabled bleeding/wounds due to lack of feedback
* removed organs from BP_Character since they are not being used.
* made bullet damage be based on depth penetrated / depth it can penetrate x 1/5 kinetic energy in damage
    * simple temp measure until we developer the feedback required to make bleeding/wounds work
* added VelocityMultiplier parameter to SpawnBullet() to adjust the speed.
* added VelocityMultiplier to BarrelComponent for use with SpawnBullet() changes.
    * updated BP_UMP45 to test it out
* removed BulletPenetration collision channel etc from DefaultEngine.ini - no longer needed.

* reverted DefaultEngine.ini to bring bullet penetration overlap back (oops)
* changed bullet penetration back to using bullet penetration overlap - which I'd done for a reason in the first place.
* updated character bullet verification
* tweaked bullet penetration testing against surfaces it should ignore and edge cases with overlapping static meshes.
* cleaned up BP_Door_Swinging to correct issue with destroyed core mesh
* added the ability to change reticle brightness level, reticle colour indexes and sight magnification levels
   * by default, bound to Del, Home/End and PageUp/PageDown
* updated firearm to automatically become ready/engaged if you try to fire when it is off-target
* created BP_NonOpticalSightComponent for use with red dot or similar that requires brightness changes, but doesn't use a scene capture component.
* added Default Reticle Brightness Level to player settings
* added support for reticle colour cycling
* updated BP_TerroristHunt to change Suicide call to OptOut.
* added CycleReticleColour to control binding UI.
* added BrightnessLevelMultiplier to BP_OpticalSightComponent & BP_NonOpticalSightComponent
    * combines with BrightnessLevel to produce final value in material instance.
* ensured DefaultReticleBrightnessLevel was applied to firearm
* deleted unused C++ classes GBInventorySettings & GBPlacedItem
* enabled media player related plugins
* created ShowHint() method on GBPlayerControllerBase.
    * created related BP_Hint_Test etc to try with it.
* updated sight component and firearm to allow non-active sight to update the current active sight
* updated BP_AN_PVS22 to use new code to allow it to update the active sight components post processing etc
    tl:dr - night vision on existing magnified optics placed BEHIND the PVS22
* added icon for BP_Shotgun_Rearsight
* added MinSightRelativeX to GBFirearm to control how far back you can place sights on each firearm.
    * updated affected C++ and Blueprints
* updated GBGameState::AllowCheats() to not require a playstate.
* updated GBHud::ShowDebug() to return if cheats are not enabled
* updated WBP_InGameMenuManager to hide Debug button if cheats are not enabled.
* updated RBEventManager
    * changed timer delegates to use SetTimerForNextTick() instead of just SetTimer().
    * removed usage of DelayedModificationTimerHandles array.
    * added IsValid(this) check to timer delegate used to call InternalAddListener.
    * updated InternalRemoveListener() to change IsValid() checks to (Object != null) && (Object->IsValidLowLevelFaster()) in attempt to fix odd crash relating to IsValid() failing.
        Seems that the objects index in GUObjectArray is invalid, which IsValid() doesn't check for - hence, crash.
* updated GBGameSession & GBGameMode to change the way it converts the UniqueId to a string value.
    Old : const FString UniqueIdString = UniqueId.ToString();
    New : const FString UniqueIdString = (UniqueId.IsValid() && UniqueId->IsValid()) ? UniqueId->ToString() : TEXT("");
    Hopefully this change will prevent any crash related the unique ids shared pointer.
* updated AGBPlayerState::IsLocal() 
    * added GetOwner() != nullptr check 
    * changed casting target class from AGBPlayerController to APlayerController.
* added Rama's colour picker UMG widget
* added support for customising the grenade arc and grenade impact indicator colours.
* updated BP_Grenade_Master to not auto-hide arc when adjusting throw distance while aiming
* updated GBSightComponent to wait to set default zero when firearm tells them to zero.
* updated GBRailComponent & GBRailAttachment
    * removed rail type from component and made it auto-determine "face type" by the its relative rotation.
    * added allowed on sight only rail variable.
    * added allowed on offset rail variable.
    * updated all affected C++ and Blueprints (*ugh*)
* combined MP5N & MP5SD5 rail adapters into one generic MP5 rail adapter
* changed log and screenshot submission in bug reporter to 'No'.
    * getting a lot of bugs with attached logs/screenshots that add or show nothing to do with the bug etc
* updated AGBPlayerController::ClientOnCharLoadoutApplied_Implementation() to ensure it doesn't try to equip a primary firearm if you're already in the middle of switching items
* updated AGBFirearm::UseMainHandPressed_Implementation()
    * rifles will become ready if not obstructed and off-target
    * handguns will become ready if obstructed or off-target
    NOTE: handguns much more useful up close and personal, as they will auto adjust so you can keep shooting.
* updated UGBRailComponent::GetRailFace() to change how rail face value was determined
* updated UWorks based on old code to support QueryPort command line option
* changed incremental door opening from Next/Prev Pos to Interact + Next/Prev Pos
    * updated associated widgets
    * holding F and using Next/Prev pos no longer changes weapon position
* updated BP_Firearm_Master to use semi-auto firing sound during burst fire instead of looping full-auto sound.
* added option to remove mag from dropped firearm by Tapping F
    * changed firearm pick from F to Hold F
* changed customise operator prompt key from 'click' to F
    * tap to customise
    * hold to reapply
* updated GBVOIPManager
    * updated location used by local player to fall in line with other players.
    * ensured location of audio component location is offset if the player is not currently viewing their character
* ensure AGBPlayerState::PlayerLocation variable is replicated to ALL clients instead of just the owner (dickhead)
* updated ReadyRoom to add a bullet blocker to preventing bullets leaving shooting range towards prep areas
* updated AGBPlayerController::AddCharLoadout() to call ReapplyCharLoadout() if trying to reapply current char loadout.
* updated bullet warn delegate to include bCanSnap if bullet is going fast enough
* changed grenade arc from showing when preparing to throw to only showing when use Next/Prev pos bindings.
    * if you start a throw with the arc visible, the arc will stay visible until grenade is thrown or throw is cancelled.
* made all pickup and usage prompts use the same style and placement
* second pass at hint system
    * moved from GBPlayerControllerBase to GBPlayerSettings & GBPlayerController
    * added Enable Hints option to Gameplay settings
    * created hints for sight usage, grenade arc, grenade cancellation and G33 usage
* updated WBP_Ladder_Prompt to bring it inline with other usage prompts
* updated BP_Door_Swinging to add some basic overlap checking to help prevent door clipping through characters and allow them to be pushed.
* Updated DefaultInput.ini to make Gamepad_LeftX/Y (thumb thingy) was bound to move forward/right.
* Added icons from Xbox controller back in, but under non-restricted folder name: XBone.
* Changed hard coded usage of left/right/mouse wheel when dealing with in-game widgets and inventory bar
    * use Main/Off Hand now doubles as left/right.
    * Next/Prev pos now doubles as mouse wheel
    Done to support using movement on the mouse buttons (freaks!) and improve controller support.
* Added IgnoreUseInput array to GBPlayerController to nicely control ignoring user input based on a reason, rather then relying on a +/- byte value syncing up.
    * updated affected Blueprints and C++.
* Updated WBP_Settings_Controls and related widgets
    * switched to using icons instead of text to show bindings, though text is added as a tool tip
    * hidden turn right/left & look up/down - making it hard to bind controllers.
    * added default controller bind support.
    * default button now shows drop down to pick mouse and keyboard defaults or controller defaults.
* Updated WBP_InventoryBar and related
    * cycling via Next/Prev position will now cycle to next category once it reaches the end/start of the current one
    Allows using Next/Prev position with controller a bit better.
   Still a shit method, but better then nothing :|
* Cleared TransitionMap entry - going by the code is not actually needed.
* Updated character editor
    * closes open item buttons if loadout is selected while they one is open.
    * if an item list has several categories, the category matching any currently equipped similar item is selected,
    e.g. you're using an MP5SD, so the SMG/PDW category is opened.
    * once a list is open, list will scroll to the section containing the same item type,
    e.g. You're using a a customized MP5SD, so the SMG category is opened and item list scrolls to the first MP5SD on the list.
   NOTE: Would like to go to the exact build, but that requires more work under the hood to record the name of each item build you choose.
   If this method isn't good enough, will see about getting loadouts to remember the exact item builds :|
* corrected bullet velocity for MP5SD5 and MP5SD6
* improved Use Main Hand switching firearm to Ready if not Ready
    * tap should always be to Ready
    * tap and hold should be to Ready AND Fire
* removed unused EPlayerFOV enum
    * updated affected C++ and Blueprints
* added sensitivity levels for 8 different levels of magnification
* third pass on hint system
    * added hints to the RR, as well as for reloading, magnification levels etc.
* removed floating input prompts
* made input prompts optional
* added usage highlight hint - a simple circular floating widget over the useable target
    * can be disabled
    * size and colour can be customised.
* moved all prompts to UI/Prompts directory
* cleaned up prompts slightly based on Scopey's input
* added hint for ladder climbing
* reimported fixed versions of AccuPower reticles using 
* updated AccuPower Blueprint to apply reticle texture after async load has finished.
* replaced original AccuPower reticle texture with new reticle x1 texture
* added missing keyboard key icons
* changed GB_INPUTSETTINGS_VERSION from 12 to 13 to force input ini reset
* changed AGBPlayerController::SpectatorToggleNightVision() into ToggleNightVision() and made it work for both spectator and normal NVG
    * updated all affected C++ and Blueprints.
    Had several bug reports where people kept seeing telling me night vision didn't work when they pressed "N", without realising that was the binding for SPECTATOR night vision.
* changed bCastHiddenShadow on the players head mesh to just always be 'true'.

Share this Post: