New Ground Branch build is ready!

September 19, 2016

The main push for this build has been stability, performance and overall user experience improvements. We have been doing a LOT of testing and enjoying every minute of it!


Build Version 1014

Build 150917


Approximate Update size: 2.5GB

Steam build Id: 1341829

Known Issues


Standalone Dedicated Server

A new Standalone Dedicated Server for Windows is ready and available as a Steam ‘Tool’. For now, we need to distribute license keys since Ground Branch is not public. The Dedicated Server is free and you do not need to own Ground Branch to use it. For now during testing, we are limiting the keys to 225 in total and you can get one here:

We plan to offer a linux version as well at some point as well.


Player kits being visible in the Ready Room

You can now see a player’s currently selected kit items and uniform selection in the ready rooms. This helps players see what other teammates are taking into a mission.


Grenades, Ladders and Doors oh my

Grenades now work properly in online sessions. Still need to tweak the damage model and there is some animation work to be done, but everything is now functional. Try out the frags, smokes and flashbangs!

Ladders and doors are still far from being complete, but they are now more user friendly and intuitive. Walk up to a ladder and hit R-Mouse button to ‘mount’ the ladder then use forward/backward controls to move up and down the ladder. 20160918213149_1

Doors have been updated to allow for both a quick open/close option and a more fluid, controlled method of entry. The latter method is controlled by hold the door handle and moving with the door to open or close it slowly. While slower, it is quieter and allows you to slowly peek in through the gap while keeping your weapon on target.


Player postures and weapon handling smoother (offset rail now works properly!)

Lots of tweaking has been done to the player movement animations and blending to make general movement smoother and more fluid.Animation work will be never ending throughout the Early Access period so much more to come in this area.

If you equip an offset rail, your weapon will now properly ‘cant’ to the side.


Pistol animations have been fixed/revised to allow for some more natural postures….. Low, Close Ready and Engage.


Basic tracers

Basic tracers have been added for testing to all weapons that use rifle rounds. Currently they will fire off every 5th round and the last 3 rounds of a magazine. We will be adding the ability for users to select the frequency of tracer rounds when selecting their kit, but for now things are hard coded. Please note that tracers can be hard to see if rounds are being fired short distances.

Map polish and optimizations

A lot of work has been done to make framerates more consistent and even throughout a map. Overall increases in framerate have been gained as well and there is still room for more improvement as development continues. Along with optimizing maps have also started to receive some polish for a more cohesive visual experience. As with optimizations, maps will continue to be polished as resources become available.


Coop Terrorist Hunt

The Coop Terrorist Hunt gamemode is now fully working and a ton of fun! We have been testing Coop TH a lot amongst ourselves as well as with community members and while the AI is still basic and dumb gameplay is addicting. It really brings back feelings of the old school tactical shooters.

The AI has received some tweaks as well to add basic patrolling and decision making. The next build should include basic reactions to incomign fire along with basic general usage of cover.

A user recorded video with a couple of developers.


We are starting to add some basic randomness to maps. To start, the Small Town map now has random covers on windows each time you start the map. We will be adding in more random items to all maps soon.


Fixes, fixes and more fixes

Lots of little (and big) things have been fixed so users should have a much more fluid and enjoyable overall experience when playing. Since we are a very small team with limited resources it can be tough to know how Ground Branch will run on various configurations and hardware. So please report bugs and issues as you come across them.

Loading Screen

Server name and message of the day was added to the map loading screen. 20160918204323_1


Work has been done on the in game VOIP system to to fix up both voice and radio systems. Voice (V key) now uses basic attenuation (no occlusion yet) to mimic lower volumes based on distance. Radio (B key) talk works within a team only and has no distance limitation.


Overall a pretty big update that should make the experience of using Ground Branch much better as well as things starting to feel more polished. Moving forward, AI will get some updates as well as continued fixes and polish as we have gotten a lot closer to an Early Access release.

Thanks for your continued support…. we are almost there!
* FIXED – Bad texture/shadow flickering on SmallTownwalls and cieling
* FIXED – Really bad framerate on Benchmark Night map due to engine change in particle collisions
* FIXED bug in AppearanceInfo class preventing proper appearnce string creation.
* FIXED kit replication issues.
* moved kit related server RPC’s from GBPlayerState to GBBasePlayerController.
* changed FPlayerKit to hold array of small kit string chunks instead of a single massive kit string
* changed kit related RPC’s to use single FPlayerKit struct instead of relying on multiple back and forth server/client RPC’s.
* FIXED some bad lightmap UV’s for a few Depot wall assets
* FIXED possible none references in HUD_PrepArea_World_Prompt
* FIXED Door_Swinging
* basic quick open/close back in
* added option to fluidly control the door as you move with it.
e.g. Right-click to hold handle, keep aiming, the slowly open door by moving forward.
* created Interaction_DoorHandle to handle character input & prompts.
* FIXED Blueprints macros using incorrect reverse loop.
* created new dedicated ReverseLoop macro to ensure it doesn’t happen again.
* FIXED GBInteractComponent detecting AI as well as human as local controller.
* FIXED Door_Rollup
* FIXED BP_MissionTimer
* FIXED bound keys causing chat window to enter current text.
* FIXED spelling of ‘customise’ in HUD_CustomiseOperator_World_Prompt widget.
* FIXED – No collision on ReadyRoom ceiling
* Stops players from getting to out of play area
* Enhances performance in ReadyRooms due to more accurate culling of map meshes
* FIXED Bad LOD transition distance on White_Oak_Desltop2 asset
* FIXED bug in GBRoundManager & GBRoundState classes that reset/destroyed actors that were just spawned.
* FIXED ladders on SH_SmallTown_Day using old ladder type
* FIXED calling AllHumansReady() in RoundManager
* FIXED failing to get correct transform from GBSpawnVolumes
* FIXED possible bad transform in GBSpawnPoint (increased capsule size)
* FIXED Friendly names for 762×51 bullets were reversed
* FIXED GBSurfaceLink::AssociatedClass variable not linking to Blueprint based classes correctly.
* FIXED bad FootStep SurfaceLink references.
* FIXED BP_WindowCover collision & replication.
* FIXED invalid RotArray index in BP_PalletteStack Blueprint.
* FIXED BFS_TeamRoom_Roof collision geometry.
* FIXED camera references on SH_NatureArea_Day.
* FIXED reflection sphere warnings for SH_TankerShip_Night when packaging.
* FIXED WareHouse_Shelves collision geometry.
* FIXED Reload_Dry_M1911_Montage missing enum references
* FIXED erronesous bone reference in Handgun_to_Rifle animation sequence.
* FIXED none reference in LowWall_CinderblockWall_Spline Blueprint.
* FIXED missing MIC reference in WhiteboardStand_Wood
* FIXED sound asset issue in Buzzer_Cue.
* FIXED bad sprite component reference outside of editor in GBAISpawnPoint.
* FIXED bad associate class string asset references for BrassShell_X FX
* FIXED ExternalMagazine and Magazine classes to return correct projectile, with Magazine Projectile class falling back internally to BaseProjectile if Projectile cannot be found.
* FIXED Galil mag BP code to not have 0 for tracer frequency (causing error in modulo arithmetic).
* FIXED – Made suppressor DisplayNames generic so they could be used on a class of weapon and not speific ones
* AK545 is now AK and MP5 is MP
* FIXED EnvironmentQueryEditor not being loaded on server
* FIXED TestNativeInputDoor Compile errors and depreceated the Blueprint
* FIXED name tag fonts log spam during dedicated server loadup
* FIXED possible null in GBAISpawnVolume
* FIXED Test_RenderText reference in BP_ReadyRoom_Roster Blueprint.
* FIXED Interaction_Ladder widget reference in BP_ImpromptuLadder Blueprint.
* FIXED min players per team check in AGBRoundManager::AllHumansReady().
* FIXED bad extents on SM_MERGED_Gaurdrail_End_6
* FIXED Door_Rollup not affecting navigation
* FIXED overly large collision mesh on ConcretePole_A & Fire_Extinguisher meshes.
* FIXED Door_Swinging navlinks not connecting to navigation mesh.
* FIXED WayPoint Blueprint not obeying 2-way navigation.
* FIXED stepping on throw grenades spassing player out.
* FIXED grenade spoon deflecting thrown grenade.
* FIXED null instigator crash caused by AnimNotifier in grenade class.
* FIXED array issue in AGBGameMode::AddDroppedItem()
* FIXED BP_DroppedCosmetic collision variables to prevent client side GBItemProjectile collision.
* FIXED – Bad collision on GuardRail asset
* FIXED spawn location of FX/damage for grenades
* FIXED sight components not always being found properly.
* FIXED Door_Rollup Blueprint possibly accessing components that are being destroyed.
* FIXED weapon being in-hand in ready room
* FIXED GBFirearm sight component updating
* FIXED GBFirearm firing before being forced on target if off target.
* FIXED handgun position when crouched.
* FIXED weapon position not changing for offset rail when crouched.
* FIXED handgun reload blending
* FIXED – SugarPine tree not contributing to DistanceFields
* Tree no longer appears unlit in the distinace
* FIXED – M16 not casting complete shadow
* FIXED view starting at origin (maybe?)
* FIXED BP_DroppedCosmetic blocking clientside movement
* FIXED operator trigger not showing prompt if still in trigger
* FIXED roster not updating in cooperative mode.
* FIXED incorrect target for rcon/admin commands
* FIXED initial light/fog in ready room on join
* FIXED radial menus not closing on death
* FIXED BP_WindowCover not replicated when uncovered
* FIXED close ready replication on handgun
* FIXED offset rail usage replication
* FIXED handgun reload over extention
* FIXED over extention of non-handguns after using handgun
* FIXED radio voip not being global.
* FIXED pre loading screen not displaying info.
* FIXED radio static playing continously.
* FIXED player state trying to bind delegate to VOIP audio component multiple times.
* FIXED blood decals.
* FIXED not selected iron sight component as sight component by default if no other sight was attached.
* FIXED lod & textures issues in first person & operator menu.
* FIXED calling head vis item event on non-human or non-viewed controllers
* FIXED stretched bullet impact decals.
* FIXED firearms continuing to fire on client if dropped mid-burst.


* created new BugIssue_Report screen, with the submission step seperated into it own widget (BugsIssues_SubmitOverlay)
* Set MP5 Auto sound cue to loop
* Set proper attenuation on MP5 sound cues
* replaced ParentSwitchScreen macro in BugsIssues_Report with manually placement of nodes instead
* FIXME – why this would only break in this ONE screen, but work in all others, I don’t know.
* New footstep and fire attenuation
* Audio update: new cues, attenuation and spatialization for pistols, smgs, rifles and shotgun
* updated UGBKitFunctionLibrary
* added log category “LogKitFunctions”
* added GetBasedKitString() to take JSon kitstring, condense it and then convert it to a Base64 string.
* added GetUnbasedKitString() to Base64 string and convert it back to condensed JSon kitstring.
* simplfied & improved DeserializeKitString()
* updated EncodeJsonKit_r()
* FJsonObject shared pointer must be included as reference!
* now returns bool if item is successfully encoded.
* now verifies ShortItemAssetPath before trying to encode.
* updated DecodeJsonKit_r()
* fixed bad syntax in VersionNumbering.bat
* Added in LOD MIC’s for foliage assets that turns wind off (saving vertex shader instructions)
* Set far LODs to use this material to increase overall performance on lower end GPU’s
* Helps to even out GPU/CPU load for more consistent framerates
* Changed LOD transitions to smooth from pop-in on foliage materials
* Visually smoothes out LOD transitions
* Moved a lot of foliage assets in Depot maps instance foliage system to improve performance
* Broke lighting out into sub level for Depot maps
* Only geometry is in shell map now to make bug fixing and changes easier to manage
* Added MaterialCollection parameter to allow a settings option to change wind shader between higher/lower quality
* Small optimization for lower end systems
* Changed Depot map over to use DistnaceField Lighting
* Better and more consistant lighting in distance
* Increased DistnaceField setting for a few assets used in Depot maps
* updated GBCharacter::OnRep_RemotePlayerMontage() to not call PlayAnimMontage on a montage that is already started.
* should fix double reloading attempts
* should fix IgnoreEngagedPosition getting cleared incorrectly online.
* replaced usage of Transition_ToPlayArea with Transition_FadeOut
* deleted Transition_ToPlayArea
* created GBLadderTrigger class
* will replaced GBLadderVolume
* doesn’t need to encompass entire ladder – just be near it.
* must currently be manually used via interact component
* updated GBCharacterMovement class
* improved ladder movement, including automounting from top
* updated GBInteractComponent class
* removed need to name triggers & outline components
* added AddTriggerComponent()
* added OutLineComponents & OutLineActors arrays that can be bound directly to instances of components/actors
* added option to use parent component as trigger
* added option to use child componetns as triggers
* added option to ignore vertical different when checking if pawn is facing the interact component
* updated BP_LadderTest to be based off new GBLadderTrigger
* added BP_LadderTest to Example_Map
* tried to improve collision on WarehouseLadder_XXX static meshes
* created GBLadderComponent based off GBLadderTrigger
* NOTE – left old ladder versions until maps updated.
* hard-coded triggers & interaction exist in class but is disabled via define.
Felt that implementing it via Blueprint gave better result.
* added Show/HideInteractPrompts() & events to GBPlayerController
* updated BasePlayerController Blueprint to call Add/RemoveCenteredMessage based on OnShow/HideInteractPrompts events.
* updated GBInteractComponent class
* changed Pawn references to GBCharacter
* changed PlayerController references to GBPlayerController
* updated assignal delegates to include GBPlayerController references.
* created child of ImpromptuLadder_Static with included GBLadderComponent & Interaction
* created Test_LadderComponent to test ImpromptuLadder_Static_Child.
* removed BP_LadderTest from Example_Map
* deleted BP_LadderTest

* Optimizizations for SmallTown map
* Tweaked some cull distance values on various meshes
* Combined some meshes to reduce drawcalls
* First polish pass for SmallTown map
* New lighting scheme
* New PostProcess setup
* Added some more cover/foliage to a few open areas
* color corrected some rock materials to better fit new lighting
* replaced UGBFunctionLibrary::CategoriesMatch() with UGBFunctionLibrary::NameArraysMatch.
* updated affected Blueprints + C++ classes.
* stripped down UGBInteractComponent to remove bloat
* moved some of its functions to new UGBInteractionFunctionLibrary.
NOTE: Mucked around with replacements using both an interface, an actor and combinatio of both.
Ended up keeping the component, but removed its bloat.
* created /UI/Interaction/Interaction_Base widget
* includes sub-widget to show key bound to action as text or icon, depending on key.
* handles the is/is not facing, as well as binding/unbinding player input as required.
* updated Impromptu_Ladder_Static_Child and renamed it to BP_ImpromtuLadder
* created Interaction_Ladder to handle character input & prompts.
* updated GBCharacter to replicate LadderComponent.
* updated GBCharacterMovement class
* call GBCharacter->SetLadderComponent(nullptr) when losing ladder to ensure its replicated to client.
* climbs up the ladder slightly when mounting from bottom.
* updated GBPlayerController class
* renamed Start/StopInteracting to Start/StopInteraction.
* updated AGBItem::SpawnItem() to return item pre-cast to request class
* updated affected Blueprints.
* improved Door_Swinging
* AI now only opens door the door if mostly close and facing it.
* quick use now opens on mostly closed, closes on mostly open.
* improved Interaction_Base & child widgets
* improved general event names
* added ForceInteractinStop event.
* improved ladder movement code
* jump now launches you away from ladder.

* created GBServerManager class
* moved voting, admin, rcon & team kill handling to this class.
* shift config entries from Engine.init to ServerManagement.ini
* updated affected C++ classes.
* added support for additional commands via delegates.
* updated TerroristHunt GameMode Blueprint
* added support for TH specific server & voting commands :
TerroristCount, KillTerrorists, FreezeTerrorists & UnfreezeTerrorists.
* added timer to spread out creation of Terrorists over the duration of a 4-5 seconds.
Should help reduce the initial hitch on round start when playing cooperatively online.
* updated GBBasePlayerController class
* created new ClientInitilizeKits() RPC.
* modified SetAppearance() to call new kit in GBGameMode when in Ready Room (see below)
* updated GBGameMode class
* created new functions to apply ready room kit & play area kit.
* updated StartNewPlayer() to call ClientInitilizeKits() after creating the players pawn for the first time.
* updated GBPlayerController class
* modified SetAppearance() & ServerJoinTeam() to call new kit in GBGameMode when in Ready Room.
* updated GBRoundManager class
* hooked up delegates for voting & server commands.
* updated Transition_Fadeout & Transition_ToReadyRoom to remove existing Transition_Fadeout screens automatically.
* updated Transition_Fadeout to delay initial animation basedon time exposed during spawn.
* updated Trigger_Ready
* added several stubbs to reports whats going on.
* creates initial Transition_Fadeout with 10 second time.
* checks ready room status after a few seconds and removes fade if still in there.
* updated HUD_Ready_World_Prompt widget.
* added option to show message when player cannot enter play area.
* updated Blueprints that reference it to ensure its updated correctly.
* updated BP_ReadyRoomDoor
* removed client side closing of door.
* added closed boolean that is rep notified.
* added collision box that is immediately set upon the door closing.
* added trigger box to add a message when approaching closed door.
* updated BP_ReadyRoom_Roster & BP_MissionTimer to replace TextComponents with CanvasRenderTexture updates.
* updated AIBP_CharacterSpawner
* removed TextComponents
* replaced character mesh with new S_BadGuy sprite.
* added automatic setting of net.IgnorePackageMismatch when using Development build.
* added GetBuildType to GBFunctionLibrary.
* updated FrontEnd/InGameMenuManagers to show build type in lower right hand corner.
* added missing DefaultServerManagerment.ini (if it works)
* updated ServerBrowser screen to allow Development builds to ignore network version differences.
* New Marketplace Forest asset collection
* Added in some new foliage/forest content
* Seperated out buttons on rollupdoor switch to their own meshes
* Added proper collision to rollupdoor mesh
* Replace rollup doors in Depot maps
* Added attenuation to ReadyRoom ambient sounds in Depot maps
* Stops those ambient sounds from being heard in play area of map
* Moved ladder content into new folder
* This caused a resave to a lot of maps
* Made new pieces meshes for new ladder system
* Replaced old ladders in Depot maps with new system
* Replaced old rollup doors in Depot maps with new system
* Replaced ladders with new system in Small_Town
* Added in Metal window cover BP
* A window cover that allows for window holes in Small_Town to be covered
* BP includes bool to have cover visible or random cover visibility during map start
* Added in WindowCover BP’s to Small_Town map
* Set to be randomly open/closed at level start
* Created LODs for various objects
* Reduced lighmap resolution on various pieces of foliage and detail objects to be more in line with mesh size
* Reduces memory usage some and gives more consistent visuals
* Made some small adjustments to placed foliage that was obstructing AI pathing
* Added in some Megascans content
* Forest pieces and some textures
* Fixed bad roughness value on railroad ties that was causing them toglare in the sunlight
* Started a polish pass on Depot_Day maps
* Cleaned up some materials
* Adding in meshes to polish up some terrain areas to look more natural
* Updated some terrain textures to higher quality
* removed GBSquadActor class
* cleaned SquadActor class
* updated all affected C++ classes
* several variables were updated to UE4 smart pointers.
* created GBAIDirector & GBAIState classes
* can be used to create AI controller & characters, so they are tracked & managed more easily.
* includes several helpful functions & events
* to use, create a GBAIDirector based Blueprint & set it as a game modes AIDirectorClass.
* utilises the GBAIState class, which can replciate information to the client
e.g. Remaining enemies.
* created GBAISpawnActorInterface class
* can be used in C++ or Blueprint to create a place where AI can spawn.
* by default, there are two new classes implement it – GBAISpawnPoint & GBAISpawnVolume
* interface allows for getting tranform information, apply appearance/loadout etc.
* see GBAISpawnActorInterface header for full list.
* created GBAIWayPoint
* simply class that links to other GBAIWayPoint’s as siblings (two way) or children (one way).
* updated AGBPlayerStart::RemovePlayerStarts()
* checks that some player starts will actually be kept before destroying those that won’t be.
* fixes maps having no player starts if incorrect or no actor tags are set.
* created FAIInitialBehaviour struct
* holds named behaviour & actor references
* used by IGBSpawnActorInterface & AGBAIDirector classes to set the initial behavriour of newly created AI controllers.
* updated TerroristHunt & SoloTerroristHunt GameMode Blueprints
* both use AIDirector_TerroristHunt, making them identical, AI wise.
* created TerroristHuntExample map to updated gamemodes & classes
* added GetPriority() to GBAISpawnActorInterface
* added FSpawnActorGroup struct to find and store the highest priority of associated spawn actors.
* added new meta data option “ForceAsFunction”
Force C++ function to show up as an overrideable Blueprint function even if it normally wouldn’t.
* updated AIDirector_TerroristHunt Blueprint
* implemented function version of SetInitialBehaviour due to engine change (yay!)
* improved flow over first version
* includes ‘idle’ option
* created GetRandomisedGroupsByPriority() function
* randomly sorts spawn groups, but biases the result based on groups highest priority value.
* updated TerroristHuntExample
* removed uneeded GBWayPoints
* added idle & other initial behaviours to spawn actors that were missing them.
* added priority to one spawn volume for testing.
* updated ladder usage & movement
* auto-mounts top/bottom using MOVE_WALK style movement to step over obstacles.
* auto-aligns player with between ladder extents if ladder is wide enough.
* auto-rotates player to face ladder direction.
* limits yaw while on ladder.
* only moves down ladder if proposed movement direction is mostly down.
* improved collision on Rungladder_TopAttachment_L/R static meshes.
* More detailing/polishing of forest areas in Depot_Day
* Polish and Optimizations to Small_Town map
* Cleaned up some over aggressive LOD cull ranges
* Reworked a few areas of terrain and player boundery
* replaced GBAppearanceInfo & GBLoadoutInfo with single GBKitInfo class
* updated Depot_All_Day to use updated AI handling.
* Tweaked some LOD transition ranges in Depot map
* Added LOD to a couple meshes
* Changed tracer from particle effect to staticmesh for testing
* removed SquadActor Blueprint & related references.
* removed AIBP_CharacterSpawner Blueprint & related references.
* removed TerroristSpawnVolume Blueprint & related references.
* attempted to fix warning about ExampleDeviceProfiler by specifying WindowsDeviceProfiler.
* set correct game icon in project settings.
* removed old/bad content.
* removed classes related to previous implementation of ladder.
* Added in tracers for rifle calibers
* Ability to set tracer color type per magazine
* Includes Red, Green and Orange colors
* added GBAIDirector::GetAIState()
* created AIState_TerroristHunt
* replicates remaining terrorist count from server to clients.
* displays engine message once count is received.
* updated SoloTerroristHunt & TerroristHunt GameMode Blueprints to add support for AIState_TerroristHunt.
* Added bool to allow last 3 rounds of a rifle magazine to be tracers
* True by default
* attempted to fix BP_ReadyRoomNameTags causing log spam during dedicated server loadup due to text component usage.
* updated AGBGameState class
* moved player kit initislisation from GBGameMode server-to-client call to AGBGameState:AddTeam()
* changed NumTeams variable to from Replicated ot ReplicatedUsing = OnRep_NumTeams.
* created OnRep_NumTeams() to call player kit initislisation if if replicated NumTeams is zero.
* changed GetTeamByTeamId() & GetTeamByTeamName() to use old style forloops instead of forloop iterators to fix possible nulls.
* move RegisterServer() from GameMode::InitGame() to FCoreUObjectDelegates::PostLoadMap() delegate call setup via AGBGameSession::ProcessAutoLogin().
* Created more LODs for various meshes
* Depot work
* Optimized some distance culling values to be a bit more aggressive
* Changed out ladders to correct BP (No longer test versions from Kris’s Dev folder)
* Rearranged Landscape and foliage into their own sub level to clear up old volume reference that is stuck in map (helps in organization as well)
* Set proper physical material for Landscape layer infos
* removed GBAIWayPoint class
* updated Depot_All_Day
* added many additional way points / patrol pathes.
* adjusted existing spawn volumes.
* added more AI spawn volumes & AI spawn points
NOTE: Despite not adding any visible meshes etc, it still wants to update lighting 🙁
* Merged GBGameMode ApplyReadyRoomKit() & ApplyPlayAreaKit() into ApplyPlayerKit().
* will now show appearance & loadout in ready room
* updated other classes to support this & prevent item usage in ready room.
* updated GBGrenade class & related Blueprints
* updated BaseGrenade & BP_Grenade to use an ExplosionClass to handle grenade explosion.
* moved assets related to grenade explosions to /Grenades/Explosions/Assets.
* moved Bluerpints related to grenade projectile /Grenades/Projectiles
* removed BP_ReadyRoomNameTags Blueprint
* changed MK48_MOD1 reload to use M249_Reload_Montage
* updated grenade Blueprints
* ensured explosives are replicated & ony play on client.
* ensured damage is only applied on server.
* added basic impact FX on clients (uses BrassImpact_XX FX).
* created GBItemProjectile
* changed BP_Grenade Blueprint parent class to GBItemProjectile
* updated BaseGrenade Blueprint to correctly use GBItemProjectile variables when spawning BP_Grenade.
* removed BP_Grenade & BP_GrenadeSpoon Blueprints
* created Projectile_Grenade Blueprint.
* updated Explosion_M18_Smoke_ Blueprint to fix references
* updated BaseGrenade Blueprint to fix references.
* removed AssociatedItem replicated stubb from GBItemProjectile.
* improved grenade usage
* grenade state is now set by authority and replicated to client.
* added offset rotation & location support to InGameAnimationBP
* added inventory events for changing off target, engaged & ignore engaged positions.
* added delegates to sight component to fire when engaged/disengaged
* updated GBFirearm class
* sight components are now determined on server & client.
* on new inventory events (listed above), will call new sight component delegates.
* when switching sights, will call new sight component delegates.
* Changed magazines to use tracer every 5th round and last 3 for testing
* LOD work on TankerShip maps
* added movement speed control via mouse wheel when spectating
* added moveup/movedown support to spectating mode (made need to rebind up/down action multiple times first)
* updated HUD_Spectator_Controlls to add movement speed control hint.
* added additional IsValid() checks in SceneComponent before calling attachment related delegates.
* added .IsBound() checks in SceneComponent before calling attachment related delegates.
* simplified detachment/attachment of AssociatedItem in GBItemProjectile.
* improved item offset timer updating in OffsetRailAdapter Blueprint.
* added accessories to FirearmCustomisation_AK (for what its worth).
* hacked in support for hangun close ready
* hacked in burst-fire for G22 for shits and giggles 😛

* Adjusted some lighting settings in Depot Day maps to achieve better world shadow definition
* Still some work to do, but the environment and character shadows are more defined now.
* Its a balance between rendering resources and shadow resolution on bigger maps
* Refined outdoor lighting on Depot Day maps to be smoother and more uniform. (Less full dark areas)
* New stick/wood asset
* Changed a few settings on some foliage materials to help with dark lighting
* Set boulder master material to use dither LOD transition to reduce popping
* Cleaned up some lightmaps UVs on a couple trees
* Set materials on PineTree type to dither LOD for smoother LOD transitions
* updated loading screen creation & handling
* split loading screen into separate widgets.
* added pre-loading screen when attempting to join server.
* created post-loading screen, but disable implementation due to issues.
* created server info widget to display server name & MOTD
* added new icons when talking & using radio
* added radio usage sound effects.
* funneled VOIP sound component through player state to ensure its updated correctly based on radio usage.
* udpated VOIP handling
* treats people in ready room as being on same team
* added OnAudioFinished() binding to VOIPAudioComponent to ensure its removed.
* separated radio & talk VOIP settings.
* changed VOIPAudioComponent to weak pointer
* added stubbs to track VOIPAudioComponent
* pushed UE413 fixes into GBGameMode & GBPlayerController that may affect voip
* Optimized ShootingRange map
* removed VOIP stubbs.
* reenabled radio squelch when radio is used.
* adde MaxVoiceDistance (in cm) editable variable to GBPlayerController
* Increased DistanceFields detail on a few meshes
* Changed trees/bushes from individual StaticMeshes over to foliage system
* Shooting Range and Killhouse maps
* Performance increase
* Rearranged ShootingRange map to use Shell system
* Added bone to M16 front sight post so we can hide it when in engange posture and viewing through a magnified optic. (Not implimented in game yet)
* Not NORG but much easier than trying to make it work other ways. 🙂
* updated GBDamageType class
* removed UT4 like handling of effects.
* added HitEffectsClass
* updated GBCharacter to spawn HitEffectsClass on client based on LastHitInfo replication.
FIXME – update to support through-and-throughs in one class!
* moved UAISense_Damage::ReportDamageEvent() from GBBulletProjectile to GBAIController.
* added more checks to prevent continous firing on death drop.


* Temporary fix for AI “Trains”, for now simply set randomly some of the AI to “Guard” command. Means they stay in place inside buildings when spawned.
* Fixed collision problem with EQS Test Target capsule collision getting in the way of players 🙁
* Quick tweak to EQS to reduce some of the CPU load in heavy AI situations
* Fixed a bug in the sensory system by updating the perception component “listeners” during calls to SetGenericTeamId, that way it refreshes the queries it runs for sight based on the correct team id rather than the default 255.
* Updated some CVAR values to represent the correct naming convention for AI values.
* Updated AI to work with old waypoints for now.
* Fixed up smalltown to use Kris’s new spawns.
* Fixed up kris’s TH example map to give some waypoints to group spawns.
* Added temp death marker so that dead bodies are noted and affect navigation queries (seems to not work as expected).
* Updated TerroristBot to use old waypoints, removed some redundant code from GBAIController for fixing team spawn issues now we’re using AIDirector class.
* Added fix for AI targetting dead player. I’ll miss you!!